/* ChemRegistry layout over the unmodified OSH Family Design 1.0 tokens. */
.osh-app { --ink:var(--osh-ink);--muted:var(--osh-muted);--line:var(--osh-line);--primary:var(--osh-primary) }
.osh-app [hidden]{display:none!important}
.osh-app h1,.osh-app h2,.osh-app h3,.osh-app p{margin-top:0}
.osh-app h3{font-size:20px;font-weight:650;line-height:1.5}
.osh-app button{cursor:pointer}
.osh-app button:disabled{cursor:wait;opacity:.55}
.osh-app a{color:var(--osh-primary);text-underline-offset:4px}
.osh-app small,.osh-app .muted,.osh-app .intro,.osh-app .field-help{color:var(--osh-muted)}
.osh-app .muted,.osh-app small{font-size:14px;line-height:1.7}
.osh-app .header-status{font-size:14px}
.osh-app .app-nav{display:flex;flex-wrap:wrap;gap:8px;padding:16px 0;border-bottom:1px solid var(--osh-line)}
.osh-app .app-nav button{min-height:44px;padding:8px 16px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--osh-muted);font-size:16px;font-weight:600}
.osh-app .app-nav button.active{background:var(--osh-primary-soft);color:var(--osh-primary);border-color:var(--osh-line)}
.osh-app .app-nav button:hover{background:var(--osh-primary-soft)}
.osh-app .osh-intro{margin-bottom:24px}
.osh-app .workflow{display:flex;flex-wrap:wrap;gap:16px 32px;list-style:none;padding:0;margin:0 0 24px;color:var(--osh-muted);font-size:14px}
.osh-app .workflow li{display:flex;align-items:center;gap:8px}
.osh-app .workflow b{display:grid;place-items:center;width:28px;height:28px;border-radius:4px;background:var(--osh-primary-soft);color:var(--osh-primary)}
.osh-app .view{display:none}.osh-app .view.active{display:block}
.osh-app .panel{border:1px solid var(--osh-line);border-radius:12px;background:white;padding:24px;min-width:0}
.osh-app .panel-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.osh-app .panel-heading h2{margin:0}
.osh-app .wide{width:100%}
.osh-app .input-text-field{margin-top:24px}
.osh-app input[type=file]{padding:8px;font-size:14px}
.osh-app input[type=file]::file-selector-button{font:inherit;min-height:44px;border:1px solid var(--osh-input-line);border-radius:7px;background:white;color:var(--osh-primary);padding:8px 12px;margin-right:12px}
.osh-app .check-row{margin:16px 0}
.osh-app .check-row label{display:flex;gap:8px;align-items:flex-start;min-height:44px;font-size:14px}
.osh-app input[type=checkbox]{accent-color:var(--osh-primary);width:20px;height:20px;flex:0 0 20px;margin-top:4px}
.osh-app .sample-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px}
.osh-app .sample-row>span{flex-basis:100%;margin:0}
.osh-app .sample-row button,.osh-app .secondary,.osh-app .guide-tabs button{min-height:44px;border:1px solid var(--osh-input-line);border-radius:7px;padding:10px 16px;background:white;color:var(--osh-primary);font-size:16px;font-weight:600}
.osh-app .primary{min-height:44px;background:var(--osh-primary);border:1px solid transparent;border-radius:7px;padding:10px 20px;color:white;font-size:16px;font-weight:600}
.osh-app .primary:hover{background:var(--osh-primary-hover)}
.osh-app .secondary:hover,.osh-app .sample-row button:hover{background:var(--osh-primary-soft)}
.osh-app .archive-option,.osh-app .url-option{margin-top:24px}
.osh-app details>summary{cursor:pointer;color:var(--osh-primary);min-height:44px;padding-block:8px;font-weight:600}
.osh-app details>p{font-size:14px}
.osh-app details .osh-field{margin-top:16px}
.osh-app .empty-state{padding:24px 0}
.osh-app .empty-state p{color:var(--osh-muted);margin:16px 0}
.osh-app #image-preview{margin-top:16px}
.osh-app #preview-image{max-height:220px;max-width:100%;display:block;margin-bottom:12px}
.osh-app .status-text{font-size:14px;color:var(--osh-primary);margin-top:12px}
.osh-app .inline-error,.osh-app .error{color:var(--osh-error-ink);font-size:14px}
.osh-app .inline-error{background:var(--osh-error-bg);padding:12px 16px;border:1px solid var(--osh-error-ink);border-radius:7px;margin:12px 0 0}
.osh-app [aria-invalid=true]{border-color:var(--osh-error-ink)!important}
.osh-app .result-note,.osh-app .notice{background:var(--osh-primary-soft);border:1px solid var(--osh-line);border-radius:7px;padding:16px 20px;font-size:14px;margin-bottom:16px}
.osh-app .result-section{margin-top:24px}
.osh-app .result-section h3{margin-bottom:12px}
.osh-app .product-card{display:block;width:100%;border:1px solid var(--osh-line);border-radius:12px;padding:20px;background:white;text-align:left;margin-bottom:16px}
.osh-app .product-card:hover{border-color:var(--osh-primary);background:var(--osh-paper)}
.osh-app .product-card strong{display:block;font-size:20px;margin-top:12px}
.osh-app .product-card small{display:block;margin-top:8px}
.osh-app .meta-row{display:flex;flex-wrap:wrap;gap:8px}
.osh-app .tag{display:inline-flex;padding:4px 8px;background:var(--osh-primary-soft);color:var(--osh-primary);border-radius:4px;font-size:14px;font-weight:600;line-height:1.5}
.osh-app .pictograms{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}
.osh-app .pictograms img{width:48px;height:48px;object-fit:contain}
.osh-app .substance-button{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%;gap:12px;min-height:44px;padding:16px 0;background:white;border:0;border-bottom:1px solid var(--osh-line);text-align:left}
.osh-app .substance-button strong{font-size:16px}.osh-app .substance-button small{display:block}
.osh-app .cas{color:var(--osh-primary);font-family:Consolas,monospace;font-size:14px}
.osh-app button.cas{min-height:44px;padding:8px;border:1px solid var(--osh-line);border-radius:7px;background:white}
.osh-app .detail-panel,.osh-app .scope-section{margin-top:40px}
.osh-app .detail-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px}
.osh-app .detail-top h2{font-size:24px}.osh-app .eyebrow{font-size:14px;font-weight:600;color:var(--osh-muted)}
.osh-app .tabs,.osh-app .guide-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.osh-app .tabs button{min-height:44px;border:1px solid var(--osh-line);border-radius:7px;background:white;padding:10px 16px;font-size:16px;color:var(--osh-primary)}
.osh-app .tabs button.active,.osh-app .guide-tabs button.active{background:var(--osh-primary);color:white}
.osh-app .two-cols,.osh-app .guide-grid,.osh-app .data-grid,.osh-app .info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.osh-app .data-grid,.osh-app .info-grid{margin-top:24px;margin-bottom:24px}
.osh-app .data-grid button{margin-top:16px}
.osh-app .table-wrap{max-width:100%;overflow:auto;border:1px solid var(--osh-line);border-radius:12px;margin:16px 0}
.osh-app table{border-collapse:collapse;width:100%;font-size:14px;min-width:560px}
.osh-app th,.osh-app td{padding:12px 16px;border-bottom:1px solid var(--osh-line);text-align:left;vertical-align:top}
.osh-app th{background:var(--osh-paper)}.osh-app td small{display:block;margin-top:8px}
.osh-app .source-link{display:inline-block;font-size:14px;margin-top:12px}
.osh-app .empty-inline{padding:24px 0;color:var(--osh-muted)}
.osh-app .searchbox{max-width:720px;margin:24px 0}
.osh-app .library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.osh-app .section-title{font-size:24px;margin:32px 0 16px}
.osh-app .case-card{border:1px solid var(--osh-line);border-radius:12px;padding:24px;margin:24px 0;background:white}
.osh-app .case-card h3{margin-top:16px}
.osh-app .outcome{color:var(--osh-primary);font-weight:600}
.osh-app .emergency-box{padding:20px;border:1px solid var(--osh-error-ink);border-radius:12px;background:var(--osh-error-bg)}
.osh-app .emergency-box h2{font-size:24px}
.osh-app .metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.osh-app .metric{background:var(--osh-primary-soft);border-radius:7px;padding:16px}
.osh-app .metric b{font-size:24px;display:block;color:var(--osh-primary)}.osh-app .metric span{font-size:14px}
.osh-app .reference-strip{font-size:14px;color:var(--osh-muted);margin-top:24px}
.osh-app .reference-strip span{display:block}
.osh-app .export-links{display:grid;gap:8px;margin-top:16px}
.osh-app .export-links a{display:block;min-height:44px;padding:10px 0;border-bottom:1px solid var(--osh-line)}
.osh-app #data-status{margin-top:24px;font-size:14px;color:var(--osh-muted)}
.osh-app .source-item{border-bottom:1px solid var(--osh-line);padding:16px 0;font-size:14px;overflow-wrap:anywhere}
.osh-app .source-item small{display:block}.osh-app .source-item code{font-size:12px}
.osh-app .extracted-text{max-height:300px;overflow:auto;white-space:pre-wrap;font-size:14px;background:var(--osh-paper);padding:16px;border:1px solid var(--osh-line)}
.osh-app #sds-result{margin-top:16px;font-size:14px}
.osh-app .section-raw{margin-top:24px;font-size:14px}
.osh-app .section-raw div{padding:12px 0;border-bottom:1px solid var(--osh-line);white-space:pre-wrap;overflow-wrap:anywhere}
.osh-app dialog{border:1px solid var(--osh-line);border-radius:12px;width:calc(100% - 36px);max-width:900px;max-height:90vh;padding:32px;color:var(--osh-ink);background:white}
.osh-app dialog::backdrop{background:#06264c99}
.osh-app .dialog-close{display:block;margin:0 0 8px auto;width:44px;height:44px;border:1px solid var(--osh-input-line);border-radius:7px;background:white;color:var(--osh-primary);font-size:24px}
.osh-app #toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:100;background:var(--osh-navy);color:white;padding:16px 20px;border-radius:7px;font-size:14px;max-width:calc(100vw - 36px)}
.osh-app footer{margin-top:40px;font-size:14px}.osh-app footer span{display:block;margin-top:8px}
.osh-app dl{margin:0}.osh-app dt{font-size:14px;color:var(--osh-muted);margin-top:16px}.osh-app dd{margin:4px 0 0;overflow-wrap:anywhere}
.osh-app .info-grid h2{font-size:24px}
.osh-app :where(summary,[tabindex]):focus-visible{outline:3px solid var(--osh-focus);outline-offset:4px}
@media(max-width:850px){.osh-app .two-cols,.osh-app .guide-grid,.osh-app .data-grid,.osh-app .info-grid,.osh-app .library-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){.osh-app .osh-brand{font-size:22px}.osh-app .header-status{gap:12px}.osh-app .app-nav{gap:4px}.osh-app .app-nav button{flex:1 0 45%;padding:8px;font-size:14px}.osh-app .panel,.osh-app .case-card{padding:20px}.osh-app .workflow{gap:8px}.osh-app .workflow li{flex-basis:100%}.osh-app .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.osh-app .panel-heading{gap:8px}.osh-app .sample-row button{font-size:14px}.osh-app dialog{padding:20px}.osh-app .tabs button{flex:1 0 40%;font-size:14px}}
@media(prefers-reduced-motion:reduce){.osh-app *{scroll-behavior:auto!important;transition:none!important}}

#label-from-photo{margin-top:12px}.size-inputs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.pic-options{display:flex;flex-wrap:wrap;gap:12px;border:1px solid var(--osh-border,#D6E0ED);border-radius:7px;padding:16px;margin:20px 0}.pic-options label{display:flex;align-items:center;gap:6px;min-height:44px}.pic-options img{width:40px;height:40px}.confirmations{display:grid;gap:12px;margin:20px 0}.confirmations label{display:flex;gap:8px;align-items:flex-start}.confirmations input{margin-top:5px}#draft-editor{margin-top:24px}#label-candidates{margin-top:20px}#draft-output{margin-top:20px}@media(max-width:650px){.size-inputs{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Case catalog extends the existing OSH family components. */
.case-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.case-query{grid-column:1/-1}.case-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.case-actions label{margin-right:auto}.case-result-heading{justify-content:space-between}.case-pagination{display:flex;gap:18px;justify-content:center;align-items:center;margin:24px 0}.case-summary{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.case-warning{color:#8b3c09;background:#fff4df;border:1px solid #edc077;border-radius:5px;padding:5px 9px;font-size:14px}.case-fields{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr);gap:0;margin:12px 0}.case-fields dt,.case-fields dd{padding:9px;margin:0;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere;white-space:pre-wrap;font-size:14px}.case-fields dt{background:#f3f6fb;font-weight:600}.case-provenance{font-size:12px;color:#5f6b7a;overflow-wrap:anywhere}.case-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:500px;overflow:auto;padding:16px;background:#f3f6fb;font-family:inherit;line-height:1.9}#case-dialog{width:min(1060px,94vw);max-height:92vh;box-sizing:border-box}#case-detail>section{border-top:1px solid #dce3eb;padding-top:16px;margin-top:24px}#case-detail details{padding:12px 0}#case-detail summary{cursor:pointer;color:#003876;font-weight:600}.case-record{border-top:1px solid #dce3eb}.case-label{border-bottom:1px solid #dce3eb}#case-detail .table-wrap table{min-width:650px}#case-detail h2{padding-right:24px}
@media(max-width:700px){.case-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.case-fields{grid-template-columns:1fr}.case-fields dd{padding-bottom:14px}.case-actions{align-items:stretch}.case-actions label{flex-basis:100%}.case-pagination{gap:10px}#case-dialog{padding:20px}}

/* International identifiers share the existing OSH forms and cards. */
#identifier-dialog { width: min(950px, 94vw); max-height: 90vh; }
.identifier-search { display:flex; gap:12px; margin:10px 0 18px; align-items:stretch; }
.identifier-search .osh-input { flex:1; min-width:0; }
.identifier-search button { flex-shrink:0; }
.identifier-values { display:grid; grid-template-columns:90px minmax(0,1fr); gap:6px 12px; }
.identifier-values dd { margin:0; overflow-wrap:anywhere; }
.identifier-card { margin:16px 0; overflow-wrap:anywhere; }
.identifier-card h3 { margin:12px 0; }
.identifier-card details p { white-space:pre-line; }
#candidate-detail table small { display:block; margin-top:6px; }
@media(max-width:600px) { .identifier-search { flex-direction:column; } #identifier-dialog { padding:20px 14px; } }
/* Official reference catalog, using the shared OSH card and form styles. */
.regulatory-counts,.regulatory-actions,.regulatory-pagination{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.regulatory-search{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:16px;align-items:end;margin-top:20px}
.regulatory-search label{display:flex;flex-direction:column;gap:8px;font-weight:600}
.regulatory-search input,.regulatory-search select{width:100%;min-width:0}
.regulatory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.regulatory-card{min-width:0;overflow-wrap:anywhere}
.regulatory-card h2{font-size:20px;line-height:1.5;margin:16px 0}
.regulatory-statement{font-size:18px;font-weight:600}
.regulatory-fields{margin:16px 0}
.regulatory-fields>div{display:grid;grid-template-columns:minmax(100px,1fr) minmax(0,2fr);gap:14px;padding:10px 0;border-bottom:1px solid #e3e8ef}
.regulatory-fields dt{font-weight:600;color:#475569}.regulatory-fields dd{margin:0;white-space:pre-line}
.regulatory-pagination{justify-content:center}
@media(max-width:850px){.regulatory-search{grid-template-columns:1fr 1fr}.regulatory-search label:first-child{grid-column:1/-1}}
@media(max-width:600px){.regulatory-search,.regulatory-grid{grid-template-columns:1fr}.regulatory-fields>div{grid-template-columns:1fr;gap:5px}}

.csv-export-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 24px;padding-left:24px;margin:20px 0}.csv-export-list li{padding:5px 0;overflow-wrap:anywhere}
