:root{--font-apple: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Helvetica Neue", Helvetica, Arial, sans-serif;--bg: #f7f4ef;--bg-start: #ffffff;--bg-end: #f1efe8;--panel: #ffffff;--panel-alt: #f1f6f4;--surface-soft: #f8faf9;--surface-muted: #fbfcfb;--input-bg: #ffffff;--sidebar-bg: #f2f0ea;--avatar-bg: #1f2d30;--overlay: rgba(17, 24, 39, .4);--text: #1e2a2f;--muted: #5a6a70;--accent: #00a896;--accent-2: #f4a261;--danger: #b42318;--danger-soft-bg: #fdecea;--danger-soft-border: #f5c2c0;--success-text: #0f766e;--success-soft-bg: #eefbf7;--success-soft-border: #b7eadc;--chart-surface: #f7fafc;--chart-border: #e5ebf1;--chart-grid: #dfe6ed;--location-grid: #e9eff0;--location-track: #f6fbfa;--location-fill-2: #2f80ed;--border: #e2e8e5;--shadow: 0 20px 50px rgba(30, 42, 47, .08)}html{-webkit-text-size-adjust:100%}[data-theme=dark]{--bg: #0d1418;--bg-start: #1b252b;--bg-end: #0a1115;--panel: #152028;--panel-alt: #1b2a33;--surface-soft: #1a2630;--surface-muted: #1f2e38;--input-bg: #1a2731;--sidebar-bg: #0f171d;--avatar-bg: #0b1116;--overlay: rgba(1, 6, 9, .7);--text: #e7edf2;--muted: #a2b2bd;--accent: #2cc7b3;--accent-2: #f3b06d;--danger: #ff7e77;--danger-soft-bg: #3b2225;--danger-soft-border: #6d363b;--success-text: #5be2cb;--success-soft-bg: #1a3834;--success-soft-border: #2a665e;--chart-surface: #17242d;--chart-border: #2a3945;--chart-grid: #32424f;--location-grid: #2a3945;--location-track: #17242b;--location-fill-2: #68a5ff;--border: #2b3b47;--shadow: 0 18px 40px rgba(0, 0, 0, .35)}*{box-sizing:border-box}body{margin:0;font-family:var(--font-apple);color:var(--text);background:radial-gradient(circle at top,var(--bg-start) 0%,var(--bg) 45%,var(--bg-end) 100%);overflow-x:hidden}h1,h2,h3{font-family:var(--font-apple);font-weight:700;letter-spacing:-.01em;margin:0}img{display:block;max-width:100%}button,input,select,textarea{font-family:inherit}input,select,textarea{font-size:16px}.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh;animation:fadeIn .4s ease}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);padding:24px;display:flex;flex-direction:column;gap:32px;position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}.sidebar-backdrop{display:none}.brand{display:flex;align-items:center;gap:12px}.brand.centered{justify-content:center}.brand-logo{width:70px;height:auto;object-fit:contain}.brand.centered .brand-logo{width:132px;height:auto}.sidebar-logo{width:96px;max-width:100%;height:auto}.auth-logo{width:min(146px,46vw);height:auto}.nav{display:grid;gap:8px}.nav-item{background:transparent;border:1px solid transparent;padding:10px 14px;border-radius:12px;text-align:left;color:var(--muted);font-weight:600;cursor:pointer;transition:all .2s ease}.nav-item.active,.nav-item:hover{background:var(--panel);color:var(--text);border-color:var(--border);box-shadow:var(--shadow)}.sidebar-footer{margin-top:auto}.user-card{display:grid;gap:12px;padding:12px;background:var(--panel);border-radius:14px;box-shadow:var(--shadow)}.user-card-header{display:flex;align-items:center;gap:12px;min-width:0}.user-meta{min-width:0}.avatar{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--avatar-bg);color:#fff;font-weight:700}.avatar.small{width:34px;height:34px;font-size:12px}.user-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-logout-button{width:100%;min-height:40px;padding:10px 12px}.main{padding:28px 36px 40px;min-width:0}.dashboard-main{background:var(--bg);border-radius:24px 0 0 24px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.topbar-title{display:flex;align-items:center;gap:10px}.topbar-title h1,.panel-header h2{white-space:nowrap}.dashboard-main .topbar-title h1{font-size:1.55rem;font-weight:600;letter-spacing:-.02em}.dashboard-main .panel-header h2{font-size:1rem;font-weight:600;letter-spacing:-.015em}.topbar-logo{width:46px;height:auto;object-fit:contain}.subtitle{margin-top:6px;color:var(--muted)}.topbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.overview-topbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.record-file-actions{display:flex;gap:10px;flex-wrap:nowrap;flex:0 0 auto}.theme-toggle{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:var(--muted)}.theme-toggle:hover,.theme-toggle:focus-visible{background:transparent!important;border-color:transparent!important;color:var(--text)}.search{flex:1 1 280px;min-width:min(100%,280px)}.year-select{flex:0 0 auto}.icon-button{width:44px;height:44px;padding:0;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.menu-toggle{display:none}.menu-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.search input{border:1px solid var(--border);border-radius:12px;padding:12px 14px;min-width:220px;background:var(--input-bg);color:var(--text);min-height:48px;width:100%}.year-select select{border:1px solid var(--border);border-radius:12px;padding:12px 14px;background:var(--input-bg);color:var(--text);min-height:48px}button{border:none;border-radius:12px;padding:12px 16px;font-weight:600;font-size:15px;min-height:44px;white-space:nowrap;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}button.primary{background:var(--accent);color:#fff;box-shadow:var(--shadow)}button.danger{background:var(--danger);color:#fff;box-shadow:var(--shadow)}button.ghost{background:var(--panel);color:var(--text);border:1px solid var(--border)}button:hover{transform:translateY(-1px)}.page{display:grid;gap:20px;animation:fadeIn .5s ease}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.overview-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.dashboard-animate .dashboard-reveal{opacity:0;transform:translateY(16px) scale(.995);animation:dashboardReveal .52s cubic-bezier(.22,.8,.3,1) forwards;animation-delay:var(--dash-delay, 0ms)}.dashboard-animate .stat-card{animation:none}.dashboard-animate .location-bar-fill{transform-origin:left center;transform:scaleX(0);animation:dashboardBarGrow .68s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--dash-delay, 0ms) + var(--bar-delay, 0ms) + .12s)}.dashboard-animate .pie-ring-animated{opacity:0;transform:scale(.86);animation:dashboardPieReveal .52s cubic-bezier(.2,.8,.3,1) forwards;animation-delay:calc(var(--dash-delay, 0ms) + 90ms)}.dashboard-animate .pie-legend-row{opacity:0;transform:translate(8px);animation:dashboardLegendReveal .36s ease forwards;animation-delay:calc(var(--dash-delay, 0ms) + .13s + var(--legend-delay, 0ms))}.dashboard-animate .trend-area{opacity:0;animation:dashboardAreaReveal .5s ease forwards;animation-delay:calc(var(--dash-delay, 0ms) + .17s)}.dashboard-animate .trend-line{opacity:0;animation:dashboardLineDraw .56s ease forwards;animation-delay:calc(var(--dash-delay, 0ms) + .11s)}.dashboard-animate .trend-point{opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;animation:dashboardPointReveal .26s ease forwards;animation-delay:calc(var(--dash-delay, 0ms) + .26s + var(--point-delay, 0ms))}.dashboard-animate .trend-focus-chip{opacity:0;animation:dashboardAreaReveal .22s ease forwards;animation-delay:calc(var(--dash-delay, 0ms) + .34s)}.group-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.stat-card{background:var(--panel);padding:18px;border-radius:16px;box-shadow:var(--shadow);animation:rise .6s ease}.stat-header{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.stat-value{font-size:28px;font-weight:700;margin-top:12px}.stat-hint{margin-top:6px;color:var(--muted);font-size:13px}.trend{color:var(--accent);font-weight:600}.grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.panel{background:var(--panel);border-radius:18px;padding:18px;box-shadow:var(--shadow);min-width:0}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.panel-header-lead{display:flex;align-items:center;gap:12px;flex:0 0 auto}.panel-actions{display:flex;gap:10px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;flex:0 0 auto}.people-file-actions{display:flex;gap:10px;flex-wrap:nowrap;flex:0 0 auto}.header-new-button{min-width:220px;padding:11px 22px;white-space:nowrap}.badge{padding:6px 10px;border-radius:999px;background:var(--panel-alt);color:var(--muted);font-size:12px;white-space:nowrap}.page-total-pill{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);font-weight:700;white-space:nowrap}.location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.location-bar-chart{display:grid;gap:14px}.location-bar-chart.compact{gap:8px}.location-bar-row{-webkit-appearance:none;appearance:none;border:1px solid transparent;background:transparent;width:100%;padding:6px 8px;text-align:left;display:grid;grid-template-columns:minmax(90px,140px) 1fr minmax(62px,88px);gap:12px;align-items:center;cursor:pointer;border-radius:10px;transition:transform .22s ease,background .22s ease,border-color .22s ease}.location-bar-chart.compact .location-bar-row{padding:4px 6px;gap:10px}.location-bar-row:hover{transform:translate(1px);background:var(--surface-muted);border-color:var(--border)}.location-bar-row:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #00a8963d}.location-bar-row.active .location-bar-label{color:var(--accent)}.location-bar-row.active .location-bar-fill{filter:saturate(1.2) brightness(1.05)}.location-bar-row.active{background:var(--surface-muted);border-color:var(--border)}.location-bar-label{font-size:12px;font-weight:600;color:var(--text)}.location-bar-track{height:18px;border-radius:999px;overflow:hidden;background-image:linear-gradient(to right,var(--location-grid) 1px,transparent 1px);background-size:12.5% 100%;background-color:var(--location-track)}.location-bar-chart.compact .location-bar-track{height:15px}.location-bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),var(--location-fill-2));transition:width .28s ease,filter .22s ease}.location-bar-value{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;font-size:12px;font-weight:700;color:var(--text);text-align:right;white-space:nowrap}.location-bar-chart.compact .location-bar-label,.location-bar-chart.compact .location-bar-value{font-size:11px}.location-bar-count{color:var(--text)}.location-bar-percent{min-width:34px;color:var(--muted);opacity:0;transform:translate(-3px);transition:opacity .2s ease,transform .2s ease}.location-bar-percent.visible{opacity:1;transform:translate(0)}.dashboard-animate .panel,.dashboard-animate .stat-card{box-shadow:0 10px 22px #1e2a2f0d}.compact-donut-breakdown{display:grid;justify-items:center;gap:14px}.compact-donut-ring{width:214px;height:214px;position:relative;display:grid;place-items:center}.compact-donut-ring svg{width:100%;height:100%}.compact-donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:2px;text-align:center;pointer-events:none}.compact-donut-center strong{font-size:32px;line-height:1;color:var(--text)}.compact-donut-center span{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.compact-donut-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.compact-donut-chip{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface-soft);color:var(--text);font-size:12px;font-weight:600;white-space:nowrap}.compact-donut-dot{width:10px;height:10px;border-radius:999px;display:inline-block;flex:0 0 auto}.treemap-breakdown{width:100%}.treemap-svg{width:100%;height:auto;display:block;border-radius:18px;background:var(--surface-soft)}.treemap-label{font-weight:700;letter-spacing:.01em;dominant-baseline:hanging}.treemap-value{font-weight:800;dominant-baseline:hanging}.breakdown-list{display:grid;gap:10px;margin-top:10px}.breakdown-row{display:grid;grid-template-columns:1fr 2fr auto;gap:10px;align-items:center;font-size:12px;color:var(--muted)}.breakdown-label{color:var(--text);font-weight:600}.breakdown-bar{height:8px;background:var(--panel-alt);border-radius:999px;overflow:hidden}.breakdown-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.breakdown-value{font-weight:700;color:var(--text)}.chart{height:220px;display:grid;grid-template-rows:1fr auto;gap:10px}.chart svg{width:100%;height:100%}.chart-labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(30px,1fr));font-size:11px;color:var(--muted);text-align:center}.multi-line-chart{height:225px;display:grid;grid-template-rows:1fr auto;gap:8px}.trend-chart{height:252px;width:min(100%,980px);margin-inline:auto}.multi-line-chart svg{width:100%;height:100%;background:var(--chart-surface);border:1px solid var(--chart-border);border-radius:14px}.multi-line-chart .grid-line{stroke:var(--chart-grid);stroke-width:.28}.trend-chart .trend-grid-line{stroke-width:.34}.trend-axis-label{fill:var(--muted);font-size:2.2px;font-weight:600;text-anchor:end}.trend-guide-line{stroke:var(--chart-grid);stroke-width:.22;stroke-dasharray:1.1 1.1;opacity:.8}.trend-guide-line.active{stroke:var(--accent);stroke-width:.32;opacity:.95}.trend-point{transition:r .2s ease,fill .2s ease}.trend-point.active{fill:var(--accent-2)}.trend-point-hit{cursor:pointer}.trend-focus-chip-bg{fill:var(--panel);stroke:var(--border);stroke-width:.34}.trend-focus-chip-text{fill:var(--text);font-size:5.4px;font-weight:700}.multi-line-labels{display:grid;grid-template-columns:repeat(auto-fit,minmax(30px,1fr));font-size:11px;color:var(--muted);text-align:center}.trend-bottom-labels span{color:var(--text);font-weight:700}.trend-bottom-labels{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.trend-label-chip{border:1px solid var(--border);background:var(--panel);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s ease}.trend-label-chip:hover,.trend-label-chip.active{color:var(--text);border-color:var(--accent);background:var(--surface-muted)}.line-legend{display:flex;flex-wrap:wrap;gap:12px}.line-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text);font-weight:600}.line-swatch{width:16px;height:4px;border-radius:999px;display:inline-block}.pie-chart{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;justify-items:center}.pie-ring{width:208px;height:208px;border-radius:50%;display:grid;place-items:center;position:relative}.interactive-pie-ring{overflow:visible}.pie-svg{width:100%;height:100%;overflow:visible}.pie-slice{cursor:pointer;transform-origin:center;transform-box:fill-box;transition:transform .2s ease,filter .2s ease,opacity .2s ease;-webkit-tap-highlight-color:transparent}.pie-slice:focus,.pie-slice:focus-visible{outline:none}.pie-slice.active{filter:drop-shadow(0 0 6px rgba(0,0,0,.14))}.pie-slice.dimmed{opacity:.5}.pie-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:12px;color:var(--muted);width:100%;overflow:visible;justify-content:center}.pie-legend-row{-webkit-appearance:none;appearance:none;border:1px solid transparent;background:transparent;width:auto;min-width:max-content;padding:7px 12px;text-align:left;display:inline-grid;grid-template-columns:12px auto auto;gap:8px;align-items:center;cursor:pointer;border-radius:999px;transition:background .18s ease,border-color .18s ease}.pie-legend-row:focus-visible{outline:none;border-color:var(--accent)}.pie-legend-row:hover,.pie-legend-row.active{background:var(--surface-soft);border-color:var(--border)}.pie-legend-row .legend-label{color:var(--text);font-weight:600}.pie-legend-row .legend-value{color:var(--text);font-weight:700;justify-self:start;margin-left:2px}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.quick-actions{display:grid;gap:10px}.quick-actions button{background:var(--panel-alt);border:1px solid var(--border)}.recent-list{display:grid;gap:12px}.recent-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.recent-row.header{border-bottom:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600}.recent-row:last-child{border-bottom:none}.person-name{font-weight:700}.table{display:grid;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-row{display:grid;grid-template-columns:36px minmax(160px,1.5fr) minmax(70px,.6fr) minmax(180px,1.4fr) minmax(180px,1.4fr) auto;padding:10px 12px;border-radius:12px;background:var(--surface-soft);align-items:center;min-width:800px}.table-row.nhis-row{grid-template-columns:36px minmax(190px,1.4fr) minmax(220px,1.6fr) minmax(130px,.9fr) minmax(120px,.9fr) auto;min-width:860px}.table-row.header{background:transparent;font-size:12px;color:var(--muted);font-weight:600}.row-select-cell{display:flex;align-items:center;justify-content:center}.row-select-cell input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent);cursor:pointer}.table-action{padding:6px 10px;border-radius:8px;font-size:12px}.table-cell{min-width:0}.table-cell-name{font-weight:700}.table-cell-actions{display:flex;align-items:center}.status{text-transform:capitalize;font-size:12px;font-weight:600}.status.onboarded{color:var(--accent)}.status.in_review,.status.registered,.status.approved{color:var(--accent-2)}.status.rejected{color:var(--danger)}.detail-item strong,.user-name,.user-role,.badge,.page-total-pill,.compact-donut-chip,.trend-label-chip,.label,.value{overflow-wrap:anywhere}.onboarding-list{display:grid;gap:12px}.onboarding-card{display:flex;justify-content:space-between;align-items:center;background:var(--surface-soft);padding:12px 16px;border-radius:14px}.onboarding-actions{display:flex;gap:10px}.settings-grid{display:grid;gap:16px}.settings-report{display:grid;gap:14px}.settings-report-controls{display:flex;align-items:center;gap:12px;flex-wrap:nowrap;min-width:0;overflow-x:auto}.settings-report-year{flex:0 0 auto}.settings-report-note{max-width:760px;line-height:1.5}.user-form-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(360px,1.2fr);gap:14px;align-items:start}.form-section{border:1px solid var(--border);border-radius:14px;background:var(--surface-muted);padding:12px;display:grid;gap:10px}.form-section h3{margin:0;font-size:14px}.permissions-matrix{display:grid;gap:12px}.permission-module{border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:12px 14px;display:grid;grid-template-columns:minmax(170px,240px) 1fr;gap:14px;align-items:center}.permission-module-info h4{margin:0;font-size:13px}.permission-module-info p{margin:4px 0 0;font-size:11px;color:var(--muted)}.permission-actions{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:stretch}.permission-actions.action-grid{display:grid;grid-template-columns:repeat(3,minmax(108px,1fr));gap:8px 10px}.permissions-note{margin:0;font-size:12px;color:var(--muted)}.checkbox-row{display:inline-flex;align-items:center;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.checkbox-row input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}.checkbox-row span{display:inline-flex;align-items:center;gap:8px;line-height:1.1;transition:border-color .2s ease,background .2s ease,color .2s ease,box-shadow .2s ease}.checkbox-row span:before{content:"";width:14px;height:14px;border-radius:50px;border:1.35px solid var(--border);background:var(--surface-soft);flex-shrink:0;background-repeat:no-repeat;background-position:center;background-size:0 0;transition:background .2s ease,border-color .2s ease,background-size .16s ease,transform .12s ease}.checkbox-row:hover span:before{border-color:var(--accent)}.checkbox-row:active span:before{transform:scale(.96)}.checkbox-row input[type=checkbox]:focus-visible+span{box-shadow:0 0 0 2px #00a89629}.checkbox-row input[type=checkbox]:checked+span:before{background-color:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8'%3E%3Cpath d='M1 4.25 3.55 6.8 9 1.35' stroke='white' stroke-width='1.85' stroke-linecap='round' stroke-linejoin='round' fill='none'/%3E%3C/svg%3E");background-size:9px 7px}.checkbox-row.compact{font-size:11px;white-space:nowrap}.checkbox-row.compact span{min-height:24px;padding:3px 8px;border:1px solid var(--border);border-radius:50px;background:var(--panel);font-weight:600}.checkbox-row.compact span:before{width:11px;height:11px;background-size:0 0}.checkbox-row.compact:hover span{border-color:#00a89633}.checkbox-row.compact input[type=checkbox]:checked+span{border-color:#00a89647;background:#00a89614}.checkbox-row.compact input[type=checkbox]:checked+span:before{background-size:7px 5px}.form label.checkbox-row{display:inline-flex;align-items:center;color:var(--text)}.inline-checkbox{margin-top:16px}.inline-checkbox span{font-weight:600}.users-list{display:grid;gap:12px}.user-row{border:1px solid var(--border);border-radius:14px;padding:12px;background:var(--surface-muted);display:grid;gap:10px}.user-row-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.user-row-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.user-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.user-summary-card{border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:12px 14px;display:grid;gap:6px}.user-summary-card span{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.user-summary-card strong{font-size:20px;line-height:1.1}.user-summary-card.muted-stat{background:var(--panel)}.user-summary-card.muted-stat strong{font-size:18px}.user-row-primary{display:grid;gap:4px}.compact-user-row{align-items:center}.user-row-subline{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:12px;color:var(--muted)}.user-row-badges{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.subtle-badge{background:var(--surface-soft);color:var(--text)}.user-row-tail{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;flex-shrink:0}.user-row-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,220px));gap:10px}.user-menu-shell{position:relative}.user-menu-trigger{width:38px;height:38px;border-radius:12px}.user-menu-trigger svg{width:18px;height:18px}.user-action-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;border:1px solid var(--border);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);padding:6px;display:grid;gap:2px;z-index:40}.user-action-menu-item{border:0;background:transparent;border-radius:10px;padding:10px 12px;text-align:left;font:inherit;color:var(--text);cursor:pointer}.user-action-menu-item:hover{background:var(--surface-soft)}.user-action-menu-item:disabled{color:var(--muted);cursor:not-allowed}.user-action-menu-item:disabled:hover{background:transparent}.user-action-menu-item.user-action-menu-item-danger{background:transparent;color:var(--danger);box-shadow:none}.user-action-menu-item.user-action-menu-item-danger:hover{background:var(--danger-soft-bg)}.user-row-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.destructive-action{color:var(--danger);border-color:var(--danger-soft-border)}.destructive-action:disabled{color:var(--muted);border-color:var(--border)}.user-row-note{font-size:12px;color:var(--muted)}.user-records-panel{border-top:1px solid var(--border);padding-top:12px}.user-records-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.user-records-section{border:1px solid var(--border);border-radius:14px;background:var(--surface-soft);padding:12px;display:grid;gap:12px}.user-records-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-records-section-head h4{margin:0;font-size:14px}.user-records-list{display:grid;gap:10px}.user-record-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);padding:10px 12px;display:grid;gap:8px}.user-record-card.general{border-left:3px solid rgba(0,168,150,.35)}.user-record-card.nhis{border-left:3px solid rgba(12,120,171,.35)}.user-record-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.user-record-card-meta{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:12px;color:var(--muted)}.user-record-card-meta span{padding:4px 8px;border-radius:999px;background:var(--surface-soft)}.inactive-badge{background:var(--danger-soft-bg);color:var(--danger)}.label{font-size:12px;color:var(--muted)}.value{font-weight:600;margin-top:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:grid;place-items:center;padding:20px}.modal{background:var(--panel);border-radius:20px;padding:20px;max-width:700px;width:100%;max-height:92vh;overflow:auto;box-shadow:var(--shadow);animation:rise .4s ease}.details-modal{max-width:880px}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.form{display:grid;gap:14px;margin-top:14px}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:12px;align-items:end;margin-bottom:12px}.filter-grid label{display:grid;gap:6px;font-size:12px;color:var(--muted);min-width:0}.filter-grid input,.filter-grid select,.filter-grid .custom-dropdown-trigger,.filter-grid .custom-dropdown-input-shell input{border:1px solid var(--border);border-radius:10px;padding:12px 14px;background:var(--input-bg);color:var(--text);min-height:48px;width:100%;min-width:0}.notice{background:var(--success-soft-bg);color:var(--success-text);border:1px solid var(--success-soft-border);padding:10px 12px;border-radius:10px;font-size:12px;margin-bottom:12px}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:1000;display:grid;gap:10px;width:min(360px,calc(100vw - 24px))}.toast{text-align:left;border:1px solid transparent;border-radius:12px;padding:10px 12px;box-shadow:var(--shadow);font-size:13px;cursor:pointer}.toast.success{background:var(--success-soft-bg);color:var(--success-text);border-color:var(--success-soft-border)}.toast.error{background:var(--danger-soft-bg);color:var(--danger);border-color:var(--danger-soft-border)}.form label{display:grid;gap:8px;font-size:14px;color:var(--muted)}.form input,.form select,.form .custom-dropdown-trigger,.form .custom-dropdown-input-shell input{border:1px solid var(--border);border-radius:12px;padding:12px 14px;width:100%;min-width:0;background:var(--input-bg);color:var(--text);min-height:48px}.custom-dropdown{position:relative;min-width:0}.custom-dropdown-trigger,.custom-dropdown-input-shell input{text-align:left;font-size:14px;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.custom-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text)}.custom-dropdown-trigger svg,.custom-dropdown-toggle svg,.custom-dropdown-option svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.custom-dropdown-placeholder{color:var(--muted)}.custom-dropdown-input-shell{position:relative}.custom-dropdown-input-shell input{padding-right:42px}.custom-dropdown-toggle{position:absolute;top:50%;right:10px;transform:translateY(-50%);width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.custom-dropdown.is-open .custom-dropdown-trigger,.custom-dropdown.is-open .custom-dropdown-input-shell input,.custom-dropdown-trigger:focus-visible,.custom-dropdown-input-shell input:focus{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);outline:none}.custom-dropdown-panel{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:40;max-height:240px;overflow-y:auto;padding:8px;border:1px solid var(--border);border-radius:16px;background:var(--panel);box-shadow:0 18px 40px #1e2a2f1f}.custom-dropdown-panel-floating{position:fixed;z-index:1400}.custom-dropdown-option{width:100%;padding:10px 12px;border:none;border-radius:12px;background:transparent;color:var(--text);display:flex;align-items:flex-start;justify-content:space-between;gap:12px;text-align:left;cursor:pointer;font-size:13px}.custom-dropdown-option span{flex:1;min-width:0;white-space:normal;line-height:1.35}.custom-dropdown-option:hover,.custom-dropdown-option.is-selected{background:var(--surface-soft)}.custom-dropdown-empty{padding:12px;color:var(--muted);font-size:13px}.field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.field-grid label{min-width:0}.field-grid label.full-span{grid-column:1 / -1}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:8px}.detail-item{display:grid;gap:6px;padding:10px 12px;border-radius:12px;background:var(--surface-soft)}.detail-item span{font-size:12px;color:var(--muted)}.detail-item strong{font-size:14px;color:var(--text);font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-modal{max-width:480px}.confirm-message{font-size:14px;color:var(--muted);line-height:1.5;margin:8px 0 0}.error{color:var(--danger);background:var(--danger-soft-bg);padding:10px;border-radius:10px;font-size:12px}.empty{padding:24px;text-align:center;color:var(--muted)}.auth{min-height:100vh;display:grid;place-items:center;padding:24px 18px}.auth-card{width:min(460px,100%);background:var(--panel);padding:32px;border-radius:22px;box-shadow:var(--shadow);display:grid;gap:20px}.auth-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:var(--panel-alt);padding:6px;border-radius:14px}.auth-toggle button{border-radius:10px;background:transparent;color:var(--muted);border:none;padding:8px}.auth-toggle button.active{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.theme-control{display:grid;gap:8px;font-size:13px;color:var(--muted)}.theme-control select{border:1px solid var(--border);border-radius:12px;padding:10px 12px;background:var(--input-bg);color:var(--text)}.theme-note{margin-top:8px}.auth-note{font-size:12px;color:var(--muted);text-align:center}.auth .form{gap:16px}.auth .form input,.auth .form select{min-height:54px;padding:14px 16px;border-radius:14px}.auth-submit{width:100%;min-height:56px;padding:14px 18px;font-size:17px;font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes dashboardReveal{0%{opacity:0;transform:translateY(16px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes dashboardBarGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes dashboardPieReveal{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}@keyframes dashboardLegendReveal{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes dashboardAreaReveal{0%{opacity:0}to{opacity:1}}@keyframes dashboardLineDraw{0%{opacity:0}to{opacity:1}}@keyframes dashboardPointReveal{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion: reduce){.dashboard-animate .dashboard-reveal,.dashboard-animate .location-bar-fill,.dashboard-animate .pie-ring-animated,.dashboard-animate .pie-legend-row,.dashboard-animate .trend-area,.dashboard-animate .trend-line,.dashboard-animate .trend-point,.dashboard-animate .trend-focus-chip{animation:none;opacity:1;transform:none}}@media (max-width: 1100px){.grid{grid-template-columns:1fr}.group-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.dashboard-main{border-radius:0}.sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;border:0;padding:0;background:var(--overlay);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:28}.sidebar-backdrop.visible{opacity:1;pointer-events:auto}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:30;width:min(320px,84vw);height:100vh;max-height:100vh;padding:22px 18px 24px;gap:24px;box-shadow:0 24px 60px #00000038;transform:translate(-100%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}.sidebar-logo{width:84px}.sidebar-footer{margin-top:auto;margin-left:0}.user-card{min-width:0}.topbar{flex-direction:row;align-items:center;gap:16px;overflow:visible}.main{padding:22px 18px 32px}.topbar-actions{width:auto;min-width:0}.search{flex:1 1 280px;min-width:0}.menu-toggle{display:inline-flex}.search input{min-width:0}.panel-header-lead{width:auto}.panel-actions{width:auto;min-width:0}.header-new-button{min-width:220px;width:auto}.user-form-layout,.user-summary-grid,.user-row-stats,.user-records-grid,.permission-module{grid-template-columns:1fr}.permission-actions.action-grid{grid-template-columns:repeat(2,minmax(90px,1fr))}.user-row-head{flex-direction:column}.compact-user-row{align-items:flex-start}.user-row-tail,.user-menu-shell{align-self:flex-end}.user-row-actions{align-items:stretch}.user-row-actions .ghost{width:100%}.table-row{grid-template-columns:36px minmax(150px,1.3fr) minmax(65px,.6fr) minmax(160px,1.1fr) minmax(160px,1.1fr) auto;gap:6px;min-width:690px}.table-row.nhis-row{grid-template-columns:36px minmax(160px,1.2fr) minmax(180px,1.4fr) minmax(110px,.8fr) minmax(110px,.8fr) auto;min-width:740px}.recent-row{grid-template-columns:1fr;gap:4px}.pie-chart{grid-template-columns:1fr;justify-items:center;text-align:center}.pie-legend{width:100%}.pie-ring{width:186px;height:186px}.toast-stack{left:12px;right:12px;bottom:12px;width:auto}}@media (max-width: 768px){.main{padding:18px 14px 24px}.page,.grid{gap:16px}.cards,.overview-groups,.group-cards,.location-grid{grid-template-columns:1fr}.topbar{flex-direction:column;align-items:stretch;margin-bottom:16px;gap:12px}.topbar-title{width:100%;min-width:0;gap:12px}.topbar-title h1{white-space:normal;font-size:clamp(1.45rem,6vw,1.95rem);line-height:1.15}.panel,.stat-card{padding:16px;border-radius:16px}.panel-header{align-items:flex-start;flex-wrap:wrap;overflow:visible}.panel-header h2{white-space:normal;line-height:1.2}.panel-header-lead,.panel-actions,.topbar-actions,.overview-topbar-actions,.settings-report-controls{width:100%;min-width:0;flex-wrap:wrap;overflow:visible}.record-panel-actions{align-items:flex-start}.record-file-actions{width:100%;min-width:0;flex-wrap:wrap}.panel-actions>*{flex:1 1 160px;min-width:0}.topbar-actions{gap:10px}.topbar-stack-title-mobile{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px 12px;align-items:center}.topbar-stack-title-mobile .topbar-title{display:contents}.topbar-stack-title-mobile .menu-toggle{grid-column:1;grid-row:1}.topbar-stack-title-mobile .topbar-actions{grid-column:2;grid-row:1;width:100%;justify-content:flex-end}.topbar-stack-title-mobile .topbar-title h1{grid-column:1 / -1;grid-row:2}.search{flex:1 1 100%;min-width:0}.search input{min-width:0}button{white-space:normal}.header-new-button{width:100%;min-width:0}.badge,.page-total-pill{white-space:normal;text-align:center}.stat-header{gap:8px;flex-wrap:wrap}.stat-value{font-size:clamp(1.7rem,8vw,2.2rem)}.compact-donut-ring,.pie-ring{width:min(100%,186px);height:auto;aspect-ratio:1}.compact-donut-center strong{font-size:27px}.compact-donut-legend,.pie-legend,.line-legend,.trend-bottom-labels{justify-content:flex-start}.compact-donut-chip,.trend-label-chip{white-space:normal}.trend-chart{height:220px}.location-bar-row{grid-template-columns:1fr;gap:6px}.location-bar-value{justify-content:flex-start}.onboarding-card{flex-direction:column;align-items:flex-start;gap:10px}.onboarding-actions,.settings-report-controls,.user-row-meta,.user-card-header{flex-wrap:wrap}.checkbox-row.compact{white-space:normal;align-items:flex-start}.modal-backdrop{padding:12px}.modal{padding:16px;max-height:calc(100vh - 24px);border-radius:18px;overflow-x:hidden}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.field-grid,.details-grid,.filter-grid{grid-template-columns:1fr}}@media (max-width: 560px){.sidebar{width:min(300px,88vw);padding:18px 14px 20px}.nav-item{padding:10px 12px}.main{padding:14px 12px 22px}.topbar{margin-bottom:14px;gap:10px}.topbar-title h1{font-size:clamp(1.28rem,6vw,1.55rem)}.topbar-actions{gap:10px}.year-select{flex:0 0 auto;min-width:auto}.topbar-actions .theme-toggle{flex:0 0 44px}.topbar-actions button.ghost:not(.theme-toggle),.topbar-actions button.primary{flex:1 1 140px}.panel,.stat-card{padding:14px}.record-file-actions{flex-wrap:nowrap;gap:8px}.record-file-actions>button{flex:1 1 0;min-width:0;min-height:38px;padding:8px 10px;font-size:12px;line-height:1.2;white-space:normal}.topbar-stack-title-mobile{grid-template-columns:auto minmax(0,1fr);margin-bottom:12px}.topbar-stack-title-mobile .topbar-actions{justify-content:flex-start}.topbar-stack-title-mobile .overview-topbar-actions{width:100%;gap:8px}.topbar-stack-title-mobile .overview-topbar-actions>button{flex:0 0 auto}.compact-donut-ring,.pie-ring{width:min(100%,168px)}.compact-donut-center strong{font-size:24px}.table{overflow:visible;gap:12px}.table-row,.table-row.nhis-row{min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;padding:14px;border:1px solid var(--border);background:var(--panel)}.table-row.header{display:none}.table-cell{display:grid;gap:4px;align-content:start;min-width:0}.table-cell:before{content:attr(data-label);font-size:11px;line-height:1.2;color:var(--muted);font-weight:600}.table-cell-name,.table-cell-actions,.table-cell-select{grid-column:1 / -1}.table-cell-select.is-empty{display:none}.table-cell-actions button{width:100%}.row-select-cell{justify-content:flex-start}.permission-actions.action-grid{grid-template-columns:1fr}.auth-card{padding:24px 18px;border-radius:18px}.auth{padding:14px}.auth-card{padding:22px 18px;border-radius:20px}.auth-logo{width:min(138px,42vw)}}
