body{margin:0}button,input{font:inherit}:root{--ink:#0c1f18;--evergreen-950:#0a2e25;--evergreen-900:#0e3a2f;--evergreen-800:#14503f;--evergreen-700:#1b6350;--evergreen-600:#237a61;--evergreen-500:#2e9377;--evergreen-100:#dcefe6;--evergreen-50:#eef6f2;--accent:#e3f158;--accent-soft:#f2f8c9;--bg:#f3f6f5;--surface:#fff;--surface-2:#f8faf9;--border:#e2e9e5;--border-strong:#cdd9d2;--text:#14261f;--text-2:#51665c;--text-3:#7f948a;--primary:#0e5c46;--primary-hover:#0b4a39;--primary-soft:#e7f2ec;--danger:#bb3a2a;--danger-soft:#fceeea;--warn:#a86d0c;--warn-soft:#fdf3e0;--info:#1f6f8b;--info-soft:#e6f1f6;--success:#1f7a4d;--success-soft:#e8f5ee;--radius-sm:8px;--radius:10px;--radius-lg:16px;--shadow-xs:0 1px 2px #0c1f180d;--shadow-sm:0 1px 3px #0c1f180f, 0 1px 2px #0c1f180a;--shadow-md:0 10px 30px -12px #0c1f182e, 0 2px 6px #0c1f180d;--shadow-lg:0 24px 60px -20px #0c1f1847;--focus-ring:0 0 0 3px #237a6147;--sidebar-w:264px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%}:focus-visible{outline:2px solid var(--evergreen-600);outline-offset:2px;border-radius:4px}::selection{background:var(--evergreen-100)}.table-scroll::-webkit-scrollbar{width:8px;height:8px}.module-picker-menu::-webkit-scrollbar{width:8px;height:8px}.main-nav::-webkit-scrollbar{width:8px;height:8px}.table-scroll::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.module-picker-menu::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.main-nav::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}.table-scroll::-webkit-scrollbar-track{background:0 0}.module-picker-menu::-webkit-scrollbar-track{background:0 0}.app-shell{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);flex-direction:column;flex:0 0 var(--sidebar-w);background:linear-gradient(180deg, var(--evergreen-950) 0%, var(--evergreen-900) 60%, #0d3329 100%);color:#d5e7dd;height:100vh;padding:22px 14px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:#fff;letter-spacing:3px;align-items:center;gap:11px;padding:2px 10px 0;font-size:17px;font-weight:800;display:flex}.brand-mark{background:linear-gradient(140deg, var(--accent) 0%, #c8dc3f 100%);color:#12362b;letter-spacing:0;border-radius:10px;place-items:center;width:34px;height:34px;font-size:17px;font-weight:900;display:inline-grid;box-shadow:0 4px 12px #00000040}.sidebar-caption{color:#7ea190;letter-spacing:1.8px;margin:26px 10px 10px;font-size:10px;font-weight:700}.main-nav{gap:2px;padding-bottom:12px;display:grid}.nav-group{gap:2px;margin-bottom:10px;display:grid}.nav-group-label{color:#6f9384;letter-spacing:1.6px;text-transform:uppercase;margin:0 0 4px;padding:0 10px;font-size:9.5px;font-weight:800}.nav-item{border-radius:var(--radius-sm);color:#c2d9cd;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:9px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex;position:relative}.nav-item:hover:not(:disabled){color:#fff;background:#ffffff12}.nav-item.active{color:#fff;background:#e3f1581f;font-weight:650}.nav-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;inset:6px auto 6px -14px}.nav-icon{color:#8fb7a5;text-align:center;width:18px;font-size:14px;transition:color .15s}.nav-item:hover:not(:disabled) .nav-icon,.nav-item.active .nav-icon{color:var(--accent)}.sidebar-user{border-top:1px solid #ffffff1a;align-items:center;gap:10px;margin-top:auto;padding:16px 8px 4px;font-size:11px;display:flex}.sidebar-user strong,.sidebar-user span{display:block}.sidebar-user strong{color:#f2f8f4;font-size:12px;font-weight:650}.sidebar-user span{color:#8fb7a5;text-overflow:ellipsis;white-space:nowrap;max-width:128px;margin-top:3px;font-size:10.5px;overflow:hidden}.sign-out{color:var(--accent);background:0 0;border:0;border-radius:6px;align-self:flex-end;margin-left:auto;padding:4px 8px;font-size:10.5px;font-weight:700;transition:background .15s}.sign-out:hover{background:#e3f1581f}.avatar{background:linear-gradient(140deg, var(--accent) 0%, #c8dc3f 100%);color:#12362b;letter-spacing:.5px;border-radius:50%;flex:none;place-items:center;width:42px;height:42px;font-weight:800;display:grid;box-shadow:inset 0 0 0 1px #0000000f}.avatar.small{width:32px;height:32px;font-size:10px}.avatar.tiny{width:30px;height:30px;font-size:9.5px}.content{width:min(1440px, calc(100% - var(--sidebar-w)));padding:0 40px 72px}.topbar{z-index:30;-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#f3f6f5db;justify-content:space-between;align-items:center;gap:20px;margin:0 -40px 24px;padding:18px 40px;display:flex;position:sticky;top:0}.topbar h1{color:var(--text);letter-spacing:-.6px;margin:4px 0 0;font-size:26px;font-weight:750;line-height:1.15}.eyebrow{color:var(--text-3);letter-spacing:1.7px;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.topbar-actions{align-items:center;gap:12px;display:flex}.sync-state{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:11px;font-weight:600;display:inline-flex}.sync-state:before{content:"";background:var(--success);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #1f7a4d26}.content:has(.loading-bar) .sync-state:before{animation:1s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.notification-button{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text);border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s;display:inline-flex;position:relative}.notification-button:hover{background:var(--surface-2);border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.notification-count{background:var(--danger);border:2px solid var(--bg);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:9.5px;font-weight:800;line-height:14px;position:absolute;top:-5px;right:-5px}.topbar-sign-out{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--text-2);border-radius:50%;justify-content:center;align-self:auto;align-items:center;margin-left:0;padding:0;font-size:18px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.topbar-sign-out:hover{background:var(--danger-soft);color:var(--danger);border-color:#f0cfc8}.loading-bar{z-index:100;pointer-events:none;background:0 0;height:3px;position:fixed;top:0;left:0;right:0;overflow:hidden}.loading-bar:after{content:"";background:linear-gradient(90deg, transparent, var(--evergreen-500), var(--accent));border-radius:0 3px 3px 0;width:40%;animation:1.1s ease-in-out infinite loading-slide;position:absolute;inset:0 auto 0 0}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(280%)}}.page-section{animation:.25s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.page-section{animation:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.page-intro{max-width:760px;margin:4px 0 26px}.page-intro h2{color:var(--text);letter-spacing:-.5px;margin:8px 0;font-size:24px;font-weight:750}.page-intro>p:last-child{color:var(--text-2);margin:0;line-height:1.65}.panel{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:22px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px;display:flex}.panel-heading h3,.panel h3{color:var(--text);letter-spacing:-.2px;margin:0;font-size:15.5px;font-weight:700}.panel-heading p{color:var(--text-2);margin:5px 0 0;font-size:12px;line-height:1.55}.welcome-banner{border-radius:var(--radius-lg);background:radial-gradient(120% 160% at 100% 0%, #ffffff29 0%, transparent 45%), linear-gradient(135deg, var(--evergreen-800) 0%, var(--evergreen-950) 100%);color:#e7f3ec;min-height:220px;box-shadow:var(--shadow-md);justify-content:space-between;align-items:center;padding:32px 40px;display:flex;position:relative;overflow:hidden}.welcome-banner .eyebrow{color:#9cc4b1}.welcome-banner h2{color:#fff;letter-spacing:-.8px;margin:10px 0 8px;font-size:30px;font-weight:800}.welcome-banner p:not(.eyebrow){color:#b9d4c6;max-width:520px;margin:0;line-height:1.6}.banner-letter{color:#e3f158e6;-webkit-user-select:none;user-select:none;margin:0 20px 0 30px;font-size:150px;font-weight:900;line-height:1}.dark-button{border-radius:var(--radius-sm);background:var(--accent);color:#12362b;border:0;align-items:center;gap:10px;margin-top:22px;padding:11px 18px;font-size:12.5px;font-weight:750;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.dark-button:hover{background:#ecf76e;transform:translateY(-1px);box-shadow:0 8px 20px -8px #00000080}.dark-button:active{transform:translateY(0)}.dark-button span{font-size:15px;line-height:1}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0;display:grid}.metric-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm);padding:20px;transition:transform .15s,box-shadow .15s}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric-card p{color:var(--text-3);letter-spacing:1.1px;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.metric-card strong{color:var(--text);letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:12px 0 4px;font-size:30px;font-weight:800;display:block}.metric-card span{color:var(--text-3);font-size:11.5px}.overview-grid{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:18px;display:grid}.live-dot{color:var(--success);align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.live-dot:before{content:"";background:var(--success);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #1f7a4d26}.focus-row{border-top:1px solid var(--border);align-items:center;gap:16px;padding:16px 0;display:flex}.focus-row:first-of-type{border-top:0}.focus-number{background:var(--accent-soft);color:#4c6220;font-variant-numeric:tabular-nums;border-radius:12px;flex:0 0 44px;place-items:center;width:44px;height:44px;font-size:18px;font-weight:800;display:grid}.focus-row strong{color:var(--text);font-size:13px}.focus-row p{color:var(--text-2);margin:4px 0 0;font-size:11.5px}.text-button{color:var(--primary);background:0 0;border:0;border-radius:6px;margin-left:auto;padding:6px 10px;font-size:11.5px;font-weight:700;transition:background .15s}.text-button:hover{background:var(--primary-soft)}.budget-total{color:var(--text);letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:20px 0 4px;font-size:30px;font-weight:800}.budget-panel>p:not(.eyebrow){color:var(--text-2);margin:0;font-size:11.5px;line-height:1.6}.progress{background:var(--border);border-radius:999px;height:8px;margin-top:22px;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--evergreen-500), var(--primary));border-radius:999px;height:100%;transition:width .4s;display:block}.primary-button{border-radius:var(--radius-sm);background:var(--primary);color:#fff;letter-spacing:.2px;border:0;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:8px;padding:11px 16px;font-size:12.5px;font-weight:700;transition:background .15s,transform .1s,box-shadow .15s,opacity .15s;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--primary-hover);box-shadow:0 6px 16px -6px #0e5c468c}.primary-button:active:not(:disabled){transform:translateY(1px)}.primary-button:disabled{opacity:.55;cursor:not-allowed}.primary-button span{font-size:15px;line-height:1}.link-button{color:var(--primary);font-size:inherit;text-underline-offset:2px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.link-button:hover{color:var(--primary-hover)}.field{color:var(--text-2);letter-spacing:.4px;text-transform:uppercase;font-size:10.5px;font-weight:800;display:block}.field input,.field select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text);letter-spacing:0;text-transform:none;outline:none;margin-top:6px;padding:10px 12px;font-size:13px;font-weight:500;transition:border-color .15s,box-shadow .15s,background .15s;display:block}.field input::placeholder{color:#a5b8af}.field input:hover:not(:focus),.field select:hover:not(:focus){border-color:#b4c6bd}.field input:focus,.field select:focus{border-color:var(--evergreen-600);box-shadow:var(--focus-ring)}.field select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%237f948a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}.form-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-note{border-radius:var(--radius-sm);background:var(--evergreen-50);border:1px solid var(--evergreen-100);color:var(--text-2);padding:12px 14px;font-size:11.5px;line-height:1.55}.form-error{border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);border:1px solid #f3d4cd;margin:0;padding:11px 14px;font-size:12px;font-weight:600}.read-only-note{border-radius:var(--radius);background:var(--info-soft);border:1px solid #cfe2ec;align-items:flex-start;gap:10px;margin-top:18px;padding:14px 16px;display:flex}.read-only-note strong{color:var(--info);white-space:nowrap;font-size:12.5px}.read-only-note span{color:var(--text-2);font-size:12px;line-height:1.55}.table-stack{gap:18px;display:grid}.table-panel{padding:0;overflow:hidden}.table-panel>.panel-heading{margin:0;padding:20px 22px 16px}.table-panel>.panel-heading h3{margin:0}.count-badge{background:var(--evergreen-50);border:1px solid var(--evergreen-100);min-width:26px;height:26px;color:var(--evergreen-700);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 9px;font-size:11px;font-weight:800;display:inline-grid}.table-scroll{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}th{background:var(--surface-2);border-bottom:1px solid var(--border);color:var(--text-3);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;padding:11px 20px;font-size:10px;font-weight:800;position:sticky;top:0}td{border-top:1px solid var(--border);color:var(--text-2);vertical-align:middle;white-space:nowrap;padding:13px 20px}tbody tr:first-child td{border-top:0}tbody tr{transition:background .12s}tbody tr:hover{background:var(--evergreen-50)}td strong,td small{display:block}td strong{color:var(--text);font-size:13px;font-weight:650}td small{color:var(--text-3);margin-top:3px;font-size:11px}.inline-status-action{border:1px solid var(--border-strong);border-radius:var(--radius-sm);appearance:none;background-color:var(--surface);min-width:118px;color:var(--text);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%237f948a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:8px 30px 8px 10px;font-size:11.5px;font-weight:650;transition:border-color .15s,box-shadow .15s}.inline-status-action:hover{border-color:#b4c6bd}.inline-status-action:focus{border-color:var(--evergreen-600);box-shadow:var(--focus-ring);outline:none}.status{background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);letter-spacing:.2px;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:4px 10px;font-size:10.5px;font-weight:750;display:inline-flex}.status i{background:var(--text-3);border-radius:50%;flex:none;width:7px;height:7px}.status-available i,.status-healthy i,.status-active i,.status-approved i,.status-completed i,.status-paid i,.status-delivered i{background:var(--success)}.status-available,.status-healthy,.status-active,.status-approved,.status-completed,.status-paid,.status-delivered{background:var(--success-soft);color:#17603c;border-color:#cbe7d8}.status-pending i,.status-maintenance i,.status-needs-attention i,.status-expiring i,.status-in-progress i,.status-scheduled i{background:var(--warn)}.status-pending,.status-maintenance,.status-needs-attention,.status-expiring,.status-in-progress,.status-scheduled{background:var(--warn-soft);color:#83570a;border-color:#f2dfb9}.status-lost i,.status-rejected i,.status-cancelled i,.status-overdue i,.status-expired i,.status-disposed i,.status-login-failed i,.status-failed i{background:var(--danger)}.status-lost,.status-rejected,.status-cancelled,.status-overdue,.status-expired,.status-disposed,.status-login-failed,.status-failed{background:var(--danger-soft);color:#9c3223;border-color:#f3d4cd}.status-assigned i,.status-returned i{background:var(--info)}.status-assigned,.status-returned{background:var(--info-soft);color:#175a72;border-color:#cfe2ec}.status-suspended i,.status-retired i,.status-unknown i{background:var(--text-3)}.status-suspended,.status-retired,.status-unknown{background:var(--surface-2);border-color:var(--border);color:var(--text-2)}.muted{color:var(--text-3);font-size:12px}.empty-state{text-align:center;place-items:center;min-height:180px;padding:28px;display:grid}.empty-state span{background:var(--surface-2);border:1px solid var(--border);width:46px;height:46px;color:var(--text-3);border-radius:50%;place-items:center;font-size:20px;display:grid}.empty-state p{color:var(--text-3);max-width:340px;margin:10px 0 0;font-size:12.5px}.user-cell{align-items:center;gap:10px;display:flex}.role-pill{background:var(--accent-soft);color:#55661d;white-space:nowrap;border:1px solid #e4ebab;border-radius:999px;padding:5px 10px;font-size:10.5px;font-weight:750;display:inline-block}.alert{border-radius:var(--radius);border:1px solid #0000;justify-content:space-between;align-items:flex-start;gap:16px;margin:0 0 18px;padding:13px 16px;font-size:12.5px;font-weight:550;animation:.2s ease-out rise;display:flex}.alert button{letter-spacing:.3px;text-transform:uppercase;background:#ffffff8c;border:0;border-radius:6px;flex:none;padding:3px 10px;font-size:10.5px;font-weight:800;transition:background .15s}.error-alert{background:var(--danger-soft);color:#9c3223;border-color:#f3d4cd}.error-alert button{color:#9c3223}.error-alert button:hover{background:#bb3a2a1f}.success-alert{background:var(--success-soft);color:#17603c;border-color:#cbe7d8}.success-alert button{color:#17603c}.success-alert button:hover{background:#1f7a4d1a}.access-tabs{flex-wrap:wrap;gap:10px;margin-bottom:20px;display:flex}.access-tab{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text-2);text-align:left;gap:2px;padding:11px 18px;transition:border-color .15s,background .15s,box-shadow .15s;display:grid}.access-tab span{color:var(--text);font-size:12.5px;font-weight:700}.access-tab small{color:var(--text-3);font-size:10.5px}.access-tab:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.access-tab.active{border-color:var(--evergreen-600);background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--evergreen-600)}.tab-hint{color:var(--text-2);margin:16px 2px 0;font-size:12px}.module-picker{color:var(--text-2);letter-spacing:.4px;text-transform:uppercase;gap:7px;font-size:10.5px;font-weight:800;display:grid;position:relative}.module-picker-label{display:block}.module-picker details{text-transform:none;letter-spacing:0;position:relative}.module-picker summary{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);min-height:42px;color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:0 13px;font-size:13px;font-weight:550;list-style:none;transition:border-color .15s,box-shadow .15s;display:flex}.module-picker summary:hover{border-color:#b4c6bd}.module-picker summary::-webkit-details-marker{display:none}.module-picker summary span{color:var(--text-3);font-size:16px}.module-picker details[open] summary{border-color:var(--evergreen-600);box-shadow:var(--focus-ring);border-bottom-right-radius:0;border-bottom-left-radius:0}.module-picker-menu{z-index:40;border:1px solid var(--evergreen-600);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--surface);max-height:240px;box-shadow:var(--shadow-md);border-top:0;gap:2px;padding:8px;display:grid;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.module-option{color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;font-weight:500;transition:background .12s;display:flex}.module-option:hover{background:var(--evergreen-50)}.module-option input{width:15px;height:15px;accent-color:var(--primary)}.module-chips{flex-wrap:wrap;gap:5px;display:flex}.module-chips span{background:var(--accent-soft);color:#55661d;text-transform:none;letter-spacing:0;border:1px solid #e4ebab;border-radius:999px;padding:4px 9px;font-size:10px;font-weight:700}.report-download-controls{align-items:flex-end;gap:12px;margin-top:18px;display:flex}.report-download-controls .field{min-width:130px}.report-download-controls .primary-button{width:auto;margin-top:0}.report-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:18px;display:grid}.report-card{min-height:128px;transition:transform .15s,box-shadow .15s;position:relative}.report-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.report-line{background:linear-gradient(90deg, var(--evergreen-500), var(--accent));border-radius:999px;width:28px;height:4px;margin-bottom:22px;display:block}.report-card p{color:var(--text-2);margin:0;font-size:11.5px;font-weight:600}.report-card strong{color:var(--text);font-variant-numeric:tabular-nums;margin-top:8px;font-size:13.5px;line-height:1.45;display:block}.report-detail{grid-template-columns:240px 1fr;gap:22px;display:grid}.report-detail h3{margin:8px 0 0}.report-detail ul{margin:0;padding:0;list-style:none}.report-detail li{border-bottom:1px solid var(--border);color:var(--text-2);justify-content:space-between;gap:14px;padding:10px 0;font-size:12.5px;display:flex}.report-detail li:last-child{border-bottom:0}.report-detail li b{color:var(--text);font-variant-numeric:tabular-nums}.login-page{background:radial-gradient(80% 100% at 85% 10%, #e3f1580f 0%, transparent 50%), linear-gradient(160deg, var(--evergreen-950) 0%, #0c352a 55%, #123f32 100%);grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:6vw;min-height:100vh;padding:48px max(6vw,40px);display:grid}.login-intro{color:#cfe3d8;max-width:560px}.login-intro .brand{color:#fff;margin-bottom:34px;padding:0}.login-intro h1{color:#fff;letter-spacing:-1px;margin:14px 0 16px;font-size:clamp(30px,3.4vw,44px);font-weight:800;line-height:1.12}.login-intro>p:not(.eyebrow){color:#a9c8b9;margin:0;font-size:15px;line-height:1.7}.login-note{color:#d5e9de;background:#ffffff0f;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:10px;margin-top:30px;padding:10px 16px;font-size:12px;font-weight:600;display:inline-flex}.pulse{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2s ease-out infinite pulse-ring;box-shadow:0 0 #e3f15880}@keyframes pulse-ring{0%{box-shadow:0 0 #e3f15873}70%{box-shadow:0 0 0 9px #e3f15800}to{box-shadow:0 0 #e3f15800}}.login-card{background:var(--surface);box-shadow:var(--shadow-lg);border:1px solid #ffffff1a;border-radius:20px;gap:14px;padding:36px 34px;animation:.3s ease-out rise;display:grid}.login-card .eyebrow{color:var(--evergreen-600)}.login-card h2{color:var(--text);letter-spacing:-.4px;margin:6px 0 2px;font-size:22px;font-weight:800}.login-card .primary-button{margin-top:6px}.login-card .text-button{text-align:center;color:var(--text-2);margin:2px 0 0;padding:6px}.login-card .text-button:hover{color:var(--primary);background:0 0}.login-card .helper{color:var(--text-3);text-align:center;border-top:1px solid var(--border);padding-top:8px;font-size:11px;line-height:1.6}.login-links{justify-content:space-between;gap:14px;display:flex}.login-grid-2{grid-template-columns:1fr 1fr;gap:13px;display:grid}@media (width<=640px){.login-grid-2{grid-template-columns:1fr}}.login-card .form-note{font-size:12px}@media (width<=1280px){.report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1080px){.overview-grid,.report-detail{grid-template-columns:1fr}}@media (width<=900px){.app-shell{flex-direction:column}.sidebar{flex:none;width:100%;height:auto;padding:14px 16px 10px;position:static}.brand{padding:0 4px}.sidebar-caption{margin:14px 10px 8px}.main-nav{scrollbar-width:thin;gap:6px;padding-bottom:8px;display:flex;overflow-x:auto}.nav-group{display:contents}.nav-group-label{display:none}.nav-item{white-space:nowrap;border:1px solid #ffffff1f;padding:8px 14px}.nav-item.active{border-color:#e3f15880}.nav-item.active:before{display:none}.sidebar-user{border-top:1px solid #ffffff1a;margin-top:6px}.content{width:100%;padding:0 20px 56px}.topbar{margin:0 -20px 20px;padding:14px 20px}.topbar h1{font-size:21px}.loading-bar{margin:-22px -20px 8px;top:65px}.welcome-banner{padding:26px}.banner-letter{display:none}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.metric-grid,.report-grid,.form-row{grid-template-columns:1fr}.report-download-controls{flex-direction:column;align-items:stretch}.report-download-controls .primary-button{width:100%}.login-page{grid-template-columns:1fr;gap:34px;padding:34px 22px}.login-card{padding:26px 22px}td,th{padding-left:14px;padding-right:14px}.panel{padding:18px}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.page-actions{flex:none}.primary-action{border-radius:var(--radius-sm);background:var(--primary);color:#fff;letter-spacing:.2px;border:0;align-items:center;gap:8px;padding:11px 18px;font-size:12.5px;font-weight:750;transition:background .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 6px 16px -6px #0e5c4673}.primary-action span{background:#ffffff2e;border-radius:4px;place-items:center;width:16px;height:16px;font-size:13px;line-height:1;display:grid}.primary-action:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 10px 22px -8px #0e5c468c}.primary-action:active{transform:translateY(0)}.table-toolbar{align-items:center}.table-tools{align-items:center;gap:12px;display:flex}.search-input{border:1px solid var(--border-strong);background-color:var(--surface-2);width:220px;color:var(--text);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237f948a' stroke-width='2.4' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E");background-position:11px;background-repeat:no-repeat;border-radius:999px;outline:none;padding:8px 12px 8px 32px;font-size:12.5px;transition:border-color .15s,box-shadow .15s,background-color .15s}.search-input::placeholder{color:var(--text-3)}.search-input:focus{border-color:var(--evergreen-600);background-color:var(--surface);box-shadow:var(--focus-ring)}@media (width<=640px){.search-input{width:100%}.table-toolbar{flex-direction:column;align-items:stretch}.table-tools{justify-content:space-between}}.th-sort{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.th-sort:hover{color:var(--text)}.th-sort.active-asc,.th-sort.active-desc{color:var(--evergreen-700)}.th-sort-icon{opacity:.55;font-size:11px}.th-sort.active-asc .th-sort-icon,.th-sort.active-desc .th-sort-icon{opacity:1}.th-actions{width:1%}.icon-button{width:30px;height:30px;color:var(--text-2);background:0 0;border:1px solid #0000;border-radius:7px;place-items:center;padding:0;font-size:13px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-grid}.icon-button:hover:not(:disabled){background:var(--primary-soft);color:var(--primary);border-color:var(--evergreen-100)}.icon-button.danger:hover:not(:disabled){background:var(--danger-soft);color:var(--danger);border-color:#f3d4cd}.icon-button:disabled{opacity:.35;cursor:not-allowed}.row-actions{white-space:nowrap}.row-actions .icon-button{margin-right:4px}.row-actions .icon-button:last-child{margin-right:0}.row-actions .inline-status-action{margin-left:6px}.skeleton{background:linear-gradient(90deg, var(--border) 25%, var(--surface-2) 45%, var(--border) 65%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.4s ease-in-out infinite skeleton-shimmer;display:block}.skeleton-row td{padding-top:17px;padding-bottom:17px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pagination{border-top:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:13px 20px;display:flex}.pagination-summary{color:var(--text-2);font-size:12px}.pagination-summary b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.pagination-controls{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.pagination-size{color:var(--text-3);letter-spacing:.4px;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:700;display:inline-flex}.pagination-size select{border:1px solid var(--border-strong);background-color:var(--surface);appearance:none;color:var(--text);cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%237f948a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;border-radius:7px;padding:6px 26px 6px 10px;font-size:12px;font-weight:600}.pagination-pages{align-items:center;gap:4px;display:flex}.page-button{min-width:32px;height:32px;color:var(--text-2);font-variant-numeric:tabular-nums;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;padding:0 6px;font-size:12.5px;font-weight:650;transition:background .12s,color .12s,border-color .12s;display:inline-grid}.page-button:hover:not(:disabled):not(.active){background:var(--evergreen-50);color:var(--text);border-color:var(--border)}.page-button.active{background:var(--primary);border-color:var(--primary);color:#fff}.page-button:disabled{opacity:.4;cursor:not-allowed}.page-ellipsis{color:var(--text-3);padding:0 4px;font-size:12px}body.modal-open{overflow:hidden}.modal-overlay{z-index:200;-webkit-backdrop-filter:blur(4px);background:#0a1e1873;place-items:center;padding:24px;animation:.18s ease-out overlay-in;display:grid;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.modal{border-radius:var(--radius-lg);background:var(--surface);width:100%;max-height:calc(100vh - 48px);box-shadow:var(--shadow-lg);flex-direction:column;animation:.2s cubic-bezier(.16,1,.3,1) modal-in;display:flex}.modal-sm{max-width:420px}.modal-md{max-width:560px}.modal-lg{max-width:720px}@keyframes modal-in{0%{opacity:0;transform:translateY(14px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:18px 24px 14px;display:flex}.modal-header h3{color:var(--text);letter-spacing:-.2px;margin:0;font-size:16.5px;font-weight:750}.modal-close{width:32px;height:32px;color:var(--text-3);background:0 0;border:0;border-radius:8px;place-items:center;padding:0;font-size:22px;line-height:1;transition:background .15s,color .15s;display:grid}.modal-close:hover{background:var(--surface-2);color:var(--text)}.modal-body{padding:20px 24px;overflow-y:auto}.modal-form{gap:13px;display:grid}.modal-form .form-row{gap:12px}.modal-footer{border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;gap:10px;padding:14px 24px 18px;display:flex}.modal-footer .primary-button,.modal-footer .ghost-button,.modal-footer .danger-solid-button{width:auto;margin-top:0;padding-inline:20px}.ghost-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-2);padding:11px 20px;font-size:12.5px;font-weight:700;transition:border-color .15s,color .15s,background .15s}.ghost-button:hover:not(:disabled){border-color:var(--text-3);color:var(--text);background:var(--surface-2)}.ghost-button:disabled{opacity:.5;cursor:not-allowed}.danger-solid-button{border-radius:var(--radius-sm);background:var(--danger);color:#fff;border:0;padding:11px 20px;font-size:12.5px;font-weight:750;transition:background .15s,box-shadow .15s}.danger-solid-button:hover{background:#a33123;box-shadow:0 8px 18px -8px #bb3a2ab3}.confirm-message{color:var(--text-2);margin:0;font-size:13.5px;line-height:1.6}.modal-submit:disabled{opacity:.65}@media (width<=640px){.modal-overlay{place-items:end center;padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal-sm,.modal-md,.modal-lg{max-width:100%}.modal-header,.modal-body{padding-left:18px;padding-right:18px}.modal-footer{padding:12px 18px 16px}.modal-footer .ghost-button,.modal-footer .primary-button,.modal-footer .danger-solid-button{flex:1}}@media (prefers-reduced-motion:reduce){.modal-overlay,.modal{animation:none}}
