/* Design-system layout and reusable explanatory visuals. Production tokens/styles are loaded first. */
.ds-body { background: var(--bg); color:var(--text); font-family:var(--font-ui); line-height:1.55; }
.ds-hero { padding:48px max(28px,5vw) 36px; background:#fff; border-top:4px solid var(--indigo); border-bottom:1px solid var(--line); }
.ds-hero h1 { font-size:clamp(34px,4vw,56px); margin:12px 0; color:var(--indigo); letter-spacing:-1.7px; text-transform:none; }
.ds-hero > p { font-size:22px; color:var(--indigo); margin:0 0 14px; font-weight:600; }
.ds-intro { max-width:900px; color:var(--muted); font-size:16px; }
.ds-hero-meta { display:flex; flex-wrap:wrap; gap:24px; margin-top:24px; font-size:12px; color:var(--muted); }
.ds-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:36px; padding:32px max(24px,4vw); max-width:1700px; margin:auto; }
.ds-nav { position:sticky; top:20px; align-self:start; }
.ds-nav label,.ds-label { font-size:11px; font-weight:650; letter-spacing:0; text-transform:uppercase; color:var(--muted); }
.ds-nav input { width:100%; padding:12px; margin:8px 0 20px; background:#fff; border:1px solid var(--line); }
.ds-nav a { display:block; padding:9px 0; color:var(--indigo); border-bottom:1px solid var(--line); text-decoration:none; font-size:13px; }
.ds-nav p { font-size:12px; color:var(--muted); }
.ds-main { min-width:0; }
.ds-main h2,.ds-main h3 { color:var(--indigo); text-transform:none; letter-spacing:-.4px; }
.ds-main h2 { font-size:26px; }.ds-main h3 { font-size:19px; }
.ds-start { padding:28px; border:1px solid var(--line); background:white; margin-bottom:32px; }
.ds-group { scroll-margin-top:20px; }.ds-group-head { display:flex; gap:18px; padding:26px 0 18px; }.ds-group-head>span { color:var(--blue); font-size:24px; }.ds-group-head h2 { margin:0; }.ds-group-head p { color:var(--muted); margin:5px 0; }
.ds-component { margin-bottom:24px; border:1px solid var(--line); border-top:2px solid var(--blue); background:#fff; scroll-margin-top:20px; }
.ds-component-head { padding:20px 24px; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }.ds-component-head h3 { margin:4px 0 0; }.ds-permalink { color:var(--blue); font-size:22px; }
.ds-preview { padding:28px; overflow-x:auto; background:#fbfcfe; }.ds-preview > :first-child { margin-top:0; }.ds-preview > :last-child { margin-bottom:0; }.ds-preview .panel { margin:0; }.ds-preview svg { max-width:100%; }
.ds-guidance { display:grid; grid-template-columns:1fr 1fr; padding:20px 24px; gap:16px 24px; border-top:1px solid var(--line); }.ds-guidance p { margin:0; font-size:13px; color:var(--muted); }.ds-guidance p:last-child { grid-column:1/-1; }.ds-guidance b { display:block; color:var(--indigo); margin-bottom:5px; }.ds-guidance code { overflow-wrap:anywhere; }
.ds-code { border-top:1px solid var(--line); padding:16px 24px; }.ds-code summary { font-size:13px; font-weight:600; color:var(--indigo); cursor:pointer; }.ds-code pre { background:var(--paper); color:var(--text); padding:18px; max-height:350px; overflow:auto; font-size:12px; white-space:pre-wrap; overflow-wrap:anywhere; }.ds-code button { margin-top:14px; }
.ds-skip { position:absolute; left:-10000px; }.ds-skip:focus { left:12px; top:12px; padding:12px; background:white; z-index:20; }
.ds-body [hidden] { display:none!important; }.ds-body :focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.ds-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }.ds-tile { background:white; border:1px solid var(--line); padding:22px; }.ds-tile h3 { margin:8px 0; }.ds-tile p { color:var(--muted); font-size:13px; }
.ds-table-wrap { overflow:auto; }.ds-table { width:100%; border-collapse:collapse; font-size:13px; background:#fff; }.ds-table th,.ds-table td { padding:13px 16px; border:1px solid var(--line); text-align:left; vertical-align:top; }.ds-table th { background:#edf2fa; color:var(--indigo); }.ds-table td:first-child { background:#f0f2f6; font-weight:600; }
.ds-metrics { display:grid; grid-template-columns:repeat(4,1fr); background:white; border:1px solid var(--line); }.ds-metrics>div { padding:22px; border-right:1px solid var(--line); }.ds-metrics span { color:var(--muted); font-size:12px; }.ds-metrics strong { display:block; font-size:28px; color:var(--indigo); margin-top:6px; }
.ds-notice { padding:18px 22px; border:1px solid var(--line); border-top:3px solid var(--blue); background:white; margin-bottom:14px; }.ds-notice h3 { margin:0 0 6px; }.ds-notice p { margin:0; color:var(--muted); }.ds-notice.success { border-top-color:var(--green); }.ds-notice.warning { border-top-color:var(--amber); }.ds-notice.error { border-top-color:var(--red); }
.ds-figure { margin:0; padding:20px; border:1px solid var(--line); background:white; }.ds-figure figcaption { font-size:12px; color:var(--muted); padding-top:14px; border-top:1px solid var(--line); }.ds-figure h3 { margin:0 0 12px; }.ds-figure svg { display:block; width:100%; height:auto; margin-bottom:18px; }
.ds-timeline { border-left:1px solid var(--line); padding-left:24px; }.ds-timeline article { padding:0 0 22px; }.ds-timeline time { color:var(--muted); font-size:12px; }.ds-timeline h3 { margin:4px 0; }
.ds-swatch { height:42px; background:var(--swatch); margin-bottom:10px; border:1px solid var(--line); }.ds-token-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }.ds-token-grid code { font-size:12px; }
@media(max-width:900px) { .ds-layout { grid-template-columns:1fr; gap:20px; }.ds-nav { position:static; }.ds-nav nav { display:flex; flex-wrap:wrap; gap:12px; }.ds-nav nav a { padding:5px; }.ds-preview { padding:18px; }.ds-guidance { grid-template-columns:1fr; }.ds-tiles { grid-template-columns:1fr; }.ds-metrics,.ds-token-grid { grid-template-columns:repeat(2,1fr); }.ds-hero { padding:28px; }.ds-body .workspace-guide-flow { flex-wrap:wrap; } }
@media print { .ds-nav,.ds-code,.ds-skip { display:none; }.ds-layout { display:block; padding:0; }.ds-component { break-inside:avoid; }.ds-preview { overflow:visible; } }
.ds-pagination,.ds-inline { display:flex; gap:16px; justify-content:space-between; align-items:center; flex-wrap:wrap; }
.ds-check { display:flex; align-items:center; gap:10px; margin:14px 0; text-transform:none; letter-spacing:0; }
.ds-milestones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; list-style:none; padding:0; }
.ds-milestones li { border:1px solid var(--line); padding:20px; background:#fff; }.ds-milestones b { display:block; margin-top:12px; color:var(--indigo); }
@media(max-width:900px) { .ds-tiles > [style*="grid-column"] { grid-column:auto!important; } .ds-milestones { grid-template-columns:1fr; } }
/* Shared upload visual concept; endpoint behavior is wired separately. */
.aios-upload { max-width:100%; color:var(--indigo); }
.aios-upload-heading { display:flex; justify-content:space-between; gap:18px; align-items:center; margin-bottom:22px; }
.aios-upload-heading h3 { margin:6px 0 0; font-size:23px; letter-spacing:-.5px; text-transform:none; }
.aios-upload-drop { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:38px 24px; border:1px dashed #8899ba; background:#f1f5fb; cursor:pointer; text-transform:none; letter-spacing:0; min-height:210px; }
.aios-upload-drop:hover,.aios-upload-drop:focus-within { background:#eaf0fb; border-color:var(--indigo); }
.aios-upload-drop svg { width:38px; height:38px; color:var(--indigo); }
.aios-upload-drop strong { font-size:18px; font-weight:600; }.aios-upload-drop strong span { color:#4d6598; text-decoration:underline; text-underline-offset:4px; }
.aios-upload-drop small { font-size:12px; font-weight:400; color:var(--muted); text-align:center; }
.aios-upload-drop input { position:absolute; width:1px; height:1px; opacity:0; }
.aios-upload-files { margin-top:20px; border:1px solid var(--line); background:white; }
.aios-upload-row { display:flex; align-items:center; gap:16px; padding:18px 20px; border-bottom:1px solid var(--line); }.aios-upload-row:last-child { border-bottom:0; }
.aios-upload-file-icon { display:grid; place-items:center; width:44px; height:50px; flex-shrink:0; background:#edf2fa; border:1px solid #d8e1ef; font-size:10px; font-weight:700; letter-spacing:0; }
.aios-upload-file-info { flex:1; min-width:0; }.aios-upload-file-info strong { display:block; font-size:14px; overflow-wrap:anywhere; }.aios-upload-file-info small { display:block; font-size:12px; color:var(--muted); margin-top:5px; }
.aios-upload-file-info progress { display:block; width:100%; height:4px; margin-top:12px; border:0; accent-color:#536b9f; }.aios-upload-file-info progress::-webkit-progress-bar { background:#e7ecf4; }.aios-upload-file-info progress::-webkit-progress-value { background:#536b9f; }
.aios-upload-state { font-size:12px; color:#467367; white-space:nowrap; }.aios-upload-remove { border:0; background:transparent; color:var(--muted); font-size:22px; width:36px; height:36px; cursor:pointer; }
.aios-upload-demo-note { color:var(--muted); font-size:12px; margin:16px 0 0; }
@media(max-width:600px) { .aios-upload-heading { align-items:flex-start; }.aios-upload-drop { padding:28px 16px; }.aios-upload-row { gap:10px; padding:16px 12px; }.aios-upload-state { display:none; } }
/* Production upload controls. Scope overrides protect the pattern in legacy forms. */
.aios-upload-control { --indigo:#26304a; --muted:#666b7b; --line:#d9d3cb; width:100%; min-width:0; text-align:left; }
.aios-upload-field { min-width:0; }.aios-upload-field > label { display:block; margin-bottom:10px; }
.aios-upload-control .aios-upload-drop { min-height:160px; padding:26px 20px; margin:0; }
.aios-upload-control .aios-upload-drop strong { font-size:16px; text-align:center; }
.aios-upload-control .aios-upload-browse { width:auto; min-height:0; margin:0; padding:0; border:0; background:transparent; color:#4d6598; font:inherit; font-weight:600; text-decoration:underline; text-underline-offset:4px; text-transform:none; letter-spacing:0; cursor:pointer; }
.aios-upload-control .aios-upload-remove { margin:0; padding:0; background:transparent; color:var(--muted); border:0; }
.aios-upload-control input.aios-upload-native { position:absolute; width:1px; height:1px; padding:0; margin:0; opacity:0; border:0; }
.aios-upload-control .is-dragging { background:#e4ecfb; border:1px solid #536b9f; }
.aios-upload-control .aios-upload-files[hidden] { display:none; }
.aios-upload-control :focus-visible { outline:2px solid #536b9f; outline-offset:4px; }
.aios-upload-control .aios-upload-demo-note { text-transform:none; letter-spacing:0; font-weight:400; }

/* S08–S10: shared create/edit forms, actions and feedback. */
form.form-panel.single { grid-template-columns:minmax(0,1fr); width:100%; }
.form-shell:has(form), form.form-shell { max-width:none; }
.aios-form { min-width:0; gap:24px; }
.aios-form > .panel { border-radius:0; border-top:2px solid var(--blue,#7f8ec7); padding:28px; }
.aios-form > .panel > h2 { color:var(--indigo,#26304a); font-size:24px; letter-spacing:-.025em; text-transform:none; margin:0 0 24px; }
.aios-form .form-grid { gap:22px 28px; margin-bottom:24px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.aios-form .form-grid > * { min-width:0; }
.aios-form label { color:var(--muted,#666b7b); line-height:1.5; margin-bottom:18px; }
.aios-form .form-grid label { margin-bottom:0; gap:8px; }
.aios-form :is(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),select,textarea) { border-radius:0; background:var(--paper,#fbf8f2); color:var(--text,#1b2029); border:1px solid var(--line,#d9d3cb); font-size:14px; font-weight:500; letter-spacing:0; text-transform:none; padding:12px 14px; min-height:44px; }
.aios-form textarea { line-height:1.6; min-height:112px; }
.aios-form :is(input,select,textarea):focus-visible { outline:2px solid var(--blue,#7f8ec7); outline-offset:2px; }
.aios-form [aria-invalid=true] { border-color:var(--red,#b86d6c); }
.aios-form :is(small,.field-help,.help-text) { display:block; margin-top:8px; font-size:13px; line-height:1.5; font-weight:400; letter-spacing:0; text-transform:none; color:var(--muted,#666b7b); }
.aios-form-actions { grid-column:1/-1; display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; border:0; background:transparent; padding:0; margin-top:18px; }
.aios-form-actions :is(button,a) { display:inline-flex; align-items:center; justify-content:center; min-height:44px; margin:0; padding:11px 18px; border-radius:0; font:600 14px/1.4 var(--font-ui); letter-spacing:0; text-transform:none; box-sizing:border-box; }
.aios-form-feedback { grid-column:1/-1; border-left:3px solid var(--blue,#7f8ec7); background:#eef2f8; color:var(--indigo,#26304a); padding:14px 18px; margin:0; font-size:14px; line-height:1.5; }
.aios-form-feedback[hidden] { display:none; }
dialog { border-radius:0; border:1px solid var(--line,#d9d3cb); border-top:2px solid var(--blue,#7f8ec7); color:var(--text,#1b2029); background:#fff; padding:28px; max-width:min(640px,calc(100vw - 40px)); }
dialog::backdrop { background:rgba(38,48,74,.42); }
@media(max-width:700px) { .aios-form > .panel { padding:20px; } .aios-form .form-grid { grid-template-columns:minmax(0,1fr); gap:18px; } .aios-form .form-span-2 { grid-column:auto; } .aios-form-actions { padding:0; } }

/* Documents register: compact records and on-demand uploads. */
.document-register-layout { display:block; }
.document-table-wrap { overflow-x:auto; }
.document-register-table { width:100%; border-collapse:collapse; font-size:14px; }
.document-register-table th { background:#edf2fa; text-align:left; color:var(--indigo); padding:14px; font-size:12px; }
.document-register-table td { padding:16px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
.document-register-table td:first-child { width:43%; }
.document-register-table small { display:block; color:var(--muted); font-size:12px; margin-top:6px; }
.document-register-table p { font-size:13px; line-height:1.5; margin:8px 0 0; color:var(--muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.document-name { color:var(--indigo); font-weight:700; text-decoration:none; }
.document-name:hover { text-decoration:underline; }
.document-date,.document-register-table .source-button,.document-register-table .badge { white-space:nowrap; }
.document-status-links { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:18px 0; }
.document-status-links > button { margin-right:auto; }
.document-collection-preview { grid-template-columns:1fr 1fr; align-items:start; }
.document-collection-preview > .panel { min-height:0; }
.document-collection-preview h2 { text-transform:none; letter-spacing:-.02em; font-size:22px; }
.document-collection-icon { border:0; background:transparent; color:var(--indigo); }
.document-collection-icon svg { width:24px; height:24px; }
.document-collection-card { border-left:1px solid var(--line); border-top:2px solid var(--blue); }
.document-collection-card h3 { letter-spacing:-.02em; }
.document-collection-preview .compact-list-item { font-size:14px; padding:14px 0; }
.document-collection-rule { margin-top:18px; }
dialog.document-upload-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(580px,100%); height:100dvh; max-height:100dvh; max-width:100%; box-sizing:border-box; overflow-y:auto; border-top:3px solid var(--blue); padding:28px; }
.document-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); padding-bottom:18px; margin-bottom:20px; }
.document-drawer-head h2 { font-size:24px; letter-spacing:-.025em; text-transform:none; margin:0; }
@media(max-width:800px) { .document-collection-preview { grid-template-columns:1fr; } .document-register-table { min-width:850px; } }
.document-status-links > button { font-size:14px; letter-spacing:0; text-transform:none; min-height:42px; }
.document-register-table th:first-child { width:43%; }

.document-view-toggle { display:flex; align-items:center; gap:8px; }
.document-view-toggle button { min-height:36px; padding:8px 14px; font-size:13px; }
.document-view-toggle button[aria-pressed=true] { color:#fff; background:var(--indigo); }
.document-table-wrap[hidden],.document-gallery[hidden],.document-gallery-card[hidden] { display:none; }
.document-gallery { display:grid; grid-template-columns:repeat(auto-fill,minmax(195px,1fr)); gap:24px; padding:8px 0; }
.document-gallery-card { display:flex; flex-direction:column; align-items:flex-start; gap:10px; text-decoration:none; color:var(--indigo); min-width:0; }
.document-gallery-preview { width:100%; height:245px; background:#eef2f8; border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; position:relative; }
.document-gallery-preview img { position:absolute; width:100%; height:100%; object-fit:contain; background:#fff; }
.document-gallery-fallback { display:flex; flex-direction:column; gap:20px; padding:24px; align-items:center; text-align:center; font-size:14px; }
.document-gallery-fallback > b { font-size:20px; color:var(--blue); }
.has-thumbnail .document-gallery-fallback { visibility:hidden; }
.document-gallery-title { font-size:14px; line-height:1.45; }
.document-gallery-card > small,.document-gallery-fallback small { color:var(--muted); font-size:12px; line-height:1.5; }
.document-gallery-card:hover .document-gallery-preview { border-color:var(--blue); }
.document-gallery-card:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.document-view-toggle button[aria-pressed=false] { background:#fff; color:var(--indigo); border:1px solid var(--line); }
.document-gallery-preview img[hidden] { display:none; }

/* D04: searchable document collections and member selection. */
.collection-browser-card {margin:0;display:flex;flex-direction:column;gap:16px;min-width:0;}
.collection-browser-card>a:first-child {color:inherit;text-decoration:none;flex:1;}
.collection-browser-card h3 {text-transform:none;letter-spacing:-.025em;margin:10px 0;}
.collection-browser-card p {color:var(--muted);font-size:14px;min-height:38px;}
.collection-thumbnail-stack {display:flex;gap:8px;margin:16px 0;min-height:110px;align-items:center;}
.collection-thumbnail-stack img {width:76px;height:110px;object-fit:contain;background:white;border:1px solid #d8dce5;}
.collection-thumbnail-stack img[hidden] {display:none;}
.collection-member-list {max-height:480px;overflow:auto;border:1px solid #d8dce5;}
.aios-form .collection-member {display:flex;align-items:center;gap:16px;padding:16px;border-bottom:1px solid #d8dce5;text-transform:none;letter-spacing:normal;}
.aios-form .collection-member[hidden] {display:none;}
.collection-member small {display:block;margin-top:6px;font-weight:400;color:#666b7b;}
.document-collection-browser>.panel-head h2 {text-transform:none;letter-spacing:-.025em;font-size:22px;}
.document-collection-browser .document-view-toggle>a {display:inline-flex;align-items:center;min-height:42px;box-sizing:border-box;text-transform:none;letter-spacing:normal;font-size:14px;}
.aios-form .collection-member input[type=checkbox] {flex:0 0 18px;width:18px;min-width:18px;height:18px;margin:0;padding:0;}
.aios-form .collection-member>span {flex:1;min-width:0;font-size:14px;}
.collection-editor-panel>.panel-head h2 {font-size:24px;letter-spacing:-.025em;text-transform:none;}
.document-collection-browser .document-view-toggle {align-items:center;}
.document-collection-browser .document-view-toggle>a {margin:0;}

/* Keep collection totals anchored to the same right edge. */
.document-collection-card > strong {grid-column:3;grid-row:1;justify-self:end;text-align:right;font-variant-numeric:tabular-nums;}
.document-collection-card > em {grid-column:1 / -1;grid-row:2;justify-self:end;text-align:right;}
.document-collection-card > .document-collection-icon {grid-column:1;grid-row:1;}
.document-collection-card > div {grid-column:2;grid-row:1;min-width:0;}

.document-gallery-type { position:absolute; top:10px; left:10px; z-index:2; padding:5px 8px; background:var(--indigo); color:#fff; font-size:11px; font-weight:700; letter-spacing:.04em; }

.document-gallery-preview img { opacity:0; }.document-gallery-preview.has-thumbnail img { opacity:1; }

/* Match authorization blockers to the panel's body typography. */
.pilot-authorization-blockers ul { font-size:13px; line-height:1.5; margin:12px 0; padding-left:20px; }
.pilot-authorization-blockers li + li { margin-top:4px; }
