*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f7f8fa;--surface: #ffffff;--surface-alt: #f2f4f7;--border: #e2e6ec;--border-strong: #c8cfd8;--text: #1a1f2e;--text-muted: #6b7280;--text-hint: #9ca3af;--blue: #185FA5;--blue-light: #e6f1fb;--blue-mid: #378ADD;--blue-text: #0C447C;--green: #3B6D11;--green-light: #EAF3DE;--green-text: #27500A;--amber: #854F0B;--amber-light: #FAEEDA;--amber-text: #633806;--red: #A32D2D;--red-light: #FCEBEB;--red-text: #791F1F;--radius: 8px;--radius-lg: 12px;--shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 8px rgba(0,0,0,.04)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.6;min-height:100vh}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:0 2rem;display:flex;align-items:center;gap:1rem;height:60px;position:sticky;top:0;z-index:100;box-shadow:var(--shadow)}.logo-pill{background:var(--blue);color:#fff;font-size:12px;font-weight:600;padding:4px 12px;border-radius:20px;letter-spacing:.04em}.app-header h1{font-size:15px;font-weight:500}.header-right{margin-left:auto;font-size:13px;color:var(--text-muted);display:flex;align-items:center;gap:1rem}.app-body{max-width:1360px;margin:0 auto;padding:2rem 1.75rem}.version-chip{font-size:11px;font-weight:600;color:var(--text-muted);background:var(--surface-alt);border:1px solid var(--border);padding:2px 8px;border-radius:20px;cursor:default}.app-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--border);text-align:center;font-size:12px;color:var(--text-hint)}.tabs{display:flex;gap:4px;margin-bottom:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:6px;width:fit-content;box-shadow:var(--shadow);flex-wrap:wrap}.tab{padding:8px 20px;font-size:14px;font-weight:500;cursor:pointer;border:none;background:transparent;color:var(--text-muted);border-radius:var(--radius);display:inline-flex;align-items:center;gap:7px;transition:all .15s;font-family:inherit;text-decoration:none}.tab:hover{background:var(--surface-alt);color:var(--text)}.tab.active{background:var(--blue);color:#fff}.hamburger{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;font-size:20px;line-height:1;cursor:pointer;color:var(--text-muted);padding:6px 10px;border-radius:var(--radius)}.hamburger:hover{background:var(--surface-alt);color:var(--text)}.app-shell{display:flex;align-items:flex-start}.app-shell .app-body{flex:1 1 auto;min-width:0}.sidebar{flex:0 0 216px;width:216px;align-self:stretch;background:linear-gradient(180deg,#1a4a86,#123a6b 48%,#0c2749);border-right:1px solid rgba(255,255,255,.06);box-shadow:inset -6px 0 14px -12px #0009;position:sticky;top:60px;height:calc(100vh - 60px);overflow-y:auto;overflow-x:hidden;padding:1rem .6rem;box-sizing:border-box;transition:flex-basis .15s,width .15s}.sidebar .tab{color:#c3d5ef}.sidebar .tab:hover{background:#ffffff14;color:#fff}.sidebar .tab.active{background:var(--blue-mid);color:#fff;box-shadow:0 2px 10px -2px #00000073}.sidebar .tab .ico{opacity:.95}.sidebar.mini{flex-basis:60px;width:60px;padding:1rem .4rem}.side-nav{display:flex;flex-direction:column;gap:4px}.side-nav .tab{position:relative;width:100%;justify-content:flex-start;padding:10px 12px;white-space:nowrap;overflow:hidden}.side-nav .tab .ico{flex:0 0 auto;width:22px;text-align:center;font-size:16px}.sidebar.mini .side-nav .tab{justify-content:center;padding:10px 0}.sidebar.mini .lbl{display:none}.sidebar.mini .nav-badge{position:absolute;top:3px;right:6px;margin:0;padding:0 5px}@media(max-width:900px){.app-header{padding:0 1rem;gap:.6rem}.hide-mobile{display:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.25rem}.card-title{font-size:13px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1rem;display:flex;align-items:center;gap:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;font-weight:500;color:var(--text-muted)}.field input,.field select,.field textarea{font-family:inherit;font-size:14px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-mid);box-shadow:0 0 0 3px #378add1f}.field textarea{min-height:80px;resize:vertical}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{padding:7px 16px;border-radius:20px;font-size:13px;font-weight:500;cursor:pointer;border:1.5px solid var(--border);color:var(--text-muted);background:var(--surface);transition:all .15s;font-family:inherit}.pill:hover{border-color:var(--blue-mid);color:var(--blue-text)}.pill.selected{background:var(--blue-light);border-color:var(--blue-mid);color:var(--blue-text)}.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:1rem}.kpi{background:var(--surface-alt);border-radius:var(--radius);padding:14px 16px;border:1px solid var(--border)}.kpi-label{font-size:12px;color:var(--text-muted);margin-bottom:6px;font-weight:500}.kpi-value{font-size:26px;font-weight:600;color:var(--text)}.kpi-value.green{color:var(--green)}.kpi-value.amber{color:var(--amber)}.kpi-value.red{color:var(--red)}.kpi-sub{font-size:12px;color:var(--text-hint);margin-top:2px}.progress-wrap{height:6px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:6px}.progress-bar{height:100%;border-radius:3px;transition:width .3s;background:var(--blue-mid)}.progress-bar.green{background:#639922}.progress-bar.amber{background:#ef9f27}.progress-bar.red{background:#e24b4a}.dash-kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:1.5rem}.dash-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow)}.dash-kpi-label{font-size:12px;color:var(--text-muted);font-weight:500;margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}.dash-kpi-value{font-size:32px;font-weight:600;line-height:1;color:var(--text)}.dash-kpi-value.green{color:var(--green)}.dash-kpi-value.amber{color:var(--amber)}.dash-kpi-value.red{color:var(--red)}.dash-kpi-sub{font-size:12px;color:var(--text-hint);margin-top:6px}.dash-kpi.with-ico{display:flex;align-items:center;gap:14px}.dash-kpi.with-ico .dash-kpi-body{min-width:0;flex:1}.dash-kpi-ico{flex:0 0 auto;width:48px;height:48px;display:grid;place-items:center;font-size:23px;border-radius:14px;background:var(--blue-light);box-shadow:inset 0 0 0 1px #185fa51f}.dash-kpi.clickable-kpi{cursor:pointer;transition:box-shadow .15s,transform .05s}.dash-kpi.clickable-kpi:hover{box-shadow:0 4px 14px -4px #0000002e}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;padding:10px 14px;color:var(--text-muted);font-weight:600;border-bottom:2px solid var(--border);white-space:nowrap;background:var(--surface-alt)}td{padding:10px 14px;border-bottom:1px solid var(--border);color:var(--text);vertical-align:middle}tr:last-child td{border-bottom:none}tr:hover td{background:var(--surface-alt)}.clickable{cursor:pointer}.clickable:hover td{background:var(--blue-light)}.badge{display:inline-block;padding:3px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-ok{background:var(--green-light);color:var(--green-text)}.badge-err{background:var(--red-light);color:var(--red-text)}.badge-neutral{background:var(--surface-alt);color:var(--text-muted)}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 22px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:none;transition:all .15s;font-family:inherit;text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover:not(:disabled){background:var(--blue-text)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--surface-alt)}.btn-row{display:flex;gap:10px;margin-top:1.5rem;align-items:center;flex-wrap:wrap}.msg{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;padding:8px 16px;border-radius:var(--radius)}.msg-ok{color:var(--green-text);background:var(--green-light);border:1px solid #97C459}.msg-err{color:var(--red-text);background:var(--red-light);border:1px solid #E24B4A}.empty{text-align:center;padding:3rem 1rem;color:var(--text-hint)}.empty p{font-size:14px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:1.25rem;color:var(--text-muted);flex-wrap:wrap}.breadcrumb a{color:var(--blue);cursor:pointer;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.auth-card{width:100%;max-width:400px}.auth-logo{display:flex;justify-content:center;margin-bottom:1.25rem}.seg{display:flex;gap:4px;background:var(--surface-alt);border-radius:var(--radius);padding:4px;margin-bottom:1.25rem}.seg button{flex:1;padding:8px;font-size:13px;font-weight:500;border:none;background:transparent;color:var(--text-muted);border-radius:6px;cursor:pointer;font-family:inherit}.seg button.active{background:var(--surface);color:var(--blue-text);box-shadow:var(--shadow)}.stack{display:flex;flex-direction:column;gap:14px}@media(max-width:900px){.grid-2,.grid-3,.kpi-row{grid-template-columns:1fr}.app-header h1{display:none}.app-body{padding:1rem .75rem}th,td{padding:8px 10px;white-space:nowrap}.dash-kpi{padding:1rem 1.1rem}.dash-kpi-value{font-size:26px;white-space:nowrap}.card{padding:1.1rem}}
