/* Strand design tokens (dna-strand, dc-xib). Generated by `cargo xtask app bundle`. */
:root {
  color-scheme: light;
  --dna-theme: cockpit-light;
  --dna-density: working;
  --dna-bg: #F4F7F8;
  --dna-paper: #FFFFFF;
  --dna-paper-2: #EEF2F4;
  --dna-ink: #17282E;
  --dna-ink-2: #48606A;
  --dna-ink-3: #5B717B;
  --dna-line: #D5DFE3;
  --dna-line-soft: #E4EBEE;
  --dna-chrome: #193F49;
  --dna-chrome-2: #12303A;
  --dna-chrome-ink: #DFEEF2;
  --dna-chrome-ink-2: #8FB3BC;
  --dna-accent: #318995;
  --dna-accent-soft: #E2EEF0;
  --dna-amber: #FFB301;
  --dna-amber-soft: #FFF4DB;
  --dna-green-soft: #E4EFEC;
  --dna-signal-soft: #FFEDDB;
  --dna-red-soft: #F8E1E0;
  --dna-accent-ink: #1B5F6B;
  --dna-value-ink: #2E6E5B;
  --dna-prov-const: #2D6A8A;
  --dna-prov-ext: #A35400;
  --dna-red-ink: #D02A23;
  --dna-radius-chip: 5px;
  --dna-radius-card: 9px;
  --dna-radius-panel: 14px;
  --dna-gap-1: 2px;
  --dna-gap-2: 4px;
  --dna-gap-3: 6px;
  --dna-gap-4: 10px;
  --dna-gap-5: 14px;
  --dna-gap-6: 22px;
  --dna-motion-min: 120ms;
  --dna-motion-max: 160ms;
  --dna-line-height: 1.35;
  --dna-measure: none;
}
@media (prefers-color-scheme: dark) {
:root:not([data-dna-theme]) {
  color-scheme: dark;
  --dna-theme: cockpit-dark;
  --dna-density: working;
  --dna-bg: #0E1A1F;
  --dna-paper: #1A262B;
  --dna-paper-2: #152126;
  --dna-ink: #E2ECEF;
  --dna-ink-2: #9FB4BB;
  --dna-ink-3: #7D97A0;
  --dna-line: #2D3F46;
  --dna-line-soft: #24343B;
  --dna-chrome: #0F2229;
  --dna-chrome-2: #0C1C22;
  --dna-chrome-ink: #DFEEF2;
  --dna-chrome-ink-2: #7FA2AC;
  --dna-accent: #3DB6CF;
  --dna-accent-soft: #224952;
  --dna-amber: #FFB301;
  --dna-amber-soft: #514821;
  --dna-green-soft: #233E3D;
  --dna-signal-soft: #513C21;
  --dna-red-soft: #462729;
  --dna-accent-ink: #4FC0D8;
  --dna-value-ink: #74C7AB;
  --dna-prov-const: #7DB8D8;
  --dna-prov-ext: #F0A35C;
  --dna-red-ink: #E4625C;
  --dna-radius-chip: 5px;
  --dna-radius-card: 9px;
  --dna-radius-panel: 14px;
  --dna-gap-1: 2px;
  --dna-gap-2: 4px;
  --dna-gap-3: 6px;
  --dna-gap-4: 10px;
  --dna-gap-5: 14px;
  --dna-gap-6: 22px;
  --dna-motion-min: 120ms;
  --dna-motion-max: 160ms;
  --dna-line-height: 1.35;
  --dna-measure: none;
}
}
:root[data-dna-theme="cockpit-light"] {
  color-scheme: light;
  --dna-theme: cockpit-light;
  --dna-density: working;
  --dna-bg: #F4F7F8;
  --dna-paper: #FFFFFF;
  --dna-paper-2: #EEF2F4;
  --dna-ink: #17282E;
  --dna-ink-2: #48606A;
  --dna-ink-3: #5B717B;
  --dna-line: #D5DFE3;
  --dna-line-soft: #E4EBEE;
  --dna-chrome: #193F49;
  --dna-chrome-2: #12303A;
  --dna-chrome-ink: #DFEEF2;
  --dna-chrome-ink-2: #8FB3BC;
  --dna-accent: #318995;
  --dna-accent-soft: #E2EEF0;
  --dna-amber: #FFB301;
  --dna-amber-soft: #FFF4DB;
  --dna-green-soft: #E4EFEC;
  --dna-signal-soft: #FFEDDB;
  --dna-red-soft: #F8E1E0;
  --dna-accent-ink: #1B5F6B;
  --dna-value-ink: #2E6E5B;
  --dna-prov-const: #2D6A8A;
  --dna-prov-ext: #A35400;
  --dna-red-ink: #D02A23;
  --dna-radius-chip: 5px;
  --dna-radius-card: 9px;
  --dna-radius-panel: 14px;
  --dna-gap-1: 2px;
  --dna-gap-2: 4px;
  --dna-gap-3: 6px;
  --dna-gap-4: 10px;
  --dna-gap-5: 14px;
  --dna-gap-6: 22px;
  --dna-motion-min: 120ms;
  --dna-motion-max: 160ms;
  --dna-line-height: 1.35;
  --dna-measure: none;
}
:root[data-dna-theme="cockpit-dark"] {
  color-scheme: dark;
  --dna-theme: cockpit-dark;
  --dna-density: working;
  --dna-bg: #0E1A1F;
  --dna-paper: #1A262B;
  --dna-paper-2: #152126;
  --dna-ink: #E2ECEF;
  --dna-ink-2: #9FB4BB;
  --dna-ink-3: #7D97A0;
  --dna-line: #2D3F46;
  --dna-line-soft: #24343B;
  --dna-chrome: #0F2229;
  --dna-chrome-2: #0C1C22;
  --dna-chrome-ink: #DFEEF2;
  --dna-chrome-ink-2: #7FA2AC;
  --dna-accent: #3DB6CF;
  --dna-accent-soft: #224952;
  --dna-amber: #FFB301;
  --dna-amber-soft: #514821;
  --dna-green-soft: #233E3D;
  --dna-signal-soft: #513C21;
  --dna-red-soft: #462729;
  --dna-accent-ink: #4FC0D8;
  --dna-value-ink: #74C7AB;
  --dna-prov-const: #7DB8D8;
  --dna-prov-ext: #F0A35C;
  --dna-red-ink: #E4625C;
  --dna-radius-chip: 5px;
  --dna-radius-card: 9px;
  --dna-radius-panel: 14px;
  --dna-gap-1: 2px;
  --dna-gap-2: 4px;
  --dna-gap-3: 6px;
  --dna-gap-4: 10px;
  --dna-gap-5: 14px;
  --dna-gap-6: 22px;
  --dna-motion-min: 120ms;
  --dna-motion-max: 160ms;
  --dna-line-height: 1.35;
  --dna-measure: none;
}
:root[data-dna-theme="high-contrast"] {
  color-scheme: light;
  --dna-theme: high-contrast;
  --dna-density: working;
  --dna-bg: #F2F5F6;
  --dna-paper: #FFFFFF;
  --dna-paper-2: #E7ECEE;
  --dna-ink: #17282E;
  --dna-ink-2: #3C5059;
  --dna-ink-3: #405056;
  --dna-line: #B9C4C8;
  --dna-line-soft: #D6DEE1;
  --dna-chrome: #0A171C;
  --dna-chrome-2: #050D10;
  --dna-chrome-ink: #DFEEF2;
  --dna-chrome-ink-2: #8FB3BC;
  --dna-accent: #318995;
  --dna-accent-soft: #E2EEF0;
  --dna-amber: #FFB301;
  --dna-amber-soft: #FFF4DB;
  --dna-green-soft: #E4EFEC;
  --dna-signal-soft: #FFEDDB;
  --dna-red-soft: #F8E1E0;
  --dna-accent-ink: #18545F;
  --dna-value-ink: #245647;
  --dna-prov-const: #23526B;
  --dna-prov-ext: #783E00;
  --dna-red-ink: #961E19;
  --dna-radius-chip: 5px;
  --dna-radius-card: 9px;
  --dna-radius-panel: 14px;
  --dna-gap-1: 2px;
  --dna-gap-2: 4px;
  --dna-gap-3: 6px;
  --dna-gap-4: 10px;
  --dna-gap-5: 14px;
  --dna-gap-6: 22px;
  --dna-motion-min: 120ms;
  --dna-motion-max: 160ms;
  --dna-line-height: 1.35;
  --dna-measure: none;
}
/* formula-field.css: moved from apps/dna-onecalc/src/formula_field.rs (FORMULA_FIELD_CSS), dc-xib. */
.oc-editor{position:relative;font:15px/1.5 ui-monospace,"Cascadia Mono",Consolas,monospace;border:1px solid var(--dna-ink-3);border-radius:6px;background:var(--dna-paper);min-height:3em}
.oc-editor pre,.oc-editor textarea{margin:0;padding:8px 10px;white-space:pre-wrap;word-break:break-all;font:inherit;letter-spacing:normal;tab-size:4;box-sizing:border-box;width:100%;min-height:3em;border:0}
.oc-editor pre{position:absolute;inset:0;pointer-events:none;color:var(--dna-ink);overflow:hidden}
.oc-editor textarea{position:relative;display:block;resize:vertical;background:transparent;color:transparent;caret-color:var(--dna-ink);outline:none}
.oc-editor:focus-within{border-color:var(--dna-accent);box-shadow:0 0 0 2px var(--dna-accent-soft)}
.oc-r-function{color:var(--dna-accent-ink);font-weight:600}.oc-r-name{color:var(--dna-accent-ink)}.oc-r-number{color:var(--dna-value-ink)}
.oc-r-text{color:var(--dna-prov-const)}.oc-r-error{color:var(--dna-red-ink);font-weight:600}.oc-r-operator{color:var(--dna-prov-ext)}
.oc-r-delimiter{color:var(--dna-ink-3)}.oc-r-unknown{color:var(--dna-red-ink);text-decoration:underline wavy}
.oc-diag{text-decoration:underline wavy var(--dna-red-ink);text-decoration-skip-ink:none}
.oc-bracket{background:var(--dna-accent-soft);outline:1px solid var(--dna-accent);border-radius:2px}
.oc-pop{list-style:none;margin:4px 0 0;padding:2px;border:1px solid var(--dna-ink-3);border-radius:6px;max-height:220px;overflow:auto;background:var(--dna-paper);font:13px ui-monospace,Consolas,monospace;box-shadow:0 4px 12px #0002}
.oc-pop li{padding:2px 8px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}
.oc-pop li.oc-sel{background:var(--dna-accent-ink);color:var(--dna-paper)}
.oc-pop li small{opacity:.75}
.oc-sig{margin:6px 0;font:13px ui-monospace,Consolas,monospace;background:var(--dna-paper-2);border:1px solid var(--dna-line);border-radius:6px;padding:4px 8px}
.oc-sig strong{color:var(--dna-accent);text-decoration:underline}
.oc-help{border:1px solid var(--dna-line);border-radius:6px;padding:8px 10px;margin:8px 0;background:var(--dna-paper-2);font-size:13px}
.oc-help h3{margin:0 0 4px;font:600 14px ui-monospace,Consolas,monospace}
.oc-help code{font-size:13px}
.oc-help p{margin:4px 0}
.oc-help .oc-help-source{margin:0 0 4px;font-size:11px;color:var(--dna-ink-3)}
.oc-help .oc-help-source a{color:var(--dna-accent-ink)}
/* shell.css: moved from apps/dna-calc/src/app.rs (APP_CSS), dc-xib. */
/* The page (moved from web/index.html). */
html, body { margin: 0; height: 100%; background: var(--dna-paper); color: var(--dna-ink); }
#dnacalc-loading { font-family: system-ui, sans-serif; color: var(--dna-ink-3); padding: 16px; }
html,body{height:100%}
.dc-app{display:flex;flex-direction:column;height:100vh;font:13px system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--dna-ink);background:var(--dna-paper)}
.dc-mast{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:6px 10px;background:var(--dna-chrome);color:var(--dna-chrome-ink)}
.dc-mast strong{font-size:15px;margin-right:8px}
.dc-mast button,.dc-mast select,.dc-mast label.dc-open{font:12px system-ui,sans-serif;border:1px solid var(--dna-chrome-ink-2);background:var(--dna-chrome-2);color:var(--dna-chrome-ink);border-radius:4px;padding:3px 8px;cursor:pointer}
.dc-mast select option{color:var(--dna-ink);background:var(--dna-paper)}
.dc-mast .dc-doc{font-weight:600}
.dc-mast .dc-skins{margin-left:auto;display:flex;gap:4px}
.dc-mast .dc-skins button[aria-pressed=true]{background:var(--dna-chrome-ink);color:var(--dna-chrome)}
.dc-bar{display:flex;gap:8px;align-items:flex-start;padding:6px 10px;border-bottom:1px solid var(--dna-line);background:var(--dna-paper-2)}
.dc-namebox{width:calc(11ch + 14px);flex:0 0 auto;font:13px ui-monospace,Consolas,monospace;border:1px solid var(--dna-ink-3);border-radius:4px;padding:6px}
.dc-fx{flex:1 1 auto;min-width:0}
.dc-fx .oc-editor,.dc-fx .oc-editor pre,.dc-fx .oc-editor textarea{min-height:2.2em}
.dc-fx .oc-editor pre,.dc-fx .oc-editor textarea{padding:4px 8px}
.dc-main{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.dc-edit-tools{display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;flex:0 0 auto;padding:2px 10px;color:var(--dna-ink-2);background:var(--dna-paper-2);font-size:12px}
.dc-edit-tools button{border:1px solid var(--dna-line);border-radius:4px;padding:3px 8px;background:var(--dna-paper);color:var(--dna-ink);cursor:pointer}
.dc-tabs{display:flex;gap:2px;padding:0 10px;border-top:1px solid var(--dna-line);background:var(--dna-paper-2);overflow-x:auto}
.dc-tabs button{border:1px solid var(--dna-line);border-top:0;background:var(--dna-line-soft);padding:3px 12px;font:12px system-ui,sans-serif;cursor:pointer}
.dc-tabs button[aria-selected=true]{background:var(--dna-paper);color:var(--dna-accent-ink);font-weight:600;box-shadow:inset 0 2px 0 var(--dna-amber)}
.dc-status{display:flex;gap:16px;padding:3px 10px;border-top:1px solid var(--dna-line);background:var(--dna-paper-2);font-size:12px;color:var(--dna-ink-2);white-space:nowrap;overflow:hidden}
.dc-status [data-refused=true]{color:var(--dna-red-ink)}
.dc-gridbar{display:flex;gap:12px;align-items:center;padding:2px 10px;font-size:12px;color:var(--dna-ink-3)}
.dc-zoom{margin-left:auto}
.dc-unavailable{padding:24px;color:var(--dna-red-ink)}
/* Narrow screens and touch (dc-xib): the mast and the bars wrap; touch targets grow. */
.dc-app{height:100dvh}
@media (max-width:700px){
.dc-mast{gap:6px;padding:6px 8px}
.dc-mast .dc-skins{margin-left:0;flex-wrap:wrap}
.dc-bar{flex-wrap:wrap;padding:6px 8px}
.dc-namebox{width:calc(11ch + 14px);flex:0 0 auto}
.dc-status{flex-wrap:wrap;white-space:normal;gap:2px 12px}
}
@media (pointer:coarse){
.dc-mast button,.dc-mast select,.dc-mast label.dc-open,.dc-tabs button,.dc-gridbar button{min-height:36px;min-width:36px}
}
/* Shared workbook feedback and compact commands (dc-971p.3). */
.dc-mast,.dc-bar,.dc-tabs,.dc-status{flex-shrink:0}
.dc-mast{position:relative;gap:6px}
.dc-doc{max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dc-mast button,.dc-mast select,.dc-settings>summary{min-height:30px;box-sizing:border-box}
.dc-mast button:disabled{opacity:.5;cursor:default}
.dc-settings{margin-left:auto}
.dc-settings>summary{cursor:pointer;padding:6px 8px;border:1px solid var(--dna-chrome-ink-2);border-radius:4px;white-space:nowrap}
.dc-settings-body{position:absolute;right:8px;top:calc(100% - 1px);width:min(420px,calc(100vw - 32px));max-height:65dvh;overflow:auto;box-sizing:border-box;z-index:20;padding:16px;border:1px solid var(--dna-line);border-radius:0 0 8px 8px;background:var(--dna-paper);color:var(--dna-ink);box-shadow:0 6px 20px #0003}
.dc-settings-body h2{font-size:14px;margin:12px 0 8px}
.dc-settings-body h2:first-child{margin-top:0}
.dc-settings-body p{overflow-wrap:anywhere;line-height:1.45}
.dc-settings-body input{max-width:100px;color:var(--dna-ink);background:var(--dna-paper);border:1px solid var(--dna-ink-3);padding:6px}
.dc-settings-body select{color:var(--dna-ink);background:var(--dna-paper)}
.dc-settings-body .dc-iterate{display:block;margin:12px 0}
.dc-mast .dc-skins{flex:1 0 100%;margin:0;overflow:auto;gap:4px;padding-bottom:2px}
.dc-skins button{flex:1 0 auto}
.dc-result{flex:0 0 auto;border-bottom:1px solid var(--dna-line);background:var(--dna-paper)}
.dc-result>summary{display:flex;gap:10px;align-items:center;padding:5px 10px;cursor:pointer;min-height:24px;list-style:none;overflow:hidden}
.dc-result>summary::before{content:'▸';color:var(--dna-ink-2)}
.dc-result[open]>summary::before{content:'▾'}
.dc-result-state{font-size:11px;font-weight:700;border:1px solid var(--dna-ink-3);border-radius:4px;padding:3px 6px;white-space:nowrap;color:var(--dna-ink);background:var(--dna-paper-2)}
.dc-result-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dna-ink-2)}
.dc-result-body{padding:0 12px 10px 30px;max-height:140px;overflow:auto;line-height:1.4}
.dc-result-body p{margin:5px 0;overflow-wrap:anywhere}
.dc-result-body button,.dc-replace button{font:inherit;padding:7px 10px;border:1px solid var(--dna-ink-3);border-radius:4px;color:var(--dna-ink);background:var(--dna-paper-2);cursor:pointer}
.dc-status{min-height:22px;gap:6px 16px;flex-wrap:wrap;white-space:normal;max-height:72px;overflow:auto;line-height:1.5}
.dc-status [data-dnacalc=feedback]{overflow-wrap:anywhere}
.dc-tabs{min-height:28px}
.dc-tabs button{white-space:nowrap;color:var(--dna-ink);flex-shrink:0}
.dc-gridbar{flex-shrink:0;flex-wrap:wrap;gap:6px;padding:4px 10px}
.dc-main{overflow:auto}
.dc-mono{font-family:ui-monospace,Consolas,monospace}
.dc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.dc-replace{max-width:min(430px,calc(100vw - 48px));padding:24px;border:1px solid var(--dna-line);border-radius:10px;color:var(--dna-ink);background:var(--dna-paper);box-shadow:0 12px 60px #0005;line-height:1.5}
.dc-replace::backdrop{background:#0006}
.dc-replace h2{font-size:18px;margin:0}
.dc-dialog-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap}
.dc-app :focus-visible{outline:2px solid var(--dna-accent-ink);outline-offset:2px}
@media(max-width:700px){
 .dc-doc{max-width:calc(100vw - 140px)}
 .dc-mast .dc-settings{margin-left:0}
 .dc-mast .dc-skins{flex-wrap:nowrap}
 .dc-result>summary{gap:6px;padding:5px 8px;font-size:12px}
 .dc-result-body{max-height:120px;padding-left:16px}
 .dc-status{font-size:11px}
}
.dc-notebook-drafts{flex:0 0 auto;padding:5px 10px;border-bottom:1px solid var(--dna-line);background:var(--dna-amber-soft);color:var(--dna-ink)}
.dc-notebook-drafts>div{max-height:120px;overflow:auto}
.dc-notebook-drafts summary{cursor:pointer}
.dc-draft-item{padding:8px 0}
.dc-draft-item pre{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0}
.dc-setting-label{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:10px 0}
.dc-status span{overflow-wrap:anywhere}
.dc-mast>button:focus-visible,.dc-mast>select:focus-visible,.dc-skins button:focus-visible,.dc-settings>summary:focus-visible{outline-color:var(--dna-chrome-ink)}
.dc-sheet-strip{display:flex;align-items:center;flex:0 0 auto;min-width:0;border-top:1px solid var(--dna-line);position:relative;background:var(--dna-paper-2)}
.dc-sheet-strip .dc-tabs{flex:1;min-width:0;border:0;overflow-x:auto}
.dc-sheet-tools{flex-shrink:0;padding:4px 8px}
.dc-sheet-tools>summary{cursor:pointer;padding:6px 10px;border:1px solid var(--dna-line);border-radius:4px}
.dc-sheet-body{position:absolute;right:8px;bottom:100%;z-index:25;background:var(--dna-paper);color:var(--dna-ink);border:1px solid var(--dna-line);border-radius:8px;box-shadow:0 6px 24px #0003;padding:16px;width:min(350px,calc(100vw - 48px));max-height:60dvh;overflow:auto}
.dc-sheet-body h2{font-size:16px;margin:0 0 12px}.dc-sheet-body h3{font-size:13px;margin:16px 0 8px}
.dc-sheet-body label{display:flex;flex-direction:column;gap:5px;margin:10px 0 6px;font-size:12px}
.dc-sheet-body input,.dc-sheet-body select{box-sizing:border-box;width:100%;font:inherit;background:var(--dna-paper);color:var(--dna-ink);border:1px solid var(--dna-ink-3);border-radius:4px;padding:7px}
.dc-sheet-body button{font:inherit;color:var(--dna-ink);background:var(--dna-paper-2);border:1px solid var(--dna-line);border-radius:4px;padding:7px;cursor:pointer;min-height:32px}
.dc-sheet-body button:disabled{opacity:.6;cursor:default}.dc-hidden-sheet{display:flex;gap:8px;justify-content:space-between;align-items:center;margin:6px 0;overflow-wrap:anywhere}
@media(max-width:700px){.dc-sheet-body button{min-height:36px}}
/* Workbook rule and review surfaces use the Strand palette and type rhythm. */
.dc-review-dialog{box-sizing:border-box;width:min(960px,calc(100vw - 24px));max-width:none;max-height:calc(100dvh - 24px);overflow:auto;padding:22px}
.dc-review-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid var(--dna-line);padding-bottom:12px}
.dc-review-heading p{margin:4px 0 0;font-family:ui-monospace,monospace;color:var(--dna-ink-2)}
.dc-review-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:28px}
.dc-review-layout section{min-width:0}.dc-review-layout h3{font-size:15px;margin:18px 0 8px}
.dc-review-layout label{display:block;margin:12px 0 5px}.dc-review-layout input:not([type=checkbox]),.dc-review-layout textarea,.dc-review-layout select{box-sizing:border-box;width:100%;margin-top:5px;padding:8px;border:1px solid var(--dna-ink-3);border-radius:4px;color:var(--dna-ink);background:var(--dna-paper);font:inherit}
.dc-review-layout textarea{min-height:66px;font:13px ui-monospace,monospace}.dc-review-layout fieldset{border:1px solid var(--dna-line);border-radius:6px;margin:18px 0;padding:10px 14px 14px}
.dc-review-layout .dc-inline-label{display:flex;align-items:center;gap:8px}.dc-review-layout .dc-inline-label input{margin:0}
.dc-rule-list{list-style:none;padding:0;margin:12px 0;max-height:250px;overflow:auto;border:1px solid var(--dna-line);border-radius:6px}
.dc-rule-list:empty{border:0}.dc-rule-list li+li{border-top:1px solid var(--dna-line)}.dc-rule-list .dc-rule-row{width:100%;display:grid;gap:4px;text-align:left;border:0;border-radius:0;padding:10px 12px;background:var(--dna-paper)}
.dc-rule-row[aria-pressed=true]{box-shadow:inset 3px 0 var(--dna-accent-ink);background:var(--dna-accent-soft)}.dc-rule-row span{font-family:ui-monospace,monospace}.dc-rule-row small{font-size:12px;color:var(--dna-ink-2)}
.dc-review-note,.dc-review-link{overflow-wrap:anywhere;margin:12px 0;padding:12px;background:var(--dna-paper-2);border:1px solid var(--dna-line);border-radius:6px}.dc-review-note h4{margin:0 0 6px;font-size:13px}.dc-review-note p{white-space:pre-wrap;margin:0}.dc-review-link small{display:block;color:var(--dna-ink-2);margin-top:5px}.dc-review-link a{color:var(--dna-accent-ink);text-decoration:underline}.dc-review-status{margin:16px 0 0;border-top:1px solid var(--dna-line);padding-top:12px;overflow-wrap:anywhere}.dc-muted{color:var(--dna-ink-2);font-size:12px}
@media(max-width:650px){.dc-review-dialog{padding:16px}.dc-review-layout{grid-template-columns:minmax(0,1fr);gap:8px}.dc-rule-list{max-height:200px}.dc-review-layout button{min-height:36px}}

/* Workbook search, local commands and current-value summaries (dc-971p.9). */
.dc-find-dialog{width:680px;max-width:min(680px,calc(100vw - 40px));max-height:calc(100dvh - 48px);overflow:auto;box-sizing:border-box;padding:20px}
.dc-find-dialog label{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-weight:600;min-width:0}
.dc-find-dialog input:not([type=checkbox]),.dc-find-dialog select{box-sizing:border-box;min-width:0;max-width:100%;padding:7px;border:1px solid var(--dna-ink-3);border-radius:4px;background:var(--dna-paper);color:var(--dna-ink);font:inherit}
.dc-find-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.dc-find-toggles{display:flex;flex-wrap:wrap;gap:4px 16px}
.dc-find-toggles label{display:flex;flex-direction:row;align-items:center;font-weight:400}
.dc-find-results{list-style:none;padding:0;margin:12px 0;max-height:250px;overflow:auto;border-top:1px solid var(--dna-line)}
.dc-find-results li{border-bottom:1px solid var(--dna-line)}
.dc-find-hit{display:grid;grid-template-columns:100px 1fr;text-align:left;gap:4px;width:100%;border:0!important;border-radius:0!important;background:var(--dna-paper)!important}
.dc-find-hit[aria-pressed=true]{box-shadow:inset 3px 0 var(--dna-accent-ink);background:var(--dna-paper-2)!important}
.dc-find-hit code,.dc-find-hit span{overflow-wrap:anywhere;white-space:pre-wrap;min-width:0}
.dc-find-hit span{grid-column:1/-1;color:var(--dna-ink-2);font-size:12px}
.dc-find-hit:disabled{opacity:.6;cursor:default}
.dc-context-menu{position:fixed;inset:auto;margin:0;width:244px;max-height:calc(100dvh - 16px);overflow:auto;box-sizing:border-box;padding:10px}
.dc-context-menu[open]{display:flex;flex-direction:column;gap:4px}
.dc-context-menu>strong{padding:4px 6px}
.dc-context-menu button{text-align:left;min-height:30px;padding:5px 8px;border-color:transparent;background:var(--dna-paper)}
.dc-context-menu button:hover,.dc-context-menu button:focus-visible{background:var(--dna-paper-2)}
.dc-context-menu button:disabled{opacity:.55;cursor:default}
.dc-context-menu small{padding:5px 6px;color:var(--dna-ink-2);overflow-wrap:anywhere}
.dc-selection-summary{flex:0 0 auto;font-size:12px;border-top:1px solid var(--dna-line);background:var(--dna-paper-2)}
.dc-selection-summary>summary{padding:5px 10px;cursor:pointer;color:var(--dna-ink-2);overflow-wrap:anywhere;min-height:20px}
.dc-selection-summary-body{max-height:180px;overflow:auto;padding:0 12px 8px;line-height:1.4}
.dc-selection-summary-body dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px 12px;margin:6px 0}
.dc-selection-summary-body dt{color:var(--dna-ink-2)}
.dc-selection-summary-body dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600;overflow-wrap:anywhere}
.dc-selection-summary-body p{margin:6px 0}
@media(max-width:700px){.dc-find-dialog{padding:14px}.dc-find-options{grid-template-columns:1fr;gap:0}.dc-find-hit{grid-template-columns:80px 1fr}.dc-selection-summary-body dl{grid-template-columns:1fr 1fr}}
/* grid.css: moved from apps/dna-calc/src/grid/mod.rs (GRID_CSS), dc-xib. */
.dc-grid{position:relative;overflow:auto;flex:1 1 auto;min-height:200px;outline:none;background:var(--dna-paper);border-top:1px solid var(--dna-line)}
.dc-grid:focus{box-shadow:inset 0 0 0 1px var(--dna-accent)}
.dc-layer{position:sticky;top:0;left:0;overflow:hidden;font:13px/1 system-ui,"Segoe UI",sans-serif;color:var(--dna-ink)}
.dc-line{position:absolute;background:var(--dna-line-soft)}
.dc-cell[data-format=unshowable]{justify-content:flex-start}
.dc-cell{position:absolute;box-sizing:border-box;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:clip;display:flex;align-items:flex-end}
.dc-cell[data-kind=number]{justify-content:flex-end}
.dc-cell[data-kind=logical],.dc-cell[data-kind=error]{justify-content:center}
.dc-cell[data-kind=error]{color:var(--dna-red-ink)}
.dc-cell .dc-icon{display:inline-flex;padding-right:4px}
.dc-cell[data-provenance=refused]{color:var(--dna-red-ink);background:repeating-linear-gradient(135deg,var(--dna-red-soft) 0 6px,var(--dna-paper) 6px 12px);font-style:italic;justify-content:center}
.dc-cell[data-provenance=file-cache]{color:var(--dna-ink-3);font-style:italic}
.dc-cell[data-provenance=stale]{color:var(--dna-prov-ext);background:var(--dna-amber-soft)}
.dc-head{position:absolute;box-sizing:border-box;background:var(--dna-paper-2);color:var(--dna-ink-3);border-right:1px solid var(--dna-line);border-bottom:1px solid var(--dna-line);display:flex;align-items:center;justify-content:center;font-size:12px}
.dc-head.dc-on{background:var(--dna-accent-soft);color:var(--dna-accent-ink);font-weight:600}
.dc-corner{position:absolute;left:0;top:0;background:var(--dna-line-soft);border-right:1px solid var(--dna-line);border-bottom:1px solid var(--dna-line);box-sizing:border-box}
.dc-selection{position:absolute;box-sizing:border-box;background:rgb(255 179 1 / 0.16);border:1px solid var(--dna-amber);pointer-events:none}
.dc-active{position:absolute;box-sizing:border-box;border:2px solid var(--dna-amber);pointer-events:none}
.dc-copy-outline,.dc-fill-preview{position:absolute;box-sizing:border-box;border:2px dashed var(--dna-accent);pointer-events:none}
.dc-copy-outline[data-cut=true]{border-color:var(--dna-red-ink)}
.dc-fill-preview{background:var(--dna-accent-soft)}
.dc-fill-handle{position:absolute;width:13px;height:13px;min-width:0;min-height:0;padding:0;border:2px solid var(--dna-paper);background:var(--dna-accent);cursor:crosshair;z-index:2}
.dc-clipboard-tools{padding:var(--dna-gap-2) var(--dna-gap-4);background:var(--dna-paper-2);border-top:1px solid var(--dna-line);font-size:12px;flex:none}
.dc-clipboard-tools summary{cursor:pointer;width:fit-content}
.dc-command-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--dna-gap-3);padding:var(--dna-gap-3) 0}
.dc-command-row label{display:flex;align-items:center;gap:var(--dna-gap-2);max-width:100%}
.dc-command-row select{min-width:0;max-width:100%}
.dc-command-row :is(button,input,select),.dc-clipboard-dialog button,.dc-gridbar :is(button,input){box-sizing:border-box;min-height:28px;padding:var(--dna-gap-2) var(--dna-gap-3);font:inherit;color:var(--dna-ink);background:var(--dna-paper);border:1px solid var(--dna-ink-3);border-radius:var(--dna-radius-chip)}
.dc-command-row button:hover,.dc-clipboard-dialog button:hover{background:var(--dna-accent-soft);border-color:var(--dna-accent)}
.dc-command-row :focus-visible,.dc-clipboard-dialog :focus-visible{outline:2px solid var(--dna-amber);outline-offset:2px}
.dc-command-row :disabled{opacity:.55;cursor:default}
.dc-clipboard-dialog [data-dnacalc=paste-confirm]{background:var(--dna-accent-soft);border-color:var(--dna-accent);color:var(--dna-accent-ink)}
.dc-clipboard-dialog{background:var(--dna-paper);color:var(--dna-ink);border:1px solid var(--dna-line);border-radius:var(--dna-radius-card);padding:var(--dna-gap-5);max-width:min(580px,calc(100vw - 36px));max-height:85vh;overflow:auto}
.dc-clipboard-dialog::backdrop{background:rgb(0 0 0 / .38)}
.dc-clipboard-dialog textarea{display:block;box-sizing:border-box;width:100%;min-height:150px;margin:var(--dna-gap-4) 0;background:var(--dna-paper);color:var(--dna-ink);font:13px/1.5 monospace}
.dc-clipboard-dialog button{margin:var(--dna-gap-2)}
.dc-dropdown{position:absolute;box-sizing:border-box;width:17px;border:1px solid var(--dna-ink-3);background:var(--dna-paper-2);font-size:9px;line-height:1;padding:0;cursor:pointer;z-index:2;color:var(--dna-ink)}
.dc-list{list-style:none;margin:0;padding:0;position:absolute;box-sizing:border-box;min-width:80px;max-height:160px;overflow:auto;border:1px solid var(--dna-ink-3);background:var(--dna-paper);z-index:3;box-shadow:0 2px 6px #0003}
.dc-list li{padding:1px 6px;white-space:nowrap;cursor:default}
.dc-list li:hover{background:var(--dna-accent-soft)}
.dc-prompt{position:absolute;box-sizing:border-box;max-width:220px;border:1px solid var(--dna-ink-3);background:var(--dna-amber-soft);padding:3px 6px;font-size:12px;z-index:2;pointer-events:none;white-space:normal}
.dc-prompt b{display:block}
.dc-chart{position:absolute;box-sizing:border-box;pointer-events:none;z-index:1}
.dc-chart svg{display:block}
.dc-cell-editor{position:absolute;box-sizing:border-box;color:var(--dna-ink);margin:0;background:var(--dna-paper);z-index:4;min-width:200px}
.dc-cell-editor .oc-editor{border:2px solid var(--dna-amber);border-radius:0;font:13px/20px ui-monospace,Consolas,monospace;min-height:20px}
.dc-cell-editor .oc-editor pre,.dc-cell-editor .oc-editor textarea{padding:0 3px;min-height:20px;resize:none;white-space:pre}
.dc-cell-editor .oc-pop,.dc-cell-editor .oc-sig{min-width:250px;max-width:min(360px,70vw)}
.dc-reference{position:absolute;box-sizing:border-box;border:2px dashed var(--dna-accent);background:var(--dna-accent-soft);opacity:.65;pointer-events:none;z-index:1}
.dc-grid-skin{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.dc-space{position:relative}
.dc-layer{background:var(--dna-paper)}
/* Touch: a tap selects and a double tap edits (no double-tap zoom); panning scrolls the grid. */
.dc-grid{touch-action:manipulation}
@media (pointer:coarse){.dc-dropdown{width:28px}.dc-list li{padding:8px 10px}}
.dc-grid{min-height:0}
.dc-gridbar .dc-note{flex:1 1 100px;overflow-wrap:anywhere}

.dc-freeze-line{position:absolute;background:var(--dna-accent);pointer-events:none;z-index:1}
.dc-zoom{display:inline-flex;align-items:center;gap:var(--dna-gap-2)}
.dc-zoom input{width:5ch;text-align:right}
.dc-zoom label{display:inline-flex;align-items:center;gap:var(--dna-gap-2)}

.dc-axis-size{width:9ch;max-width:100%}

.dc-resize-preview{position:absolute;background:var(--dna-accent);pointer-events:none;z-index:5}.dc-resize-preview span{position:absolute;left:4px;top:4px;white-space:nowrap;padding:var(--dna-gap-2);background:var(--dna-paper-2);color:var(--dna-ink);border:1px solid var(--dna-accent);font:12px ui-monospace,monospace}

.dc-fit-measure{position:absolute;left:0;top:0;visibility:hidden;white-space:nowrap;display:inline-block;line-height:1;padding:0;border:0;pointer-events:none}
.dc-structure-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dc-structure-choices button{font:inherit;padding:10px;border:1px solid var(--dna-line);border-radius:4px;background:var(--dna-paper-2);color:var(--dna-ink);cursor:pointer}
.dc-list li[aria-selected=true]{background:var(--dna-accent-soft);box-shadow:inset 3px 0 var(--dna-accent-ink)}
.dc-list:focus-visible{outline:2px solid var(--dna-accent-ink);outline-offset:2px}
.dc-review-marker{position:absolute;z-index:2;width:14px;height:14px;line-height:12px;padding:0;border:0;border-radius:0 0 0 7px;background:var(--dna-accent-soft);color:var(--dna-accent-ink);font-size:18px;cursor:pointer}
.dc-review-marker:focus-visible{outline:2px solid var(--dna-accent-ink);outline-offset:1px}

.dc-grid-workspace{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;min-width:0}
.dc-grid-workspace.dc-split{display:grid;gap:var(--dna-gap-2);overflow:auto;align-content:stretch}
.dc-split .dc-grid-skin{display:contents}
.dc-split .dc-grid{min-width:0;min-height:80px;border:1px solid var(--dna-line)}
.dc-split .dc-grid[data-grid-active=true]{border-color:var(--dna-accent)}
.dc-split :is(.dc-clipboard-tools,.dc-gridbar){grid-column:1/-1}
/* notebook.css: moved from apps/dna-calc/src/notebook.rs (NOTEBOOK_CSS), dc-xib. */
.dc-notebook{overflow:auto;flex:1 1 auto;padding:12px 16px;background:var(--dna-paper-2);font:13px system-ui,"Segoe UI",sans-serif}
.dc-nb-pager{display:flex;gap:8px;align-items:center;margin:0 0 10px}
.dc-block{background:var(--dna-paper);border:1px solid var(--dna-line);border-radius:6px;padding:8px 10px;margin:0 0 8px;max-width:900px}
.dc-block header{display:flex;gap:10px;align-items:baseline;color:var(--dna-ink-3);font-size:12px}
.dc-block header strong{color:var(--dna-ink);font:600 13px ui-monospace,Consolas,monospace}
.dc-block input{width:100%;box-sizing:border-box;font:13px ui-monospace,Consolas,monospace;border:1px solid var(--dna-line);border-radius:4px;padding:3px 6px;margin:6px 0}
.dc-block .dc-value{font:600 14px ui-monospace,Consolas,monospace}
.dc-chip{display:inline-block;font-size:11px;border-radius:10px;padding:1px 8px;background:var(--dna-line-soft);color:var(--dna-ink-2)}
.dc-chip[data-provenance=calculated]{background:var(--dna-green-soft);color:var(--dna-value-ink)}
.dc-chip[data-provenance=refused]{background:var(--dna-red-soft);color:var(--dna-red-ink)}
.dc-chip[data-provenance=file-cache]{background:var(--dna-line-soft);color:var(--dna-ink-3)}
.dc-chip[data-provenance=stale]{background:var(--dna-amber-soft);color:var(--dna-prov-ext)}
.dc-why{color:var(--dna-ink-3);font-size:12px;margin:4px 0 0}
.dc-nb-tools{display:flex;align-items:start;gap:8px;flex-wrap:wrap;margin-bottom:10px;max-width:920px}
.dc-nb-tools label{display:flex;gap:6px;align-items:center}
.dc-notebook button,.dc-nb-tools input,.dc-nb-tools select,.dc-nb-tools textarea{font:inherit;color:var(--dna-ink);background:var(--dna-paper);border:1px solid var(--dna-line);border-radius:4px;padding:5px 8px}
.dc-notebook button{cursor:pointer}
.dc-notebook button:disabled{cursor:default;opacity:.5}
.dc-notebook button:focus-visible{outline:2px solid var(--dna-accent);outline-offset:2px}
.dc-nb-tools details{flex-basis:100%}
.dc-nb-tools details[open]{padding:8px;border:1px solid var(--dna-line);border-radius:4px}
.dc-nb-tools details label{margin:8px 0}
.dc-nb-tools textarea{width:min(100%,540px)}
.dc-nb-caption{color:var(--dna-ink-3);max-width:900px}
.dc-block[data-selected=true]{border-color:var(--dna-accent)}
.dc-block header{flex-wrap:wrap;gap:8px}
.dc-block header button{font:600 13px ui-monospace,Consolas,monospace}
.dc-block-editor{margin:8px 0}
.dc-block-editor .oc-editor{min-height:30px}
.dc-block-editor textarea{font:13px ui-monospace,Consolas,monospace}
.dc-block-source{display:block;margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--dna-ink-2)}
.dc-block .dc-value{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0}
.dc-block-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.dc-block-detail{border-top:1px solid var(--dna-line);margin-top:8px;padding-top:4px;color:var(--dna-ink-2);overflow-wrap:anywhere}
.dc-array-preview{display:flex;gap:8px;flex-wrap:wrap;font:12px ui-monospace,Consolas,monospace;margin:8px 0}
@media(max-width:600px){.dc-notebook{padding:10px 8px}.dc-nb-tools label{flex-wrap:wrap}.dc-nb-tools input{max-width:185px}.dc-block{padding:8px}.dc-block-actions button{min-height:34px}.dc-nb-caption{font-size:12px}}

.dc-nb-guide{max-width:900px;margin:0 0 10px;color:var(--dna-ink-2);font-size:12px}.dc-nb-guide summary{cursor:pointer}.dc-nb-guide p{margin:6px 0 0}
.dc-block[data-block-kind=prose][data-provenance=literal][data-selected=true] .dc-value{display:none}
/* atlas.css: moved from apps/dna-calc/src/atlas.rs (ATLAS_CSS), dc-xib. */
.dc-atlas{overflow:auto;flex:1 1 auto;padding:12px 16px;font:13px system-ui,"Segoe UI",sans-serif}
.dc-atlas h2{font-size:14px;margin:12px 0 6px;color:var(--dna-ink-2)}
.dc-atlas table{border-collapse:collapse}
.dc-atlas td,.dc-atlas th{border:1px solid var(--dna-line);padding:3px 8px;text-align:right}
.dc-atlas td:first-child,.dc-atlas th:first-child{text-align:left}
.dc-atlas .dc-refusals li{margin:2px 0}

/* dc-971p.11: actionable counts, deliberate narrow scrolling and local recovery links. */
.dc-atlas{min-width:0;overflow-x:hidden;padding:18px;line-height:1.5}
.dc-atlas h2{font-size:16px;margin:18px 0 8px}.dc-atlas>h2:first-child{margin-top:0}
.dc-atlas [data-dnacalc=atlas-totals]{font-size:15px;font-weight:600;overflow-wrap:anywhere}
.dc-atlas-agreement{padding:10px 12px;border-left:3px solid var(--dna-accent-ink);background:var(--dna-paper-2);max-width:760px}
.dc-atlas-table{overflow:auto;max-width:100%;border:1px solid var(--dna-line);border-radius:6px}
.dc-atlas table{width:100%;min-width:790px}.dc-atlas th{background:var(--dna-paper-2);white-space:nowrap}
.dc-atlas td{font-variant-numeric:tabular-nums}.dc-atlas td:nth-child(2){text-align:left}
.dc-atlas button{font:inherit;cursor:pointer;border:1px solid var(--dna-ink-3);border-radius:4px;background:var(--dna-paper);color:var(--dna-accent-ink);padding:5px 8px;text-align:left}
.dc-atlas button:disabled{cursor:default;color:var(--dna-ink-3)}
.dc-atlas button:focus-visible,.dc-atlas [tabindex]:focus-visible{outline:2px solid var(--dna-accent-ink);outline-offset:2px}
.dc-atlas .dc-refusals{list-style:none;padding:0;margin:8px 0;max-width:980px}
.dc-atlas .dc-refusals>li{margin:8px 0}.dc-atlas [data-dnacalc=atlas-reason]{width:100%;overflow-wrap:anywhere}
.dc-atlas [data-dnacalc=atlas-reason][aria-expanded=true]{background:var(--dna-paper-2);border-color:var(--dna-accent-ink)}
.dc-atlas-affected{padding:10px 12px;border:1px solid var(--dna-line);border-top:0}.dc-atlas-affected>ul{list-style:none;padding:0}
.dc-atlas [data-dnacalc=atlas-affected-cell]{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:6px 0}
.dc-atlas [data-dnacalc=atlas-affected-cell]>span{min-width:120px;overflow-wrap:anywhere}
.dc-atlas-pages{display:flex;gap:8px;margin:10px 0}.dc-atlas>details{margin-top:24px;border-top:1px solid var(--dna-line);padding-top:12px}
@media(max-width:700px){.dc-atlas{padding:12px}.dc-atlas [data-dnacalc=atlas-affected-cell]>span{flex-basis:100%}}
.dc-atlas [data-dnacalc=atlas-totals]{position:sticky;top:0;z-index:1;background:var(--dna-paper);padding:8px 0}
.dc-tree-skin{display:flex;flex-direction:column;min-height:0;min-width:0;flex:1;font:13px system-ui,sans-serif}
.dc-tree-tools{display:flex;flex-wrap:wrap;gap:8px;padding:8px 12px;align-items:center}
.dc-tree-tools input{width:240px;max-width:100%;background:var(--dna-paper);color:var(--dna-ink);border:1px solid var(--dna-line);border-radius:4px;padding:5px}
.dc-tree-caption{margin:0 12px 8px;color:var(--dna-ink-3);font-size:12px}
.dc-tree{overflow:auto;flex:1 1 auto;padding:0 12px;outline:none;min-height:80px}
.dc-tree ul{list-style:none;margin:0;padding:0;min-width:650px}
.dc-tree li,.dc-tree-head{display:grid;grid-template-columns:minmax(210px,1fr) minmax(160px,1fr) minmax(100px,.6fr) 90px;gap:12px;align-items:baseline;padding:5px 6px;border-radius:4px}
.dc-tree-head{margin:0 12px;color:var(--dna-ink-3);font-size:12px;border-bottom:1px solid var(--dna-line)}
.dc-tree li[data-focused=true]{background:var(--dna-accent-soft);box-shadow:inset 0 0 0 1px var(--dna-accent)}
.dc-tree-label{padding-left:calc(var(--dc-tree-depth)*12px);display:flex;align-items:baseline;gap:6px;min-width:0}
.dc-tree .dc-twisty{width:18px;min-height:24px;flex-shrink:0;border:0;background:none;padding:0;font:14px monospace;cursor:pointer;color:var(--dna-ink-2)}
.dc-tree .dc-label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-tree li[data-kind=cell] .dc-label{font:600 12px ui-monospace,Consolas,monospace}
.dc-tree li[data-kind=name] .dc-tree-label{grid-column:1/-1}
.dc-tree li[data-kind=name] .dc-label{white-space:normal;overflow-wrap:normal;word-break:normal}
.dc-tree .dc-input{font:12px ui-monospace,Consolas,monospace;color:var(--dna-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-tree .dc-count{color:var(--dna-ink-3);font-size:12px;white-space:nowrap}
.dc-tree .dc-tvalue{font:600 12px ui-monospace,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-tree .dc-chip{font-size:11px;border-radius:10px;padding:0 7px;background:var(--dna-line-soft);color:var(--dna-ink-2)}
.dc-tree .dc-chip[data-provenance=refused]{background:var(--dna-red-soft);color:var(--dna-red-ink)}
.dc-tree .dc-chip[data-provenance=stale]{background:var(--dna-amber-soft);color:var(--dna-prov-ext)}
.dc-tree-detail{padding:8px 12px;max-height:180px;overflow:auto;border-top:1px solid var(--dna-line)}
@media(max-width:650px){.dc-tree-head{display:none}.dc-tree ul{min-width:0}.dc-tree li{grid-template-columns:minmax(0,1fr) auto;gap:4px}.dc-tree-label{grid-column:1/-1}.dc-tree .dc-input{grid-column:1/-1;padding-left:36px}.dc-tree .dc-tvalue{padding-left:36px}.dc-tree .dc-count{margin-left:auto}.dc-tree-tools input{width:180px}.dc-tree-detail{max-height:150px}}
@media(pointer:coarse){.dc-tree li{padding-top:8px;padding-bottom:8px}}

@media(max-width:650px){.dc-tree li[data-kind=cell] .dc-tree-label{grid-column:1;grid-row:1}.dc-tree li[data-kind=cell] .dc-tvalue{grid-column:2;grid-row:1;padding-left:0}.dc-tree li[data-kind=cell] .dc-input{grid-column:1;grid-row:2;padding-left:36px}.dc-tree li[data-kind=cell] .dc-chip{grid-column:2;grid-row:2}.dc-tree li[data-redundant-input=true] .dc-input,.dc-tree li[data-provenance=literal] .dc-chip{display:none}}
.dc-tree-tools button,.dc-tree-detail button{border:1px solid var(--dna-line);background:var(--dna-paper-2);color:var(--dna-ink);border-radius:4px;padding:5px 8px;cursor:pointer;min-height:30px}
.dc-tree-tools button:focus-visible,.dc-tree-detail button:focus-visible,.dc-tree-tools input:focus-visible{outline:2px solid var(--dna-accent);outline-offset:2px}

.dc-tree-detail{flex:0 0 auto}.dc-tree-detail p{margin:4px 0}

@media(min-width:651px){.dc-tree li[data-redundant-input=true] .dc-input{visibility:hidden}}
.dc-tree-guide{margin:0 12px 8px;font-size:12px;color:var(--dna-ink-2)}
.dc-tree-guide summary{cursor:pointer}.dc-tree-guide p{margin:6px 0 0}
/* canvas.css: moved from apps/dna-calc/src/canvas.rs (CANVAS_CSS), dc-xib. */
.dc-canvas{display:flex;flex:1 1 auto;min-height:0;font:13px system-ui,"Segoe UI",sans-serif;outline:none}
.dc-canvas .dc-stage{flex:1 1 auto;overflow:auto;padding:12px;background:var(--dna-paper-2)}
.dc-canvas .dc-bar{display:flex;gap:6px;align-items:center;margin:0 0 10px}
.dc-canvas .dc-plane{position:relative}
.dc-canvas .dc-plane svg{position:absolute;left:0;top:0;pointer-events:none}
.dc-canvas .dc-plane path{fill:none;stroke:var(--dna-ink-3);stroke-width:1.4}
.dc-canvas .dc-node{position:absolute;box-sizing:border-box;background:var(--dna-paper);border:1px solid var(--dna-line);border-radius:6px;padding:4px 8px;overflow:hidden;cursor:pointer}
.dc-canvas .dc-node[data-center=true]{border:2px solid var(--dna-amber)}
.dc-canvas .dc-node[data-kind=area]{background:var(--dna-paper-2);cursor:default}
.dc-canvas .dc-node b{font:600 12px ui-monospace,Consolas,monospace}
.dc-canvas .dc-node .dc-f{font:11px ui-monospace,Consolas,monospace;color:var(--dna-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-canvas .dc-node .dc-v{font:600 12px ui-monospace,Consolas,monospace}
.dc-canvas .dc-node[data-provenance=refused] .dc-v{color:var(--dna-red-ink)}
.dc-canvas .dc-node[data-provenance=stale] .dc-v{color:var(--dna-prov-ext)}
.dc-canvas .dc-hidden{position:absolute;font-size:12px;color:var(--dna-ink-3)}
.dc-canvas aside{flex:0 0 300px;overflow:auto;border-left:1px solid var(--dna-line);padding:10px 12px;background:var(--dna-paper)}
.dc-canvas aside dt{color:var(--dna-ink-3);font-size:12px;margin-top:8px}
.dc-canvas aside dd{margin:2px 0 0;font:12px ui-monospace,Consolas,monospace;word-break:break-all}
@media (max-width:700px){
.dc-canvas{flex-direction:column}
.dc-canvas aside{flex:0 0 auto;max-height:40vh;border-left:0;border-top:1px solid var(--dna-line)}
}

/* dc-971p.13: bounded dependency inspection with keyboard chips and a separate viewport. */
.dc-canvas{min-width:0;font:13px system-ui,sans-serif;line-height:1.45}
.dc-canvas .dc-stage{display:flex;flex-direction:column;overflow:hidden;min-width:0;min-height:0}
.dc-canvas .dc-bar{flex-wrap:wrap;flex-shrink:0}
.dc-canvas button{font:inherit;color:var(--dna-accent-ink);background:var(--dna-paper);border:1px solid var(--dna-ink-3);border-radius:4px;padding:5px 8px;cursor:pointer}
.dc-canvas button:disabled{color:var(--dna-ink-3);cursor:default}
.dc-canvas button:focus-visible,.dc-canvas [tabindex]:focus-visible{outline:3px solid var(--dna-accent-ink);outline-offset:2px}
.dc-canvas-viewport{flex:1 1 auto;min-height:140px;overflow:auto;padding:6px}
.dc-canvas-contract{margin:0 0 6px;color:var(--dna-ink-2);font-size:12px;max-width:80ch}
.dc-canvas [data-dnacalc=canvas-status]:empty{display:none}
.dc-canvas .dc-plane-space{position:relative;flex-shrink:0}
.dc-canvas .dc-node{text-align:left;display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-color:var(--dna-line);color:var(--dna-ink);border-radius:6px}
.dc-canvas .dc-node[data-center=true]{border:1px solid var(--dna-line)}
.dc-canvas .dc-node[data-selected=true]{border:2px solid var(--dna-amber);background:var(--dna-accent-soft)}
.dc-canvas .dc-node[data-kind=area]{cursor:pointer;background:var(--dna-paper-2)}
.dc-canvas .dc-node b{line-height:1.3;max-height:32px;overflow:hidden;overflow-wrap:anywhere;white-space:normal}
.dc-canvas .dc-node .dc-f{display:block;flex-shrink:0}.dc-canvas .dc-node .dc-v{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-canvas .dc-node-state{font-size:10px;color:var(--dna-ink-2);margin-top:auto}
.dc-canvas .dc-hidden{font-size:12px;line-height:1.4;color:var(--dna-ink-2)}
.dc-canvas aside{min-width:0;box-sizing:border-box;flex-basis:310px;overflow-wrap:anywhere}
.dc-canvas aside h3{font:600 14px ui-monospace,monospace;margin:0 0 10px;overflow-wrap:anywhere}
.dc-canvas aside .dc-inspector-value{font:600 18px ui-monospace,monospace}
.dc-canvas aside .dc-inspector-formula{white-space:pre-wrap;overflow-wrap:anywhere;font:12px ui-monospace,monospace}
.dc-canvas aside details{margin-top:12px}.dc-canvas aside summary{cursor:pointer}
.dc-canvas aside dd{word-break:normal;overflow-wrap:anywhere}
@media(max-width:700px){.dc-canvas .dc-stage{flex:1 1 55%;padding:8px;min-height:245px}.dc-canvas aside{flex:1 1 35%;min-height:110px;max-height:35vh;padding:10px}.dc-canvas .dc-bar{gap:4px;margin-bottom:6px}.dc-canvas-contract{font-size:11px;line-height:1.3}.dc-canvas .dc-bar button{font-size:11px;padding:5px 6px}}

.dc-canvas-guide{flex-shrink:0;margin:0 0 6px;font-size:12px;color:var(--dna-ink-2)}.dc-canvas-guide summary{cursor:pointer}.dc-canvas-guide p{margin:6px 0 0}
/* ledger.css: moved from apps/dna-calc/src/ledger.rs (LEDGER_CSS), dc-xib. */
.dc-ledger{overflow:auto;flex:1 1 auto;padding:10px 14px;font:13px system-ui,"Segoe UI",sans-serif}
.dc-ledger .dc-cleave{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 10px}
.dc-ledger table{border-collapse:collapse;min-width:900px}
.dc-ledger th{position:sticky;top:0;background:var(--dna-paper-2);text-align:left;font-weight:600;border-bottom:1px solid var(--dna-line);padding:3px 8px}
.dc-ledger td{border-bottom:1px solid var(--dna-line-soft);padding:3px 8px;white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}
.dc-ledger td.dc-mono{font:12px ui-monospace,Consolas,monospace}
.dc-ledger tr[data-dnacalc=ledger-row]{cursor:pointer}
.dc-ledger tr[data-active=true]{background:var(--dna-accent-soft)}
.dc-ledger tr.dc-group td{background:var(--dna-paper-2);font-weight:600;color:var(--dna-ink-2)}
.dc-ledger .dc-chip{display:inline-block;font-size:11px;border-radius:10px;padding:0 7px;background:var(--dna-line-soft);color:var(--dna-ink-2)}
.dc-ledger .dc-chip[data-provenance=calculated]{background:var(--dna-green-soft);color:var(--dna-value-ink)}
.dc-ledger .dc-chip[data-provenance=refused]{background:var(--dna-red-soft);color:var(--dna-red-ink)}
.dc-ledger .dc-chip[data-provenance=stale]{background:var(--dna-amber-soft);color:var(--dna-prov-ext)}

/* dc-971p.12: primary audit fields, explicit recovery and deliberate narrow scrolling. */
.dc-ledger{min-width:0;overflow-x:hidden;padding:16px;line-height:1.5}
.dc-ledger .dc-cleave select,.dc-ledger .dc-cleave input{max-width:100%;box-sizing:border-box;font:inherit}
.dc-ledger .dc-cleave{align-items:center}.dc-ledger .dc-cleave button{white-space:nowrap}
.dc-ledger-table{overflow:auto;max-width:100%;border:1px solid var(--dna-line);border-radius:6px;margin-top:12px}
.dc-ledger table{width:100%;min-width:920px}.dc-ledger th{z-index:1}
.dc-ledger td{white-space:normal;vertical-align:top;padding:9px 10px;overflow-wrap:anywhere}
.dc-ledger td:first-child{position:sticky;left:0;min-width:115px;background:var(--dna-paper);z-index:1}
.dc-ledger tr[data-active=true] td:first-child{background:var(--dna-accent-soft)}
.dc-ledger .dc-ledger-formula{min-width:200px;max-width:380px}.dc-ledger td:nth-child(4){min-width:200px;max-width:300px}
.dc-ledger button{font:inherit;color:var(--dna-accent-ink);background:var(--dna-paper);border:1px solid var(--dna-ink-3);border-radius:4px;padding:5px 8px;cursor:pointer}
.dc-ledger button:disabled{color:var(--dna-ink-3);cursor:default}.dc-ledger button:focus-visible,.dc-ledger [tabindex]:focus-visible{outline:2px solid var(--dna-accent-ink);outline-offset:2px}
.dc-ledger-reason{font-size:12px;line-height:1.45;margin:6px 0 0;color:var(--dna-ink-2)}
.dc-ledger-actions{min-width:160px}.dc-ledger-actions>button{margin:0 5px 6px 0}.dc-ledger details{max-width:260px;font-size:12px}.dc-ledger summary{cursor:pointer}
.dc-ledger details dl{display:grid;grid-template-columns:auto 1fr;gap:4px 12px}.dc-ledger details dd{margin:0}
.dc-ledger-population{font-weight:600;overflow-wrap:anywhere}.dc-ledger-recovery{display:flex;gap:8px;flex-wrap:wrap}
@media(max-width:700px){.dc-ledger{padding:12px}.dc-ledger td:first-child{min-width:105px}}
