*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #000000;--surface-1: #0a0a0a;--surface-2: #121212;--surface-3: #161616;--border: #2e2e2e;--border-sub: #1e1e1e;--text-1: #ffffff;--text-2: #f5f5f5;--text-3: #e4e4e4;--text-4: #cfcfcf;--text-5: #b8b8b8;--text-6: #9e9e9e;--accent: #0078d4;--accent-text: #4daafc;--accent-dim: rgba(0,120,212,.2);--success: #2ea043;--success-dim: rgba(46,160,67,.18);--warning: #cca700;--warning-dim: rgba(204,167,0,.16);--danger: #f85149;--danger-dim: rgba(248,81,73,.16);--purple: #c586c0;--purple-dim: rgba(197,134,192,.16);--hover: rgba(255,255,255,.07);--hover-strong: #1f1f1f;--nav-active: #04395e;--signout-hover: #2e2e2e;--input-bg: #1a1a1a;--input-border: #3a3a3a;--input-off-bg: #141414;--input-off-border: #2a2a2a;--row-hover: #171717;--row-selected: #04395e;--row-selected-fg: #ffffff;--neutral-dim: rgba(255,255,255,.1);--overlay: rgba(0,0,0,.7);--shadow: rgba(0,0,0,.7);--danger-border: rgba(248,81,73,.35);--success-border: rgba(46,160,67,.35);--warning-border: rgba(204,167,0,.35);--tooltip-bg: #121212;--tooltip-border: #2e2e2e;--chart-cursor: rgba(255,255,255,.06);--chart-bar: #0078d4;--danger-text: #f85149;--danger-text-soft: #efa7a2;--success-text: #4cc26a;--warning-text: #cca700;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif,"Segoe UI Emoji",Segoe UI Symbol,"Apple Color Emoji","Noto Color Emoji";font-size:13px;color:var(--text-1);background:var(--bg)}[data-theme=light]{--bg: #f5f5f5;--surface-1: #f5f5f5;--surface-2: #ffffff;--surface-3: #fafafa;--border: #e0e0e0;--border-sub: #ececec;--text-1: #000000;--text-2: #111111;--text-3: #1f1f1f;--text-4: #2e2e2e;--text-5: #444444;--text-6: #5a5a5a;--accent: #005fb8;--accent-text: #005fb8;--accent-dim: #d2ecff;--success: #369432;--success-dim: rgba(54,148,50,.12);--warning: #a76b00;--warning-dim: rgba(167,107,0,.12);--danger: #b32d1c;--danger-dim: rgba(179,45,28,.1);--purple: #652d90;--purple-dim: rgba(101,45,144,.1);--hover: rgba(0,0,0,.05);--hover-strong: #ebebeb;--nav-active: #e8e8e8;--signout-hover: #d9d9d9;--input-bg: #ffffff;--input-border: #c4c4c4;--input-off-bg: #ebebeb;--input-off-border: #dcdcdc;--row-hover: #ececec;--row-selected: #dedede;--row-selected-fg: #000000;--neutral-dim: rgba(0,0,0,.08);--overlay: rgba(0,0,0,.35);--shadow: rgba(0,0,0,.18);--danger-border: rgba(179,45,28,.28);--success-border: rgba(54,148,50,.28);--warning-border: rgba(167,107,0,.28);--tooltip-bg: #ffffff;--tooltip-border: #c4c4c4;--chart-cursor: rgba(0,0,0,.05);--chart-bar: #bed6ed;--danger-text: #b32d1c;--danger-text-soft: #8e2209;--success-text: #2d7d2a;--warning-text: #895503;color-scheme:light}html,body,#root{height:100%;overflow:hidden}.app-shell{display:flex;height:100vh;background:var(--bg)}.app-main{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.sidebar{width:180px;background:var(--surface-1);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;height:100%}.sidebar-logo{padding:14px 16px;display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--border);flex-shrink:0}.sidebar-logo-icon{width:26px;height:26px;background:var(--accent);border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;color:#fff}.sidebar-logo-text{font-size:14px;font-weight:500;color:var(--text-1)}.sidebar-nav{flex:1;padding:8px;overflow-y:auto}.sidebar-section{font-size:10px;color:var(--text-6);letter-spacing:.07em;padding:0 8px;margin:10px 0 4px}.sidebar-section:first-child{margin-top:6px}.nav-item{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;color:var(--text-4);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-bottom:1px;transition:color .1s,background .1s}.nav-item-label{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nav-item:hover{color:var(--text-3);background:var(--hover)}.nav-item.active{background:var(--nav-active);color:var(--accent-text);font-weight:500}.nav-item-dot{width:2px;height:10px;background:var(--accent);border-radius:1px;margin-left:auto;flex-shrink:0}.nav-item svg,.nav-item .icon{font-size:14px;flex-shrink:0}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--border);flex-shrink:0}.sidebar-darkmode{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:2px 0}.sidebar-darkmode-label{font-size:11px;color:var(--text-5)}.toggle{width:30px;height:17px;background:var(--border);border:none;border-radius:9px;display:flex;align-items:center;padding:2px;cursor:pointer;flex-shrink:0;transition:background .15s}.toggle.on{background:var(--accent)}.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle-knob{width:13px;height:13px;background:#fff;border-radius:50%;box-shadow:0 1px 2px var(--shadow);transition:transform .15s}.toggle.on .toggle-knob{transform:translate(13px)}.sidebar-textsize{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:2px 0;gap:6px}.zoom-ctl{display:flex;align-items:center;gap:2px;flex-shrink:0}.zoom-btn{width:18px;height:17px;background:var(--border);border:none;border-radius:4px;color:var(--text-3);font-size:12px;line-height:1;cursor:pointer;padding:0}.zoom-btn:hover:not(:disabled){background:var(--signout-hover);color:var(--text-2)}.zoom-btn:disabled{opacity:.38;cursor:not-allowed}.zoom-btn:focus-visible,.zoom-val:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.zoom-val{min-width:48px;padding:2px;background:none;border:none;color:var(--text-3);font-size:10px;line-height:1;text-align:center;cursor:pointer;white-space:nowrap}.zoom-val.auto{color:var(--text-6)}.zoom-val:hover{color:var(--accent-text)}.sidebar-user{display:flex;align-items:center;gap:8px;margin-bottom:8px}.avatar{border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:500;flex-shrink:0;color:#fff}.avatar-sm{width:24px;height:24px;font-size:9px;background:var(--purple)}.avatar-md{width:32px;height:32px;font-size:11px;background:var(--purple)}.avatar-lg{width:40px;height:40px;font-size:13px;background:var(--accent)}.sidebar-user-name{font-size:11px;font-weight:500;color:var(--text-2)}.sidebar-user-role{font-size:10px;color:var(--text-6)}.btn-signout{width:100%;background:var(--border);border:none;border-radius:5px;padding:6px;cursor:pointer;font-size:11px;color:var(--text-4);text-align:center}.btn-signout:hover{background:var(--signout-hover);color:var(--text-3)}.page-header{padding:13px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:var(--bg)}.page-title{font-size:15px;font-weight:500;color:var(--text-1)}.page-subtitle{font-size:11px;color:var(--text-5);margin-top:2px}.page-body{flex:1;overflow-y:auto;padding:16px 20px}.page-body::-webkit-scrollbar{width:4px}.page-body::-webkit-scrollbar-track{background:transparent}.page-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.btn{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;border:none;white-space:nowrap;transition:opacity .1s}.btn:hover{opacity:.88}.btn:active{opacity:.75}.btn:disabled,.btn[disabled]{opacity:.38;cursor:not-allowed}.btn:disabled:hover,.btn[disabled]:hover{opacity:.38}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--surface-2);color:var(--text-3);border:1px solid var(--border)}.btn-danger{background:var(--danger-dim);color:var(--danger);border:1px solid var(--danger-border)}.btn-success{background:var(--success-dim);color:var(--success);border:1px solid var(--success-border)}.btn-ghost{background:transparent;color:var(--text-4);border:1px solid var(--border)}.btn-sm{padding:5px 10px;font-size:11px}.btn-xs{padding:3px 8px;font-size:10px;border-radius:4px}.input-group{display:flex;flex-direction:column;gap:4px}.input-label{font-size:10px;color:var(--text-4);letter-spacing:.05em}.input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:7px;padding:8px 12px;font-size:12px;color:var(--text-1);outline:none;width:100%}.input:focus{border-color:var(--accent)}.input:disabled,.input[disabled]{background:var(--input-off-bg);border-color:var(--input-off-border);color:var(--text-2);-webkit-text-fill-color:var(--text-2);opacity:1;cursor:not-allowed}.input::placeholder{color:var(--text-5)}select.input{cursor:pointer}.date-input{position:relative;display:block;width:100%}.date-input>.input{padding-right:32px}.date-input-btn{position:absolute;top:0;right:0;bottom:0;width:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-4);cursor:pointer}.date-input-btn:hover:not(:disabled){color:var(--accent)}.date-input-btn:disabled{cursor:not-allowed;opacity:.5}.date-input-native{position:absolute;left:0;bottom:0;width:100%;height:1px;opacity:0;pointer-events:none;border:0;padding:0}.input-row{display:flex;align-items:flex-end;gap:8px}.search-box{display:flex;align-items:center;gap:7px;background:var(--input-bg);border:1px solid var(--input-border);border-radius:7px;padding:8px 12px}.search-box input{background:none;border:none;outline:none;font-size:12px;color:var(--text-1);width:100%}.search-box input::placeholder{color:var(--text-5)}.filter-bar{background:var(--surface-1);border-bottom:1px solid var(--border);padding:10px 20px;display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;flex-shrink:0}.filter-bar .input-group{min-width:120px}.action-bar{padding:8px 20px;border-bottom:1px solid var(--border);display:flex;gap:6px;align-items:center;flex-shrink:0}.kpi-grid{display:grid;gap:8px;margin-bottom:12px;flex-shrink:0}.kpi-grid-4{grid-template-columns:repeat(4,1fr)}.kpi-grid-5{grid-template-columns:repeat(5,1fr)}.kpi-grid-3{grid-template-columns:repeat(3,1fr)}.kpi-card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.kpi-label{font-size:10px;color:var(--text-5);letter-spacing:.03em;margin-bottom:7px}.kpi-value{font-size:22px;font-weight:500;line-height:1;color:var(--text-1);margin-bottom:6px}.kpi-value.accent{color:var(--accent-text)}.kpi-value.success{color:var(--success)}.kpi-value.warning{color:var(--warning)}.kpi-value.danger{color:var(--danger)}.kpi-value.purple{color:var(--purple)}.kpi-trend{font-size:10px;display:flex;align-items:center;gap:3px}.kpi-trend.up{color:var(--success)}.kpi-trend.down{color:var(--danger)}.kpi-trend.neutral{color:var(--text-5)}.kpi-spotlight{background:var(--surface-3);border:1px solid var(--border);border-radius:8px;padding:11px 13px}.kpi-spotlight .kpi-label{margin-bottom:4px}.kpi-spotlight .kpi-name{font-size:13px;font-weight:500;color:var(--accent-text);margin-bottom:2px}.kpi-spotlight .kpi-sub{font-size:10px;color:var(--text-5)}.chart-card{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:14px}.chart-title{font-size:12px;font-weight:500;color:var(--text-2);margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}.chart-title span{font-size:10px;color:var(--text-5);font-weight:400}.bar-chart{display:flex;gap:5px;align-items:flex-end}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}.bar-col-label{font-size:9px;color:var(--text-6)}.bar-fill{width:100%;border-radius:2px 2px 0 0}.hbar-row{margin-bottom:8px}.hbar-row:last-child{margin-bottom:0}.hbar-meta{display:flex;justify-content:space-between;margin-bottom:3px}.hbar-name{font-size:11px;color:var(--text-3)}.hbar-val{font-size:11px;color:var(--text-4)}.hbar-track{height:5px;background:var(--border);border-radius:3px;overflow:hidden}.hbar-fill{height:100%;border-radius:3px;transition:width .5s ease}:root{--table-head-bg: var(--bg)}.table-wrap{flex:1;overflow-y:auto;padding:0 20px}.table-wrap::-webkit-scrollbar{width:4px}.table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.page-body .table-wrap{padding:0}table{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed}thead th{position:sticky;top:0;z-index:1;background:var(--table-head-bg);font-size:10px;font-weight:500;color:var(--text-5);text-align:left;padding:9px 0 7px;letter-spacing:.04em;box-shadow:inset 0 -1px 0 var(--border)}tbody tr{border-bottom:1px solid var(--border-sub)}tbody tr:hover{background:var(--row-hover)}tbody tr.selected{background:var(--row-selected)!important}tbody tr.selected td{color:var(--row-selected-fg);font-weight:500}tbody tr.selected{outline:1px solid var(--accent);outline-offset:-1px}.action-group .btn:focus{outline:2px solid var(--accent);outline-offset:2px}tbody td{padding:8px 0;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:4px;font-size:10px;font-weight:500;white-space:nowrap}.badge-accent{background:var(--accent-dim);color:var(--accent-text)}.badge-success{background:var(--success-dim);color:var(--success)}.badge-warning{background:var(--warning-dim);color:var(--warning)}.badge-danger{background:var(--danger-dim);color:var(--danger)}.badge-purple{background:var(--purple-dim);color:var(--purple)}.badge-neutral{background:var(--neutral-dim);color:var(--text-3)}.table-footer{padding:10px 20px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.table-footer-count{font-size:11px;color:var(--text-5)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--surface-1);--table-head-bg: var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:0;width:520px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-lg{width:680px}.modal-xl{width:min(1100px,94vw);max-height:92vh}.modal-sm{width:380px}.modal-header{padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.modal-title{font-size:14px;font-weight:500;color:var(--text-1)}.modal-close{background:none;border:none;color:var(--text-4);font-size:18px;cursor:pointer;line-height:1;padding:2px}.modal-close:hover{color:var(--text-2)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-body::-webkit-scrollbar{width:4px}.modal-body::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.modal-footer{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.form-grid-1{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}.form-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:12px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.icon-btn{background:none;border:none;color:var(--text-4);font-size:16px;cursor:pointer;padding:4px;border-radius:4px}.icon-btn:hover{color:var(--text-2);background:var(--hover-strong)}.ticket-link{color:var(--accent-text);font-weight:500}.section-label{font-size:10px;color:var(--text-5);letter-spacing:.06em;margin-bottom:8px;margin-top:14px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:8px}.empty-state-icon{font-size:32px;color:var(--text-6);margin-bottom:4px}.empty-state-text{font-size:13px;font-weight:500;color:var(--text-4)}.empty-state-sub{font-size:11px;color:var(--text-5)}.divider{height:1px;background:var(--border);margin:12px 0}.login-screen{height:100vh;width:100%;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{width:340px;background:var(--surface-1);border:1px solid var(--border);border-radius:12px;padding:28px 26px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-logo{width:42px;height:42px;border-radius:9px;background:var(--accent);display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-title{font-size:17px;font-weight:600;color:var(--text-1)}.login-sub{font-size:11px;color:var(--text-5);margin-top:1px}.login-error{margin-top:12px;padding:8px 11px;background:var(--danger-dim);color:var(--danger);border:1px solid var(--danger-border);border-radius:6px;font-size:11px}.login-hint{margin-top:16px;text-align:center;font-size:10px;color:var(--text-6)}.pw-wrap{position:relative;display:flex;align-items:center}.pw-wrap .input{padding-right:56px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:transparent;border:0;color:var(--text-4);font-size:11px;font-weight:500;cursor:pointer;padding:5px 8px;border-radius:5px}.pw-toggle:hover{color:var(--accent-text)}.mobile-topbar,.sidebar-backdrop{display:none}@media (max-width: 768px){:root{font-size:14px}.app-shell{height:100dvh;flex-direction:column}.mobile-topbar{display:flex;align-items:center;gap:10px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top,0px));background:var(--surface-1);border-bottom:1px solid var(--border);flex-shrink:0}.mobile-menu-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-2);font-size:20px;line-height:1;width:40px;height:40px;cursor:pointer;flex-shrink:0}.mobile-topbar-title{flex:1;min-width:0;font-size:15px;font-weight:500;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-filter-btn{background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-3);font-size:13px;padding:9px 12px;cursor:pointer;flex-shrink:0}.mobile-filter-btn.on{border-color:var(--accent);color:var(--accent-text)}.filters-folded .filter-bar .input-group,.filters-folded .filter-bar .filter-actions{display:none!important}.filters-folded .filter-bar:not(:has(>:not(.input-group,.filter-actions))){display:none}.report-generator{padding:12px!important}.report-generator .input-group{flex:1 1 100%!important}.report-generator-rule{display:none}.filters-folded .report-generator .input-group,.filters-folded .report-generator-title,.picked-clear{display:none!important}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:95;width:min(280px,85vw);transform:translate(-100%);transition:transform .2s ease;box-shadow:4px 0 18px var(--shadow);padding-top:env(safe-area-inset-top,0px)}.sidebar.open{transform:none}.sidebar-backdrop.open{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--overlay)}.nav-item{padding:11px 10px;font-size:14px}.sidebar-section{font-size:11px}.sidebar-user-name{font-size:13px}.btn-signout{padding:10px;font-size:13px}.app-main{overflow-y:auto;-webkit-overflow-scrolling:touch}.app-main>div{height:auto!important;overflow:visible!important}.app-main>div>div,.page-body{overflow:visible!important;flex:none!important}.page-header{padding:10px 12px;flex-wrap:wrap;gap:8px}.page-title{font-size:16px}.page-body{padding:12px}.filter-bar{padding:10px 12px}.filter-bar .input-group{min-width:0!important;flex:1 1 calc(50% - 8px)}.filter-bar>div:not(.input-group){flex-wrap:wrap!important;margin-left:0!important;width:100%}.action-bar{padding:8px 12px;flex-wrap:wrap}.input{font-size:16px;padding:10px 12px}.btn{padding:9px 14px;font-size:13px}.btn-sm{padding:8px 12px;font-size:12px}.btn-xs{padding:6px 10px;font-size:11px}.kpi-grid-3,.kpi-grid-4,.kpi-grid-5{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3,.form-grid-2,.form-grid-3{grid-template-columns:1fr}.kpi-value{font-size:20px}.table-wrap{flex:none!important;padding:0 12px;overflow-x:auto!important}.table-wrap>table{table-layout:auto;width:max-content;min-width:100%}.table-wrap>table th,.table-wrap>table td{padding-right:16px}.table-wrap>table th{white-space:nowrap}.table-wrap>table:has(tbody>tr:only-child>td[colspan]){width:100%}.table-wrap>table:has(tbody>tr:only-child>td[colspan]) thead{display:none}.table-wrap>table td[colspan]{white-space:normal;padding-left:12px!important;padding-right:12px!important}.chart-card{overflow-x:auto}table{font-size:12px}tbody td{padding:10px 0}thead th{font-size:11px}.table-footer{padding:10px 12px;flex-wrap:wrap;gap:6px 12px}.modal-overlay{align-items:flex-end}.modal,.modal-lg,.modal-sm,.modal-xl{width:100%!important;max-width:100%!important;max-height:92dvh;border-radius:12px 12px 0 0}.modal-body{padding:14px;overflow-x:auto}.modal-header,.modal-footer{padding:12px 14px}.modal-footer{flex-wrap:wrap;padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}.modal-close{font-size:26px;padding:4px 8px}.login-card{width:calc(100vw - 32px);max-width:380px}}
