/* ============================================================
   LUMINA — 광융합기업 산업지도 프로토타입 (데모)

   [A. 도메인 레퍼런스] 실측
     호갱노노  — 좌측 패널 376px · Pretendard · 잉크 #111827 · 퍼플 #584DE4 · 배경 #F3F4FC
     Airbnb    — 잉크 #222222 · 보조 #6C6C6C · 경계선 #DDDDDD · 배경 #F2F2F2
     카카오맵  — 지도 위 오버레이 패널 · 클러스터 버블 · 재검색 버튼 패턴

   [B. 디자인 레퍼런스] 실측 (작업 무관 · 제품 디자인 정점)
     Linear    — 섹션 패딩 128px · h1 64/64 ls −1.408px w510 · r8/12 ·
                 이징 cubic-bezier(.25,.46,.45,.94) · 빠른 트랜지션 .1s · pill 버튼 h44
     Stripe    — 잉크 #061B31 · 보조 #64748D/#50617A · 퍼플 #533AFD · h1 ls −0.864 w300 · r4
   ============================================================ */

:root{
  /* 잉크 (Stripe 계조) */
  --ink:#061B31;
  --ink-2:#50617A;
  --ink-3:#64748D;
  --ink-4:#9AA5B5;
  --line:#E3E8EF;
  --line-2:#DDDDDD;      /* Airbnb */
  --bg:#F3F4FC;          /* 호갱노노 */
  --bg-2:#F7F9FC;
  --white:#FFFFFF;

  /* 액센트 — 지도·데이터 제품에서 통용되는 퍼플 계열 */
  --brand:#533AFD;       /* Stripe */
  --brand-2:#584DE4;     /* 호갱노노 */
  --brand-soft:#EEEBFF;
  --brand-dark:#4429E8;

  /* 업종 컬러 (광융합 8대 분류) */
  --c1:#533AFD; --c2:#0EA5A5; --c3:#F59E0B; --c4:#EC4899;
  --c5:#3B82F6; --c6:#10B981; --c7:#8B5CF6; --c8:#F43F5E;

  --good:#0F9D58; --good-soft:#E7F7EE;
  --warn:#B7791F; --warn-soft:#FEF6E7;
  --bad:#D93025;  --bad-soft:#FDECEA;

  /* Linear 실측 */
  --r-8:8px; --r-12:12px; --r-4:4px;
  --ease:cubic-bezier(.25,.46,.45,.94);
  --quick:.1s;
  --panel-w:376px;       /* 호갱노노 실측 */
  --header-h:60px;

  --font:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo',sans-serif;
  --mono:'SFMono-Regular',ui-monospace,Menlo,Consolas,monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font);background:var(--white);color:var(--ink);font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow:hidden}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
input,select,textarea{font-family:inherit;font-size:inherit;color:var(--ink)}
img{max-width:100%;display:block}
::selection{background:var(--brand);color:#fff}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:#CBD5E1;border-radius:8px}
::-webkit-scrollbar-track{background:transparent}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hide{display:none!important}
.muted{color:var(--ink-2)}
.faint{color:var(--ink-3)}

/* ============================================================
   헤더
   ============================================================ */
.hd{
  height:var(--header-h);border-bottom:1px solid var(--line);background:var(--white);
  display:flex;align-items:center;gap:18px;padding:0 18px;position:relative;z-index:60;
}
.logo{display:flex;align-items:center;gap:9px;flex-shrink:0}
.logo-mk{
  width:30px;height:30px;border-radius:var(--r-8);display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;font-size:15px;font-weight:800;
  box-shadow:0 4px 12px -3px rgba(83,58,253,.45);
}
.logo b{font-size:16px;font-weight:800;letter-spacing:-.5px;display:block;line-height:1.15}
.logo small{font-size:9.5px;color:var(--ink-3);letter-spacing:.12em;font-weight:700}
.hd-nav{display:flex;gap:2px;margin-left:8px}
.hd-nav a{padding:7px 12px;border-radius:var(--r-8);font-size:13.5px;font-weight:600;color:var(--ink-2);transition:var(--quick)}
.hd-nav a:hover{background:var(--bg);color:var(--ink)}
.hd-nav a.on{background:var(--brand-soft);color:var(--brand-dark)}
.hd-r{margin-left:auto;display:flex;gap:8px;align-items:center}
.badge-proto{
  font-size:10.5px;font-weight:800;padding:4px 10px;border-radius:99px;
  background:var(--warn-soft);color:var(--warn);border:1px solid rgba(183,121,31,.22);
}

/* ============================================================
   2분할 레이아웃 (과업지시서 3.1 ②)
   ============================================================ */
.app{display:grid;grid-template-columns:var(--panel-w) 1fr;height:calc(100vh - var(--header-h))}

/* 좌측 패널 */
.panel{background:var(--white);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.panel-top{padding:14px;border-bottom:1px solid var(--line);flex-shrink:0}
.search{
  display:flex;align-items:center;gap:9px;height:42px;padding:0 13px;
  background:var(--bg);border:1px solid transparent;border-radius:var(--r-8);transition:var(--quick);
}
.search:focus-within{background:var(--white);border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.search input{flex:1;background:none;border:none;outline:none;font-size:14px}
.search input::placeholder{color:var(--ink-4)}

/* 필터 칩 */
.filters{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.fchip{
  padding:6px 11px;border-radius:99px;font-size:12.5px;font-weight:600;
  background:var(--white);border:1px solid var(--line-2);color:var(--ink-2);
  transition:var(--quick);display:inline-flex;align-items:center;gap:5px;
}
.fchip:hover{border-color:var(--ink-3);color:var(--ink)}
.fchip.on{background:var(--ink);border-color:var(--ink);color:#fff}
.fchip .cnt{font-size:11px;opacity:.7}
.fchip .x{font-size:13px;opacity:.75}

.panel-meta{
  padding:10px 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px;
  font-size:12.5px;color:var(--ink-2);flex-shrink:0;background:var(--bg-2);
}
.panel-meta b{color:var(--ink);font-weight:700}
.sort{margin-left:auto;font-size:12.5px;color:var(--ink-2);cursor:pointer;font-weight:600}

/* 기업 리스트 (가상 스크롤 — 비기능 요구사항 4) */
.list{flex:1;overflow-y:auto;min-height:0;position:relative}
.list-inner{position:relative}
.co{
  padding:13px 14px;border-bottom:1px solid var(--line);cursor:pointer;
  transition:background var(--quick);position:absolute;left:0;right:0;
}
.co:hover{background:var(--bg-2)}
.co.on{background:var(--brand-soft)}
.co-top{display:flex;align-items:center;gap:7px}
.co-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.co-nm{font-size:14.5px;font-weight:700;letter-spacing:-.3px;flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-fav{font-size:14px;opacity:.35;flex-shrink:0;transition:var(--quick)}
.co-fav.on{opacity:1}
.co-sub{font-size:12px;color:var(--ink-3);margin-top:3px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.co-tags{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}
.tg{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:var(--r-4);background:var(--bg);color:var(--ink-2)}
.tg.rev{background:var(--good-soft);color:var(--good)}
.tg.est{background:var(--warn-soft);color:var(--warn)}

.empty{padding:50px 20px;text-align:center;color:var(--ink-3);font-size:13px;line-height:1.8}
.empty .ei{font-size:30px;display:block;margin-bottom:10px;opacity:.4}

/* ============================================================
   지도 영역
   ============================================================ */
.map-wrap{position:relative;overflow:hidden;background:#EAEEF4}
.map{
  position:absolute;inset:0;transition:transform .45s var(--ease);transform-origin:center;
  background:
    linear-gradient(rgba(233,238,244,.55),rgba(233,238,244,.55)),
    repeating-linear-gradient(0deg,#DCE3EC 0 1px,transparent 1px 48px),
    repeating-linear-gradient(90deg,#DCE3EC 0 1px,transparent 1px 48px),
    #EEF2F7;
}
.geo{position:absolute;border-radius:44%;opacity:.5}
.geo.land{background:#DCE8DC}
.geo.water{background:#CBDDF0}
.road{position:absolute;background:#fff;opacity:.85}
.road.h{height:6px} .road.v{width:6px}
.road.sm{opacity:.6}
.road.sm.h{height:3px} .road.sm.v{width:3px}

/* 마커 */
.mk{
  position:absolute;transform:translate(-50%,-100%);cursor:pointer;z-index:5;
  transition:transform .2s var(--ease);
}
.mk:hover{transform:translate(-50%,-100%) scale(1.08);z-index:20}
.mk.on{z-index:30}
.mk-pin{
  display:flex;align-items:center;gap:5px;padding:5px 10px;border-radius:99px;
  background:#fff;border:2px solid var(--brand);color:var(--ink);
  font-size:11.5px;font-weight:700;white-space:nowrap;
  box-shadow:0 3px 10px -2px rgba(6,27,49,.28);
}
.mk.on .mk-pin{background:var(--brand);border-color:var(--brand);color:#fff;
  box-shadow:0 6px 18px -3px rgba(83,58,253,.55)}
.mk-ico{width:15px;height:15px;border-radius:50%;display:grid;place-items:center;font-size:8.5px;color:#fff;flex-shrink:0}
.mk-tail{width:2px;height:6px;background:var(--brand);margin:0 auto}

/* 클러스터 (과업지시서 3.1 ① 클러스터링) */
.cl{
  position:absolute;transform:translate(-50%,-50%);cursor:pointer;z-index:4;
  display:grid;place-items:center;border-radius:50%;
  background:rgba(83,58,253,.88);color:#fff;font-weight:800;
  border:3px solid rgba(255,255,255,.9);
  box-shadow:0 4px 16px -2px rgba(83,58,253,.5);
  transition:transform .2s var(--ease);
}
.cl:hover{transform:translate(-50%,-50%) scale(1.09)}
.cl small{display:block;font-size:9px;font-weight:600;opacity:.85;line-height:1}

/* 지도 컨트롤 */
.map-ctl{position:absolute;right:14px;top:14px;display:flex;flex-direction:column;gap:7px;z-index:40}
.mbtn{
  width:36px;height:36px;border-radius:var(--r-8);background:#fff;color:var(--ink);
  display:grid;place-items:center;font-size:15px;font-weight:700;
  box-shadow:0 2px 8px rgba(6,27,49,.16);transition:var(--quick);
}
.mbtn:hover{background:var(--bg-2)}
.mbtn:disabled{opacity:.4;cursor:not-allowed}
.zoom-lv{
  background:#fff;border-radius:var(--r-8);padding:5px 0;text-align:center;
  font-size:10.5px;font-weight:800;color:var(--ink-3);box-shadow:0 2px 8px rgba(6,27,49,.16);
}

/* 현재 영역 재검색 (과업지시서 3.1 ③) */
.research{
  position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:40;
  height:38px;padding:0 18px;border-radius:99px;background:var(--ink);color:#fff;
  font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:7px;
  box-shadow:0 6px 20px -4px rgba(6,27,49,.4);transition:var(--quick);
  opacity:0;pointer-events:none;
}
.research.show{opacity:1;pointer-events:auto}
.research:hover{background:#0B2A47}

/* 범례 */
.legend{
  position:absolute;left:14px;bottom:14px;z-index:40;background:rgba(255,255,255,.95);
  border-radius:var(--r-12);padding:11px 13px;box-shadow:0 4px 16px rgba(6,27,49,.14);
  backdrop-filter:blur(6px);max-width:240px;
}
.legend b{font-size:11px;font-weight:800;color:var(--ink-3);letter-spacing:.04em;display:block;margin-bottom:7px}
.legend-row{display:flex;align-items:center;gap:7px;font-size:11.5px;padding:2px 0;color:var(--ink-2)}
.legend-row i{width:9px;height:9px;border-radius:50%;flex-shrink:0}

/* 상세 패널 (오버레이) */
.detail{
  position:absolute;left:0;top:0;bottom:0;width:var(--panel-w);background:#fff;z-index:50;
  box-shadow:6px 0 24px -8px rgba(6,27,49,.2);display:flex;flex-direction:column;
  transform:translateX(-100%);transition:transform .32s var(--ease);
}
.detail.show{transform:none}
.dt-hd{padding:16px 18px;border-bottom:1px solid var(--line);flex-shrink:0}
.dt-close{position:absolute;top:14px;right:14px;width:30px;height:30px;border-radius:var(--r-8);
  display:grid;place-items:center;color:var(--ink-3);font-size:16px;transition:var(--quick)}
.dt-close:hover{background:var(--bg);color:var(--ink)}
.dt-hd h2{font-size:19px;font-weight:800;letter-spacing:-.6px;line-height:1.35;padding-right:34px}
.dt-hd .sub{font-size:12.5px;color:var(--ink-3);margin-top:5px}
.dt-body{flex:1;overflow-y:auto;padding:16px 18px 22px}
.dt-sec{margin-bottom:20px}
.dt-sec h3{font-size:11.5px;font-weight:800;color:var(--ink-3);letter-spacing:.05em;margin-bottom:9px}
.dt-row{display:flex;gap:12px;font-size:13px;padding:6px 0;border-bottom:1px solid var(--line)}
.dt-row:last-child{border:none}
.dt-row .k{width:74px;flex-shrink:0;color:var(--ink-3)}
.dt-row .v{flex:1;font-weight:600}
.fin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.fin{background:var(--bg-2);border-radius:var(--r-8);padding:11px 10px;text-align:center}
.fin .fl{font-size:10.5px;color:var(--ink-3);font-weight:600}
.fin .fv{font-size:15px;font-weight:800;margin-top:3px;letter-spacing:-.4px}
.fin .fv.na{color:var(--ink-4);font-size:12.5px;font-weight:600}
.dt-btns{display:flex;gap:7px;margin-top:14px}
.btn{
  height:40px;border-radius:var(--r-8);font-size:13.5px;font-weight:700;
  display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:var(--quick);flex:1;
}
.btn-p{background:var(--brand);color:#fff}
.btn-p:hover{background:var(--brand-dark)}
.btn-l{background:#fff;border:1px solid var(--line-2);color:var(--ink)}
.btn-l:hover{background:var(--bg-2)}

/* 출처 뱃지 */
.src-tag{
  display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;
  padding:3px 8px;border-radius:var(--r-4);margin-top:8px;
}
.src-api{background:var(--good-soft);color:var(--good)}
.src-xls{background:var(--warn-soft);color:var(--warn)}
.src-none{background:var(--bad-soft);color:var(--bad)}

/* 토스트 */
.toasts{position:fixed;bottom:20px;right:20px;z-index:300;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.toast{
  background:var(--ink);color:#fff;border-radius:var(--r-8);padding:12px 16px;font-size:13px;
  box-shadow:0 12px 32px -10px rgba(6,27,49,.5);animation:tIn .28s var(--ease);max-width:400px;line-height:1.6;
}
.toast.ok{background:#0B7A46} .toast.warn{background:#8A5A0B} .toast.err{background:#A3231A}
@keyframes tIn{from{opacity:0;transform:translateX(14px)}}

/* 모바일 바텀시트 (과업지시서 3.1 ② 모바일 최적화) */
.sheet-grip{display:none}

@media (max-width:860px){
  body{overflow:auto}
  .app{grid-template-columns:1fr;height:auto}
  .map-wrap{height:52vh;order:1}
  .panel{
    order:2;border-right:none;border-top:1px solid var(--line);
    border-radius:18px 18px 0 0;margin-top:-18px;position:relative;z-index:45;
    background:#fff;box-shadow:0 -6px 20px -8px rgba(6,27,49,.16);
    max-height:none;
  }
  .sheet-grip{display:block;width:38px;height:4px;border-radius:99px;background:#D3DAE3;margin:9px auto 3px}
  .list{overflow:visible;max-height:none}
  .co{position:relative!important;top:auto!important}
  .detail{
    top:auto;bottom:0;left:0;right:0;width:100%;height:76vh;
    border-radius:18px 18px 0 0;transform:translateY(100%);
    box-shadow:0 -8px 28px -8px rgba(6,27,49,.24);
  }
  .detail.show{transform:none}
  .hd-nav{display:none}
  .legend{display:none}
}

/* ============================================================
   관리자 (admin.html)
   ============================================================ */
.adm{display:grid;grid-template-columns:212px 1fr;min-height:100vh;background:var(--bg-2)}
body.admin-body{overflow:auto}
.adm-side{background:#fff;border-right:1px solid var(--line);padding:16px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:3px}
.adm-side .logo{padding:4px 8px 18px}
.adm-nav button{
  width:100%;display:flex;align-items:center;gap:9px;padding:9px 12px;border-radius:var(--r-8);
  font-size:13.5px;font-weight:600;color:var(--ink-2);text-align:left;transition:var(--quick);
}
.adm-nav button:hover{background:var(--bg);color:var(--ink)}
.adm-nav button.on{background:var(--brand-soft);color:var(--brand-dark);font-weight:700}
.adm-nav button .n{margin-left:auto;font-size:10.5px;font-weight:800;background:var(--bad);color:#fff;padding:1px 6px;border-radius:99px}
.adm-cap{font-size:10px;font-weight:800;color:var(--ink-4);letter-spacing:.1em;padding:13px 12px 5px}
.adm-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);font-size:11px;color:var(--ink-3);line-height:1.7}
.adm-foot a{color:var(--brand);font-weight:700}

.adm-main{min-width:0;display:flex;flex-direction:column}
.adm-top{height:56px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;padding:0 22px;position:sticky;top:0;z-index:30}
.adm-top h1{font-size:16px;font-weight:800;letter-spacing:-.4px}
.adm-top .crumb{font-size:12.5px;color:var(--ink-3)}
.adm-top .r{margin-left:auto;display:flex;gap:8px;align-items:center}
.adm-body{padding:20px 22px 50px;flex:1}

.card{background:#fff;border:1px solid var(--line);border-radius:var(--r-12);margin-bottom:16px;overflow:hidden}
.card-hd{padding:14px 18px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}
.card-hd h2{font-size:14px;font-weight:800;letter-spacing:-.3px}
.card-hd .sub{font-size:12px;color:var(--ink-3)}
.card-hd .r{margin-left:auto;display:flex;gap:7px;align-items:center}
.card-bd{padding:18px}

.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:var(--r-12);padding:15px 17px}
.kpi .l{font-size:12px;color:var(--ink-3);font-weight:600}
.kpi .v{font-size:25px;font-weight:800;letter-spacing:-1px;margin-top:4px}
.kpi .s{font-size:11.5px;margin-top:2px;color:var(--ink-3)}
.kpi .s.up{color:var(--good);font-weight:700}
.kpi .s.warn{color:var(--warn);font-weight:700}
.kpi .s.bad{color:var(--bad);font-weight:700}

table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{text-align:left;padding:10px 13px;font-size:11.5px;font-weight:800;color:var(--ink-3);border-bottom:1px solid var(--line);background:var(--bg-2);white-space:nowrap;letter-spacing:.03em}
table.t td{padding:11px 13px;border-bottom:1px solid var(--line);vertical-align:middle}
table.t tr:last-child td{border:none}
table.t tbody tr:hover{background:var(--bg-2)}
.tw{overflow-x:auto}

.pill{font-size:10.5px;font-weight:800;padding:2.5px 9px;border-radius:99px;display:inline-block;white-space:nowrap}
.p-ok{background:var(--good-soft);color:var(--good)}
.p-warn{background:var(--warn-soft);color:var(--warn)}
.p-bad{background:var(--bad-soft);color:var(--bad)}
.p-gray{background:var(--bg);color:var(--ink-2)}
.p-brand{background:var(--brand-soft);color:var(--brand-dark)}

.abtn{height:32px;padding:0 13px;border-radius:var(--r-8);font-size:12.5px;font-weight:700;background:#fff;border:1px solid var(--line-2);transition:var(--quick);display:inline-flex;align-items:center;gap:6px}
.abtn:hover{border-color:var(--ink-3);background:var(--bg-2)}
.abtn.p{background:var(--brand);border-color:var(--brand);color:#fff}
.abtn.p:hover{background:var(--brand-dark)}
.abtn.sm{height:27px;padding:0 10px;font-size:11.5px}

.note{border-radius:var(--r-12);padding:14px 16px;font-size:12.5px;line-height:1.8;margin-bottom:16px;display:flex;gap:10px}
.note.info{background:var(--brand-soft);color:#3A24C4;border:1px solid rgba(83,58,253,.18)}
.note.warn{background:var(--warn-soft);color:#8A5A0B;border:1px solid rgba(183,121,31,.2)}
.note.bad{background:var(--bad-soft);color:#A3231A;border:1px solid rgba(217,48,37,.2)}
.note.ok{background:var(--good-soft);color:#0B7A46;border:1px solid rgba(15,157,88,.2)}
.note b{font-weight:800}

/* 커버리지 바 */
.cov{display:flex;flex-direction:column;gap:13px}
.cov-row{display:grid;grid-template-columns:128px 1fr 96px;gap:12px;align-items:center}
.cov-row .nm{font-size:12.5px;font-weight:700}
.cov-track{height:22px;background:var(--bg);border-radius:var(--r-4);overflow:hidden;display:flex}
.cov-seg{height:100%;transition:width .9s var(--ease);width:0}
.cov-row .vv{text-align:right;font-size:12.5px;font-weight:800}
.cov-row .vv small{display:block;font-size:10.5px;color:var(--ink-3);font-weight:500}

/* 지오코딩 진행 */
.geo-prog{height:22px;background:var(--bg);border-radius:var(--r-4);overflow:hidden;display:flex}
.geo-prog i{height:100%;transition:width .25s linear}

/* 리스크 카드 */
.risk{background:#fff;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:var(--r-12);padding:16px 18px;margin-bottom:12px}
.risk.high{border-left-color:var(--bad)}
.risk.mid{border-left-color:var(--warn)}
.risk.ok{border-left-color:var(--good)}
.risk-t{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.risk-t b{font-size:13.5px;font-weight:800;letter-spacing:-.3px;flex:1}
.risk p{font-size:12.5px;color:var(--ink-2);line-height:1.8}
.risk .src{font-size:11px;color:var(--ink-3);margin-top:9px;padding-top:9px;border-top:1px solid var(--line)}
.risk .fix{margin-top:10px;font-size:12px;color:#0B7A46;background:var(--good-soft);padding:10px 12px;border-radius:var(--r-8);line-height:1.75}
code{font-family:var(--mono);font-size:.92em;background:var(--bg);padding:1px 5px;border-radius:3px;border:1px solid var(--line)}

/* 범위 비교 */
.scope{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.scope-col{border:1px solid var(--line);border-radius:var(--r-12);overflow:hidden}
.scope-col.p1{border-top:3px solid var(--good)}
.scope-col.p2{border-top:3px solid var(--ink-4)}
.scope-hd{padding:13px 15px;border-bottom:1px solid var(--line);background:var(--bg-2)}
.scope-hd b{font-size:14px;font-weight:800;display:block}
.scope-hd span{font-size:11.5px;color:var(--ink-3)}
.scope-bd{padding:13px 15px}
.scope-row{display:flex;gap:9px;font-size:12.5px;padding:7px 0;border-bottom:1px solid var(--line);line-height:1.6}
.scope-row:last-child{border:none}
.scope-row .ic{flex-shrink:0;width:15px}
.scope-col.p1 .ic{color:var(--good)}
.scope-col.p2 .ic{color:var(--ink-4)}

@media (max-width:900px){
  .adm{grid-template-columns:1fr}
  .adm-side{position:sticky;top:0;height:auto;flex-direction:row;align-items:center;overflow-x:auto;padding:10px}
  .adm-side .logo{padding:0 10px 0 4px;flex-shrink:0}
  .adm-side .logo small{display:none}
  .adm-nav{display:flex;gap:4px}
  .adm-nav button{white-space:nowrap;padding:8px 12px}
  .adm-nav button .n{display:none}
  .adm-cap,.adm-foot{display:none}
  .kpis{grid-template-columns:1fr 1fr}
  .scope{grid-template-columns:1fr}
  .adm-body{padding:14px}
  .cov-row{grid-template-columns:90px 1fr 80px;gap:8px}
}
