.resilience-app { --text:#202d33; --muted:#66767c; --line:#d8e0e2; --surface:#fff; --cyan:#087f8c; color-scheme:light; background:#f3f5f5; color:var(--text); font-size:14px; letter-spacing:0; }
.resilience-app .topbar { background:#fff; border-bottom:1px solid var(--line); backdrop-filter:none; padding:12px 24px; gap:16px; position:relative; }
.resilience-app .brand { min-width:220px; }
.resilience-app .brand-title { color:#172d36; font-size:17px; }
.resilience-app .brand-mark { background:#e2f3f0; border-color:#b7d9d4; color:#086e63; width:38px; height:38px; }
.resilience-app .main-nav { display:flex; justify-content:flex-start; flex-wrap:nowrap; overflow-x:auto; overflow-y:hidden; }
.resilience-app .main-nav a { flex-shrink:0; width:auto; }
.resilience-app .main-nav a { color:#52636b; padding:7px 9px; }
.resilience-app .main-nav a.active,.resilience-app .main-nav a:hover { background:#e6f3f0; color:#075e55; border-color:transparent; }
.resilience-app .small-pill { color:#607078; background:#f3f5f5; border:1px solid #dce3e5; font-size:11px; white-space:nowrap; }
.resilience-app h1,.resilience-app h2,.resilience-app h3,.resilience-app p { margin-top:0; letter-spacing:0; }
.resilience-app h1,.resilience-app h2,.resilience-app h3,.resilience-app h4 { color:var(--text); }
.resilience-app h1 { font-size:27px; line-height:1.35; margin-bottom:0; }
.resilience-app h2 { font-size:18px; line-height:1.45; margin-bottom:8px; }
.resilience-app h3 { font-size:15px; margin-bottom:8px; }
.resilience-app p { line-height:1.7; }
.resilience-app a.text-link,.resilience-app a.source-ref { color:#096f77; }
.resilience-app svg { width:17px; height:17px; flex-shrink:0; }
.resilience-app button,.resilience-app input,.resilience-app select,.resilience-app textarea { letter-spacing:0; }
.resilience-app input,.resilience-app select,.resilience-app textarea { color:var(--text); background:#fff; border:1px solid #c9d3d6; border-radius:4px; padding:8px 10px; max-width:100%; min-width:0; }
.resilience-app input[type=checkbox] { accent-color:#087f75; }
.resilience-app :focus-visible { outline:2px solid #087f8c; outline-offset:3px; }
.resilience-app [hidden] { display:none!important; }
.workspace-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 28px 18px; }
.resilience-app .eyebrow { color:#567176; font-size:11px; letter-spacing:0; margin:0 0 7px; font-weight:600; }
.heading-meta { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:12px; color:var(--muted); font-size:12px; }
.text-link { display:inline-flex; align-items:center; gap:4px; }
.evidence-badge { display:inline-block; font-size:11px; padding:3px 7px; background:#e2f3ee; color:#146854; border-radius:3px; line-height:1.6; }
.evidence-badge.neutral { background:#ebeff0; color:#596a72; }
.evidence-badge.owned { background:#e0f2e7; color:#256943; }
.evidence-badge.entrusted { background:#fff0cd; color:#7c5b14; }
.evidence-badge.affiliate { background:#e8edf7; color:#536990; }
.evidence-badge.warning { background:#fff0d6; color:#805811; }
.baseline-strip { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); background:#fff; border-block:1px solid var(--line); padding:16px 28px; }
.baseline-item { min-width:0; padding:0 24px; border-right:1px solid var(--line); }
.baseline-item:first-child { padding-left:0; }.baseline-item:last-child { border:0; }
.baseline-item .baseline-label { color:#5d6c72; font-size:12px; display:flex; justify-content:space-between; gap:5px; }
.baseline-value { font-size:28px; font-weight:650; font-variant-numeric:tabular-nums; line-height:1.6; }
.baseline-value small { font-size:12px; font-weight:400; margin-left:6px; color:var(--muted); }
.baseline-detail { color:var(--muted); font-size:11px; }
.twin-workspace { display:grid; grid-template-columns:minmax(0,1fr) 310px; border-bottom:1px solid var(--line); }
.scene-column { min-width:0; }
.scene-toolbar { padding:10px 18px; display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid var(--line); background:#fafbfb; }
.segmented { display:inline-flex; border:1px solid #cfd9dc; border-radius:4px; padding:2px; background:#edf1f1; flex-shrink:0; }
.segmented button { font-size:12px; min-height:30px; padding:4px 13px; border:0; background:transparent; color:#5a6a70; border-radius:3px; }
.segmented button[aria-pressed=true] { background:#fff; color:#145e58; box-shadow:0 1px 3px #163a351a; }
.icon-tools,.panel-actions { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.icon-button { width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #d3dcdf; color:#496168; background:#fff; border-radius:4px; flex-shrink:0; }
.icon-button:hover,.icon-button[aria-pressed=true] { background:#e1f0ed; color:#07675d; }
.icon-button:disabled { opacity:.5; cursor:not-allowed; }
.scene-host { height:clamp(400px,56vh,660px); position:relative; overflow:hidden; background:#eaf0f0; }
#scene-canvas,#scene-labels { position:absolute; inset:0; }
#scene-canvas canvas { width:100%; height:100%; display:block; touch-action:none; }
#scene-labels { pointer-events:none; overflow:hidden; }
.scene-label { position:absolute; pointer-events:auto; border:1px solid #d7e1e2; border-left:3px solid var(--label-color,#18837a); border-radius:3px; padding:3px 6px; background:#ffffffed; font-size:11px; white-space:nowrap; color:#284047; line-height:1.5; box-shadow:0 1px 4px #344b4712; }
.scene-label[aria-pressed=true] { border-color:#087b72; background:#e4f5ec; font-weight:600; z-index:2; }
.scene-caption { position:absolute; left:18px; top:15px; display:flex; flex-direction:column; gap:3px; pointer-events:none; color:#5b7175; font-size:11px; }
.scene-caption strong { color:#33575c; font-size:13px; }
.scene-status { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); max-width:80%; padding:15px 20px; background:#fff; border:1px solid #ccd9da; border-radius:4px; z-index:4; }
.scene-bottom { background:#fff; padding:10px 18px; display:flex; justify-content:space-between; align-items:center; gap:10px; color:#62757a; font-size:11px; border-top:1px solid var(--line); }
.scene-bottom label { white-space:nowrap; }.map-key { display:flex; flex-wrap:wrap; gap:16px; }.map-key span { display:flex; gap:6px; align-items:center; }.map-key b { width:8px; height:8px; border-radius:2px; }
.key-supply { background:#1b889b; }.key-owned { background:#29896a; }.key-entrusted { background:#c39132; }.key-affiliate { background:#758aa9; }
.model-boundary { padding:9px 18px; color:#737f82; font-size:11px; background:#f8faf9; }
.asset-inspector { padding:18px; border-left:1px solid var(--line); background:#fff; min-width:0; }
.inspector-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; gap:8px; }.inspector-heading h2 { margin:0; font-size:16px; }
.field-label { display:block; color:#748189; font-size:11px; margin-bottom:5px; }.asset-inspector select { width:100%; font-size:13px; margin-bottom:18px; }
.asset-inspector h3 { font-size:19px; line-height:1.5; overflow-wrap:anywhere; margin:0 0 8px; }
.asset-facts { margin:14px 0; display:grid; grid-template-columns:65px 1fr; gap:8px 10px; font-size:12px; }.asset-facts dt { color:#76848a; }.asset-facts dd { margin:0; overflow-wrap:anywhere; }
.asset-gaps { padding:13px 0; border-top:1px solid var(--line); }.asset-gaps h4 { font-size:12px; margin:0 0 7px; }.asset-gaps ul { padding-left:17px; margin:0; color:#6b7b80; font-size:12px; }.asset-gaps li { margin:5px 0; }
.source-links { display:flex; gap:8px; flex-wrap:wrap; margin:9px 0; font-size:12px; }.source-ref { text-decoration:underline; text-underline-offset:3px; }
.action-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:8px 13px; border:1px solid #c9d7d8; border-radius:4px; background:#fff; color:#295f60; font-size:12px; min-height:35px; line-height:1.5; }
.action-button:hover { background:#e9f3f0; }.asset-inspector .action-button { width:100%; margin-top:12px; background:#087c71; border-color:#087c71; color:#fff; }
.grid-events { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }.asset-inspector .grid-events h3 { font-size:15px; }.grid-events p { font-size:11px; margin-bottom:5px; }.grid-event-link { display:block; padding:7px 0; color:#32706a; font-size:12px; border-bottom:1px solid #e9eeec; }
.work-band { display:grid; grid-template-columns:1.1fr repeat(3,1fr); padding:26px 28px; gap:24px; background:#fff; align-items:center; }
.work-band p { font-size:11px; margin:0; }.work-band h2 { font-size:17px; margin-top:5px; }.muted { color:var(--muted); }
.work-link { display:flex; gap:12px; align-items:center; min-width:0; border-left:1px solid var(--line); padding-left:22px; }.work-link>svg:first-child { color:#13776e; width:22px; height:22px; }.work-link span { flex:1; }.work-link strong { display:block; font-size:13px; }.work-link small { display:block; color:var(--muted); font-size:11px; margin-top:5px; }.work-link>svg:last-child { color:#8c9fa3; }
.resilience-footer { padding:16px 28px; border-top:1px solid var(--line); color:#7c898e; font-size:11px; display:flex; justify-content:space-between; gap:12px; }
.resilience-footer a { color:#286c70; }
.notification { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); max-width:calc(100vw - 40px); color:#fff; background:#244b48; padding:10px 18px; border-radius:5px; z-index:60; box-shadow:0 4px 20px #0002; }
.view-tabs { display:flex; gap:28px; background:#fff; padding:0 28px; border-bottom:1px solid var(--line); }
.view-tabs button { border:0; border-bottom:3px solid transparent; color:#607279; background:none; padding:16px 2px 13px; font-size:13px; white-space:nowrap; }
.view-tabs button[aria-selected=true] { color:#086c60; border-bottom-color:#087e70; font-weight:600; }
.workspace-panel { padding:22px 28px 30px; background:#fff; min-height:480px; }
.ledger-toolbar { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:17px; }.ledger-toolbar label { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:12px; }.ledger-toolbar>.action-button { margin-left:auto; }
.search-field { display:flex; align-items:center; border:1px solid #cbd8d9; border-radius:4px; padding-left:10px; color:#7e9398; min-width:230px; }.search-field input { border:0; width:260px; font-size:12px; }.ledger-toolbar select { min-height:35px; font-size:12px; }.ledger-toolbar .muted { font-size:12px; }
.table-scroll { overflow-x:auto; width:100%; }
.evidence-table { border-collapse:collapse; width:100%; min-width:870px; font-size:12px; text-align:left; }
.evidence-table th { color:#627278; background:#f2f6f5; font-size:11px; font-weight:500; padding:12px; border-block:1px solid #dce5e3; white-space:nowrap; }
.evidence-table td { padding:13px 12px; border-bottom:1px solid #e6ebeb; vertical-align:top; }.evidence-table tbody tr:hover,.evidence-table tr.selected { background:#f0f8f5; }.evidence-table small { display:block; font-size:10px; color:#7b898e; margin-top:4px; }
.row-select { border:0; background:none; color:#116d66; font-size:13px; padding:0; text-align:left; }.evidence-table td:nth-child(4) { max-width:280px; }.evidence-table td:last-child { white-space:nowrap; }
.ledger-detail { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; }.ledger-detail h3 { margin-bottom:7px; }.ledger-detail p,.ledger-detail li { font-size:12px; color:#65787e; }.ledger-detail ul { margin:0; padding-left:18px; }.ledger-detail li { margin-bottom:6px; }.ledger-detail .action-button { margin-top:8px; }
.boundary-note { font-size:11px; color:#72848a; padding:12px 0; margin:20px 0 0; border-top:1px solid var(--line); }
.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:18px; }.panel-heading p { margin:0; font-size:12px; }
.inline-field { display:inline-flex; align-items:center; gap:10px; font-size:12px; }.inline-field select { max-width:300px; }.inline-alert { margin:15px 28px; padding:14px; border-left:3px solid #c47c35; background:#fff0d7; }
#import-status { font-size:12px; margin-top:10px; }
.implementation-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:25px; }.implementation-grid article { padding:15px 0; border-top:2px solid #b9d5cb; }.implementation-grid p { color:var(--muted); font-size:12px; }
.response-controls { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-bottom:18px; }.response-controls label { font-size:12px; display:flex; align-items:center; gap:10px; }.response-controls select { max-width:290px; font-size:12px; }
.scenario-chain { display:flex; flex-wrap:wrap; align-items:center; gap:12px; background:#eef4f3; padding:13px 16px; margin:16px 0; font-size:12px; color:#466c68; }.scenario-chain svg { color:#94aca8; }
.scenario-trigger { color:var(--muted); font-size:12px; margin-bottom:0; }
.response-layout { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:32px; }.response-evidence { border-left:1px solid var(--line); padding:14px 0 0 25px; }.response-evidence p,.response-evidence li { color:var(--muted); font-size:12px; }.response-evidence ul { padding-left:16px; margin:8px 0 30px; }.response-evidence li { margin-bottom:10px; }
.response-task { border-bottom:1px solid var(--line); padding:16px 0; display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; }.task-number { color:#798c92; font-size:20px; font-variant-numeric:tabular-nums; }.task-title { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; }.task-title h3 { margin:0; }.task-title label { display:flex; align-items:center; gap:5px; font-size:12px; white-space:nowrap; }.response-task p { font-size:12px; margin-bottom:9px; }.response-task textarea { width:100%; min-height:67px; resize:vertical; font-size:12px; }.response-task textarea::placeholder { color:#8b969b; }.task-saved { font-size:11px; color:#6d7e84; margin-top:5px; }
.source-entry { display:grid; grid-template-columns:55px 1fr; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }.source-entry h3 { margin-bottom:5px; }.source-entry p { margin:4px 0; font-size:12px; color:var(--muted); }.source-id { font-variant-numeric:tabular-nums; font-size:12px; color:#73928b; }.source-entry a { color:#116b65; }
.method-note { margin-top:25px; max-width:1000px; }.method-note p { color:var(--muted); font-size:12px; }
@media (max-width:540px) {
  .resilience-app .topbar { display:grid; grid-template-columns:minmax(0,1fr) auto; }
  .resilience-app .top-actions { width:auto; grid-column:2; grid-row:1; }
  .resilience-app .main-nav { grid-column:1/-1; width:100%; min-width:0; }
  .scene-toolbar .segmented { flex:1 0 100%; }
  .scene-toolbar .segmented button { white-space:nowrap; }
}
@media (min-width:1600px) { .twin-workspace { grid-template-columns:minmax(0,1fr) 350px; }.asset-inspector { padding:22px; }.scene-host { height:610px; } }
@media (max-width:1150px) { .resilience-app .topbar { flex-wrap:wrap; gap:8px; }.resilience-app .main-nav { order:3; flex-basis:100%; }.resilience-app .top-actions { margin-left:auto; }.heading-meta { max-width:350px; }.baseline-item { padding:0 14px; }.work-band { grid-template-columns:repeat(2,1fr); }.work-link { border-left:0; padding-left:0; }.twin-workspace { grid-template-columns:minmax(0,1fr) 285px; } }
@media (max-width:820px) { .twin-workspace { grid-template-columns:1fr; }.asset-inspector { border-left:0; border-top:1px solid var(--line); }.asset-inspector select { max-width:420px; }.asset-inspector .asset-facts { grid-template-columns:80px 1fr; }.asset-inspector .action-button { max-width:340px; }.scene-host { height:440px; }.workspace-heading { align-items:flex-start; }.heading-meta { max-width:240px; }.baseline-strip { grid-template-columns:repeat(2,1fr); gap:17px 0; }.baseline-item:nth-child(2) { border-right:0; }.baseline-item:nth-child(3) { padding-left:0; }.baseline-value { font-size:26px; }.response-layout { grid-template-columns:1fr; }.response-evidence { border-left:0; border-top:1px solid var(--line); padding-left:0; }.ledger-detail { grid-template-columns:1fr 1fr; }.ledger-detail>div:last-child { grid-column:1/-1; }.response-controls label { flex:1; min-width:240px; }.response-controls select { flex:1; } }
@media (max-width:540px) { .resilience-app .topbar { padding:10px 14px; }.resilience-app .brand { min-width:0; }.resilience-app .brand-title { font-size:15px; }.resilience-app .brand-subtitle { font-size:10px; }.resilience-app .top-actions { gap:5px; }.resilience-app .top-actions .small-pill:first-child { display:none; }.resilience-app .main-nav { gap:2px; }.resilience-app .main-nav a { font-size:12px; padding:6px 8px; }.workspace-heading { padding:18px 16px 14px; display:block; }.resilience-app h1 { font-size:23px; }.heading-meta { max-width:none; justify-content:flex-start; margin-top:12px; gap:9px; font-size:11px; }.baseline-strip { padding:14px 16px; }.baseline-item { padding:0 10px; }.baseline-label { font-size:11px!important; }.baseline-detail { font-size:10px; }.baseline-value { font-size:25px; }.baseline-value small { font-size:10px; }.scene-toolbar { padding:9px 12px; gap:8px; flex-wrap:wrap; }.segmented { flex:1; justify-content:space-between; }.segmented button { padding:4px 10px; flex:1; }.icon-tools { margin-left:auto; }.scene-host { height:400px; }.scene-caption { left:12px; top:12px; }.scene-label { font-size:10px; padding:2px 4px; }.scene-bottom { align-items:flex-start; font-size:10px; padding:10px 12px; }.map-key { gap:8px; }.model-boundary { padding:10px 12px; font-size:10px; }.work-band { padding:22px 16px; grid-template-columns:1fr; gap:20px; }.work-band>div { padding-bottom:8px; }.resilience-footer { padding:14px 16px; flex-direction:column; }.view-tabs { padding:0 16px; gap:20px; overflow:auto; }.view-tabs button { font-size:12px; }.workspace-panel { padding:20px 16px; }.ledger-toolbar { gap:10px; }.search-field { flex:1; width:100%; min-width:200px; }.search-field input { width:100%; }.ledger-detail { grid-template-columns:1fr; gap:18px; }.panel-heading { flex-direction:column; gap:14px; }.implementation-grid { grid-template-columns:1fr; gap:12px; }.response-controls { gap:12px; }.response-controls label { width:100%; }.response-controls select { max-width:calc(100% - 70px); }.task-title { align-items:flex-start; }.source-entry { grid-template-columns:36px 1fr; gap:8px; }.source-entry h3 { font-size:14px; } }
