/* 공항 허브 스타일 — 다크(콕핏) 기본 + 라이트, 시스템폰트 */
:root {
  --bg:#10151d; --card:#1a2230; --line:#2b3648; --ink:#e7edf6; --sub:#8fa0b8;
  --accent:#5b9cf6; --good:#22b07d; --bad:#e4564a; --chip:#232e42;
}
body[data-theme="light"] {
  --bg:#f7f6f2; --card:#ffffff; --line:#e3ded4; --ink:#28323f; --sub:#71808f;
  --accent:#1a56db; --good:#15803d; --bad:#c22f23; --chip:#f0ede6;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Noto Sans KR',sans-serif; font-size:15px; line-height:1.6; }
header { display:flex; align-items:center; justify-content:space-between; padding:14px 18px 10px; max-width:760px; margin:0 auto; }
.brand { display:flex; gap:10px; align-items:center; }
.logo { font-size:26px; }
h1 { font-size:19px; margin:0; }
.tagline { font-size:12px; color:var(--sub); }
.header-actions { display:flex; gap:8px; }
.icon-btn { background:var(--chip); color:var(--ink); border:1px solid var(--line); border-radius:10px; width:38px; height:38px; font-size:16px; cursor:pointer; }
.icon-btn.txt { font-size:12.5px; font-weight:700; width:auto; padding:0 10px; }
main { max-width:760px; margin:0 auto; padding:4px 16px 60px; }
.offline-note { background:#7c5a1433; border:1px solid #a97d2a66; color:#d8b161; border-radius:10px; padding:8px 14px; font-size:13px; margin:8px 0; }
.cards { display:flex; flex-direction:column; gap:14px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 18px; }
.card-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.card-head .icao { font-weight:800; font-size:17px; letter-spacing:.5px; }
.card-head .apt-name { color:var(--sub); font-size:13px; }
.fltcat { margin-left:auto; font-size:11.5px; font-weight:700; padding:2px 10px; border-radius:99px; color:#fff; }
.btn-remove { background:none; border:none; color:var(--sub); font-size:15px; cursor:pointer; padding:2px 4px; }
.sect { margin:10px 0 2px; }
.sect-title { font-size:11.5px; font-weight:700; color:var(--sub); letter-spacing:.8px; margin-bottom:4px; text-transform:uppercase; }
.raw { font-family:ui-monospace,Menlo,monospace; font-size:12px; color:var(--sub); background:var(--chip); border-radius:8px; padding:6px 10px; margin:6px 0; word-break:break-all; cursor:pointer; }
.lines div { font-size:14px; }
.taf-row { display:grid; grid-template-columns:132px 1fr; gap:8px; font-size:13.5px; padding:3px 0; border-top:1px dashed var(--line); }
.taf-row:first-child { border-top:none; }
.taf-when { color:var(--sub); font-size:12.5px; }
.taf-kind { font-weight:700; font-size:12px; color:var(--accent); }
.rwy-table { width:100%; border-collapse:collapse; font-size:13.5px; margin-top:4px; }
.rwy-table td { padding:3px 8px 3px 0; }
.rwy-table .rwy { font-weight:700; font-family:ui-monospace,Menlo,monospace; }
.hw { color:var(--good); } .tw { color:var(--bad); font-weight:700; }
.add-form { display:flex; gap:8px; margin:20px 0 8px; }
.add-form input { flex:1; background:var(--card); border:1px solid var(--line); color:var(--ink); border-radius:12px; padding:10px 14px; font-size:15px; text-transform:uppercase; }
.add-form button { background:var(--accent); color:#fff; border:none; border-radius:12px; padding:0 20px; font-weight:700; cursor:pointer; }
.rwy-input { display:flex; gap:6px; margin-top:4px; }
.rwy-input input { flex:1; background:var(--chip); border:1px solid var(--line); color:var(--ink); border-radius:8px; padding:5px 10px; font-size:13px; }
.rwy-input button { background:var(--chip); border:1px solid var(--line); color:var(--ink); border-radius:8px; padding:0 12px; font-size:12.5px; cursor:pointer; }
.disclaimer { font-size:12px; color:var(--sub); text-align:center; margin-top:22px; }
.updated { font-size:11.5px; color:var(--sub); margin-left:auto; }
.err { color:var(--bad); font-size:13px; }

/* ── 탭/내 비행 UI (v0.2) ── */
.tabs { display:flex; gap:8px; max-width:760px; margin:0 auto; padding:2px 16px 10px; }
.tab { flex:1; background:var(--chip); color:var(--sub); border:1px solid var(--line); border-radius:12px; padding:9px 0; font-size:14.5px; font-weight:700; cursor:pointer; }
.tab-on { background:var(--accent); color:#fff; border-color:var(--accent); }
#view { display:flex; flex-direction:column; gap:14px; }
details.card { padding:0; overflow:hidden; }
details.card > summary.card-sum { list-style:none; cursor:pointer; padding:13px 18px; font-weight:800; font-size:15px; display:flex; align-items:center; }
details.card > summary.card-sum::after { content:'▾'; margin-left:auto; color:var(--sub); transition:transform .15s; }
details.card:not([open]) > summary.card-sum::after { transform:rotate(-90deg); }
.card-body { padding:2px 18px 16px; }
.card-body .card { margin-top:10px; }
.kv { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:8px; margin:10px 0 2px; }
.kv-item { background:var(--chip); border-radius:10px; padding:7px 10px; }
.kv-k { font-size:11px; color:var(--sub); letter-spacing:.4px; }
.kv-v { font-size:14.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.leg { font-size:18px; }
.leg-route { font-weight:800; letter-spacing:.3px; }
.leg-date { color:var(--sub); font-size:13px; }
.data-table { width:100%; border-collapse:collapse; font-size:13.5px; margin:8px 0; }
.data-table th { text-align:left; font-size:11px; color:var(--sub); font-weight:700; padding:4px 8px 4px 0; border-bottom:1px solid var(--line); }
.data-table td { padding:5px 8px 5px 0; border-bottom:1px dashed var(--line); }
.data-table .num { font-variant-numeric:tabular-nums; }
.row-strong td { font-weight:800; }
.row-planned td { background:color-mix(in srgb, var(--accent) 14%, transparent); font-weight:800; }
.rte { font-family:ui-monospace,Menlo,monospace; font-size:11.5px; color:var(--sub); }
.note { background:var(--chip); border-radius:10px; padding:7px 12px; font-size:13px; margin:7px 0; }
.warn-note { color:#d8b161; }
.role { font-size:10.5px; font-weight:800; letter-spacing:.8px; background:var(--accent); color:#fff; border-radius:6px; padding:1px 7px; }
.paste-box { background:var(--card); border:1.5px dashed var(--line); border-radius:16px; padding:22px; text-align:center; }
.paste-box h2 { font-size:17px; margin:2px 0 6px; }
.ofp-input { width:100%; min-height:200px; background:var(--chip); color:var(--ink); border:1px solid var(--line); border-radius:12px; padding:12px; font-family:ui-monospace,Menlo,monospace; font-size:12px; margin:12px 0; resize:vertical; }
button.primary { background:var(--accent); color:#fff; border:none; border-radius:12px; padding:11px 22px; font-weight:800; font-size:14.5px; cursor:pointer; }
.flight-actions { display:flex; gap:8px; justify-content:flex-end; }
.chip { background:var(--chip); color:var(--sub); border:1px solid var(--line); border-radius:99px; padding:5px 13px; font-size:12.5px; cursor:pointer; }
.chip-on { color:var(--ink); border-color:var(--accent); font-weight:700; }
.card-toggles { display:flex; gap:6px; flex-wrap:wrap; align-items:center; padding:4px 2px; }
.ofp-raw { font-family:ui-monospace,Menlo,monospace; font-size:11px; color:var(--sub); background:var(--chip); border-radius:10px; padding:12px; overflow-x:auto; max-height:420px; white-space:pre; }
.sub-line { font-size:13.5px; color:var(--sub); }
.tl-table td:first-child { color:var(--ink); }

/* ── PDF 드롭존 + 히어로 (v0.3) ── */
.dropzone { border:2px dashed var(--line); border-radius:16px; padding:34px 20px; cursor:pointer; transition:border-color .15s, background .15s; }
.dropzone.drag, .dropzone:hover { border-color:var(--accent); background:color-mix(in srgb, var(--accent) 7%, transparent); }
.drop-icon { font-size:44px; margin-bottom:6px; }
.drop-progress { margin:12px 0 2px; color:var(--accent); font-weight:700; font-size:14px; }
.paste-alt { margin-top:14px; text-align:left; }
.paste-alt > summary { color:var(--sub); font-size:13px; cursor:pointer; text-align:center; list-style:none; }
.paste-alt > summary::before { content:'▸ '; }
.paste-alt[open] > summary::before { content:'▾ '; }
.hero { padding:4px 0 2px; }
.hero-route { display:flex; align-items:center; gap:14px; font-size:30px; font-weight:800; letter-spacing:1px; }
.hero-arrow { color:var(--accent); font-size:20px; }
.hero-sub { color:var(--sub); font-size:13px; margin:2px 0 10px; }
.hero-bar { display:flex; align-items:center; gap:10px; margin:4px 0 8px; }
.hero-time { font-weight:800; font-size:15px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.hero-track { flex:1; height:2px; background:var(--line); border-radius:2px; position:relative; }
.hero-plane { position:absolute; top:-9px; left:50%; transform:translateX(-50%); color:var(--accent); font-size:14px; }

/* ── v0.4: 지도·NOTAM·SR·GPS·FPL ── */
.swmap { display:block; border-radius:12px; background:#0b1220; }
.swmap-sea { fill:#0b1220; }
body[data-theme="light"] .swmap-sea { fill:#e8f0f8; }
.swmap-grid line { stroke:#1f2b3d; stroke-width:.6; }
body[data-theme="light"] .swmap-grid line { stroke:#cfd9e6; }
.swmap-gl { fill:#3b4a63; font-size:9px; }
.swmap-coast path { fill:none; stroke:#3a4d6b; stroke-width:1; }
body[data-theme="light"] .swmap-coast path { stroke:#8aa0bb; }
.swmap-route { fill:none; stroke:#5b9cf6; stroke-width:2; }
.swmap-sr { fill:none; stroke:#a855f7; stroke-width:7; stroke-opacity:.55; stroke-linecap:round; }
.swmap-wpt { fill:#cfe0ff; } .swmap-wpt.fir { fill:#f59e0b; }
.swmap-lbl { fill:#9fb2cc; font-size:9px; } .swmap-lbl.b { fill:#e7edf6; font-weight:700; font-size:10px; }
.swmap-lbl.apt { fill:#22b07d; font-weight:800; } .swmap-lbl.notam { fill:#f87171; font-size:8.5px; }
.swmap-apt { fill:#22b07d; }
.swmap-notam { fill:rgba(248,113,113,.35); stroke:#f87171; stroke-width:1.2; }
.swmap-notam.direct { fill:rgba(248,113,113,.7); stroke:#fff; }
.swmap-trail { fill:none; stroke:#38bdf8; stroke-width:1.5; stroke-dasharray:3 3; }
.swmap-plane { fill:#38bdf8; font-size:18px; text-anchor:middle; dominant-baseline:central; filter:drop-shadow(0 0 3px #000); }
.map-legend { display:flex; gap:12px; flex-wrap:wrap; font-size:11.5px; color:var(--sub); margin-top:6px; }
.map-legend i { display:inline-block; width:14px; height:3px; vertical-align:middle; margin-right:4px; border-radius:2px; }
.gps-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(96px,1fr)); gap:6px; margin-top:8px; }
.gps-grid div { background:var(--chip); border-radius:8px; padding:5px 8px; }
.gps-grid span { display:block; font-size:10px; color:var(--sub); }
.gps-grid b { font-variant-numeric:tabular-nums; font-size:14px; }
.btn-sm { background:var(--chip); color:var(--ink); border:1px solid var(--line); border-radius:10px; padding:7px 12px; font-size:13px; font-weight:700; cursor:pointer; }
.btn-sm.on { background:var(--accent); color:#fff; border-color:var(--accent); }
.sr-row { border:1px solid #7e22ce66; background:#581c8733; border-radius:10px; padding:7px 11px; margin:6px 0; }
.sr-row b { color:#e9d5ff; }
.sr-big { font-size:15px; font-weight:800; }
.ok-note { background:#14532d33; border:1px solid #16a34a55; color:#86efac; border-radius:10px; padding:7px 11px; font-size:13px; }
.ntabs { display:flex; gap:6px; flex-wrap:wrap; margin:4px 0 8px; }
.ntab { background:var(--chip); color:var(--sub); border:1px solid var(--line); border-radius:99px; padding:4px 11px; font-size:12.5px; cursor:pointer; }
.ntab.on { color:#fff; background:var(--accent); border-color:var(--accent); }
.ntab small { opacity:.8; margin-left:3px; }
.ncat { font-size:11.5px; font-weight:800; color:var(--sub); letter-spacing:.6px; margin:10px 0 4px; text-transform:uppercase; }
.nitem { border:1px solid var(--line); border-radius:10px; padding:0; margin:5px 0; background:var(--card); }
.nitem > summary { list-style:none; cursor:pointer; padding:8px 11px; display:grid; grid-template-columns:auto 1fr; gap:4px 8px; align-items:center; }
.nitem.off { opacity:.55; }
.nbadge { font-size:10px; font-weight:800; border-radius:6px; padding:1px 6px; white-space:nowrap; }
.nbadge.act { background:#14532d; color:#86efac; } .nbadge.off { background:var(--chip); color:var(--sub); }
.nbadge.direct { background:#7f1d1d; color:#fecaca; } .nbadge.near { background:#78350f; color:#fde68a; }
.nid { font-family:ui-monospace,Menlo,monospace; font-size:12px; color:var(--accent); }
.nhead { font-weight:700; font-size:13.5px; grid-column:1 / -1; }
.nsub { font-size:12px; color:var(--sub); grid-column:1 / -1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nbody { padding:4px 11px 10px; font-size:12.5px; }
.nbody .raw { white-space:pre-wrap; cursor:default; }
.nlit { background:var(--chip); border-radius:8px; padding:6px 9px; font-size:12px; line-height:1.6; margin:4px 0; }
.ngloss { display:flex; flex-wrap:wrap; gap:4px; margin:4px 0; }
.ngloss span { font-size:11px; background:var(--chip); border:1px solid var(--line); border-radius:6px; padding:1px 6px; }
.fcaps { display:flex; flex-wrap:wrap; gap:5px; margin:6px 0; }
.fcap { font-size:11.5px; border-radius:99px; padding:3px 9px; border:1px solid var(--line); background:var(--chip); }
.fcap.ok { border-color:#16a34a66; color:#86efac; } .fcap.no { color:var(--sub); text-decoration:line-through; } .fcap.warn { border-color:#f59e0b88; color:#fde68a; }
body[data-theme="light"] .fcap.ok { color:#15803d; } body[data-theme="light"] .fcap.warn { color:#b45309; }
.fsec { border:1px solid var(--line); border-radius:10px; padding:8px 11px; margin:7px 0; }
.fsec h4 { margin:0 0 5px; font-size:12.5px; } .fsec h4 code { color:var(--sub); font-weight:400; margin-left:6px; }
.frow { display:grid; grid-template-columns:auto 1fr; gap:3px 10px; font-size:12.5px; }
.frow b { font-family:ui-monospace,Menlo,monospace; color:#fde68a; white-space:nowrap; }
body[data-theme="light"] .frow b { color:#92400e; }
.fchips { display:flex; flex-wrap:wrap; gap:4px; }
.fchip { font-size:11px; border-radius:6px; padding:2px 7px; background:var(--chip); border:1px solid var(--line); }
.fchip b { margin-right:4px; }
.fuel-in { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:8px 0; }
.fuel-in input { width:110px; background:var(--chip); border:1px solid var(--line); color:var(--ink); border-radius:8px; padding:6px 9px; font-size:14px; font-variant-numeric:tabular-nums; }
.kv-item.bad .kv-v { color:var(--bad); } .kv-item.good .kv-v { color:var(--good); }
.sect-actions { display:flex; gap:8px; flex-wrap:wrap; margin:6px 0 2px; }
@media print {
  header, nav, .flight-actions, .card-toggles, .disclaimer, .btn-sm, .add-form { display:none !important; }
  body { background:#fff; color:#000; }
  details.card { break-inside:avoid; border:1px solid #999; }
  details.card > summary.card-sum::after { content:''; }
}

/* ── Leaflet 지도 (v0.5) ── */
:root { --map-coast:#5b6f8f; --map-grid:#243147; }
body[data-theme="light"] { --map-coast:#7a90ad; --map-grid:#d6dfea; }
.map-host { height:360px; border-radius:12px; overflow:hidden; background:#0b1220; }
body[data-theme="light"] .map-host { background:#e8f0f8; }
.leaflet-container { background:transparent; font-family:inherit; }
.leaflet-control-zoom a { background:var(--card); color:var(--ink); border-color:var(--line); }
.leaflet-control-attribution { background:rgba(0,0,0,.4); color:#aaa; font-size:9px; }
.leaflet-popup-content-wrapper { background:var(--card); color:var(--ink); border-radius:10px; font-size:12.5px; }
.leaflet-popup-tip { background:var(--card); }
.swmap-pop { color:var(--sub); font-size:11.5px; }
.swmap-tip { background:transparent; border:none; box-shadow:none; color:#e7edf6; font-size:10px; font-weight:700; text-shadow:0 0 3px #000,0 0 3px #000; padding:0; }
.swmap-tip.apt { color:#86efac; font-size:11px; }
body[data-theme="light"] .swmap-tip { color:#1f2937; text-shadow:0 0 3px #fff,0 0 3px #fff; }
.swmap-tip::before { display:none; }
.swmap-plane { color:#38bdf8; font-size:20px; line-height:24px; text-align:center; filter:drop-shadow(0 0 3px #000); }
.swmap-turb { font-size:16px; line-height:20px; text-align:center; }
.map-ctrl { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:8px; }
.map-ctrl label { font-size:12.5px; color:var(--sub); display:flex; align-items:center; gap:5px; }

.delay-in { width:72px; background:var(--chip); border:1px solid var(--line); color:var(--ink); border-radius:8px; padding:4px 8px; font-size:13px; }
.star { background:none; border:none; color:var(--sub); font-size:15px; cursor:pointer; padding:0 4px; }
.star.on { color:#fbbf24; }

.card-help { margin:2px 0 8px; } .card-help > summary { font-size:12px; color:var(--accent); cursor:pointer; list-style:none; } .card-help > summary::before { content:'💡 '; }
.pos-sel { background:var(--chip); color:var(--ink); border:1px solid var(--line); border-radius:8px; padding:5px 8px; font-size:13px; max-width:200px; }
.tl-table tr.past { opacity:.45; } .tl-table tr.next td { background:color-mix(in srgb, var(--accent) 14%, transparent); font-weight:700; }
.tl-table .ti { font-weight:700; }
.taf-row.taf-hit { background:color-mix(in srgb, var(--accent) 12%, transparent); border-radius:6px; }
.taf-row.taf-warn { background:#78350f33; border-radius:6px; }
.banner { position:fixed; left:50%; top:12px; transform:translateX(-50%); z-index:3000; max-width:92vw; background:#7c2d12; color:#fff; border:2px solid #fb923c; border-radius:14px; padding:10px 14px; box-shadow:0 8px 30px rgba(0,0,0,.6); display:flex; gap:10px; align-items:center; font-size:14px; font-weight:700; }
.banner button { background:#fff; color:#7c2d12; border:0; border-radius:8px; padding:6px 10px; font-weight:800; }
.update-bar { position:sticky; top:0; z-index:2000; background:var(--accent); color:#fff; padding:8px 14px; font-size:13.5px; font-weight:700; display:flex; gap:10px; align-items:center; justify-content:center; }
.update-bar button { background:#fff; color:var(--accent); border:0; border-radius:8px; padding:4px 10px; font-weight:800; }

/* 공항 기상: 한눈에 (v0.7) */
.wx-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr)); gap:10px; }
.card.wxc { padding:11px 13px; margin-top:0 !important; }
.wxc .card-head { margin-bottom:4px; flex-wrap:wrap; gap:6px; }
.wxc .card-head .icao { font-size:15.5px; }
.wxc .card-head .updated { margin-left:auto; font-size:11.5px; color:var(--sub); }
.wxc .fltcat { font-size:11px; padding:1px 7px; margin-left:0; }
.wx-line { font-size:14px; font-weight:600; line-height:1.45; cursor:pointer; font-variant-numeric:tabular-nums; }
.wx-rwy { display:flex; flex-wrap:wrap; gap:5px; margin:5px 0 2px; }
.rwy-chip { font-size:12px; background:var(--chip); border-radius:7px; padding:2px 8px; }
.rwy-chip b { font-family:ui-monospace,Menlo,monospace; margin-right:2px; }
.rwy-chip.tw { color:var(--bad); }
.wx-taf { margin-top:5px; font-size:12.5px; line-height:1.45; }
.taf-lbl { font-size:10.5px; font-weight:700; color:var(--sub); letter-spacing:.5px; }
.taf-mini { padding:1px 0; } .taf-mini b { color:var(--accent); font-size:11.5px; }
.taf-mini.taf-warn { background:#78350f33; border-radius:5px; padding:1px 5px; }
.wx-more { margin-top:5px; } .wx-more > summary { font-size:11.5px; color:var(--accent); cursor:pointer; }
/* FPL 원문 주석 */
.fpl-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 6px; }
.fpl-bar .sub-line { flex:1; min-width:200px; }
.fpl-anno { font-family:ui-monospace,Menlo,monospace; font-size:13px; }
.fl-row { display:grid; grid-template-columns:40px 1fr; gap:6px; align-items:start; padding:3px 0; border-top:1px dashed var(--line); }
.fl-row:first-child { border-top:none; }
.fl-item { font:inherit; font-size:10.5px; color:var(--sub); background:var(--chip); border:1px solid var(--line); border-radius:6px; padding:6px 0; cursor:pointer; touch-action:manipulation; }
.fl-item.on { color:var(--ink); border-color:var(--accent); }
.fl-code { line-height:1.9; word-break:break-word; }
.fl-dash { color:var(--sub); }
.fl-tok { font:inherit; color:var(--ink); background:none; border:none; border-bottom:1px dotted var(--sub); padding:5px 3px; margin:0 1px; touch-action:manipulation; margin:0; cursor:pointer; border-radius:3px; }
.fl-tok:hover { background:var(--chip); }
.fl-tok.on { background:color-mix(in srgb, var(--accent) 25%, transparent); border-bottom-color:var(--accent); }
.fl-notes { margin-left:46px; }
.fl-note { font-family:system-ui,-apple-system,sans-serif; font-size:12.5px; background:var(--chip); border-left:3px solid var(--accent); border-radius:0 7px 7px 0; padding:4px 9px; margin:3px 0; cursor:pointer; }
.fl-note b { font-family:ui-monospace,Menlo,monospace; color:#fde68a; margin-right:4px; }
body[data-theme="light"] .fl-note b { color:#92400e; }
.fl-note-title { border-left-color:var(--sub); color:var(--sub); }
@media print { .fl-tok { border-bottom:none; padding:0; } .fl-note { break-inside:avoid; } .disclaimer { display:block !important; } }

/* OFP 자체 검산 (v0.8) */
.chk-badge { margin-left:8px; font-size:11px; font-weight:700; border-radius:99px; padding:1px 7px; vertical-align:middle; }
.chk-badge.chk-ok { color:var(--good); border:1px solid color-mix(in srgb, var(--good) 45%, transparent); }
.chk-badge.chk-bad { color:#fff; background:#d97706; }
.chk-warn b { display:block; margin-bottom:3px; } .chk-warn div { font-size:12.5px; font-variant-numeric:tabular-nums; }
.chk-sum { margin:8px 0 2px; font-size:12.5px; } .chk-sum > summary { cursor:pointer; font-weight:600; }
.chk-sum.chk-ok > summary { color:var(--good); } .chk-sum.chk-bad > summary { color:#d97706; }
.chk-row { font-size:12px; padding:2px 0; font-variant-numeric:tabular-nums; } .chk-row-bad { color:#d97706; font-weight:600; }

/* 기기 저장 지키기 (v0.9) */
.install-note { border-left:3px solid var(--accent); text-align:left; } .install-note b { display:block; margin-bottom:2px; }
.wipe-hint { margin-top:10px; font-size:12px; }
.stor-panel { margin:12px 2px 4px; font-size:12.5px; } .stor-panel > summary { cursor:pointer; color:var(--sub); font-weight:600; }
.stor-panel.stor-warn > summary { color:#d97706; }
.stor-body { padding:6px 2px; } .stor-row { padding:3px 0; line-height:1.45; } .stor-row.bad { color:#d97706; } .stor-row.tip { color:var(--sub); } .stor-body .chip { margin:4px 0; }
.stor-ic { display:inline-block; width:18px; font-weight:700; } .stor-row b { margin-right:4px; }
@media print { .install-note, .stor-panel, .wipe-hint, .unsaved-note { display:none !important; } }
