:root{
 --bg:#0f1b2d;--bg2:#16263d;--panel:#0c1626;--card:#ffffff;--ink:#1f2d3d;--ink2:#334155;
 --muted:#64748b;--brand:#2f5496;--brand2:#3b6bd6;--accent:#0ea5a3;--new:#e11d48;
 --line:#e2e8f0;--chip:#eef3fb;--side:#0d1a2c;--sideink:#c3d3ea;--sidehov:#1c3050;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow-x:hidden}
body{max-width:100vw}
body{font-family:'Malgun Gothic','맑은 고딕',-apple-system,Segoe UI,Roboto,sans-serif;
 background:linear-gradient(160deg,#0f1b2d,#1b3050 60%,#20406e);color:var(--ink)}
.app{display:flex;min-height:100vh;max-width:1320px;margin:0 auto}
/* ===== 좌측 사이드바 ===== */
.side{width:270px;flex:0 0 270px;background:var(--side);color:var(--sideink);
 padding:18px 14px 30px;position:sticky;top:44px;align-self:flex-start;height:calc(100vh - 44px);overflow-y:auto;
 border-right:1px solid rgba(255,255,255,.06)}
.brand{display:flex;align-items:center;gap:10px;padding:4px 6px 14px}
.brand .logo{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--brand),var(--brand2));
 display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto;box-shadow:0 6px 16px rgba(59,107,214,.4)}
.brand h1{font-size:18px;font-weight:800;color:#fff;letter-spacing:-.4px;line-height:1.1}
.brand .sub{font-size:10.5px;color:#8ba6cc;font-weight:600;margin-top:2px}
.search{width:100%;border:1px solid rgba(255,255,255,.12);background:#0a1524;color:#e8f0fb;
 border-radius:10px;padding:9px 12px;font-size:13px;margin:2px 2px 14px;outline:none}
.search::placeholder{color:#6f86a8}
.search:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(59,107,214,.25)}
.sgrp{margin:0 2px 12px}
.sgrp .lbl{font-size:11px;font-weight:800;color:#7f97ba;letter-spacing:.4px;padding:6px 8px;text-transform:uppercase}
.snav{display:flex;flex-direction:column;gap:2px}
.sitem{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:9px;cursor:pointer;
 font-size:13px;color:var(--sideink);line-height:1.3;transition:background .12s,color .12s;border:1px solid transparent}
.sitem:hover{background:var(--sidehov);color:#fff}
.sitem.active{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;border-color:rgba(255,255,255,.12)}
.sitem .si{width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.08);display:flex;
 align-items:center;justify-content:center;font-size:15px;flex:0 0 auto}
.sitem.active .si{background:rgba(255,255,255,.2)}
.sitem .stt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sitem .sdot{width:7px;height:7px;border-radius:50%;background:var(--new);flex:0 0 auto}
.sitem .stool{font-size:9px;font-weight:800;color:#0ea5a3;background:rgba(14,165,163,.16);padding:1px 5px;border-radius:5px;flex:0 0 auto}
.sfoot{font-size:10.5px;color:#6f86a8;padding:14px 8px 0;line-height:1.6;border-top:1px solid rgba(255,255,255,.06);margin-top:10px}
/* ===== 메인 ===== */
.main{flex:1;min-width:0;padding:26px 26px 60px}
.top{color:#fff;margin-bottom:18px}
.top h2{font-size:23px;font-weight:800;letter-spacing:-.5px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.top .ver{font-size:11px;font-weight:700;color:#9fb3d1;background:rgba(255,255,255,.08);padding:3px 9px;border-radius:999px}
.top p{color:#c3d3ea;margin-top:9px;font-size:13.5px;line-height:1.65;max-width:760px}
.stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.stat{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.08);border-radius:12px;
 padding:9px 15px;color:#e8f0fb;min-width:96px}
.stat b{display:block;font-size:19px;font-weight:800;line-height:1.1}
.stat span{font-size:11px;color:#9fb3d1;font-weight:600}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 6px}
.chip{font-size:12.5px;font-weight:700;color:#c3d3ea;background:rgba(255,255,255,.07);
 border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:6px 14px;cursor:pointer;transition:.12s}
.chip:hover{background:rgba(255,255,255,.15);color:#fff}
.chip.on{background:#fff;color:var(--brand);border-color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-top:14px}
.seclabel{color:#e8f0fb;font-size:15px;font-weight:800;margin:18px 2px 2px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.seclabel span{font-size:11.5px;font-weight:600;color:#9fb3d1}
.moretog{margin:22px 0 2px;text-align:center}
.card{background:var(--card);border-radius:16px;padding:18px 18px 15px;position:relative;
 box-shadow:0 8px 24px rgba(8,20,40,.28);border:1px solid rgba(255,255,255,.06);
 display:flex;flex-direction:column;gap:11px;scroll-margin-top:16px;transition:transform .12s,box-shadow .12s,outline-color .2s;outline:2px solid transparent}
.card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(8,20,40,.36)}
.card.flash{outline-color:var(--accent);box-shadow:0 0 0 4px rgba(14,165,163,.25),0 16px 34px rgba(8,20,40,.36)}
.ct{display:flex;align-items:center;gap:12px}
.ic{width:46px;height:46px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand2));
 display:flex;align-items:center;justify-content:center;font-size:23px;flex:0 0 auto}
.card.appc .ic{background:linear-gradient(135deg,#0ea5a3,#12b981)}
.tt{font-size:16px;font-weight:800;color:var(--ink);line-height:1.35}
.no{font-size:11px;color:var(--muted);font-weight:700}
.cat-tag{font-size:10.5px;font-weight:700;color:var(--brand);background:var(--chip);padding:2px 8px;border-radius:999px;display:inline-block}
.badge{position:absolute;top:14px;right:14px;background:var(--new);color:#fff;font-size:10px;font-weight:800;
 padding:3px 8px;border-radius:999px;letter-spacing:.5px}
.badge.appbadge{background:#0ea5a3}
.purpose{font-size:13px;color:var(--ink2);line-height:1.55}
.io{font-size:12px;color:var(--muted);background:var(--chip);border-radius:8px;padding:7px 10px;line-height:1.5}
.cmd{font-size:12.5px;color:#0f2749;background:#f4f7fc;border:1px dashed #b9c9e6;border-radius:10px;
 padding:10px 12px;line-height:1.55;white-space:pre-wrap;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s,opacity .2s,padding .2s;padding-top:0;padding-bottom:0}
.cmd.show{max-height:320px;opacity:1;padding-top:10px;padding-bottom:10px}
.row{display:flex;gap:8px;align-items:center;margin-top:auto;flex-wrap:wrap}
.btn{appearance:none;border:0;cursor:pointer;font-weight:800;font-size:13px;border-radius:10px;padding:9px 14px;
 background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;display:inline-flex;align-items:center;gap:7px;transition:filter .12s,background .2s}
.btn:hover{filter:brightness(1.08)}
.btn.run{background:linear-gradient(135deg,#0ea5a3,#12b981)}
.btn.copied{background:linear-gradient(135deg,#0ea5a3,#12b981)}
.btn.ghost{background:#eef3fb;color:var(--brand)}
.btn.ghost:hover{background:#dfe9fa}
.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}
.empty{color:#9fb3d1;text-align:center;padding:50px 20px;font-size:14px;grid-column:1/-1}
.foot{color:#9fb3d1;font-size:12px;margin-top:30px;line-height:1.7}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);opacity:0;z-index:120;
 background:#0ea5a3;color:#fff;padding:11px 18px;border-radius:12px;font-weight:700;font-size:14px;
 box-shadow:0 10px 30px rgba(0,0,0,.3);transition:.25s;pointer-events:none;max-width:90vw;text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:#e11d48}
.menu-btn{display:none}
/* ===== 도구 오버레이 ===== */
.ov{position:fixed;inset:0;z-index:75;background:#f7f9fc;
 display:none;overflow-y:auto;padding:0}
.ov.show{display:block}
.sheet{background:#f7f9fc;border-radius:0;width:100%;max-width:none;box-shadow:none;
 overflow:visible;margin:0;min-height:100%;padding-bottom:82px}
.ov .sheet .hd{position:sticky;top:0;z-index:3}
.amenu{display:grid;gap:12px;margin-top:6px}
.acard{text-align:left;background:#fff;border:1px solid #e6ebf2;border-radius:14px;padding:16px 18px;cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:.12s}
.acard:hover{border-color:#0ea5a3;box-shadow:0 6px 18px rgba(15,40,80,.08)}
.acard .ai{font-size:24px}
.acard b{font-size:16px;color:#1f2d3d}
.acard small{color:#64748b;font-size:12.5px}
.sheet .hd{background:linear-gradient(135deg,#12324f,#1c467a);color:#fff;padding:18px 22px;display:flex;align-items:center;gap:12px}
.sheet .hd .hi{width:42px;height:42px;border-radius:11px;background:rgba(255,255,255,.14);display:flex;align-items:center;justify-content:center;font-size:22px;flex:0 0 auto}
.sheet .hd h3{font-size:18px;font-weight:800;line-height:1.25}
.sheet .hd .hs{font-size:11.5px;color:#b7cbe6;margin-top:2px}
.sheet .hd .x{margin-left:auto;background:rgba(255,255,255,.14);border:0;color:#fff;width:34px;height:34px;border-radius:9px;font-size:18px;cursor:pointer;flex:0 0 auto}
.sheet .hd .x:hover{background:rgba(255,255,255,.26)}
.bd{padding:20px 22px 24px;max-height:calc(100vh - 150px);overflow-y:auto}
.step{font-size:12px;font-weight:800;color:var(--brand);margin:2px 0 8px;letter-spacing:.2px}
.drop{border:2px dashed #b9c9e6;background:#fff;border-radius:12px;padding:16px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:.15s;margin-bottom:12px}
.drop:hover,.drop.over{border-color:var(--accent);background:#f0fbfa}
.drop .di{width:38px;height:38px;border-radius:9px;background:var(--chip);display:flex;align-items:center;justify-content:center;font-size:19px;flex:0 0 auto}
.drop .dt{flex:1;min-width:0}
.drop .dt b{font-size:13.5px;color:var(--ink);display:block}
.drop .dt small{font-size:11.5px;color:var(--muted);display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drop.set{border-style:solid;border-color:#12b981;background:#f0fdf9}
.drop.set .di{background:#d1fae5}
.opt{font-size:11px;font-weight:700;color:#94a3b8;background:#eef2f7;padding:2px 7px;border-radius:6px;flex:0 0 auto}
.ctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}
.ctl label{font-size:12.5px;font-weight:700;color:var(--ink2)}
.ctl input[type=date]{border:1px solid #cbd7e8;border-radius:9px;padding:8px 10px;font-size:13px}
.runbar{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 6px}
.res{margin-top:16px;display:none}
.res.show{display:block}
.kpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 15px;min-width:120px;flex:1}
.kpi b{display:block;font-size:20px;font-weight:800;color:var(--brand);line-height:1.1}
.kpi.neg b{color:var(--new)}
.kpi span{font-size:11px;color:var(--muted);font-weight:600}
.tbl{width:100%;border-collapse:collapse;font-size:12px;background:#fff;border-radius:10px;overflow:hidden;margin-bottom:16px;box-shadow:0 2px 8px rgba(8,20,40,.06)}
.tblscroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:16px}
.tblscroll .tbl{margin-bottom:0}
.tbl th{background:#eef3fb;color:#334155;font-weight:800;padding:8px 9px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line)}
.tbl td{padding:7px 9px;border-bottom:1px solid #eef1f6;white-space:nowrap}
.tbl td.n,.tbl th.n{text-align:right}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.negrow td{background:#fff1f4}
.up{color:#e11d48;font-weight:700}.down{color:#0ea5a3;font-weight:700}
.secttl{font-size:13px;font-weight:800;color:var(--ink);margin:16px 0 7px;display:flex;align-items:center;gap:7px}
.note{font-size:11.5px;color:var(--muted);line-height:1.6;background:#eef2f7;border-radius:9px;padding:9px 12px;margin-bottom:12px}
.spin{display:inline-block;width:15px;height:15px;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:sp .7s linear infinite;vertical-align:-2px}
@keyframes sp{to{transform:rotate(360deg)}}
@media(max-width:860px){
 .app{flex-direction:column}
 .side{position:fixed;left:0;top:0;bottom:0;height:100vh;z-index:40;transform:translateX(-100%);transition:transform .25s;box-shadow:8px 0 30px rgba(0,0,0,.4)}
 .side.open{transform:translateX(0)}
 .main{padding:18px 16px 50px}
 .menu-btn{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.15);
  border-radius:10px;padding:8px 13px;font-size:13px;font-weight:700;cursor:pointer;margin-bottom:14px}
 .backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:35}
 .backdrop.show{display:block}
 .bd{max-height:calc(100vh - 130px)}
 .topbar{padding:7px 12px;font-size:11.5px}
 .topbar .tb-team{display:none}
}
/* ===== 바로보고 스타일 상단 상태바 ===== */
.topbar{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:9px;
 background:#0b1424;border-bottom:1px solid rgba(255,255,255,.08);color:#e8f0fb;padding:8px 16px;font-size:12.5px}
.topbar .tb-check{width:19px;height:19px;border-radius:5px;background:linear-gradient(135deg,#0ea5a3,#12b981);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:0 0 auto}
.topbar b{font-weight:800;color:#fff}
.topbar .tb-en{color:#7f97ba;font-weight:700;font-size:11px}
.topbar .tb-sep{color:#33456a}
.topbar .tb-team{color:#9fb3d1}
.topbar .tb-right{margin-left:auto;display:flex;align-items:center;gap:11px;flex:0 0 auto}
.topbar .tb-ver{background:rgba(255,255,255,.08);padding:2px 9px;border-radius:999px;color:#9fb3d1;font-weight:700;white-space:nowrap}
.topbar .tb-cloud{color:#8ba6cc}
.topbar .tb-user{color:#c3d3ea;font-weight:700;white-space:nowrap}
/* ===== 리포트형 메타칩 ===== */
.rmeta{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.rc{font-size:12px;color:#c3d3ea;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:5px 11px}
.rc b{color:#fff;font-weight:800}
/* ===== 도구 리포트 헤더/인식 패널 ===== */
.rephd{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px}
.rephd h4{font-size:16px;font-weight:800;color:var(--ink);display:flex;align-items:center;gap:8px}
.repchips{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.repchips .c{font-size:11.5px;color:#334155;background:#eef3fb;border-radius:7px;padding:4px 10px}
.repchips .c b{color:var(--brand)}
.recog{margin-top:11px;border-top:1px dashed var(--line);padding-top:10px}
.recog .rt{font-size:12px;font-weight:800;color:var(--muted);margin-bottom:6px}
.recog .ri{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink2);padding:3px 0;flex-wrap:wrap}
.recog .ri .ok{width:16px;height:16px;border-radius:4px;background:#12b981;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex:0 0 auto}
.btn.print{background:#eef3fb;color:var(--brand)}
.aisum{background:#f0fbfa;border:1px solid #b6e6e2;border-left:4px solid #0ea5a3;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.7;color:#134e4a;margin-bottom:14px}
.aisum b{color:#0f766e;font-weight:800}
.vchk{font-size:11.5px;color:#475569;background:#f1f5f9;border-radius:8px;padding:7px 11px;margin-bottom:12px;font-weight:600}
.vchk.warn{background:#fff1f4;color:#be123c}
.newsitem{background:#fff;border:1px solid #e6ebf2;border-radius:12px;padding:12px 14px;margin-bottom:10px}
.newsitem.urg{border-left:4px solid #e11d48;background:#fff6f7}
.newsitem a{font-size:14px;font-weight:800;color:#1f2d3d;text-decoration:none;line-height:1.4}
.newsitem a:hover{color:#2f5496}
.newsitem .nd{font-size:12.5px;color:#475569;margin-top:5px;line-height:1.5}
.newsitem .nt{font-size:11px;color:#94a3b8;margin-top:6px}
.dim{color:#94a3b8;font-weight:600}
.minirow{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 6px}
.minikpi{display:inline-flex;align-items:center;gap:6px;background:#f1f5f9;border:1px solid #e6ebf2;border-radius:10px;padding:8px 12px;font-size:13px;color:#475569;font-weight:700}
.minikpi b{color:#1f2d3d;font-size:15px}
.minikpi.lnk{background:#eef4ff;border-color:#d6e4ff;color:#2f5496;text-decoration:none;cursor:pointer}
.minikpi.lnk:hover{background:#e0ecff}
/* ===== 경영정보 카테고리 탭 ===== */
.biznav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.biztab{appearance:none;font-size:12.5px;font-weight:800;color:var(--brand);background:var(--chip);
 border:1px solid transparent;border-radius:999px;padding:8px 15px;cursor:pointer;transition:.12s;
 display:inline-flex;align-items:center;gap:6px}
.biztab:hover{background:#dfe9fa}
.biztab.active{background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff}
/* ===== 로그인 게이트 ===== */
#authgate{position:fixed;inset:0;z-index:200;background:linear-gradient(160deg,#0f1b2d,#1b3050 60%,#20406e);display:flex;align-items:center;justify-content:center;padding:20px}
#authgate.hidden{display:none}
.authcard{background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.5);width:100%;max-width:380px;padding:30px 28px}
.authcard .lg{display:flex;align-items:center;gap:10px}
.authcard .lg .logo{width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:flex;align-items:center;justify-content:center;font-size:22px}
.authcard h3{font-size:19px;font-weight:800;color:var(--ink)}
.authcard .sub{font-size:12px;color:var(--muted);margin:4px 0 20px}
.authcard label{font-size:12px;font-weight:700;color:var(--ink2);display:block;margin:10px 0 5px}
.authcard input{width:100%;border:1px solid #cbd7e8;border-radius:10px;padding:11px 12px;font-size:14px;outline:none}
.authcard input:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(59,107,214,.18)}
.authcard .abtn{width:100%;margin-top:18px;border:0;border-radius:10px;padding:12px;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand2));cursor:pointer}
.authcard .abtn:disabled{opacity:.6;cursor:not-allowed}
.autherr{color:#e11d48;font-size:12.5px;margin-top:12px;min-height:16px;font-weight:600}
.authfoot{font-size:11px;color:var(--muted);margin-top:16px;line-height:1.6;text-align:center}
.tb-logout{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#c3d3ea;border-radius:7px;padding:3px 10px;font-size:11.5px;font-weight:700;cursor:pointer;white-space:nowrap}
.tb-logout:hover{background:rgba(255,255,255,.2);color:#fff}
@media print{
 body *{visibility:hidden}
 #ov,#ov *{visibility:visible}
 #ov{position:absolute;inset:0;background:#fff;display:block;padding:0}
 .sheet{box-shadow:none;max-width:none;border-radius:0}
 .bd{max-height:none;overflow:visible}
 .drop,.runbar,.step,.hd .x,.ctl,.note{display:none!important}
}
/* ===== 라이트 테마 (밝게) v2.07 ===== */
body{background:linear-gradient(160deg,#eef3fa 0%,#e5edf7 100%);color:#1f2d3d}
.topbar{background:#ffffff;border-bottom:1px solid #e2e8f0;color:#475569}
.topbar b{color:#1f2d3d}.topbar .tb-en{color:#94a3b8}.topbar .tb-sep{color:#cbd5e1}
.topbar .tb-ver{background:#eef3fb;color:#2f5496}.topbar .tb-user{color:#334155}.topbar .tb-cloud{color:#94a3b8}
.topbar .tb-logout{background:#eef3fb;border-color:#dbe4f0;color:#2f5496}
.topbar .tb-logout:hover{background:#dfe9fa;color:#1f2d3d}
.side{background:#ffffff;border-right:1px solid #e6ebf2;color:#475569}
.brand h1{color:#1f2d3d}.brand .sub{color:#64748b}
.search{background:#f4f7fb;border-color:#dbe4f0;color:#1f2d3d}.search::placeholder{color:#94a3b8}
.search:focus{border-color:var(--brand2);box-shadow:0 0 0 3px rgba(59,107,214,.15)}
.sgrp .lbl{color:#94a3b8}
.sitem{color:#475569}.sitem:hover{background:#eef3fb;color:#1f2d3d}.sitem .si{background:#eef3fb}
.sfoot{color:#94a3b8;border-top-color:#e6ebf2}
.top{color:#1f2d3d}.top h2{color:#1f2d3d}.top .ver{background:#eef3fb;color:#2f5496}.top p{color:#475569}
.stat{background:#ffffff;border:1px solid #e6ebf2;color:#1f2d3d}.stat b{color:#1f2d3d}.stat span{color:#64748b}
.rc{background:#ffffff;border:1px solid #dbe4f0;color:#475569}.rc b{color:#1f2d3d}
.chip{background:#ffffff;border:1px solid #dbe4f0;color:#475569}.chip:hover{background:#eef3fb;color:#1f2d3d}
.chip.on{background:#2f5496;color:#fff;border-color:#2f5496}
.seclabel{color:#1f2d3d}.seclabel span{color:#64748b}
.card{box-shadow:0 4px 16px rgba(15,40,80,.08);border:1px solid #e9eef5}
.card:hover{box-shadow:0 12px 28px rgba(15,40,80,.14)}
.foot{color:#64748b}
.menu-btn{background:#2f5496;color:#fff;border-color:#2f5496}
#authgate{background:linear-gradient(160deg,#eef3fa 0%,#d9e5f4 100%)}
@media(max-width:860px){.side{box-shadow:8px 0 30px rgba(30,45,70,.18)}}
/* ===== 모바일 대시보드 스타일 v2.11 ===== */
.kpi{border:1px solid #e6ebf2;border-radius:14px;padding:14px 16px;min-width:130px;box-shadow:0 2px 8px rgba(15,40,80,.05)}
.kpi b{font-size:26px;color:#1f2d3d}
.kpi span{display:block;margin-top:5px;font-size:11.5px}
/* 레퍼런스 스타일 상태칩 */
.kpi .up{display:inline-block;background:#fdecef;color:#e11d48;padding:3px 10px;border-radius:999px;font-weight:800;font-size:11px}
.kpi .down{display:inline-block;background:#e7f8f5;color:#0ea5a3;padding:3px 10px;border-radius:999px;font-weight:800;font-size:11px}
.kpis{gap:12px}
/* 홈 정리(덜 어지럽게) */
.stats,.chips,.rmeta{display:none}
.top p{font-size:13px;max-width:680px}
/* 레퍼런스형 리스트 카드(아이콘+제목+설명) */
.grid{grid-template-columns:1fr!important;gap:12px}
.listcard{background:#fff;border:1px solid #e6ebf2;border-radius:16px;padding:15px 18px;display:flex;align-items:center;gap:14px;cursor:pointer;box-shadow:0 2px 10px rgba(15,40,80,.05);transition:transform .12s,box-shadow .12s}
.listcard:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,40,80,.12)}
.listcard.flash{outline:2px solid #0ea5a3;box-shadow:0 0 0 4px rgba(14,165,163,.2)}
.listcard .lc-ico{width:46px;height:46px;border-radius:13px;background:#eef4fc;display:flex;align-items:center;justify-content:center;font-size:23px;flex:0 0 auto}
.listcard.appc .lc-ico{background:#e7f8f5}
.listcard .lc-txt{flex:1;min-width:0}
.listcard .lc-title{font-size:15.5px;font-weight:800;color:#1f2d3d;display:flex;align-items:center;gap:7px}
.listcard .lc-sub{font-size:12px;color:#64748b;margin-top:3px;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.listcard .lc-badge{font-size:9.5px;font-weight:800;color:#0ea5a3;background:#d1fae5;padding:2px 7px;border-radius:6px}
.listcard .lc-arrow{color:#cbd5e1;font-size:22px;flex:0 0 auto}
/* ===== v2.21 · 반응형 (PC 넓게 다열 · 모바일 1열+하단탭) ===== */
.side,.backdrop,.menu-btn{display:none!important}   /* 사이드바 제거(중복 해소) */
.app{max-width:1200px;margin:0 auto;display:block;min-height:100vh}
.main{padding:22px 24px 44px}
.topbar{max-width:none;margin:0;flex-wrap:nowrap}
.topbar b,.topbar .tb-en,.topbar .tb-team,.topbar .tb-user,.topbar .tb-ver{white-space:nowrap}
.top h2{font-size:22px}
.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))!important;gap:14px}
@media(max-width:860px){
 .main{padding:16px 14px 88px}
 .grid{grid-template-columns:1fr!important}
}
.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-top:1px solid #e2e8f0;padding:6px 4px;padding-bottom:calc(6px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -4px 16px rgba(15,40,80,.07)}
.tabbar button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:700;color:#94a3b8;cursor:pointer;flex:1;padding:6px 2px;max-width:170px}
.tabbar button.active{color:#2f5496}
.tabbar button .ti{font-size:20px;line-height:1}
@media(max-width:860px){
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fff;border-top:1px solid #e2e8f0;padding:6px 4px;padding-bottom:calc(6px + env(safe-area-inset-bottom));justify-content:space-around;box-shadow:0 -4px 16px rgba(15,40,80,.07)}
 .tabbar button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:10.5px;font-weight:700;color:#94a3b8;cursor:pointer;flex:1;padding:4px 2px}
 .tabbar button .ti{font-size:20px;line-height:1}
 .tabbar button:active{color:#2f5496}
 .main{padding-bottom:80px}
 .menu-btn{display:none}
}
