.obs-app { --obs-accent:#4058b8; --obs-soft:#eef1fc; --obs-line:#dfe5ed; --obs-muted:#637084; background:#f6f8fb; color:#253247; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans CJK KR",sans-serif; font-size:14px; }
.obs-main { max-width:1440px; margin:auto; padding:30px 32px; }
.obs-app h1 { font-size:28px; letter-spacing:-.7px; margin:0 0 8px; }
.obs-app h2 { font-size:17px; margin:0; }
.obs-app h3 { font-size:19px; margin:8px 0 12px; }
.obs-app p { line-height:1.7; }
.obs-app .muted { color:var(--obs-muted); font-size:13px; }
.obs-app button,.obs-app .obs-button { display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:9px 13px; border:1px solid #cbd5e2; border-radius:6px; background:#fff; color:#34445c; font-size:13px; font-weight:550; cursor:pointer; min-height:44px; text-decoration:none; }
.obs-app button:hover:not(:disabled),.obs-app .obs-button:hover { background:#f0f3fa; border-color:#9caec8; }
.obs-app button:disabled { opacity:.5; cursor:not-allowed; }
.obs-app input,.obs-app select { font:inherit; border:1px solid #cbd5e2; border-radius:6px; padding:9px 11px; min-height:44px; color:inherit; background:#fff; }
.obs-app label { font-size:12px; color:#4b5a6e; display:flex; align-items:center; gap:9px; white-space:nowrap; }
.obs-heading,.obs-toolbar,.obs-panel-head,.obs-connection,.obs-context,.obs-flow-caption,.obs-refresh,.obs-filters,.obs-playbar,.obs-replay-meta,.obs-seek-label { display:flex; align-items:center; justify-content:space-between; gap:12px 18px; flex-wrap:wrap; }
.obs-heading { margin-bottom:23px; }
.obs-eyebrow { font-size:12px; font-weight:650; letter-spacing:0; color:var(--obs-muted); margin:0 0 8px; }
.obs-heading .muted { margin:0; }
.obs-notice { border:1px solid #d9e2f5; background:#eff3fc; border-radius:6px; padding:12px 16px; line-height:1.65; margin:0 0 18px; color:#40567d; }
.obs-notice[data-tone="error"] { background:#fff3ef; border-color:#ecc7b9; color:#924c32; }
.obs-toolbar { margin-bottom:16px; }
.obs-refresh { font-size:12px; color:var(--obs-muted); }
.obs-connection { padding:12px 0; border-top:1px solid var(--obs-line); border-bottom:1px solid var(--obs-line); margin-bottom:22px; font-size:12px; color:var(--obs-muted); }
.obs-connection strong { color:#34445c; margin-left:7px; }
.obs-panel { border:1px solid var(--obs-line); border-radius:10px; background:white; overflow:hidden; margin-bottom:22px; }
.obs-panel-head { padding:20px 22px 17px; border-bottom:1px solid var(--obs-line); }
.obs-panel-head p { margin-bottom:0; }
.obs-panel-head .obs-eyebrow { margin-bottom:8px; }
.obs-tabs { display:flex; gap:4px; padding:4px; background:#f1f4f8; border-radius:7px; }
.obs-tabs button { background:transparent; border-color:transparent; min-height:40px; }
.obs-tabs button[aria-selected="true"] { color:var(--obs-accent); border-color:#d2dbee; background:white; }
.obs-context { padding:14px 22px; justify-content:flex-start; border-bottom:1px solid #eef1f6; }
.obs-context p { color:var(--obs-muted); font-size:12px; margin:0; flex:1; }
.obs-badge { display:inline-block; font-size:12px; border:1px solid #dde3eb; border-radius:5px; padding:4px 8px; background:#f7f9fb; color:#56677e; white-space:nowrap; }
.obs-badge[data-state="ok"] { background:#eef7f2; color:#287056; border-color:#d2e6db; }
.obs-badge[data-state="partial"],.obs-badge[data-state="stale"] { background:#fff7e8; color:#805b1f; border-color:#ecdcb8; }
.obs-badge[data-state="forbidden"],.obs-badge[data-state="unavailable"] { background:#fff2ef; color:#9c5344; border-color:#edd3ca; }
.obs-workspace { display:grid; grid-template-columns:minmax(0,1fr) 285px; }
.obs-flow { padding:22px; min-width:0; }
.obs-flow-caption { color:var(--obs-muted); font-size:12px; }
.obs-graph { position:relative; margin:20px 0 8px; }
#flow-lines { position:absolute; width:100%; height:190px; top:0; left:0; overflow:visible; pointer-events:none; }
.obs-line { stroke:#c7d1e2; stroke-width:1.8; stroke-dasharray:4 5; fill:none; }
.obs-line.observed { stroke:#6d7eb2; stroke-width:2; stroke-dasharray:none; }
.obs-nodes { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); list-style:none; margin:0; padding:0; gap:17px; min-height:190px; align-items:center; }
.obs-nodes li { min-width:0; }
.obs-app .obs-node { width:100%; display:flex; flex-direction:column; gap:7px; min-height:132px; padding:12px 5px; position:relative; border:1px solid #d7dfec; border-radius:8px; background:#fff; font-weight:400; }
.obs-node[aria-pressed="true"] { outline:2px solid var(--obs-accent); outline-offset:3px; }
.obs-node-number { font-size:12px; width:28px; height:28px; border:0; border-radius:0; display:grid; place-items:center; color:#6d7da0; background:transparent; font-variant-numeric:tabular-nums; }
.obs-node strong { font-size:12px; white-space:nowrap; }
.obs-node small { font-size:12px; color:#788499; }
.obs-node .obs-node-state { font-size:12px; color:#66758a; margin-top:4px; }
.obs-node[data-state="idle"],.obs-node[data-state="recent"],.obs-node[data-state="healthy"],.obs-node[data-state="recorded_end"] { border-color:#a9c9bb; background:#f4faf7; }
.obs-node[data-state="running"],.obs-node[data-state="recorded_active"],.obs-node[data-state="definition"] { border-color:#9aa9d9; background:#f0f3ff; }
.obs-node[data-state="recent_error"],.obs-node[data-state="error"],.obs-node[data-state="unhealthy"] { border-color:#d4aaa0; background:#fff4f1; }
.obs-node[data-state="queued"],.obs-node[data-state="degraded"] { border-color:#dbc797; background:#fff9ec; }
.obs-legend { display:flex; flex-wrap:wrap; gap:12px 22px; color:var(--obs-muted); font-size:12px; padding-top:15px; }
.obs-detail { background:#fafbfd; border-left:1px solid var(--obs-line); padding:24px 22px; }
.obs-detail p { color:var(--obs-muted); font-size:12px; }
.obs-detail dl { margin:20px 0 0; font-size:12px; }
.obs-detail dt { color:#738094; margin-top:14px; }
.obs-detail dd { margin:4px 0 0; line-height:1.6; font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#replay-controls { border-top:1px solid var(--obs-line); margin-top:22px; padding-top:18px; }
.obs-replay-meta { font-size:12px; color:var(--obs-muted); margin-bottom:12px; }
.obs-playbar { justify-content:flex-start; gap:7px; }
.obs-playbar #play { background:var(--obs-accent); border-color:var(--obs-accent); color:white; min-width:70px; }
.obs-speed { margin-left:auto; }
.obs-seek-label { margin-top:16px; }
.obs-app #seek { width:100%; padding:0; border:0; accent-color:var(--obs-accent); background:transparent; }
#playback-note { margin:0; }
.obs-timeline { padding:15px 22px 20px; }
.obs-span { display:grid; grid-template-columns:150px minmax(0,1fr) 75px; gap:12px; align-items:center; margin:6px 0; font-size:12px; }
.obs-app .obs-span button { font-size:12px; justify-content:flex-start; background:transparent; border:0; text-align:left; padding:6px; }
.obs-track { position:relative; height:22px; background:#f2f5f9; border-radius:3px; overflow:hidden; }
.obs-bar { position:absolute; height:12px; top:5px; min-width:2px; border-radius:2px; background:#8e9fcf; }
.obs-bar[data-outcome="error"] { background:#c88e7a; }
.obs-bar[data-active="true"] { background:var(--obs-accent); }
.obs-bottom-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.obs-bottom-grid > * { min-width:0; }
.obs-metrics { padding:0 22px; }
.obs-metric { display:grid; grid-template-columns:1fr auto; gap:3px 15px; padding:14px 0; border-bottom:1px solid #eef1f5; }
.obs-metric span { font-size:12px; color:var(--obs-muted); }
.obs-metric strong { font-size:17px; font-weight:600; font-variant-numeric:tabular-nums; }
.obs-metric small { grid-column:1/-1; color:#718095; font-size:12px; }
.obs-chart-area { padding:18px 22px; }
#series-chart { width:100%; margin:12px 0; background:#f8faff; border-bottom:1px solid #e0e5ef; }
#series-chart path { stroke:#5c73ba; stroke-width:2; fill:none; }
#series-chart circle { fill:#5c73ba; }
.obs-trace-form { padding:18px 22px 0; }
.obs-trace-form label { display:block; margin-bottom:9px; }
.obs-trace-form > div { display:flex; gap:8px; }
.obs-trace-form input { min-width:0; width:100%; font-family:ui-monospace,monospace; font-size:12px; }
.obs-trace-form button { flex-shrink:0; }
.obs-empty { margin:0; padding:20px 22px; color:var(--obs-muted); font-size:12px; }
.obs-traces { list-style:none; padding:0 22px 18px; margin:0; }
.obs-traces li { border-top:1px solid var(--obs-line); padding:10px 0; display:flex; gap:8px; align-items:center; justify-content:space-between; font-size:12px; color:var(--obs-muted); }
.obs-traces code { font-size:12px; }
.obs-traces button { border:0; color:var(--obs-accent); padding:6px; }
.obs-table-scroll { overflow:auto; }
.obs-app table { width:100%; border-collapse:collapse; font-size:12px; white-space:nowrap; }
.obs-app th { text-align:left; font-weight:500; color:var(--obs-muted); background:#fafbfd; }
.obs-app td,.obs-app th { padding:12px 22px; border-bottom:1px solid #eef1f5; }
.obs-collection { padding:18px 22px; font-size:12px; color:var(--obs-muted); }
.obs-app summary { cursor:pointer; min-height:28px; }
.obs-footer { font-size:12px; color:var(--obs-muted); padding-bottom:12px; }
@media(min-width:1100px) { .obs-node { transition:background-color .18s,border-color .18s; } }
@media(max-width:1150px) { .obs-workspace { grid-template-columns:minmax(0,1fr) 250px; } .obs-nodes { gap:10px; } .obs-flow { padding:18px; } }
@media(max-width:1000px) { .obs-workspace { grid-template-columns:1fr; } .obs-detail { border-left:0; border-top:1px solid var(--obs-line); } .obs-detail dl { display:grid; grid-template-columns:1fr 2fr; margin-top:10px; gap:10px; } .obs-detail dt,.obs-detail dd { margin:0; } }
@media(max-width:720px) { .obs-main { padding:22px 16px; } .obs-heading { gap:12px; } .obs-bottom-grid { grid-template-columns:1fr; gap:0; } .obs-app h1 { font-size:25px; } .obs-panel-head,.obs-context,.obs-detail { padding:16px; } .obs-tabs { width:100%; } .obs-tabs button { flex:1; padding:8px; } .obs-filters { width:100%; } .obs-filters label { flex:1 1 200px; justify-content:space-between; } .obs-filters select { flex:1; } .obs-refresh { width:100%; } .obs-connection { align-items:flex-start; gap:8px; } #connection-note { flex-basis:100%; order:2; } .obs-context p { flex-basis:100%; } .obs-nodes { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; } #flow-lines { display:none; } .obs-app .obs-node { min-height:124px; } .obs-flow-caption span+span { display:none; } .obs-speed { margin-left:0; } .obs-span { grid-template-columns:95px minmax(0,1fr) 55px; gap:6px; } .obs-timeline { padding:12px; } }
@media(max-width:400px) { .obs-nodes { grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; } .obs-playbar #skip-wait { flex:1 1 100%; } .obs-toolbar select { max-width:240px; } }

/* Live operations atlas: native HTML controls over a routed SVG layer. */
.obs-main{max-width:1560px}.obs-app{background:#f3f6fa}.ops-atlas{margin:24px 0 30px;border:1px solid #cdd9e7;border-radius:16px;background:white;box-shadow:0 8px 30px #142d4e08;overflow:hidden;color:#1e3550}.map-header{padding:24px 26px 18px;display:flex;align-items:start;justify-content:space-between;gap:20px;background:linear-gradient(120deg,#f7fbff,#fff 65%)}.map-kicker{font-size:10px;letter-spacing:.12em;font-weight:800;color:#53738f;margin:0 0 9px}.map-header h2{font-size:25px;letter-spacing:-1px;margin:0 0 8px}.map-header p{margin-bottom:0}.map-live{font-size:11px;white-space:nowrap;display:flex;align-items:center;gap:8px;padding-top:7px}.map-live i{width:7px;height:7px;border-radius:50%;background:#32948a;box-shadow:0 0 0 4px #e1f3ed}.map-nav{display:flex;flex-wrap:wrap;gap:6px;padding:0 26px 18px;border-bottom:1px solid #e3eaf1}.map-nav button{border:1px solid #dbe5ee;background:#fff;border-radius:6px;padding:8px 13px;font-weight:650;color:#47617a;font-size:12px}.map-nav button[aria-pressed=true]{background:#163f5d;border-color:#163f5d;color:white}.map-stats{display:grid;grid-template-columns:repeat(3,1fr) 1.6fr;padding:17px 26px;gap:20px;border-bottom:1px solid #e3eaf1}.map-stat{border-right:1px solid #e4eaf1}.map-stat small{display:block;color:#6e8499;font-size:11px;margin-bottom:7px}.map-stat strong{font-size:24px;letter-spacing:-.5px;line-height:1}.map-stat:last-child{border:0}.map-stat:last-child strong{font-size:15px;letter-spacing:0}.map-stat a{font-size:11px;margin-left:10px;color:#346589}.map-issue-count{color:#b55535}.map-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;background:#fbfcfd;font-size:11px}.map-legend{display:flex;gap:15px;flex-wrap:wrap;color:#61758a}.map-legend span{display:flex;align-items:center;gap:5px}.map-legend i{display:inline-block;height:2px;width:24px;background:#8b9cad}.map-legend .legend-flow{background:repeating-linear-gradient(90deg,#128b75 0 4px,transparent 4px 8px);background-size:16px 100%;animation:map-legend-run 1s linear infinite}.map-legend .legend-issue{background:#c1593e}.map-legend .legend-unknown{background:repeating-linear-gradient(90deg,#a1adbc 0 3px,transparent 3px 6px)}.map-tool-buttons{display:flex;gap:5px;align-items:center;white-space:nowrap}.map-tool-buttons button,.map-native button{padding:5px 8px;border:1px solid #d3dfe9;background:#fff;border-radius:4px;color:#405c76;font-size:11px}.map-tool-buttons output{min-width:33px;text-align:center}.map-workspace{display:grid;grid-template-columns:minmax(0,1fr) 246px;border-top:1px solid #e1e8ef;border-bottom:1px solid #e1e8ef}.map-scroll{overflow:auto;max-height:880px;background:#fbfcfe;overscroll-behavior:contain;scrollbar-width:thin}.map-canvas{position:relative;transform-origin:top left;background:radial-gradient(#dee6ed .65px,transparent .65px);background-size:16px 16px;font-family:ui-sans-serif,system-ui,-apple-system,sans-serif}.map-column-head{position:absolute;top:20px;font-size:12px;font-weight:750;letter-spacing:.03em;color:#284762}.map-lane{position:absolute;left:12px;right:12px;border:1px solid #e1e9ef;border-radius:12px;background:#f0f4f8aa}.map-lane-label{position:absolute;left:0;top:0;bottom:0;width:120px;display:flex;flex-direction:column;justify-content:center;gap:7px;padding:14px;border-radius:12px 0 0 12px;background:#e8eff5;color:#3d5770}.map-lane-label strong{font-size:10px;letter-spacing:.06em}.map-lane-label>span:last-child{font-size:11px;line-height:1.5}.map-number{font-size:20px;font-weight:800;opacity:.46}.map-layer-entry .map-lane-label{background:#def0e7;color:#287057}.map-layer-access .map-lane-label{background:#e7ecfc;color:#526b9a}.map-layer-ingest .map-lane-label{background:#fff0d8;color:#a27524}.map-layer-process .map-lane-label{background:#fce4e9;color:#9c5365}.map-layer-inference .map-lane-label{background:#ece6fb;color:#7e61a2}.map-layer-storage .map-lane-label{background:#dceef9;color:#3b779c}.map-layer-observe .map-lane-label{background:#dff1ed;color:#428c7a}.map-connectors{position:absolute;inset:0;pointer-events:none;overflow:visible}.map-edge{fill:none;stroke-width:1.7;stroke:#a5b4c5;stroke-linejoin:round;stroke-linecap:round}.map-edge-flow{stroke:#239c86;stroke-width:2.4;stroke-dasharray:7 7;animation:map-flow 1.1s linear infinite}.map-edge-issue{stroke:#cd674a;stroke-width:2.2}.map-edge-stopped{stroke:#a77238;stroke-dasharray:3 4}.map-edge-idle{stroke:#8c9db0;stroke-dasharray:6 4}.map-edge-unknown{stroke:#bdc8d3;stroke-dasharray:2 6}.map-arrow-flow{fill:#239c86}.map-arrow-issue{fill:#cd674a}.map-arrow-stopped{fill:#a77238}.map-arrow-idle{fill:#8c9db0}.map-arrow-unknown{fill:#bdc8d3}.map-edge-alert circle{fill:#c65c41;stroke:#fff;stroke-width:1.5}.map-edge-alert text{fill:white;font-size:11px;font-weight:bold}.map-dim{opacity:.2}.map-node{position:absolute;z-index:2;display:grid;grid-template-columns:34px 1fr;grid-template-rows:1fr 19px;column-gap:10px;text-align:left;padding:12px 13px 9px;border:1px solid #cddbe6;border-radius:9px;background:white;box-shadow:0 3px 5px #1b365510;cursor:pointer;overflow:hidden;color:#243f59;transition:border-color .15s,box-shadow .15s}.map-node:hover,.map-node:focus-visible{border-color:#447caa;box-shadow:0 0 0 3px #4c93c522;outline:none}.map-node.map-selected{border:2px solid #417ca8;box-shadow:0 0 0 3px #4c93c51a}.map-node-copy{display:flex;flex-direction:column;min-width:0;gap:5px}.map-node-copy strong{font-size:12px;font-weight:720;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.map-node-sub{font-size:10px;color:#7d90a2;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.map-icon{width:26px;height:26px;align-self:center;fill:none;stroke:#416d8f;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round;grid-row:1/3}.map-node-status{font-size:10px;display:flex;align-items:center;gap:5px;color:#57768e}.map-node-status:before{content:'';width:5px;height:5px;border-radius:50%;background:#a4b4c2}.map-status-ready .map-node-status:before,.map-status-running .map-node-status:before,.map-status-active .map-node-status:before,.map-status-recent .map-node-status:before{background:#309f83}.map-status-issue{border-color:#e0a590;background:#fffaf7}.map-status-issue .map-node-status{color:#b85234}.map-status-issue .map-node-status:before{background:#c36243}.map-status-stopped{border-color:#d5bf9c;background:#fffcf7}.map-status-stale{border-color:#d1bd8f}.map-status-locked{border-style:dashed;background:#f7f9fc}.map-status-unknown .map-node-status{color:#8a99aa}.map-node.map-status-idle{background:#fafdfc}.map-detail{padding:22px 17px;border-left:1px solid #e1e8ef;min-height:280px;background:white;overflow:auto;max-height:880px}.map-detail h3{font-size:18px;line-height:1.45;margin:8px 0 12px;word-break:keep-all}.map-detail p{font-size:12px;line-height:1.75}.map-detail dl{margin:22px 0}.map-detail dt{font-size:10px;color:#8394a5;margin-top:13px}.map-detail dd{font-size:12px;margin:4px 0 0;line-height:1.5;overflow-wrap:anywhere}.map-detail-status{display:inline-block;font-size:11px;border:1px solid #cedee6;padding:4px 8px;border-radius:5px}.map-help{background:#f2f6f9;padding:12px;border-radius:6px;color:#61788e}.map-open{font-size:12px;padding:9px 12px;background:#184866;color:white;border:0;border-radius:5px}.map-member-list{padding:0;list-style:none;font-size:11px;line-height:2.3;color:#667d91}.map-issues{padding:10px 20px;display:flex;flex-wrap:wrap;gap:7px;background:#fffaf7;border-bottom:1px solid #f0e1d9}.map-issue-chip{font-size:10px;padding:4px 8px;border:1px solid #efcebd;border-radius:5px;background:white;color:#a85b41}.map-native{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;color:#697e92}.map-footer{padding:0 20px 14px;font-size:10px;color:#8193a6}.map-paused .map-edge-flow,.map-paused .legend-flow{animation-play-state:paused}.map-hidden{display:none}.obs-main>.obs-panel,.obs-bottom-grid{box-shadow:none}.obs-sources th:nth-child(3){white-space:nowrap}@keyframes map-flow{to{stroke-dashoffset:-28}}@keyframes map-legend-run{to{background-position:16px 0}}@media(prefers-reduced-motion:reduce){.map-edge-flow,.map-legend .legend-flow{animation:none!important}.map-node{transition:none}}@media(max-width:1050px){.map-workspace{grid-template-columns:minmax(0,1fr)}.map-detail{border-left:0;border-top:1px solid #e0e8ef;max-height:320px;min-height:0}.map-detail dl{display:grid;grid-template-columns:110px 1fr;align-items:start;gap:8px}.map-detail dt,.map-detail dd{margin:0}.map-header{padding:20px}.map-stats{grid-template-columns:repeat(2,1fr)}.map-stat:nth-child(2){border-right:0}}@media(max-width:640px){.map-header{display:block}.map-live{margin-top:14px;white-space:normal}.map-nav{padding:0 14px 15px}.map-nav button{font-size:11px;padding:7px 9px}.map-tools{align-items:start;flex-direction:column}.map-stats{gap:16px;padding:16px}.map-native{align-items:start}.map-header h2{font-size:23px}.obs-main{padding-left:12px;padding-right:12px}.map-scroll{max-height:650px}.map-column-head{font-size:12px}.map-stat a{display:block;margin:8px 0 0}}

.precise-main.obs-main{width:min(calc(100% - 48px),1560px);max-width:1560px}@media(max-width:640px){.precise-main.obs-main{width:calc(100% - 24px)}}

.ops-atlas button.map-node{display:grid;grid-template-columns:34px 1fr;grid-template-rows:1fr 19px;gap:0 10px;text-align:left;align-items:stretch;justify-content:normal;padding:12px 13px 9px;border:1px solid #cddbe6;border-radius:9px;background:#fff;color:#243f59}
.ops-atlas button.map-node.map-status-issue{border-color:#e0a590;background:#fffaf7}.ops-atlas button.map-node.map-status-stopped{border-color:#d5bf9c;background:#fffcf7}.ops-atlas button.map-node.map-status-locked{border-style:dashed;background:#f7f9fc}.ops-atlas button.map-node.map-selected{border:2px solid #417ca8}.ops-atlas button.map-open{background:#184866;color:#fff}.ops-atlas button.map-issue-chip{font-size:11px;border-color:#efcebd;color:#a85b41}

/* Native access failures are distinct from missing infrastructure signals. */
.ops-atlas button.map-node.map-status-forbidden{border-style:dashed;border-color:#d5bf9c;background:#fffcf7}.ops-atlas button.map-node.map-status-unavailable{border-style:dashed;border-color:#d1bd8f;background:#faf8f4}.map-detail a.map-open{display:inline-block;text-decoration:none}

.storage-panel{margin:20px 0}.storage-note{font-size:.86rem;color:var(--muted,#526071);margin:0 0 16px}.storage-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.storage-card{border:1px solid #d8e1e7;border-radius:12px;padding:16px;min-width:0;background:#fff}.storage-card h3{font-size:.95rem;margin:0 0 12px}.storage-phase{font-size:1.1rem;font-weight:700;margin:0 0 6px;color:#214f67}.storage-reason,.storage-warning{font-size:.85rem;line-height:1.5;overflow-wrap:anywhere}.storage-warning,.storage-card[data-phase=blocked] .storage-phase,.storage-card[data-phase=unconfigured] .storage-phase{color:#854d0e}.storage-card details{margin-top:16px;font-size:.85rem}.storage-card summary{cursor:pointer;font-weight:600}.storage-card dl{display:grid;grid-template-columns:minmax(85px,.8fr) minmax(0,1.2fr);gap:8px;margin-bottom:0}.storage-card dt{color:#526071}.storage-card dd{margin:0;overflow-wrap:anywhere}.storage-card summary:focus-visible{outline:2px solid #186a99;outline-offset:4px}#storage-checked{font-size:.8rem;color:#526071}@media(max-width:1000px){.storage-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.storage-cards{grid-template-columns:1fr}.storage-panel .obs-panel-head{display:block}}
