/* GuDoC CompanyOS — 관제 대시보드 (console.css 셸/내비 재사용) */
.dash{flex:1;min-width:0;overflow-y:auto;padding:22px 26px 60px;background:var(--color-bg-subtle,#F5EEE9);}
.dash__intro{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.dash__h1{font-size:22px;font-weight:800;letter-spacing:-.02em;margin:0;}
.dash__sub{font-size:13px;color:var(--color-text-muted,#6B5F57);margin:5px 0 0;}
.dash__pills{display:flex;gap:7px;flex-wrap:wrap;}
.dpill{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:999px;padding:6px 11px;color:var(--color-text-muted,#6B5F57);white-space:nowrap;}
.dpill__live{width:8px;height:8px;border-radius:50%;background:var(--ok,#1F8A5B);animation:dpulse 1.8s infinite;}
@keyframes dpulse{0%,100%{opacity:.4;}50%{opacity:1;}}

/* 공통 패널 */
.pnl{background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:15px;padding:16px 18px;min-width:0;}
.pnl__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.pnl__h2{font-size:15px;font-weight:800;letter-spacing:-.01em;margin:0;display:flex;align-items:center;gap:8px;}
.pnl__h2 i{color:var(--accent,#F4521E);font-size:14px;}
.pnl__p{font-size:12px;color:var(--color-text-muted,#6B5F57);margin:4px 0 0;}
.sbadge{border-radius:999px;font-size:11.5px;font-weight:800;padding:5px 10px;white-space:nowrap;}
.sbadge--ok{background:var(--ok-bg,#E5F4EC);color:var(--ok,#1F8A5B);}
.sbadge--warn{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.sbadge--bad{background:var(--rose-bg,#FFE4E6);color:var(--rose,#E11D48);}

/* 상단 2분할 */
.dash__top{display:grid;grid-template-columns:1.08fr .92fr;gap:14px;margin-bottom:14px;}

/* 계기판 */
.instr{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.instr__c{background:var(--color-bg-subtle,#F8F2EE);border:1px solid var(--color-divider,#EDE4DD);border-radius:12px;padding:13px 14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;}
.instr__lb{grid-column:1;font-size:12px;font-weight:700;color:var(--color-text-muted,#6B5F57);}
.instr__v{grid-column:1;font-size:26px;font-weight:800;letter-spacing:-.02em;line-height:1;}
.instr__d{grid-column:1;font-size:11.5px;color:var(--color-text-subtle,#9A8C82);}
.instr__d .up{color:var(--ok,#1F8A5B);font-weight:700;}
.instr__d .down{color:var(--rose,#E11D48);font-weight:700;}
.gauge{grid-row:1/4;grid-column:2;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at center,var(--color-surface,#fff) 0 53%,transparent 54%),conic-gradient(var(--gc,var(--ok)) calc(var(--gv,70)*1%),#E2D9D0 0);}
.gauge b{font-size:12.5px;font-weight:800;}

/* 헬스맵 */
.hmap{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.hcard{border:1px solid var(--color-divider,#EDE4DD);border-radius:12px;padding:12px;display:grid;gap:8px;}
.hcard__top{display:flex;align-items:center;justify-content:space-between;}
.hcard__top strong{font-size:13.5px;}
.hcard small{font-size:11.5px;color:var(--color-text-muted,#6B5F57);}
.slight{width:9px;height:9px;border-radius:50%;}
.slight--ok{background:var(--ok,#1F8A5B);}.slight--warn{background:var(--amber,#92660C);}.slight--bad{background:var(--rose,#E11D48);}
.meter{height:7px;border-radius:999px;background:#E7EDF4;overflow:hidden;}
.meter i{display:block;height:100%;border-radius:inherit;background:var(--ok,#1F8A5B);width:var(--w,50%);}
.meter--warn i{background:var(--amber,#92660C);}.meter--bad i{background:var(--rose,#E11D48);}

/* 차트 */
.dash__charts{display:grid;grid-template-columns:1.5fr 1fr;gap:14px;margin-bottom:14px;}
.chartbox{position:relative;height:240px;}
.chartbox--sm{height:210px;}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;}
.legend span{font-size:11.5px;color:var(--color-text-muted,#6B5F57);display:inline-flex;align-items:center;gap:6px;}

/* ── 모듈형 위젯 보드 ── */
.dpill--btn{cursor:pointer;font-family:inherit;color:var(--accent-text,#B23A12);border-color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFE9E0);}
.wboard{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;align-items:start;}
@media(max-width:980px){.wboard{grid-template-columns:1fr;}}
.wcard{background:var(--color-surface,#fff);border:1px solid var(--color-border,#E0D5CC);border-radius:15px;padding:14px 16px;min-width:0;}
.wcard--2{grid-column:1/-1;}
.wcard__h{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.wcard__t{font-size:14px;font-weight:800;color:var(--color-text-strong,#15110E);display:inline-flex;align-items:center;gap:8px;}
.wcard__t i{color:var(--accent-text,#B23A12);font-size:13px;}
.wcard__act{margin-left:auto;display:flex;align-items:center;gap:4px;}
.wcard__lnk,.wcard__x{width:28px;height:28px;border-radius:8px;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);color:var(--color-text-muted,#6B5F57);cursor:pointer;display:grid;place-items:center;font-size:11px;text-decoration:none;}
.wcard__lnk:hover{border-color:var(--accent-text,#B23A12);color:var(--accent-text,#B23A12);}
.wcard__x:hover{border-color:var(--rose,#E11D48);color:var(--rose,#E11D48);}
/* kpi widget */
.wkpis{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.wkpi{display:grid;grid-template-columns:1fr 46px;grid-auto-rows:auto;gap:1px 8px;align-items:center;background:var(--color-bg-subtle,#F5EEE9);border-radius:11px;padding:11px 13px;}
.wkpi__lb{grid-column:1;font-size:11px;font-weight:700;color:var(--color-text-muted,#6B5F57);}
.wkpi__v{grid-column:1;font-size:18px;font-weight:800;letter-spacing:-.02em;}
.wkpi__d{grid-column:1;font-size:10.5px;color:var(--color-text-subtle,#9A8C82);}
.wkpi__d .up{color:var(--ok,#1F8A5B);font-weight:700;}
.wkpi__d .down{color:var(--rose,#E11D48);font-weight:700;}
.gauge--sm{grid-row:1/4;grid-column:2;width:46px;height:46px;}
.gauge--sm b{font-size:10px;}
/* aarrr */
.waarrr{display:flex;flex-direction:column;gap:7px;}
.waarrr__r{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--color-divider,#EDE4DD);}
.waarrr__r:last-child{border-bottom:none;}
.waarrr__k{width:20px;height:20px;border-radius:6px;background:var(--color-text-strong,#15110E);color:#fff;font-size:10px;font-weight:800;display:grid;place-items:center;}
.waarrr__l{flex:1;font-size:12.5px;color:var(--color-text,#3D342E);}
.waarrr__n{font-size:13.5px;font-weight:800;}
/* bars */
.wbars{display:flex;flex-direction:column;gap:11px;}
.wbar__top{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;}
.wbar__top span{color:var(--color-text,#3D342E);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wbar__top b{font-weight:800;white-space:nowrap;}
.wbar__track{height:7px;border-radius:999px;background:var(--color-bg-subtle,#F5EEE9);overflow:hidden;margin:5px 0 2px;}
.wbar__fill{height:100%;border-radius:999px;background:var(--accent-text,#B23A12);}
.wbar small{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);}
/* quad stats */
.wquad{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.wquad--3{grid-template-columns:repeat(3,1fr);}
.wquad>div{background:var(--color-bg-subtle,#F5EEE9);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;}
.wquad span{font-size:11px;color:var(--color-text-subtle,#9A8C82);}
.wquad b{font-size:16px;font-weight:800;letter-spacing:-.02em;}
/* cohort mini */
.wcohort{display:flex;align-items:flex-end;gap:8px;height:90px;}
.wco{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end;}
.wco__bar{width:100%;border-radius:6px 6px 0 0;min-height:6px;}
.wco span{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);}
.wnote{display:block;font-size:10.5px;color:var(--color-text-subtle,#9A8C82);margin-top:8px;}
/* big */
.wbig{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;}
.wbig b{font-size:30px;font-weight:800;letter-spacing:-.03em;color:var(--ok,#1F8A5B);}
.wbig span{font-size:11.5px;color:var(--color-text-muted,#6B5F57);}
/* ARPU widget */
.warpu__top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;}
.wbig--tight{margin-bottom:2px;}
.wbig--tight b{color:var(--color-text-strong,#15110E);font-size:28px;}
.warpu__delta{flex:0 0 auto;font-size:12px;font-weight:800;color:var(--ok,#1F8A5B);background:var(--ok-bg,#E5F4EC);border-radius:999px;padding:3px 9px;white-space:nowrap;}
.warpu__stack{display:flex;height:12px;border-radius:999px;overflow:hidden;margin:10px 0 10px;background:var(--color-bg-subtle,#F5EEE9);}
.warpu__seg{height:100%;}
.warpu__seg+.warpu__seg{box-shadow:inset 1px 0 0 #fff;}
.warpu__legend{display:flex;flex-direction:column;gap:6px;}
.warpu__lg{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted,#6B5F57);}
.warpu__dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto;}
.warpu__ll{flex:1;}
.warpu__lg b{font-size:13px;font-weight:800;color:var(--color-text-strong,#15110E);}
/* alerts */
.walerts{display:flex;flex-direction:column;gap:7px;}
.walert{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:9px 11px;border-radius:9px;background:var(--color-bg-subtle,#F5EEE9);color:var(--color-text,#3D342E);}
.walert i{font-size:7px;}
.walert--high{background:var(--rose-bg,#FFE4E6);color:var(--rose,#E11D48);}
.walert--med{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.hmap--w{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
/* tag widget (tg-chip/wtag__up self-contained here) */
.wtags{display:flex;flex-direction:column;gap:8px;}
.wtag{display:flex;align-items:center;justify-content:space-between;padding:8px 11px;background:var(--color-bg-subtle,#F5EEE9);border-radius:9px;}
.tg-chip{font-size:12.5px;font-weight:700;color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFE9E0);border-radius:7px;padding:3px 9px;}
/* 위젯 전용 — 이름이 tg-up 이던 시절 tags/taxonomy 로 속성이 샜다(2026-08-27 개명). */
.wtag__up{font-size:12px;font-weight:800;color:var(--ok,#1F8A5B);display:inline-flex;align-items:center;gap:4px;}
.wempty{text-align:center;padding:50px 20px;color:var(--color-text-subtle,#9A8C82);}
.wempty i{font-size:30px;margin-bottom:12px;}
.wempty p{font-size:14px;margin:0 0 14px;}
.wcat-scrim{position:fixed;inset:0;background:rgba(15,17,21,.4);z-index:60;}
.wcat{position:fixed;top:0;right:0;bottom:0;width:380px;max-width:92vw;background:var(--color-surface,#fff);z-index:61;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.18);animation:wcat-in .2s ease;}
@keyframes wcat-in{from{transform:translateX(30px);opacity:.6;}to{transform:translateX(0);opacity:1;}}
.wcat__h{display:flex;align-items:flex-start;gap:10px;padding:16px 18px;border-bottom:1px solid var(--color-divider,#EDE4DD);}
.wcat__t{font-size:15px;font-weight:800;margin:0;}
.wcat__s{font-size:11.5px;color:var(--color-text-subtle,#9A8C82);}
.wcat__list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:6px;}
.wcat__i{display:flex;align-items:center;gap:11px;width:100%;text-align:left;font-family:inherit;border:1px solid var(--color-border,#E0D5CC);background:var(--color-surface,#fff);border-radius:11px;padding:10px 12px;cursor:pointer;}
.wcat__i.is-on{border-color:var(--accent-text,#B23A12);background:var(--accent-bg,#FFE9E0);}
.wcat__ic{width:32px;height:32px;border-radius:8px;background:var(--color-bg-subtle,#F5EEE9);display:grid;place-items:center;color:var(--color-text-strong,#15110E);font-size:13px;}
.wcat__nm{flex:1;font-size:13px;font-weight:700;color:var(--color-text-strong,#15110E);}
.wcat__sz{font-size:10.5px;color:var(--color-text-subtle,#9A8C82);}
.wcat__chk{font-size:15px;color:var(--color-border-strong,#D8CCC2);}
.wcat__i.is-on .wcat__chk{color:var(--ok,#1F8A5B);}
.wcat__f{display:flex;align-items:center;gap:8px;padding:13px 16px;border-top:1px solid var(--color-divider,#EDE4DD);}
.legend i{width:10px;height:10px;border-radius:3px;}

/* Command Gateway */
.cmdstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.cmdtile{border:1px solid var(--color-divider,#EDE4DD);border-radius:12px;padding:13px 14px;cursor:pointer;transition:border-color .12s,transform .12s;}
.cmdtile:hover{border-color:var(--accent,#F4521E);transform:translateY(-1px);}
.cmdtile span{display:block;font-size:12px;font-weight:700;color:var(--color-text-muted,#6B5F57);}
.cmdtile strong{display:block;font-size:24px;font-weight:800;margin-top:5px;letter-spacing:-.02em;}
.cmdtile small{display:block;font-size:11px;color:var(--color-text-subtle,#9A8C82);margin-top:3px;}
.cmdtile--bad strong{color:var(--rose,#E11D48);}

/* 결정 레이아웃 */
.dash__decide{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:14px;margin:14px 0;}
.qlist{display:grid;gap:8px;}
.qrow{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:11px;background:var(--color-bg-subtle,#F8F2EE);border:1px solid var(--color-divider,#EDE4DD);border-radius:12px;padding:11px 12px;cursor:pointer;}
.qrow:hover{border-color:var(--accent,#F4521E);}
.qpri{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-size:11.5px;font-weight:800;}
.qpri--p1{background:var(--rose-bg,#FFE4E6);color:var(--rose,#E11D48);}
.qpri--p2{background:var(--amber-bg,#FEF3C7);color:var(--amber,#92660C);}
.qpri--p3{background:var(--sky-bg,#E0F2FE);color:var(--sky,#0369A1);}
.qmain{min-width:0;}
.qmain strong{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.qmain small{display:block;font-size:11.5px;color:var(--color-text-muted,#6B5F57);margin-top:2px;}
.qown{font-size:11px;font-weight:700;color:var(--color-text-subtle,#9A8C82);white-space:nowrap;}

/* 다크 사이드 요약 */
.focus{background:var(--op-ink,#0F172A);border-radius:15px;color:#DCE6F2;padding:18px;align-self:start;}
.focus h2{color:#fff;font-size:15px;margin:0 0 4px;}
.focus__p{color:#B5C4D6;font-size:12.5px;line-height:1.5;margin:0 0 14px;}
.focus__l{display:grid;gap:9px;}
.fitem{border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:10px 12px;}
.fitem span{display:block;color:#91A4BA;font-size:11px;font-weight:700;margin-bottom:3px;}
.fitem strong{color:#fff;font-size:13px;font-weight:600;line-height:1.4;}
.focus__cta{display:inline-flex;align-items:center;gap:7px;margin-top:14px;background:var(--accent,#F4521E);border:none;color:#fff;border-radius:9px;font-size:12.5px;font-weight:700;padding:10px 14px;cursor:pointer;font-family:inherit;text-decoration:none;}
.focus__cta:hover{filter:brightness(1.07);}

/* 하단 도메인 요약 */
.dash__bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.mlist{display:grid;gap:0;}
.mrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--color-divider,#EDE4DD);}
.mrow:first-child{border-top:none;}
.mrow span{font-size:12.5px;font-weight:600;color:var(--color-text-muted,#6B5F57);display:inline-flex;align-items:center;gap:7px;}
.mrow strong{font-size:14px;font-weight:800;}
.mrow .slight{flex-shrink:0;}

@media(max-width:1180px){
  .dash__top,.dash__charts,.dash__decide,.dash__bottom{grid-template-columns:1fr;}
}
@media(max-width:760px){
  .instr,.hmap,.cmdstrip{grid-template-columns:1fr;}
}
