:root{--bg:#f7f5f1;--surface:#fff;--surface2:#f1eee7;--line:#e7e2d8;--line2:#efebe3;--ink:#211e1a;--ink2:#6b6459;--ink3:#948d80;--pine:#0e6e5e;--pine-ink:#0a4c41;--pine-soft:#e3f0ec;--amber:#c07a22;--amber-soft:#f6ecdc;--clay:#b0442f;--clay-soft:#f6e4df;--slate:#7c8791;--slate-soft:#edeff0;--r:14px;--r-sm:9px;--shadow:0 1px 2px #211e1a0a, 0 6px 20px #211e1a0d;--border:var(--line);--text:var(--ink);--muted:var(--ink2);--brand:var(--pine);--brand-soft:var(--pine-soft);--green:var(--pine);--red:var(--clay);color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.45}.tnum,.num{font-variant-numeric:tabular-nums}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.app{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--line);flex-shrink:0;width:236px;height:100vh;padding:20px 14px;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:-.02em;align-items:center;gap:9px;padding:6px 8px 18px;font-size:17px;font-weight:800;display:flex}.brand .mk{background:var(--pine);color:#fff;border-radius:7px;place-items:center;width:26px;height:26px;font-size:14px;display:grid}.navgroup{margin-top:14px}.navgroup h4{color:var(--ink3);letter-spacing:.04em;padding:0 8px 6px;font-size:11px;font-weight:700}.navitem{text-align:left;border-radius:var(--r-sm);width:100%;color:var(--ink2);align-items:center;gap:10px;margin-bottom:1px;padding:8px 10px;font-size:14px;font-weight:600;display:flex}.navitem:hover{background:var(--surface2)}.navitem.on,.navitem.active{background:var(--pine-soft);color:var(--pine-ink)}.navitem .ic{text-align:center;opacity:.9;flex-shrink:0;width:18px;font-size:15px}.status-pill{border-radius:var(--r-sm);background:var(--pine-soft);color:var(--pine-ink);align-items:center;gap:8px;margin:4px 6px 12px;padding:10px 11px;font-size:12.5px;font-weight:600;display:flex}.status-pill.err{background:var(--clay-soft);color:var(--clay)}.dot{background:var(--pine);border-radius:50%;flex-shrink:0;width:8px;height:8px;box-shadow:0 0 0 3px #0e6e5e26}.dot.err{background:var(--clay);box-shadow:0 0 0 3px #b0442f26}.main{flex:1;min-width:0;padding:26px 30px 60px}.page-head{margin-bottom:22px}.eyebrow{color:var(--pine);letter-spacing:.02em;font-size:12px;font-weight:700}.page-head h1{letter-spacing:-.03em;margin:3px 0 4px;font-size:25px;font-weight:800}.page-head p{color:var(--ink2);font-size:13.5px}.seg{background:var(--surface2);border-radius:9px;gap:2px;margin-top:14px;padding:3px;display:inline-flex}.seg button{color:var(--ink2);border-radius:7px;padding:6px 13px;font-size:13px;font-weight:600}.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}.card-h{border-bottom:1px solid var(--line2);justify-content:space-between;align-items:center;gap:10px;padding:15px 18px;display:flex}.card-h h3{letter-spacing:-.01em;font-size:15px;font-weight:700}.card-h .sub{color:var(--ink3);font-size:12px;font-weight:500}.card-b{padding:16px 18px}.grid{gap:16px;display:grid}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.kpi{padding:16px 18px}.kpi .lbl{color:var(--ink2);font-size:12.5px;font-weight:600}.kpi .val{letter-spacing:-.03em;margin-top:6px;font-size:30px;font-weight:800}.kpi .val small{color:var(--ink3);margin-left:3px;font-size:14px;font-weight:600}.kpi .delta{margin-top:4px;font-size:12px;font-weight:700}.up{color:var(--pine)}.down{color:var(--clay)}.flat{color:var(--ink3)}.barrow{align-items:center;gap:12px;padding:7px 0;display:flex}.barrow .k{width:74px;color:var(--ink2);flex-shrink:0;font-size:13px;font-weight:600}.track{background:var(--surface2);border-radius:6px;flex:1;height:9px;overflow:hidden}.fill{border-radius:6px;min-width:3px;height:100%}.barrow .v{text-align:right;flex-shrink:0;width:52px;font-size:13px;font-weight:700}.fill.pine{background:var(--pine)}.fill.amber{background:var(--amber)}.fill.slate{background:var(--slate)}.fill.clay{background:var(--clay)}.rank{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:26px;height:26px;font-size:13px;font-weight:800;display:inline-grid}.rank.top{background:var(--pine)}.rank.mid{background:var(--amber)}.rank.out{color:var(--ink3);border:1.5px dashed var(--line);background:0 0}.badge{border-radius:20px;padding:3px 8px;font-size:11.5px;font-weight:700;display:inline-block}.b-main{background:var(--pine-soft);color:var(--pine-ink)}.b-prio{background:var(--amber-soft);color:var(--amber)}.b-norm{background:var(--slate-soft);color:var(--slate)}.b-excl{background:var(--clay-soft);color:var(--clay)}.pill{align-items:center;gap:5px;font-size:12px;font-weight:600;display:inline-flex}.pill.good{color:var(--pine)}.pill.out{color:var(--clay)}.pill.none{color:var(--ink3)}.kwgroup{border:1px solid var(--line2);border-radius:var(--r);background:var(--surface);margin-bottom:10px;overflow:hidden}.kwhead{background:var(--surface2);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;display:flex}.kwhead .kw{font-size:14px;font-weight:700}.kwhead .meta{color:var(--ink3);align-items:center;gap:6px;font-size:12px;display:flex}.centerrow{border-top:1px solid var(--line2);align-items:center;gap:12px;padding:11px 14px;display:flex}.centerrow .cn{flex:1;font-size:13.5px;font-weight:600}.centerrow .top1{color:var(--ink3);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-size:12px;overflow:hidden}.blocks{flex-wrap:wrap;gap:6px;display:flex}.block{border:1px solid var(--line);background:var(--surface);border-radius:9px;min-width:78px;padding:7px 10px}.block .bt{color:var(--ink3);margin-bottom:5px;font-size:10.5px;font-weight:700}.block .bp{align-items:center;gap:6px;display:flex}.block .pos{font-size:15px;font-weight:800}.block.hit{border-color:var(--pine);background:var(--pine-soft)}.block.hit .pos{color:var(--pine-ink)}.block.miss .pos{color:var(--ink3)}.blockcard{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);margin-bottom:12px;overflow:hidden}.blockcard .bh{background:var(--surface2);justify-content:space-between;align-items:center;gap:8px;padding:11px 14px;display:flex}.blockcard .bh .bl{align-items:center;gap:9px;font-size:14px;font-weight:700;display:flex}.blockcard .bh .ix{background:var(--pine);color:#fff;border-radius:6px;flex-shrink:0;place-items:center;width:20px;height:20px;font-size:11px;font-weight:800;display:grid}.blockcard .bh .our{font-size:12px;font-weight:700}.brow{border-top:1px solid var(--line2);align-items:center;gap:10px;padding:8px 14px;font-size:13px;display:flex}.brow .r{text-align:center;width:20px;color:var(--ink3);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:800}.brow .nm{flex:1}.brow.ours{background:var(--amber-soft)}.brow.ours .r{color:var(--amber)}.brow.ours .nm{font-weight:700}.brow .tag{color:var(--amber);font-size:11px;font-weight:800}.brow.ad .nm{color:var(--ink3)}.brow .adlbl{color:var(--ink3);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:10.5px}.ach{font-variant-numeric:tabular-nums;border-radius:6px;padding:2px 8px;font-size:12px;font-weight:800;display:inline-block}.ach.hi{background:var(--pine-soft);color:var(--pine-ink)}.ach.mid{background:var(--amber-soft);color:var(--amber)}.ach.lo{background:var(--clay-soft);color:var(--clay)}.selrow{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.sel,select,input{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:600}select:focus,input:focus,button:focus-visible,.navitem:focus-visible{outline:2px solid var(--pine);outline-offset:1px}.banner{background:var(--amber-soft);color:var(--amber);border:1px solid #ead9be;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;font-size:12.5px;font-weight:600;display:flex}table{border-collapse:collapse;width:100%}th{color:var(--ink3);text-align:left;border-bottom:1px solid var(--line);padding:10px 12px;font-size:11.5px;font-weight:700}td{border-bottom:1px solid var(--line2);padding:12px;font-size:13.5px}tr:last-child td{border-bottom:none}.num{text-align:right}.empty{text-align:center;padding:44px 20px}.empty .em{margin-bottom:10px;font-size:30px}.empty h3{margin-bottom:6px;font-size:16px}.empty p{color:var(--ink2);margin-bottom:16px;font-size:13px}.btn{background:var(--pine);color:#fff;border-radius:9px;padding:9px 16px;font-size:13.5px;font-weight:700;display:inline-block}.btn:hover{filter:brightness(1.05)}.btn.ghost{background:var(--surface2);color:var(--ink)}.btn:disabled{opacity:.5;cursor:default}.topbar,.tabbar,.sheet{display:none}.page{max-width:1120px}.page>h1{letter-spacing:-.03em;margin-bottom:4px;font-size:24px;font-weight:800}.page .sub{color:var(--ink2);margin-bottom:14px;font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cols2{grid-template-columns:repeat(2,1fr)}.page .card>h3{padding:0 0 10px;font-size:15px;font-weight:700}.bar{align-items:center;gap:12px;padding:6px 0;display:flex}.bar .name{width:74px;color:var(--ink2);font-size:13px;font-weight:600}.bar .track{flex:1}.bar .fill{background:var(--pine)}.bar .pct{text-align:right;width:48px;font-size:13px;font-weight:700}.badge.main{background:var(--pine-soft);color:var(--pine-ink)}.badge.top{background:var(--amber-soft);color:var(--amber)}.badge.normal{background:var(--slate-soft);color:var(--slate)}.badge.excl{background:var(--clay-soft);color:var(--clay)}.alert{border-top:1px solid var(--line2);align-items:center;gap:8px;padding:8px 0;font-size:13px;display:flex}.alert:first-child{border-top:none}.page>.card,.page>.grid,.page>.row{margin-bottom:16px}.page .card{padding:16px 18px}.page .card>h3{letter-spacing:-.01em;padding:0 0 10px;font-size:15px;font-weight:700}.grid.kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;display:grid}.card.kpi .label{color:var(--ink2);font-size:12.5px;font-weight:600}.card.kpi .value{letter-spacing:-.03em;margin-top:6px;font-size:26px;font-weight:800}.delta{color:var(--ink3);margin-top:4px;font-size:12px;font-weight:700}button.primary,button.button.primary,.button{background:var(--surface2);color:var(--ink);border-radius:9px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;display:inline-flex}button.primary,button.button.primary{background:var(--pine);color:#fff}button.primary:hover,.button:hover{filter:brightness(1.04)}button:disabled,.button:disabled{opacity:.5;cursor:default;filter:none}.page button:not(.primary):not(.on){border-radius:9px}.page table button{background:var(--surface2);border-radius:8px;padding:5px 11px;font-size:12.5px;font-weight:700}.page table button.primary{background:var(--pine);color:#fff}.field{color:var(--ink2);flex-direction:column;gap:5px;font-size:12px;font-weight:600;display:flex}.field input,.field select,.input,.select{font-weight:500}input[readonly]{color:var(--ink3);background:var(--surface2)}.badge.na{background:var(--slate-soft);color:var(--slate)}.badge.ok{background:var(--pine-soft);color:var(--pine-ink)}.stub{border:1.5px dashed var(--line);border-radius:var(--r);background:var(--surface);text-align:center;color:var(--ink2);padding:36px 20px;font-size:14px;line-height:1.7}@media (width<=768px){.sidebar{display:none}.main{padding:0 0 78px}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex;position:sticky;top:0}.topbar .brand{padding:0;font-size:16px}.topbar .more{color:var(--ink2);font-size:22px}.page-head{padding:20px 16px 0}.grid{padding:0 16px}.card-wrap{padding:16px}.g3,.g2,.g4,.cols2{grid-template-columns:1fr}.page{padding:16px}.tabbar{z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:7px 4px 10px;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--ink3);flex-direction:column;flex:1;align-items:center;gap:3px;font-size:10.5px;font-weight:600;display:flex}.tabbar a .ic{font-size:19px}.tabbar a.on,.tabbar a.active{color:var(--pine)}.tabbar button{color:var(--ink3);flex-direction:column;flex:1;align-items:center;gap:3px;font-size:10.5px;font-weight:600;display:flex}.tabbar button .ic{font-size:19px}.sheet.open{z-index:40;display:block;position:fixed;inset:0}.sheet .scrim{background:#211e1a66;position:absolute;inset:0}.sheet .panel{background:var(--surface);border-radius:18px 18px 0 0;padding:10px 12px 24px;position:absolute;bottom:0;left:0;right:0}.sheet .grip{background:var(--line);border-radius:2px;width:38px;height:4px;margin:8px auto 12px}.sheet .navitem{padding:12px;font-size:15px}}@media (width>=769px){.card-wrap{padding:0}}.exp-kpis{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;margin-bottom:16px;display:grid}.exp-kpi .val{font-size:26px}.exp-kpi-sub{color:var(--ink2);flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12px;display:flex}.exp-kpi-sub b{color:var(--ink);font-weight:800}.exp-card{margin-bottom:16px}.exp-svg{width:100%;height:auto;display:block}.exp-grid{stroke:var(--line2);stroke-width:1px}.exp-axis{fill:var(--ink3);font-size:10px}.exp-legend{color:var(--ink2);flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12px;display:flex}.exp-lg{align-items:center;gap:6px;font-weight:600;display:inline-flex}.exp-lg i{border-radius:2px;width:14px;height:3px;display:inline-block}.exp-lg .sib{color:var(--clay);background:var(--clay-soft);border-radius:5px;padding:1px 5px;font-size:10px;font-style:normal;font-weight:700}.exp-heatwrap{overflow-x:auto}.exp-heat{border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums}.exp-heat th{color:var(--ink3);text-align:center;border:none;padding:2px 4px;font-size:10.5px;font-weight:700}.exp-heat th.kwcol,.exp-heat td.kwcol{text-align:left}.exp-heat td.kwcol{color:var(--ink2);white-space:nowrap;text-overflow:ellipsis;border:none;max-width:180px;padding:2px 8px 2px 2px;font-size:12px;font-weight:600;overflow:hidden}.exp-heat td.hc{text-align:center;color:#fff;border-radius:5px;width:26px;height:22px;padding:0;font-size:11px;font-weight:800}.hc.s-top3{background:var(--pine)}.hc.s-measured{background:var(--pine-soft);color:var(--pine-ink)}.hc.s-out{background:var(--clay-soft)}.hc.s-none{background:var(--surface2)}.filterbar{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:18px;padding:12px 14px;display:flex}.filterbar .fb-grp{align-items:center;gap:8px;display:flex}.filterbar .fb-lbl{color:var(--ink3);letter-spacing:.02em;white-space:nowrap;font-size:11px;font-weight:700}.filterbar input,.filterbar select{padding:7px 10px;font-size:13px}.filterbar .seg{margin-top:0}.filterbar .fb-search{flex:1;min-width:200px}.scope-note{border:1.5px dashed var(--line);border-radius:var(--r);background:var(--surface);text-align:center;color:var(--ink3);margin-bottom:16px;padding:22px;font-size:13.5px}
