:root{--bg:#0d1220;--bg-panel:#151c2e;--bg-card:#1a2338;--bg-hover:#223052;--border:#2a3550;--text:#e2e8f4;--text-dim:#8b96ad;--accent:#4f8cff;--accent-dim:#2a4a8a;--green:#34d399;--red:#f87171;--orange:#fbbf24;--purple:#a78bfa;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Pretendard,Noto Sans KR,-apple-system,Segoe UI,sans-serif}:root[data-theme=light]{--bg:#f2f4f9;--bg-panel:#fff;--bg-card:#f5f7fb;--bg-hover:#e8edf7;--border:#d9e0ec;--text:#1c2436;--text-dim:#5d6b85;--accent:#2f6fe4;--accent-dim:#d7e4fb;--green:#0e7a4d;--red:#c03030;--orange:#a26a00;--purple:#6a48c9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=light] .gnb-logo{color:#1c2436}:root[data-theme=light] .gnb-logo .badge-portal{color:#2f6fe4}:root[data-theme=light] .gnb-menu a.active{color:#1c2436}:root[data-theme=light] .gnb-user .avatar{color:#fff}:root[data-theme=light] .notice-bar{color:#23407c;background:#e8f0fe;border-color:#c4d6f6}:root[data-theme=light] .tbl td{border-bottom-color:#e6ebf4}:root[data-theme=light] .tbl tr.expand-row td{background:#f3f6fc}:root[data-theme=light] .badge.gray{color:#4a5670;background:#e3e8f1}:root[data-theme=light] .badge.blue{color:#2456b8;background:#dbe7fd}:root[data-theme=light] .badge.green{color:#0e7a4d;background:#d8f3e5}:root[data-theme=light] .badge.red{color:#c03030;background:#fde0e0}:root[data-theme=light] .badge.orange{color:#a26a00;background:#fdeecb}:root[data-theme=light] .badge.purple{color:#6a48c9;background:#e9e2fb}:root[data-theme=light] .formula-box{background:#eef3fd;border-color:#c4d6f6}:root[data-theme=light] .formula-box b{color:#2f6fe4}:root[data-theme=light] .chat-msg.user{background:#d7e4fb}:root[data-theme=light] .chip{color:#3d4b68}:root[data-theme=light] .cal-cell{border-color:#e6ebf4}:root[data-theme=light] .cal-cell .cal-item{background:#e8edf7}:root[data-theme=light] .cal-cell .cal-item.oncall{background:#dbe7fd}:root[data-theme=light] .cal-cell .cal-item.vacation{background:#d8f3e5}:root[data-theme=light] .cal-cell .cal-item.half{background:#e9e2fb}:root[data-theme=light] .cal-cell.today{background:#eef3fd}:root[data-theme=light] .accordion-detail h4{color:#2f6fe4}.login-wrap{background:radial-gradient(1200px 600px at 50% -10%, var(--accent-dim), transparent), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:16px;width:400px;max-width:100%;padding:32px 28px;box-shadow:0 20px 60px #00000059}.login-logo{text-align:center;margin-bottom:18px;font-size:18px;font-weight:800}.login-google{color:#1f2430;border:1px solid var(--border);background:#fff;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.login-google:hover{filter:brightness(.96)}.login-divider{color:var(--text-dim);align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--border);flex:1;height:1px}.login-card .form-grid{flex-direction:column;gap:12px;display:flex}.login-card .form-grid button[type=submit]{width:100%}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-size:14px}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0}.gnb{background:var(--bg-panel);border-bottom:1px solid var(--border);z-index:100;align-items:center;gap:20px;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.gnb-logo{color:#fff;white-space:nowrap;font-size:16px;font-weight:800}.gnb-logo .badge-portal{background:var(--accent-dim);color:#bcd3ff;border-radius:12px;margin-left:8px;padding:3px 10px;font-size:12px;font-weight:600}.gnb-menu{flex:1;gap:4px;display:flex;overflow-x:auto}.gnb-menu a{color:var(--text-dim);white-space:nowrap;border-radius:8px;padding:8px 14px;font-weight:600}.gnb-menu a:hover{color:var(--text);background:var(--bg-hover);text-decoration:none}.gnb-menu a.active{color:#fff;background:var(--accent-dim)}.gnb-user{white-space:nowrap;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-weight:600;display:flex}.gnb-user .avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;font-size:12px;font-weight:700;display:inline-flex}.notice-bar{border:1px solid var(--accent-dim);color:#cdd9f5;background:linear-gradient(90deg,#1d2b4d,#16203a);border-radius:10px;align-items:center;gap:10px;margin:16px 24px 0;padding:10px 16px;font-weight:500;display:flex}.page{max-width:1500px;margin:0 auto;padding:20px 24px 60px}.page-title{align-items:center;gap:12px;margin:8px 0 16px;font-size:20px;font-weight:700;display:flex}.page-title .warn-text{color:var(--red);margin-left:auto;font-size:13px;font-weight:600}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;padding:16px}.panel-title{align-items:center;gap:8px;margin-bottom:12px;font-size:15px;font-weight:700;display:flex}.panel-title .sub{color:var(--text-dim);font-size:12px;font-weight:500}.panel-title .right{align-items:center;gap:8px;margin-left:auto;display:flex}.grid{gap:12px;display:grid}.grid-5{grid-template-columns:repeat(5,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}@media (width<=1100px){.grid-5,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}}.kpi-card{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:14px 16px;transition:all .15s}.kpi-card:hover{border-color:var(--accent);transform:translateY(-2px)}.kpi-card .label{color:var(--text-dim);font-size:12.5px;font-weight:600}.kpi-card .value{margin-top:6px;font-size:26px;font-weight:800}.kpi-card .detail{color:var(--text-dim);margin-top:4px;font-size:12px}.kpi-card.good .value{color:var(--green)}.kpi-card.bad .value{color:var(--red)}.kpi-card.warn .value{color:var(--orange)}.kpi-card.neutral .value{color:var(--text)}.tbl-wrap{overflow-x:auto}table.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{text-align:left;color:var(--text-dim);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--bg-panel);padding:9px 10px;font-weight:600}.tbl td{white-space:nowrap;vertical-align:top;border-bottom:1px solid #1f2942;padding:9px 10px}.tbl tbody tr:hover td{background:#4f8cff0d}.tbl .num{text-align:right}.tbl tr.expand-row td{white-space:normal;background:#111827}.badge{border-radius:10px;padding:2px 9px;font-size:11.5px;font-weight:700;line-height:1.6;display:inline-block}.badge.gray{color:#aab4cc;background:#2b3348}.badge.blue{color:#93bbff;background:#1e3a6e}.badge.green{color:var(--green);background:#123d2e}.badge.red{color:var(--red);background:#4a1d24}.badge.orange{color:var(--orange);background:#4a3512}.badge.purple{color:var(--purple);background:#372a5e}.filters{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;padding:14px 16px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field>label{color:var(--text-dim);font-size:11.5px;font-weight:600}input,select,textarea{background:var(--bg-card);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 10px;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}.checks{align-items:center;gap:10px;padding:7px 0;display:flex}.checks label{cursor:pointer;align-items:center;gap:4px;font-size:13px;display:flex}button,.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:8px 16px;font-family:inherit;font-size:13px;font-weight:700}button:hover{filter:brightness(1.15)}button.ghost{background:var(--bg-card);border:1px solid var(--border);color:var(--text)}button.ghost:hover{border-color:var(--accent)}button.small{padding:4px 10px;font-size:12px}button.danger{background:#7f2733}.modal-back{z-index:200;background:#0009;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;width:560px;max-width:100%;max-height:90vh;padding:20px;overflow-y:auto}.modal h3{margin-bottom:14px;font-size:16px}.modal .form-grid{flex-direction:column;gap:12px;display:flex}.modal .actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.tabs{gap:6px;margin-bottom:14px;display:flex}.tabs button{background:var(--bg-card);border:1px solid var(--border);color:var(--text-dim)}.tabs button.on{background:var(--accent-dim);color:#fff;border-color:var(--accent)}.hint{color:var(--text-dim);font-size:12px}.formula-box{border:1px solid var(--accent-dim);background:#101830;border-radius:10px;margin-bottom:14px;padding:14px 16px;font-size:13px;line-height:1.9}.formula-box b{color:#9cc0ff}.chat-box{flex-direction:column;gap:10px;display:flex}.chat-msgs{flex-direction:column;gap:8px;max-height:260px;display:flex;overflow-y:auto}.chat-msg{white-space:pre-wrap;border-radius:12px;max-width:85%;padding:9px 13px;font-size:13px;line-height:1.55}.chat-msg.user{background:var(--accent-dim);align-self:flex-end}.chat-msg.ai{background:var(--bg-card);border:1px solid var(--border);align-self:flex-start}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--bg-card);border:1px solid var(--border);cursor:pointer;color:#b9c6e2;border-radius:16px;padding:6px 12px;font-size:12.5px}.chip:hover{border-color:var(--accent);color:#fff}.chat-input{gap:8px;display:flex}.chat-input input{flex:1}.cal-grid{border:1px solid var(--border);border-radius:10px;grid-template-columns:90px repeat(7,1fr);display:grid;overflow:hidden}.cal-cell{background:var(--bg-panel);border:.5px solid #1f2942;min-height:54px;padding:8px;font-size:12.5px}.cal-cell.head{background:var(--bg-card);text-align:center;min-height:auto;font-weight:700}.cal-cell.rowlabel{background:var(--bg-card);align-items:center;font-weight:700;display:flex}.cal-cell .cal-item{cursor:pointer;background:#23304f;border-radius:6px;margin-bottom:4px;padding:3px 7px}.cal-cell .cal-item:hover{background:var(--bg-hover)}.cal-cell .cal-item.oncall{background:#1e3a6e}.cal-cell .cal-item.vacation{background:#123d2e}.cal-cell .cal-item.half{background:#372a5e}.cal-cell.today{background:#16223e}.pager{justify-content:center;align-items:center;gap:6px;margin-top:14px;display:flex}.placeholder-page{text-align:center;color:var(--text-dim);padding:90px 20px}.placeholder-page .icon{margin-bottom:16px;font-size:44px}.accordion-detail{padding:6px 4px;font-size:12.5px;line-height:1.7}.accordion-detail h4{color:#9cc0ff;margin:8px 0 6px;font-size:13px}.kv{flex-wrap:wrap;gap:18px;display:flex}.kv span b{color:var(--text-dim);margin-right:6px;font-weight:600}.sync-fail-log{color:var(--red);margin-top:4px;font-size:12px}.risk-list{flex-direction:column;gap:8px;display:flex}.risk-item{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;justify-content:space-between;padding:8px 12px;display:flex}.risk-item .cnt{font-weight:800}.risk-item .cnt.warn{color:var(--orange)}.risk-item .cnt.bad{color:var(--red)}.risk-item .cnt.ok{color:var(--green)}.mini-list{flex-direction:column;gap:6px;font-size:13px;display:flex}.mini-list .row{background:var(--bg-card);border-radius:8px;gap:10px;padding:6px 10px;display:flex}.mini-list .row .d{color:var(--text-dim);flex-shrink:0;width:76px}
