@font-face{font-family:Material Icons;font-style:normal;font-weight:400;font-display:block;src:url(/fonts/material-icons.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-vietnamese-300-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-vietnamese-400-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-vietnamese-500-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-vietnamese-600-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-vietnamese-700-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-vietnamese-800-normal.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-latin-ext-300-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-ext-700-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-latin-ext-800-normal.woff2) format("woff2");unicode-range:U+0100-02AF,U+0304,U+0308,U+0329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/inter-latin-300-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/inter-latin-800-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;width:1em;height:1em;overflow:hidden;flex-shrink:0}html:not(.icons-ready) .material-icons{color:transparent!important}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--success: #16a34a;--success-light: #dcfce7;--warning: #f59e0b;--warning-light: #fef3c7;--danger: #dc2626;--danger-light: #fee2e2;--purple: #7c3aed;--purple-light: #f3e8ff;--indigo: #4f46e5;--indigo-light: #eef2ff;--cyan: #0891b2;--cyan-light: #cffafe;--orange: #ea580c;--orange-light: #ffedd5;--bg: #f5f7fb;--surface: #ffffff;--text: #0f172a;--muted: #64748b;--border: #e2e8f0;--shadow-sm: 0 2px 8px rgba(15, 23, 42, .05);--shadow-md: 0 8px 24px rgba(15, 23, 42, .08);--shadow-lg: 0 18px 40px rgba(15, 23, 42, .1);--radius: 20px;--transition: .25s ease}html{scroll-behavior:smooth}body{font-family:Inter,sans-serif;background:linear-gradient(180deg,#eef4ff,#f8fafc);color:var(--text);overflow:hidden}a{text-decoration:none;color:inherit}button{font-family:inherit;border:none;outline:none;cursor:pointer}input,select{font-family:inherit}.app{display:flex;width:100vw;height:100vh;overflow:hidden}.content-wrapper{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.main-content{flex:1;overflow-y:auto;padding:28px}.dashboard,.page{width:100%;max-width:1800px;margin:0 auto}.sidebar{width:260px;background:#0f172a;color:#fff;display:flex;flex-direction:column;flex-shrink:0;box-shadow:4px 0 18px #0f172a1f}.sidebar-logo{padding:28px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between}.sidebar-close{display:none;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffff14;border:none;border-radius:8px;color:#cbd5e1;cursor:pointer;flex-shrink:0}.sidebar-close:hover{background:#ffffff29;color:#fff}.sidebar-close .material-icons{font-size:18px}.menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;background:#f1f5f9;border:none;border-radius:10px;color:var(--navy);cursor:pointer;flex-shrink:0}.menu-toggle:hover{background:#e2e8f0}.menu-toggle .material-icons{font-size:22px}.header-title-group{display:contents}.brand{display:flex;align-items:center;gap:16px}.brand-icon{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;justify-content:center;align-items:center;flex-shrink:0;box-shadow:0 10px 24px #2563eb59}.brand-icon .material-icons{font-size:30px;color:#fff}.brand h2{font-size:17px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.brand p{margin-top:4px;font-size:13px;color:#cbd5e1}.sidebar-nav{flex:1;padding:22px 16px;overflow-y:auto}.nav-section{margin-bottom:28px}.nav-section-title{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin:0 12px 12px}.nav-item{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:14px;color:#cbd5e1;transition:all .25s ease;margin-bottom:6px;font-weight:500;width:100%;background:none;text-align:left;font-size:14px}.nav-item .material-icons{font-size:22px}.nav-item:hover{background:#1e293b;color:#fff;transform:translate(4px)}.nav-item.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 10px 24px #2563eb4d}.nav-item.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.sidebar-status{margin:20px;padding:18px;border-radius:18px;background:#172554;display:flex;align-items:center;gap:14px}.status-dot{width:12px;height:12px;border-radius:50%;background:#22c55e;animation:pulse 1.8s infinite;flex-shrink:0}.sidebar-status strong{display:block;font-size:14px;color:#fff}.sidebar-status small{display:block;margin-top:4px;color:#cbd5e1;font-size:12px}@keyframes pulse{0%{transform:scale(.9);opacity:.9}70%{transform:scale(1.6);opacity:.25}to{transform:scale(.9);opacity:.9}}.header{background:var(--surface);padding:24px 30px;border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.header-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.page-title{font-size:34px;font-weight:800;color:var(--text)}.page-subtitle{margin-top:6px;font-size:15px;color:var(--muted)}.header-actions{display:flex;gap:12px}.filter-card{background:#f8fafc;border:1px solid var(--border);border-radius:20px;padding:20px}.filter-title{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--text);margin-bottom:18px}.filter-title .material-icons{color:var(--primary)}.filter-bar{display:grid;grid-template-columns:repeat(6,minmax(150px,1fr));gap:18px;align-items:end}.filter-toggle{background:none;border:none;padding:0;width:100%;text-align:left;font:inherit;cursor:default}.filter-toggle-text{display:flex;align-items:baseline;gap:10px}.filter-summary,.filter-toggle-chevron{display:none}.filter-group{display:flex;flex-direction:column}.filter-group label{font-size:12px;font-weight:700;color:var(--muted);margin-bottom:8px}select{width:100%;height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font-size:14px;transition:var(--transition)}select:hover{border-color:#cbd5e1}select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.filter-buttons{display:flex;gap:12px;align-items:end}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:12px;font-size:14px;font-weight:700;transition:var(--transition)}.btn .material-icons{font-size:20px}.btn:disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 24px #2563eb4d}.btn-outline{background:#fff;border:1px solid var(--border);color:var(--text)}.btn-outline:hover{background:#f8fafc}.btn-light{background:#e5e7eb;color:#374151}.btn-light:hover{background:#d1d5db}.summary-card{display:flex;align-items:center;gap:24px;background:var(--surface);padding:28px;border-radius:22px;box-shadow:var(--shadow-md);margin-bottom:28px;transition:var(--transition)}.summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.summary-icon{width:72px;height:72px;border-radius:20px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;flex-shrink:0}.summary-icon .material-icons{font-size:38px}.summary-content{flex:1}.summary-content h3{font-size:22px;font-weight:700;margin-bottom:8px}.summary-content p{color:var(--muted);line-height:1.7;font-size:15px}.summary-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.summary-chip{padding:7px 14px;border-radius:999px;background:var(--primary-light);color:var(--primary);font-size:12px;font-weight:700}.page-header{margin-bottom:24px}.page-header h1{font-size:30px;font-weight:800;color:var(--text)}.page-header p{margin-top:6px;font-size:15px;color:var(--muted)}.section-title{font-size:19px;font-weight:800;color:var(--text);margin:36px 0 16px;padding-top:20px;border-top:1px solid var(--border)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin:30px 0}.chart-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-bottom:30px}.kpi-orgchart{display:flex;flex-wrap:wrap;align-items:flex-start;gap:28px;margin:30px 0}.org-col{display:flex;flex-direction:column;align-items:stretch;flex:1 1 300px;min-width:300px;gap:0}.org-col-wide{flex:2 1 460px;min-width:460px}.org-col-stack{gap:22px}.org-connector{width:2px;min-height:22px;background:var(--border);margin:0 auto}.org-children-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:16px}.org-children-row .kpi-card{flex:1 1 150px;min-width:150px}.kpi-card{background:var(--surface);border-radius:22px;padding:24px;position:relative;overflow:hidden;box-shadow:var(--shadow-md);transition:var(--transition)}.kpi-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.kpi-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:5px;background:var(--card-accent, var(--primary))}.org-child{padding:16px}.org-child .kpi-header{gap:10px}.org-child .kpi-icon{width:38px;height:38px;border-radius:12px}.org-child .kpi-icon .material-icons{font-size:20px}.org-child .kpi-title{font-size:11.5px;line-height:1.3}.org-child .kpi-value{font-size:20px;margin-top:4px;letter-spacing:-.5px}.org-child .trend,.org-child .badge{font-size:11px}.kpi-header{display:flex;gap:16px;align-items:center}.kpi-icon{width:58px;height:58px;border-radius:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.kpi-icon .material-icons{font-size:28px}.kpi-icon.blue{background:#dbeafe;color:#2563eb}.kpi-icon.purple{background:#f3e8ff;color:#7c3aed}.kpi-icon.indigo{background:#eef2ff;color:#4f46e5}.kpi-icon.green{background:#dcfce7;color:#16a34a}.kpi-icon.orange{background:#ffedd5;color:#ea580c}.kpi-icon.cyan{background:#cffafe;color:#0891b2}.kpi-icon.red{background:#fee2e2;color:#dc2626}.kpi-title{font-size:13px;color:var(--muted);font-weight:600}.kpi-value{margin-top:6px;font-size:34px;font-weight:800;color:var(--text);letter-spacing:-1px}.kpi-footer{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.trend{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}.trend.positive{color:#16a34a}.trend.neutral{color:#d97706}.trend.negative{color:#dc2626}.trend.world{color:#2563eb}.badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:700}.badge.world{background:var(--primary-light);color:var(--primary)}.badge.good{background:var(--success-light);color:var(--success)}.badge.warning{background:var(--warning-light);color:var(--warning)}.badge.danger{background:var(--danger-light);color:var(--danger)}.badge.na{background:#f1f5f9;color:var(--muted)}.capability-color-box{margin-top:18px;border-radius:14px;min-height:56px;background:#94a3b8}.capability-color-box.status-blue{background:#2563eb}.capability-color-box.status-green{background:#16a34a}.capability-color-box.status-yellow{background:#f59e0b}.capability-color-box.status-red{background:#dc2626}.capability-color-box.status-gray{background:#94a3b8}.insight-text{font-size:15px;color:var(--text);line-height:1.6}.insight-text b{font-weight:700}.chart-grid-even{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:30px}.chart-card{background:var(--surface);border-radius:22px;padding:26px;box-shadow:var(--shadow-md);transition:var(--transition);position:relative;overflow:hidden;margin-bottom:30px}.chart-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.chart-card.large{min-height:460px}.chart-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:linear-gradient(90deg,var(--primary),#60a5fa)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.card-header h3{font-size:20px;font-weight:700}.card-header p{color:var(--muted);font-size:13px}.chart-canvas-wrap{position:relative;height:320px}.chart-card.large .chart-canvas-wrap{height:380px}.table-card{background:var(--surface);border-radius:22px;padding:24px;box-shadow:var(--shadow-md);overflow:hidden;margin-bottom:30px}.table-scroll{max-height:480px;overflow-y:auto}table{width:100%;border-collapse:collapse}thead{background:#f8fafc;position:sticky;top:0;z-index:1}th{padding:16px;text-align:left;font-size:13px;font-weight:700;color:#334155;border-bottom:2px solid var(--border)}td{padding:15px 16px;border-bottom:1px solid #edf2f7;font-size:14px;color:#334155}tbody tr{transition:.2s}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}.score-blue{color:#2563eb;font-weight:700}.score-green{color:#16a34a;font-weight:700}.score-yellow{color:#d97706;font-weight:700}.score-red{color:#dc2626;font-weight:700}.no-data{text-align:center;padding:50px;color:var(--muted)}.heatmap-wrapper{overflow-x:auto}.heatmap-table{width:100%;border-collapse:separate;border-spacing:4px}.heatmap-table th{padding:8px 6px;font-size:12px;font-weight:700;color:#334155;text-align:center}.heatmap-table th:first-child{text-align:left}.heatmap-plant{padding:8px 10px;font-size:13px;font-weight:700;color:var(--text);white-space:nowrap}.heatmap-cell{text-align:center;padding:10px 6px;font-size:12px;font-weight:700;color:#fff;border-radius:6px;min-width:56px}.heatmap-cell.no-data{background:#f1f5f9!important;color:#94a3b8}.footer{display:flex;justify-content:space-between;align-items:center;padding:18px 30px;background:var(--surface);border-top:1px solid var(--border);color:var(--muted);font-size:13px}.panel-loading,.panel-error{padding:24px;font-size:14px}.panel-error{color:var(--danger)}.panel-timestamp{color:var(--muted);font-size:13px;margin-bottom:20px}.debug-json{background:#0f172a;color:#d8e2f0;padding:16px;border-radius:6px;overflow:auto;font-size:12px}@media (max-width: 1200px){.chart-grid-even,.chart-grid-3{grid-template-columns:1fr}.filter-bar{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){.sidebar{width:90px}.logo-text,.nav-label,.nav-section-title,.sidebar-status-text{display:none}.nav-item{justify-content:center}}@media (max-width: 768px){.menu-toggle{display:flex}.header{padding:16px 20px}.header-row{margin-bottom:16px}.page-subtitle{display:none}.filter-card{padding:14px 18px}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;z-index:200;transform:translate(-100%);transition:transform .25s ease}.sidebar.open{transform:translate(0)}.logo-text,.nav-label,.nav-section-title,.sidebar-status-text{display:block}.sidebar-status-text{display:flex;flex-direction:column}.nav-item{justify-content:flex-start}.sidebar-close{display:flex}.sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0814228c;z-index:150}.header-row{flex-direction:column;align-items:flex-start;gap:16px}.header-title-group{display:flex;align-items:center;gap:14px}.page-title{font-size:22px}.page-subtitle{font-size:13px}.header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.filter-bar{grid-template-columns:1fr}.filter-toggle{cursor:pointer}.filter-summary{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:2px}.filter-toggle-chevron{display:inline-flex;margin-left:auto;color:var(--muted)}.filter-card .filter-bar{display:none}.filter-card.expanded .filter-bar{display:grid;margin-top:18px}.filter-card:not(.expanded) .filter-title{margin-bottom:0}.summary-card{flex-direction:column;align-items:flex-start}.kpi-grid{grid-template-columns:1fr}.kpi-orgchart{flex-direction:column}.org-col,.org-col-wide{min-width:100%;flex-basis:100%}.org-children-row{flex-direction:column}}@media (max-width: 600px){.main-content{padding:18px}table{min-width:900px}.table-card{overflow-x:auto}}#toast{position:fixed;bottom:-80px;right:30px;background:var(--text);color:#fff;padding:14px 22px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:var(--shadow-lg);transition:.3s;z-index:99999;opacity:0}#toast.show{bottom:30px;opacity:1}input[type=email],input[type=password],input[type=text]{width:100%;height:44px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--text);font-size:14px;font-family:Inter,sans-serif;transition:var(--transition)}input[type=email]:hover,input[type=password]:hover,input[type=text]:hover{border-color:#cbd5e1}input[type=email]:focus,input[type=password]:focus,input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2563eb26}.password-field-wrap{position:relative}.password-field-wrap input{padding-right:44px}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:none;border:none;cursor:pointer;border-radius:8px;color:var(--muted)}.password-toggle:hover{background:#f1f5f9;color:var(--text)}.password-toggle:focus-visible{box-shadow:0 0 0 3px #2563eb59}.password-toggle .material-icons{font-size:20px}.user-chip{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 12px;border-radius:999px;background:#f1f5f9;color:var(--text);font-size:13px;font-weight:600;min-width:0}.user-chip .material-icons{font-size:20px;color:var(--muted)}.user-chip-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.user-chip-email,.header-actions .btn-text{display:none}.header-actions .btn{padding:10px}}.user-chip-signout{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:4px;border-radius:999px;color:var(--muted)}.user-chip-signout:hover{background:#e2e8f0;color:var(--danger)}.user-chip-signout .material-icons{font-size:18px}[data-theme=dark]{--primary: #3b82f6;--primary-dark: #2563eb;--primary-light: rgba(59, 130, 246, .16);--success: #22c55e;--success-light: rgba(34, 197, 94, .16);--warning: #fbbf24;--warning-light: rgba(251, 191, 36, .16);--danger: #f87171;--danger-light: rgba(248, 113, 113, .16);--purple: #a78bfa;--purple-light: rgba(167, 139, 250, .16);--indigo: #818cf8;--indigo-light: rgba(129, 140, 248, .16);--cyan: #22d3ee;--cyan-light: rgba(34, 211, 238, .16);--orange: #fb923c;--orange-light: rgba(251, 146, 60, .16);--bg: #0b1220;--surface: #141c2e;--text: #e5eaf2;--muted: #94a3b8;--border: #263248;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .25);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 18px 40px rgba(0, 0, 0, .45)}[data-theme=dark] body{background:linear-gradient(180deg,#0b1220,#0e1526)}[data-theme=dark] .filter-card{background:#101828}[data-theme=dark] select,[data-theme=dark] input[type=email],[data-theme=dark] input[type=password],[data-theme=dark] input[type=text]{background:#101828;color:var(--text);border-color:var(--border)}[data-theme=dark] select:hover,[data-theme=dark] input[type=email]:hover,[data-theme=dark] input[type=password]:hover,[data-theme=dark] input[type=text]:hover{border-color:#384258}[data-theme=dark] thead{background:#101828}[data-theme=dark] th,[data-theme=dark] td{color:#cbd5e1;border-bottom-color:var(--border)}[data-theme=dark] tbody tr:hover{background:#101828}[data-theme=dark] .badge.na{background:#1e293b}[data-theme=dark] .heatmap-cell.no-data{background:#1e293b!important;color:#64748b}[data-theme=dark] .user-chip{background:#1e293b}[data-theme=dark] .user-chip-signout:hover{background:#263248}[data-theme=dark] .debug-json{background:#060a12;color:#b6c6de}.theme-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--surface);border:1px solid var(--border);border-radius:10px;color:var(--muted);cursor:pointer;transition:var(--transition);flex-shrink:0}.theme-toggle:hover{border-color:#cbd5e1;color:var(--text)}.theme-toggle:focus-visible{box-shadow:0 0 0 3px #2563eb59}.theme-toggle .material-icons{font-size:20px}.presentation-toggle.active{background:var(--primary);border-color:var(--primary);color:#fff}.presentation-toggle.active:hover{background:var(--primary-dark);border-color:var(--primary-dark);color:#fff}.entry-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px 20px;margin:16px 0 20px}.entry-grid input,.entry-grid select,.entry-filters input{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font-size:14px}.entry-grid input:focus,.entry-grid select:focus,.entry-filters input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.entry-grid input:disabled,.entry-grid select:disabled{background:var(--bg);color:var(--muted);cursor:not-allowed}.entry-grid .has-error input,.entry-grid .has-error select{border-color:var(--danger)}.field-error{color:var(--danger);font-size:12px;margin-top:4px;display:block}.entry-actions{display:flex;gap:10px;flex-wrap:wrap}.entry-conflict{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.entry-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:14px 0}.entry-row-actions{white-space:nowrap;display:flex;gap:6px;align-items:center}.entry-row-actions .btn{padding:6px 12px;font-size:13px}.entry-pager{display:flex;justify-content:space-between;align-items:center;margin-top:14px;color:var(--muted);font-size:13px}@media (max-width: 768px){.entry-grid{grid-template-columns:1fr 1fr}.entry-pager{flex-direction:column;gap:10px;align-items:flex-start}}@media (max-width: 480px){.entry-grid{grid-template-columns:1fr}}.entry-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.bulk-grid table{min-width:100%}.bulk-grid td,.bulk-grid th{white-space:nowrap;padding:4px 6px}.bulk-grid td input[type=text],.bulk-grid td input[type=date],.bulk-grid td input[type=month],.bulk-grid td select{min-width:120px;width:100%;box-sizing:border-box;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px}.bulk-grid td input.cell-error,.bulk-grid td select.cell-error{border-color:var(--danger);background:#dc26260f}.bulk-grid tr.row-error td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.bulk-grid .bulk-status{white-space:normal;min-width:180px;font-size:12px;color:var(--danger)}.bulk-grid .bulk-status label{color:var(--text);display:flex;gap:6px;align-items:center}.bulk-count{margin-left:auto;color:var(--muted);font-size:13px;align-self:center}.field-hint{color:var(--muted);font-size:12px;margin-top:4px;display:block}.entry-params{margin:8px 0 20px}.entry-params table{min-width:560px}.entry-params caption{text-align:left;color:var(--muted);font-size:13px;padding:6px 0}.entry-params th[scope=row]{text-align:left;white-space:nowrap}.entry-params td input,.entry-params td select{width:100%;min-width:90px;box-sizing:border-box;padding:7px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);font-size:13px}.entry-params .has-error input,.entry-params .has-error select{border-color:var(--danger)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skeleton-panel{display:flex;flex-direction:column;gap:20px;padding:4px 0}.skeleton-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.skeleton{border-radius:16px;background:linear-gradient(90deg,#94a3b82e 25%,#94a3b852 37%,#94a3b82e 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}.skeleton-kpi{height:110px}.skeleton-chart{height:280px}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.panel-error{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.panel-error-detail{color:var(--muted);font-size:13px}.nav-item.disabled .nav-soon{margin-left:auto;font-size:10px;letter-spacing:.04em;text-transform:uppercase;opacity:.8}.sidebar-nav{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.25) transparent}@media (max-height: 760px){.sidebar-logo{padding:18px 20px}.sidebar-nav{padding:14px 12px}.nav-section{margin-bottom:16px}.nav-item{padding:9px 14px;margin-bottom:3px}.sidebar-status{margin:12px;padding:12px}}@media (min-width: 993px){.filter-card{padding:14px 20px}}:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}input:focus-visible,select:focus-visible{outline:none}.auth-shell{--auth-ring: rgba(37, 99, 235, .28);--auth-card: rgba(255, 255, 255, .78);--auth-hairline: rgba(15, 23, 42, .08);--auth-field: #ffffff;--auth-field-border: rgba(15, 23, 42, .16);min-height:100vh;min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:24px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Inter,system-ui,sans-serif;background:radial-gradient(900px circle at 50% -10%,rgba(37,99,235,.08),transparent 60%),#f5f5f7}[data-theme=dark] .auth-shell{--auth-ring: rgba(96, 165, 250, .38);--auth-card: rgba(22, 30, 48, .72);--auth-hairline: rgba(255, 255, 255, .09);--auth-field: rgba(255, 255, 255, .05);--auth-field-border: rgba(255, 255, 255, .16);background:radial-gradient(900px circle at 50% -10%,rgba(59,130,246,.16),transparent 60%),#0b1220}.auth-card{width:100%;max-width:400px;padding:40px 36px 28px;text-align:center;background:var(--auth-card);-webkit-backdrop-filter:saturate(1.6) blur(24px);backdrop-filter:saturate(1.6) blur(24px);border:1px solid var(--auth-hairline);border-radius:24px;box-shadow:0 1px 2px #0f172a0a,0 24px 60px -16px #0f172a33}@media (prefers-reduced-motion: no-preference){.auth-card{animation:authSettle .38s cubic-bezier(.22,.8,.3,1) both}.auth-swap{animation:authFade .22s ease-out both}}@keyframes authSettle{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes authFade{0%{opacity:0}to{opacity:1}}.auth-mark{display:block;margin:0 auto 10px;border-radius:13px;box-shadow:0 1px 2px #0f172a33,0 10px 22px -8px #2563eb8c}.auth-product{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--muted);margin-bottom:22px}.auth-title{font-size:28px;line-height:1.15;font-weight:600;letter-spacing:-.022em;color:var(--text)}.auth-subtitle{margin:8px auto 24px;max-width:32ch;font-size:15px;line-height:1.45;color:var(--muted)}.auth-mark+.auth-title{margin-top:18px}.auth-messages:empty{display:none}.auth-alert{border-radius:12px;padding:12px 14px;margin-bottom:18px;font-size:14px;line-height:1.4;text-align:left}.auth-alert:focus{outline:none}.auth-alert-error{background:var(--danger-light);color:#991b1b}.auth-alert-success{background:var(--success-light);color:#166534}.auth-alert-info{background:var(--primary-light);color:#1e40af}[data-theme=dark] .auth-alert-error{background:#dc26262e;color:#fecaca}[data-theme=dark] .auth-alert-success{background:#16a34a2e;color:#bbf7d0}[data-theme=dark] .auth-alert-info{background:#3b82f62e;color:#bfdbfe}.auth-form{display:flex;flex-direction:column;gap:16px;text-align:left}.auth-form .filter-group label,.auth-label-row label{font-size:13px;font-weight:500;color:var(--text);margin-bottom:0}.auth-form .filter-group>label{margin-bottom:6px}.auth-label-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.auth-form input[type=email],.auth-form input[type=password],.auth-form input[type=text]{height:50px;padding:0 16px;font-size:16px;font-family:inherit;background:var(--auth-field);border:1px solid var(--auth-field-border);border-radius:12px}.auth-form input::placeholder{color:var(--muted);opacity:.8}.auth-form input:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--auth-ring)}.auth-form input[aria-invalid=true]{border-color:var(--danger)}.auth-form .password-field-wrap input{padding-right:52px}.auth-form .password-toggle{right:7px}.auth-field-note{margin-top:6px;font-size:13px;color:var(--muted)}.auth-field-warn{color:#b45309}[data-theme=dark] .auth-field-warn{color:#fbbf24}.auth-submit{width:100%;height:50px;margin-top:4px;border-radius:12px;font-size:16px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:transform .12s ease,background-color .12s ease,opacity .12s ease}.auth-submit:active:not(:disabled){transform:scale(.985)}.auth-submit:disabled{opacity:.75;cursor:default}.auth-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:authSpin .7s linear infinite}@keyframes authSpin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.auth-spinner{animation-duration:1.8s}}.auth-link{background:none;border:none;padding:0;font:inherit;font-size:14px;font-weight:500;color:var(--primary);cursor:pointer;border-radius:4px}.auth-link:hover{text-decoration:underline}[data-theme=dark] .auth-link{color:#7db0ff}.auth-secondary{margin-top:22px;padding-top:18px;border-top:1px solid var(--auth-hairline);font-size:14px;color:var(--muted)}.auth-links{margin-top:22px;display:flex;flex-direction:column;gap:12px;align-items:center}.auth-help{margin-top:18px;font-size:13px;color:var(--muted)}.auth-theme-toggle{display:flex;align-items:center;justify-content:center;color:var(--muted);position:fixed;top:20px;right:20px;z-index:10;background:var(--auth-card);border:1px solid var(--auth-hairline);box-shadow:none}@media (max-width: 480px){.auth-shell{align-items:flex-start;padding:72px 16px 24px}.auth-card{padding:32px 22px 22px;border-radius:20px}.auth-title{font-size:26px}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.auth-card{background:var(--surface)}}.auth-shell{position:relative;overflow:hidden;--auth-bd: #2563eb;--auth-bd-a: .2}[data-theme=dark] .auth-shell{--auth-bd: #60a5fa;--auth-bd-a: .26}.auth-card,.auth-theme-toggle{position:relative;z-index:1}.auth-theme-toggle{position:fixed}.auth-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;-webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 50%,rgba(0,0,0,.35) 0%,#000 70%);mask-image:radial-gradient(ellipse 70% 65% at 50% 50%,#00000059,#000 70%)}.auth-bd-limits line{stroke:var(--auth-bd);stroke-opacity:calc(var(--auth-bd-a) * .8);stroke-width:1.5}.auth-bd-trace{fill:none;stroke:var(--auth-bd);stroke-opacity:var(--auth-bd-a);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.auth-bd-points circle{fill:var(--surface);stroke:var(--auth-bd);stroke-opacity:calc(var(--auth-bd-a) * 1.4);stroke-width:2}.auth-bd-flag{fill:var(--auth-bd);fill-opacity:.4}.auth-bd-flag-ring{fill:none;stroke:var(--auth-bd);stroke-opacity:.18;stroke-width:1.5}@media (prefers-reduced-motion: no-preference){.auth-bd-trace{stroke-dasharray:1;stroke-dashoffset:1;animation:authTrace 2.2s cubic-bezier(.3,.6,.2,1) .15s forwards}.auth-bd-points,.auth-bd-flag,.auth-bd-flag-ring{opacity:0;animation:authFade .6s ease-out 1.6s forwards}}@keyframes authTrace{to{stroke-dashoffset:0}}.brand-mark{flex-shrink:0;border-radius:14px;box-shadow:0 1px 2px #00000059,0 10px 22px -8px #e0b04a59}.auth-field-error{margin:6px 2px 0;font-size:13px;line-height:1.35;color:#d92d20}[data-theme=dark] .auth-field-error{color:#ff8a80}.auth-by{font-weight:400;color:var(--text-secondary, #5B6B7C);margin-left:2px}.auth-by:before{content:"·";margin-right:6px}.auth-form input[aria-invalid=true]{border-color:#d92d20}@media (max-width: 640px){.auth-bd-limits,.auth-bd-points,.auth-bd-flag,.auth-bd-flag-ring{display:none}}.boot-screen{flex-direction:column;gap:6px;justify-content:center}.boot-screen .auth-product{margin:6px 0 14px}.boot-spinner{color:var(--text-secondary, #5B6B7C);border-color:currentColor;border-right-color:transparent}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-height: 480px) and (orientation: landscape){.auth-shell{align-items:flex-start;padding-top:56px;padding-bottom:16px}.auth-card{padding-top:18px;padding-bottom:18px}.auth-card .auth-mark{width:40px;height:40px}.auth-subtitle{margin-bottom:10px}}.auth-or{display:flex;align-items:center;gap:12px;margin:18px 0 14px;color:var(--muted);font-size:13px}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--border, rgba(127,127,127,.3))}.auth-google{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:10px 16px;border-radius:10px;border:1px solid var(--border, rgba(127,127,127,.4));background:var(--card, #fff);color:inherit;font:inherit;font-weight:600;cursor:pointer}.auth-google:hover:not(:disabled){background:#7f7f7f14}.auth-google:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.auth-google:disabled{opacity:.7;cursor:default}.drill-list{margin-top:6px;font-size:12px;color:var(--muted)}.drill-list summary{cursor:pointer}.drill-list ul{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.drill-link{background:var(--primary-light);color:var(--primary);border:0;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.drill-link:hover,.drill-link:focus-visible{outline:2px solid var(--primary)}.rec-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.rec-tab{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer}.rec-tab[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:#fff}.rec-tab .rec-count{opacity:.8;margin-left:6px;font-variant-numeric:tabular-nums}.rec-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.rec-tools input[type=search]{flex:1 1 220px;min-width:0;padding:9px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text);font-size:14px}.rec-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.rec-chip{display:inline-flex;align-items:center;gap:6px;background:var(--primary-light);color:var(--primary);border:0;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.rec-note{font-size:12.5px;color:var(--muted);margin:0 0 12px}.rec-warn{background:#fef3c7;color:#92400e;border-radius:10px;padding:10px 12px;font-size:13px;margin-bottom:12px}.rec-table th button{all:unset;cursor:pointer;font-weight:inherit}.rec-table th button:focus-visible{outline:2px solid var(--primary)}.rec-table tr.rec-row{cursor:pointer}.rec-table tr.rec-row:hover td{background:var(--primary-light)}.rec-detail td{background:var(--bg, rgba(148,163,184,.12))}.rec-detail dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0;font-size:13px}.rec-detail dt{color:var(--muted)}.rec-detail dd{margin:0;overflow-wrap:anywhere}@media (max-width: 768px){.rec-table{font-size:13px}.rec-hide-sm{display:none}}:root{--font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", system-ui, sans-serif;--bg: #f5f5f7;--surface: #ffffff;--text: #1d1d1f;--muted: #6e6e73;--border: rgba(0, 0, 0, .09);--fill: rgba(120, 120, 128, .12);--primary: #0071e3;--primary-dark: #0062c4;--primary-light: rgba(0, 113, 227, .1);--success: #248a3d;--success-light: rgba(36, 138, 61, .12);--warning: #b86e00;--warning-light: rgba(255, 159, 10, .16);--danger: #d70015;--danger-light: rgba(215, 0, 21, .1);--sidebar-bg: rgba(228, 230, 236, .88);--sidebar-border: rgba(0, 0, 0, .12);--sidebar-hover: rgba(0, 0, 0, .06);--header-bg: rgba(245, 245, 247, .8);--shadow-sm: 0 0 0 .5px rgba(0, 0, 0, .06);--shadow-md: 0 0 0 .5px rgba(0, 0, 0, .07), 0 1px 2px rgba(0, 0, 0, .03), 0 6px 20px rgba(0, 0, 0, .035);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .14);--radius: 18px;--radius-control: 10px;--transition: .18s ease}[data-theme=dark]{--bg: #000000;--surface: #1c1c1e;--text: #f5f5f7;--muted: #a1a1a6;--border: rgba(255, 255, 255, .11);--fill: rgba(120, 120, 128, .28);--primary: #0a84ff;--primary-dark: #0071e3;--primary-light: rgba(10, 132, 255, .18);--success: #30d158;--success-light: rgba(48, 209, 88, .16);--warning: #ff9f0a;--warning-light: rgba(255, 159, 10, .18);--danger: #ff453a;--danger-light: rgba(255, 69, 58, .18);--sidebar-bg: rgba(28, 28, 30, .82);--sidebar-border: rgba(255, 255, 255, .11);--sidebar-hover: rgba(255, 255, 255, .07);--header-bg: rgba(0, 0, 0, .72);--shadow-sm: 0 0 0 .5px rgba(255, 255, 255, .08);--shadow-md: 0 0 0 .5px rgba(255, 255, 255, .09);--shadow-lg: 0 10px 40px rgba(0, 0, 0, .6)}body,button,input,select,textarea{font-family:var(--font)}:root{color-scheme:light}[data-theme=dark]{color-scheme:dark}select option,select optgroup{background-color:var(--surface);color:var(--text)}select option:checked{background-color:var(--primary);color:#fff}body{background:var(--bg);color:var(--text);letter-spacing:-.011em;-webkit-font-smoothing:antialiased}[data-theme=dark] body{background:var(--bg)}:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 45%,transparent);outline-offset:2px}.dashboard,.page{animation:qp-fade-in .2s ease-out}@keyframes qp-fade-in{0%{opacity:0}to{opacity:1}}.sidebar{background:var(--sidebar-bg);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);color:var(--text);box-shadow:none;border-right:1px solid var(--sidebar-border)}.sidebar-logo{padding:22px 20px 18px;border-bottom:none;color:var(--muted)}.brand{gap:12px}.brand-icon{width:40px;height:40px;border-radius:10px;background:var(--primary);box-shadow:none}.brand-icon .material-icons{font-size:22px}.brand h2{font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.02em}.brand p{font-size:12px;margin-top:2px;color:var(--muted)}.sidebar-nav{padding:6px 12px 12px}.nav-section{margin-bottom:18px}.nav-section-title{font-size:12px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0;padding:0 10px 6px}.nav-item{gap:10px;padding:8px 10px;margin-bottom:2px;border-radius:8px;color:var(--text);font-size:14px;font-weight:500}.nav-item .material-icons{font-size:20px;color:var(--muted)}.nav-item:hover{background:var(--sidebar-hover);color:var(--text);transform:none}.nav-item.active{background:var(--primary-light);color:var(--primary);box-shadow:none;font-weight:600}.nav-item.active .material-icons{color:var(--primary)}.nav-item.disabled{opacity:.45}.sidebar-status{margin:12px;padding:12px 14px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text)}.sidebar-status strong{color:var(--text);font-weight:600;font-size:13px}.sidebar-status small{color:var(--muted);font-size:12px}.header{background:var(--header-bg);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);padding:22px 32px 16px;border-bottom:.5px solid var(--border);box-shadow:none}.header-row{margin-bottom:16px}.page-title{font-size:34px;font-weight:700;letter-spacing:-.03em;line-height:1.1}.page-subtitle{margin-top:4px;font-size:15px;font-weight:400;color:var(--muted)}.header-actions{gap:8px;align-items:center}.btn{height:36px;padding:0 16px;border-radius:var(--radius-control);font-size:14px;font-weight:500;letter-spacing:-.01em;gap:6px}.btn .material-icons{font-size:18px}.btn:active{transform:scale(.98)}.btn-primary{background:var(--primary);color:#fff;box-shadow:none}.btn-primary:hover{transform:none;box-shadow:none;background:var(--primary-dark)}.btn-outline{background:var(--surface);border:.5px solid var(--border);color:var(--text);box-shadow:var(--shadow-sm)}.btn-outline:hover{background:var(--fill)}.btn-light,[data-theme=dark] .btn-light{background:var(--fill);color:var(--text)}.theme-toggle{width:36px;height:36px;border-radius:var(--radius-control);border:.5px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}.theme-toggle:hover{border-color:var(--border);color:var(--text);background:var(--fill)}.filter-card,[data-theme=dark] .filter-card{background:var(--surface);border:.5px solid var(--border);border-radius:14px;box-shadow:var(--shadow-sm)}.filter-group label{font-size:12px;font-weight:500;color:var(--muted);margin-bottom:6px}select,[data-theme=dark] select{height:36px;border-radius:var(--radius-control);border:.5px solid var(--border);background-color:var(--fill);color:var(--text);font-size:14px}select:hover{border-color:var(--border)}select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}.main-content{padding:24px 32px 32px}.kpi-card,.chart-card,.table-card,.summary-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md)}.kpi-card:hover,.chart-card:hover{transform:none;box-shadow:var(--shadow-md)}.chart-card:before{display:none}.chart-card,.table-card{padding:24px;margin-bottom:24px}.chart-grid-even{gap:24px;margin-bottom:0}.kpi-card:before{width:9px;height:9px;left:auto;right:18px;top:18px;border-radius:50%;background:var(--card-accent, var(--primary))}.kpi-card{padding:20px 22px}.kpi-header{gap:14px}.kpi-icon{width:40px;height:40px;border-radius:12px}.kpi-icon .material-icons{font-size:22px}.kpi-title{font-size:13px;font-weight:500;color:var(--muted)}.kpi-value{font-size:34px;font-weight:600;letter-spacing:-.035em;font-variant-numeric:tabular-nums;margin-top:2px}.card-header{margin-bottom:18px}.card-header h3{font-size:17px;font-weight:600;letter-spacing:-.02em}.section-title{font-size:22px;font-weight:600;letter-spacing:-.025em}thead,[data-theme=dark] thead{background:var(--surface)}th,[data-theme=dark] th{padding:10px 16px;font-size:12px;font-weight:500;color:var(--muted);text-transform:none;letter-spacing:0;border-bottom:.5px solid var(--border)}td,[data-theme=dark] td{padding:12px 16px;font-size:14px;color:var(--text);border-bottom:.5px solid var(--border)}tbody tr:hover,[data-theme=dark] tbody tr:hover{background:var(--fill)}.skeleton-panel{display:block}.sk{background:var(--fill);border-radius:8px}.sk-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.sk-line{height:12px;border-radius:6px}.sk-title{height:16px;width:38%;border-radius:6px}.sk-big{height:34px;width:46%}.sk-dot{width:40px;height:40px;border-radius:12px;flex-shrink:0}.sk-row{display:flex;gap:14px;align-items:center}.sk-grow{flex:1;display:flex;flex-direction:column;gap:8px}.sk-kpi{min-height:138px}.sk-summary{min-height:84px;margin-bottom:24px}.sk-chart{min-height:392px}.sk-chart-large{min-height:520px}.sk-fill{flex:1;min-height:240px;border-radius:12px}.sk-table{min-height:340px}.sk-block,.sk-kpi-grid{margin-bottom:24px}.sk-pulse .sk,.sk-pulse .sk-fill{animation:sk-pulse 1.6s ease-in-out infinite}@keyframes sk-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.sk-pulse .sk,.sk-pulse .sk-fill,.dashboard,.page{animation:none}}.panel-error{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:22px;color:var(--text)}.panel-error strong{color:var(--danger);font-weight:600}@media (max-width: 768px){.header{padding:14px 16px 12px}.main-content{padding:16px}.page-title{font-size:26px}.sidebar{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}}.kpi-footer{gap:8px;flex-wrap:nowrap;min-height:26px}.trend,.badge{white-space:nowrap}.badge{max-width:100%;overflow:hidden;text-overflow:ellipsis}.kpi-header>div:last-child{min-width:0}.org-children-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;align-items:stretch}.org-children-row .kpi-card{flex:none;min-width:0}.org-col:has(.org-children-row>:nth-child(3)){flex-basis:420px;min-width:420px}.org-col-wide{flex-basis:460px;min-width:460px}.org-child{display:flex;flex-direction:column;padding:14px}.org-child:before{top:12px;right:12px}.org-child .kpi-header{display:grid;grid-template-columns:32px minmax(0,1fr);grid-template-rows:2.5em auto;grid-template-areas:"icon title" "value value";gap:6px 10px;align-items:center;padding-right:0}.org-child .kpi-header>div:last-child{display:contents}.org-child .kpi-icon{grid-area:icon;width:32px;height:32px;border-radius:10px}.org-child .kpi-icon .material-icons{font-size:18px}.org-child .kpi-title{grid-area:title;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:12px;line-height:1.25;min-height:0;padding-right:14px}.org-child .kpi-value{grid-area:value;font-size:clamp(18px,1.7vw,22px);margin:0;white-space:nowrap}.org-child .kpi-footer{margin-top:auto;padding-top:10px;justify-content:flex-start;min-height:0}.org-child .kpi-footer .trend{display:none}.org-child .badge{padding:3px 9px;font-size:10.5px}.kpi-orgchart{align-items:stretch}.kpi-card:not(.org-child){display:flex;flex-direction:column;justify-content:space-between;min-height:118px}.kpi-card:not(.org-child) .kpi-footer{margin-top:auto;padding-top:14px}.org-col-stack>.kpi-card{flex:1}.org-col>.kpi-card:first-child{flex:none}.org-col-stack>.kpi-card:first-child{flex:1}.capability-color-box{margin-top:4px;min-height:0;height:34px;border-radius:10px;width:100%}.trend.neutral-text{color:var(--muted);font-weight:500}@media (min-width: 1180px){.kpi-orgchart{display:grid;grid-template-columns:3fr 2fr 3fr 2fr;grid-template-rows:auto 22px auto;column-gap:14px;row-gap:0;align-items:stretch}.kpi-orgchart>.org-col{display:grid;grid-row:span 3;grid-template-rows:subgrid;flex:none;min-width:0}.kpi-orgchart>.org-col-wide{min-width:0;flex:none}.kpi-orgchart>.org-col:has(.org-children-row>:nth-child(3)){min-width:0}.kpi-orgchart>.org-col>.kpi-card:first-child{grid-row:1;height:100%}.kpi-orgchart>.org-col>.org-connector{grid-row:2;justify-self:center;min-height:0;height:100%}.kpi-orgchart>.org-col>.org-children-row{grid-row:3}.kpi-orgchart>.org-col-stack{grid-template-rows:1fr 1fr;row-gap:14px}.kpi-orgchart>.org-col-stack>.kpi-card{grid-row:auto;height:auto}}.org-children-row .kpi-card{height:100%}.org-child .kpi-title{-webkit-line-clamp:2;line-clamp:2;overflow:hidden;text-overflow:clip}.org-child .kpi-header{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 2.5em auto;grid-template-areas:"icon" "title" "value";gap:8px 0;align-items:start}.org-child .kpi-title{padding-right:0;text-overflow:clip;overflow-wrap:anywhere}.capability-box .kpi-header>div:last-child{flex:1;min-width:0}.capability-color-box{display:block;width:100%}@media (max-width: 700px){.kpi-orgchart{gap:18px}.kpi-orgchart>.org-col,.kpi-orgchart>.org-col-wide,.kpi-orgchart>.org-col:has(.org-children-row>:nth-child(3)){min-width:0;flex-basis:100%;width:100%}.org-children-row{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}.org-children-row>.kpi-card:last-child:nth-child(odd){grid-column:1 / -1}.org-col-stack{display:grid;grid-template-columns:1fr;gap:14px}}.demo-badge{position:fixed;left:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em;color:#10233f;background:#fdf3dc;border:1px solid #e0b04a;box-shadow:0 2px 10px #10233f1f;pointer-events:none}.demo-badge-dot{width:8px;height:8px;border-radius:50%;background:#e0b04a}@media print{.demo-badge{display:none}}.nav-item{--c: var(--nav, var(--muted));gap:10px;padding:7px 10px}[data-theme=dark] .nav-item{--c: var(--nav-dark, var(--muted))}.nav-item .material-icons{width:30px;height:30px;display:grid;place-items:center;flex-shrink:0;border-radius:9px;font-size:19px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent);transition:background var(--transition),color var(--transition)}.nav-item .nav-label{color:color-mix(in srgb,var(--c) 45%,var(--text))}.nav-item:hover{background:color-mix(in srgb,var(--c) 9%,transparent)}.nav-item.active{background:color-mix(in srgb,var(--c) 15%,transparent);color:var(--text)}.nav-item.active .material-icons{background:var(--c);color:var(--surface)}.nav-item.active .nav-label{color:var(--text);font-weight:600}.nav-item.disabled .material-icons{color:var(--muted);background:var(--fill)}.nav-item.disabled .nav-label{color:var(--muted)}.nav-item:focus-visible{outline:2px solid var(--c);outline-offset:1px}.rec-card{padding:14px 16px 10px}.rec-card .rec-scroll{max-height:calc(100vh - 345px);min-height:320px;overflow:auto;border:.5px solid var(--border);border-radius:14px}.rec-card .rec-table{border-collapse:separate;border-spacing:0;width:100%}.rec-card .rec-table thead,[data-theme=dark] .rec-card .rec-table thead{position:static;background:none}.rec-card .rec-table th{position:sticky;top:0;z-index:2;white-space:nowrap;padding:12px 16px;font-size:12.5px;font-weight:600;color:var(--text);background:color-mix(in srgb,var(--primary) 9%,var(--surface));border-bottom:1.5px solid color-mix(in srgb,var(--primary) 40%,var(--border))}.rec-card .rec-table td{padding:13px 16px;font-size:13.5px;vertical-align:top;background:var(--surface)}.rec-card .rec-table tr.rec-row.band td{background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.rec-card .rec-table tr.rec-row:hover td{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}.rec-card .rec-table tr.rec-row td:first-child{box-shadow:inset 4px 0 0 var(--ds, var(--primary))}.rec-card .rec-table tr.rec-row:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.rec-card .rec-table tr.rec-detail td{background:color-mix(in srgb,var(--primary) 8%,var(--surface))}.rec-card .rec-table td.rec-nowrap{white-space:nowrap}.rec-meta{font-size:13px;color:var(--muted);margin-left:auto;font-variant-numeric:tabular-nums}.rec-table tr[data-ds=torque],.rec-tab.tab-torque{--ds: #e08a00}.rec-table tr[data-ds=sensory],.rec-tab.tab-sensory{--ds: #8e5be8}.rec-table tr[data-ds=package],.rec-tab.tab-package{--ds: #e0408a}.rec-table tr[data-ds=physio],.rec-tab.tab-physio{--ds: #0aa5c0}.rec-table tr[data-ds=complaints],.rec-tab.tab-complaints{--ds: #ee6a1a}.rec-table tr[data-ds=customer],.rec-tab.tab-customer{--ds: #d9480f}.rec-table tr[data-ds=market],.rec-tab.tab-market{--ds: #5e5ce6}.rec-tab[class*=tab-][aria-selected=false]{border-left:3px solid var(--ds)}.rec-badge,.rec-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.rec-badge{color:color-mix(in srgb,var(--c) 78%,var(--text));background:color-mix(in srgb,var(--c) 16%,transparent)}.ds-torque{--c: #e08a00}.ds-sensory{--c: #8e5be8}.ds-package{--c: #e0408a}.ds-physio{--c: #0aa5c0}.ds-complaints{--c: #ee6a1a}.ds-customer{--c: #c2410c}.ds-market{--c: #5e5ce6}.rec-pill.bad{color:var(--danger);background:var(--danger-light)}.rec-pill.warn{color:var(--warning);background:var(--warning-light)}@media (max-width: 768px){.rec-card .rec-scroll{max-height:calc(100vh - 250px)}}.kpi-card.clickable{cursor:pointer;transition:box-shadow var(--transition),border-color var(--transition)}.kpi-card.clickable:hover{box-shadow:0 0 0 1.5px var(--card-accent, var(--primary)),var(--shadow-md)}.kpi-card.clickable:focus-visible{outline:2px solid var(--card-accent, var(--primary));outline-offset:2px}
