:root{color-scheme:light;--font-sans: "Inter", -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--bg: #f4f7fb;--card: #ffffff;--card-alt: #f6f9fc;--text: #101828;--muted: #6b7383;--border: #e7ebf2;--accent: #0ea5b7;--accent-hover: #0b8795;--accent-soft: #e3f6f8;--secondary: #64748b;--button-bg: #0ea5b7;--button-hover-bg: #0b8795;--ok: #0ca30c;--ok-bg: #e6f6e6;--err: #d03b3b;--err-bg: #fbeaea;--pending: #b3730a;--pending-bg: #fdf1e0;--sidebar-bg: #ffffff;--sidebar-bg-alt: #ffffff;--sidebar-text: #56607a;--sidebar-border: #eceff4;--sidebar-active-bg: #0ea5b7;--sidebar-active-text: #ffffff;--badge-1: #2a78d6;--badge-1-bg: rgba(42, 120, 214, .12);--badge-2: #eb6834;--badge-2-bg: rgba(235, 104, 52, .12);--badge-3: #1baf7a;--badge-3-bg: rgba(27, 175, 122, .12);--badge-4: #eda100;--badge-4-bg: rgba(237, 161, 0, .14);--badge-5: #e87ba4;--badge-5-bg: rgba(232, 123, 164, .12);--badge-6: #008300;--badge-6-bg: rgba(0, 131, 0, .12);--badge-7: #4a3aa7;--badge-7-bg: rgba(74, 58, 167, .12);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 8px 24px rgba(16, 24, 40, .08);--shadow-lg: 0 20px 60px rgba(16, 24, 40, .18);--radius: 14px}:root[data-theme=dark]{color-scheme:dark;--bg: #10131c;--card: #171b28;--card-alt: #1d2333;--text: #e7eaf2;--muted: #9099ac;--border: #2a3145;--accent: #35c2d3;--accent-hover: #5ccedc;--accent-soft: rgba(53, 194, 211, .14);--secondary: #64748b;--button-bg: #0ea5b7;--button-hover-bg: #35c2d3;--ok: #3fce8f;--ok-bg: rgba(63, 206, 143, .14);--err: #ef6a6a;--err-bg: rgba(239, 106, 106, .14);--pending: #e0ab55;--pending-bg: rgba(224, 171, 85, .14);--sidebar-bg: #0b0e17;--sidebar-bg-alt: #0e1220;--sidebar-text: #aab1c6;--sidebar-border: #232a3c;--sidebar-active-bg: #0ea5b7;--sidebar-active-text: #ffffff;--badge-1: #3987e5;--badge-1-bg: rgba(57, 135, 229, .18);--badge-2: #d95926;--badge-2-bg: rgba(217, 89, 38, .18);--badge-3: #199e70;--badge-3-bg: rgba(25, 158, 112, .18);--badge-4: #c98500;--badge-4-bg: rgba(201, 133, 0, .2);--badge-5: #d55181;--badge-5-bg: rgba(213, 81, 129, .18);--badge-6: #2fae2f;--badge-6-bg: rgba(47, 174, 47, .18);--badge-7: #9085e9;--badge-7-bg: rgba(144, 133, 233, .18);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .35);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;transition:background .15s ease,color .15s ease}h1,h2,h3,h4{font-family:var(--font-sans);font-weight:600;letter-spacing:-.01em;color:var(--text)}.full-page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;height:100vh;color:var(--muted)}.full-page-loading .spinner{width:32px;height:32px}.spinner{color:currentColor;animation:spinner-rotate .8s linear infinite;flex-shrink:0}@keyframes spinner-rotate{to{transform:rotate(360deg)}}button .spinner{margin-right:.35rem;vertical-align:-2px}.login-split{min-height:100vh;display:grid;grid-template-columns:minmax(360px,480px) 1fr}.login-form-side{display:flex;flex-direction:column;padding:2rem 1.5rem;background:var(--bg)}.login-form-wrap{flex:1;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:1rem}.login-card h1{margin:0;font-size:1.5rem;text-align:center}.login-logo{display:block;max-width:200px;height:auto;margin:0 auto .5rem}.login-card .muted{text-align:center;margin:0}.login-footnote{font-size:.78rem;margin-top:.25rem!important}.app-footer{text-align:center;padding:1rem 1.5rem;font-size:.78rem;color:var(--muted)}.password-input-row{position:relative;display:flex;width:100%}.password-input-row input{flex:1;min-width:0;padding-right:2.5rem}.password-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:transparent;color:var(--muted);width:32px;height:32px;padding:0;border-radius:6px}.password-toggle:hover{background:var(--card-alt);color:var(--text)}.login-banner-side{position:relative;overflow:hidden;background:var(--sidebar-bg)}.login-banner-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.login-banner-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;background:linear-gradient(180deg,#0b142d26,#0b142dbf);padding:3rem}.login-banner-copy{max-width:480px;color:#fff}.login-banner-copy h2{margin:0 0 .6rem;font-size:1.8rem;line-height:1.25}.login-banner-copy p{margin:0;color:#ffffffd9;font-size:.98rem;line-height:1.5}@media (max-width: 900px){.login-split{grid-template-columns:1fr}.login-banner-side{display:none}}.app-shell{display:flex;min-height:100vh}.sidebar-backdrop{display:none}.sidebar{width:250px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;padding:1.25rem .75rem;position:sticky;top:0;height:100vh;overflow-y:auto;border-right:1px solid var(--sidebar-border);transition:width .15s ease}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.25rem .5rem 1.25rem}.sidebar .brand{font-weight:700;font-size:1.1rem;letter-spacing:.01em;color:var(--text);white-space:nowrap;min-width:0;overflow:hidden}.brand-short{display:none}.brand-logo-full{max-width:100%;max-height:36px;width:auto;height:auto}.brand-logo-icon{width:32px;height:32px;object-fit:contain;border-radius:8px}.sidebar nav{display:flex;flex-direction:column;gap:.15rem;flex:1}.nav-group-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:.9rem .6rem .35rem;white-space:nowrap}.sidebar nav a{display:flex;align-items:center;gap:.7rem;padding:.6rem .75rem;color:var(--sidebar-text);text-decoration:none;font-weight:500;font-size:.88rem;border-radius:10px;transition:background .12s ease,color .12s ease;white-space:nowrap;position:relative}.sidebar nav a:hover{background:var(--card-alt);color:var(--text)}.sidebar nav a.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);box-shadow:0 4px 10px #0ea5b74d}.nav-icon{flex-shrink:0}.nav-label{overflow:hidden;text-overflow:ellipsis}.sidebar-collapse-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--card-alt);color:var(--sidebar-text);border:1px solid var(--sidebar-border);width:30px;height:30px;padding:0;border-radius:50%}.sidebar-collapse-toggle:hover{background:var(--border);color:var(--text)}.collapse-icon{flex-shrink:0;transition:transform .15s ease}.app-shell.sidebar-collapsed .sidebar{width:68px}.app-shell.sidebar-collapsed .brand-row{padding:0 0 1.25rem;flex-direction:column;gap:.75rem}.app-shell.sidebar-collapsed .brand{display:flex;justify-content:center}.app-shell.sidebar-collapsed .brand-full{display:none}.app-shell.sidebar-collapsed .brand-short{display:block}.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .nav-group-label{display:none}.app-shell.sidebar-collapsed .sidebar nav a{justify-content:center;padding:.75rem 0}.app-shell.sidebar-collapsed .collapse-icon{transform:rotate(180deg)}.sidebar-tooltip{position:fixed;transform:translateY(-50%);background:var(--card);color:var(--text);border:1px solid var(--border);padding:.4rem .7rem;border-radius:6px;font-size:.8rem;font-weight:600;white-space:nowrap;box-shadow:var(--shadow-md);z-index:60;pointer-events:none}.main-col{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:15}.topbar-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}.icon-btn{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:999px;width:38px;height:38px;display:flex;align-items:center;justify-content:center;padding:0;font-size:1.1rem;box-shadow:none}.icon-btn:hover{background:var(--card-alt);border-color:var(--muted)}.hamburger{display:none;flex-direction:column;gap:4px}.hamburger span{display:block;width:18px;height:2px;background:var(--text);border-radius:2px}.theme-toggle{font-size:1.05rem}.impersonation-badge{background:var(--pending-bg);color:var(--pending);border:1px solid var(--pending);border-radius:999px;padding:.4rem .9rem;font-size:.78rem;font-weight:700;white-space:nowrap}.impersonation-badge:hover{background:var(--pending);color:#fff}.profile-menu{position:relative;display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:600;padding:.3rem .5rem;border-radius:999px}.profile-menu:hover{background:var(--card-alt)}.avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}.profile-dropdown{position:absolute;top:44px;right:0;background:var(--card);border:1px solid var(--border);border-radius:10px;min-width:180px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden;z-index:20}.profile-dropdown a,.profile-dropdown button{padding:.65rem .95rem;text-align:left;background:none;color:var(--text);border:none;border-radius:0;font-weight:500;text-decoration:none;font-size:.88rem}.profile-dropdown a:hover,.profile-dropdown button:hover{background:var(--card-alt)}.row-actions-trigger{font-size:1.1rem;line-height:1;font-weight:700;color:var(--muted);background:transparent}.row-actions-trigger:hover{background:var(--card-alt);color:var(--text)}.row-actions-dropdown{position:fixed;background:var(--card);border:1px solid var(--border);border-radius:8px;min-width:150px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;overflow:hidden;z-index:25;animation:fadeIn .1s ease}.row-actions-dropdown button{padding:.6rem .9rem;text-align:left;background:none;color:var(--text);border:none;border-radius:0;font-weight:500;font-size:.85rem;width:100%}.row-actions-dropdown button:hover{background:var(--card-alt)}.row-actions-dropdown button.danger{color:var(--err);background:none}.row-actions-dropdown button.danger:hover{background:var(--err-bg)}.content{flex:1;padding:1.75rem 2rem 3rem;width:100%}.main-col>.app-footer{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--border);padding:.75rem 1.5rem;z-index:15}h1{margin-top:0;font-size:1.4rem}h2{font-size:1.1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem 1.75rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm)}.muted{color:var(--muted)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.page-header h1{margin:0}.upload-form{display:flex;flex-direction:column;gap:1rem;max-width:420px}.field{display:flex;flex-direction:column;gap:.35rem}.field.inline{flex-direction:column}.field input,.field select,input[type=text],input[type=password],input[type=email],select{padding:.55rem .7rem;border:1px solid var(--border);border-radius:8px;font-family:var(--font-sans);font-size:.9rem;background:var(--card);color:var(--text)}.field input:disabled,.field select:disabled{background:var(--card-alt);color:var(--muted);cursor:not-allowed}.field input:focus,.field select:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search-input{position:relative;display:inline-flex;align-items:center;min-width:240px}.search-input-icon{position:absolute;left:.75rem;color:var(--muted);pointer-events:none}.search-input input[type=text]{width:100%;padding:.55rem 2.2rem .55rem 2.35rem;border-radius:999px;background:var(--card-alt);border-color:var(--border)}.search-input input[type=text]:focus{background:var(--card)}.search-input-clear{position:absolute;right:.5rem;width:20px;height:20px;border-radius:50%;background:var(--border);color:var(--muted);border:none;box-shadow:none;padding:0;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1}.search-input-clear:hover{background:var(--muted);color:#fff}.ss-select{display:inline-flex}.ss-select-trigger{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;font-family:var(--font-sans);font-size:.9rem;font-weight:400;box-shadow:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-width:160px;text-align:left}.ss-select-trigger:hover{background:var(--card-alt)}.ss-select-trigger:disabled{background:var(--card-alt);color:var(--muted);cursor:not-allowed}.ss-select-chevron{color:var(--muted);font-size:.7rem;flex-shrink:0}.ss-select-panel{position:fixed;background:var(--card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:50;overflow:hidden;max-width:min(320px,calc(100vw - 2rem))}.ss-select-search{display:flex;align-items:center;gap:.4rem;padding:.5rem .65rem;border-bottom:1px solid var(--border);color:var(--muted)}.ss-select-search input{border:none;outline:none;background:transparent;font-family:var(--font-sans);font-size:.85rem;color:var(--text);width:100%;padding:0}.ss-select-options{max-height:220px;overflow-y:auto;padding:.3rem}.ss-select-option{display:block;width:100%;text-align:left;background:none;color:var(--text);border:none;border-radius:6px;box-shadow:none;font-weight:400;font-size:.86rem;padding:.5rem .6rem}.ss-select-option:hover{background:var(--card-alt)}.ss-select-option-active{background:var(--accent-soft);color:var(--accent);font-weight:600}.ss-select-empty{padding:.6rem;font-size:.85rem;text-align:center}.dp{display:inline-flex}.dp-trigger{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;font-family:var(--font-sans);font-size:.9rem;font-weight:400;box-shadow:none;display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-width:160px}.dp-trigger:hover{background:var(--card-alt)}.dp-icon{font-size:.9rem;flex-shrink:0}.dp-panel{position:fixed;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;padding:.85rem;width:260px}.dp-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem}.dp-month-label{font-weight:700;font-size:.88rem}.dp-nav{background:var(--card-alt);color:var(--text);border:none;box-shadow:none;width:26px;height:26px;border-radius:50%;padding:0;font-size:1rem;line-height:1}.dp-nav:hover{background:var(--border)}.dp-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;color:var(--muted);font-size:.72rem;font-weight:700;margin-bottom:.3rem}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dp-cell{aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text);border:none;box-shadow:none;border-radius:8px;font-weight:500;font-size:.85rem;padding:0}.dp-cell:not(.dp-cell-empty):hover{background:var(--card-alt)}.dp-cell-empty{visibility:hidden}.dp-cell-today{border:1px solid var(--accent);color:var(--accent)}.dp-cell-selected{background:var(--accent);color:#fff;font-weight:700}.dp-cell-selected:hover{background:var(--accent-hover)}.dp-footer{display:flex;gap:.5rem;margin-top:.7rem;padding-top:.6rem;border-top:1px solid var(--border)}.dp-footer button{flex:1;padding:.4rem .6rem;font-size:.78rem}.drp{display:inline-flex}.drp-trigger{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:.55rem .7rem;font-family:var(--font-sans);font-size:.88rem;font-weight:500;box-shadow:none;display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-width:180px}.drp-trigger:hover{background:var(--card-alt)}.drp-panel{position:fixed;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:50;overflow:hidden}.drp-body{display:flex}.drp-presets{display:flex;flex-direction:column;gap:.1rem;padding:.5rem;width:150px;border-right:1px solid var(--border)}button.drp-preset{background:transparent;color:var(--text);border:none;box-shadow:none;border-radius:8px;text-align:left;padding:.5rem .6rem;font-size:.82rem;font-weight:500;white-space:nowrap}button.drp-preset:hover{background:var(--card-alt)}button.drp-preset-active{background:var(--accent-soft);color:var(--accent);font-weight:700}button.drp-preset-clear{color:var(--err);margin-top:.4rem;border-top:1px solid var(--border);border-radius:0;padding-top:.6rem}.drp-calendar{padding:.85rem;width:260px}.drp-cell-in-range{background:var(--accent-soft);border-radius:0}@media (max-width: 640px){.drp-body{flex-direction:column}.drp-presets{width:100%;flex-direction:row;flex-wrap:wrap;border-right:none;border-bottom:1px solid var(--border)}.drp-calendar{width:100%}}button{cursor:pointer;border:none;border-radius:8px;padding:.55rem 1.05rem;background:var(--button-bg);color:#fff;font-family:var(--font-sans);font-weight:600;font-size:.85rem;letter-spacing:.005em;box-shadow:0 1px 2px #1018280f;transition:background .12s ease,box-shadow .12s ease,transform .05s ease}button:hover{background:var(--button-hover-bg);box-shadow:0 2px 6px #2c5fd640}button:active{transform:translateY(1px);box-shadow:none}button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button.danger{background:var(--err)}button.danger:hover{background:#a82c2c;box-shadow:0 2px 6px #c2363640}button.secondary{background:var(--card-alt);color:var(--secondary);border:1px solid var(--secondary);box-shadow:none}button.secondary:hover{background:var(--secondary);color:#fff}button.pill{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:999px;box-shadow:none;display:inline-flex;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600}button.pill:hover{background:var(--card-alt);border-color:var(--muted)}button.pill:disabled{opacity:.6}.page-header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.page-header .muted{margin:.15rem 0 0;font-size:.85rem}.tabs{background:var(--card-alt);border:1px solid var(--border);border-radius:999px;padding:.25rem;display:inline-flex;gap:.15rem;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width: 480px){.tabs{display:flex;width:100%}.tabs button.tab,.tabs button.tab-active{flex:1;text-align:center;padding:.5rem .6rem;font-size:.78rem}}button.tab,button.tab-active{background:transparent;color:var(--muted);border:none;box-shadow:none;font-weight:600;border-radius:999px;padding:.5rem 1.1rem}button.tab:hover{background:var(--border);color:var(--text)}button.tab-active{background:var(--accent);color:#fff}button.tab-active:hover{background:var(--accent-hover)}.settings-layout{display:flex;align-items:flex-start;gap:1.5rem}.settings-tabs{display:flex;flex-direction:column;gap:.2rem;flex-shrink:0;width:230px;background:linear-gradient(180deg,var(--accent-soft) 0%,var(--card) 55%);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem;position:sticky;top:1.5rem}button.settings-tab{background:transparent;color:var(--muted);border:none;border-radius:10px;box-shadow:none;font-weight:600;font-size:.88rem;padding:.65rem .75rem;display:flex;align-items:center;gap:.55rem;white-space:nowrap;position:relative;width:100%;text-align:left}.settings-tab-icon{flex-shrink:0}button.settings-tab:hover{background:var(--card-alt);color:var(--text)}button.settings-tab.settings-tab-active{background:var(--card);color:var(--tab-color, var(--accent));box-shadow:var(--shadow-sm)}button.settings-tab.settings-tab-active:before{content:"";position:absolute;left:-.6rem;top:.55rem;bottom:.55rem;width:3px;border-radius:3px;background:var(--tab-color, var(--accent))}.settings-tab-dot{width:6px;height:6px;border-radius:50%;background:var(--ok);flex-shrink:0;margin-left:auto}.settings-content{flex:1;min-width:0}@media (max-width: 900px){.settings-layout{flex-direction:column}.settings-tabs{width:100%;flex-direction:row;overflow-x:auto;-webkit-overflow-scrolling:touch;position:static}button.settings-tab{width:auto}button.settings-tab.settings-tab-active:before{display:none}}.banner{margin-top:1rem;padding:.75rem 1rem;border-radius:8px;font-size:.9rem}.banner.success{background:var(--ok-bg);color:var(--ok)}.banner.error{background:var(--err-bg);color:var(--err)}.table-wrap{overflow-x:auto;border-radius:var(--radius);-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;margin-top:0;font-size:.9rem}thead th{position:sticky;top:0;background:var(--card-alt);z-index:1}thead tr:first-child th:first-child{border-top-left-radius:var(--radius)}thead tr:first-child th:last-child{border-top-right-radius:var(--radius)}th,td{text-align:left;padding:.75rem .9rem;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .1s ease}tbody tr:hover{background:var(--card-alt)}.error-cell{white-space:normal;max-width:240px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2.5rem 1rem;gap:.35rem;white-space:normal}.empty-state-icon{font-size:1.8rem;opacity:.6;margin-bottom:.25rem}.empty-state-title{font-weight:600;color:var(--text);margin:0}.empty-state-message{font-size:.85rem;margin:0;max-width:360px}.mono{font-family:var(--font-mono);font-size:.83rem;font-variant-numeric:tabular-nums}.link-button{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;font:inherit;border-radius:4px;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.link-button:hover,.link-button:active{color:var(--accent-hover, var(--accent));background:none}.link-button:focus{outline:none}.link-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pill{display:inline-flex;align-items:center;padding:.22rem .65rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.02em;margin-right:.35rem;text-transform:capitalize}.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.err{background:var(--err-bg);color:var(--err)}.pill.pending{background:var(--pending-bg);color:var(--pending)}.actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.actions a{color:var(--accent);font-weight:600;text-decoration:none}.actions a:hover{text-decoration:underline}.actions button{padding:.4rem .7rem;font-size:.8rem}td.actions{flex-wrap:nowrap}.filter-row{display:flex;align-items:flex-end;gap:1rem;flex-wrap:wrap}.pagination{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1rem 0}.detail-grid strong{display:block;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.35rem 1rem;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--shadow-sm);transition:box-shadow .15s ease,transform .15s ease}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card-top{display:flex;align-items:flex-start;justify-content:space-between}.stat-icon-badge{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card-body{display:flex;flex-direction:column;gap:.15rem}.stat-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.5rem;border-top:1px solid var(--border);padding-top:.6rem;margin-top:.15rem;font-size:.78rem}.stat-card-footer a{color:var(--accent);font-weight:600;text-decoration:none;white-space:nowrap}.stat-card-footer a:hover{text-decoration:underline}.stat-card.ok{border-left-color:var(--ok)}.stat-card.err{border-left-color:var(--err)}.stat-card.pending{border-left-color:var(--pending)}.stat-value{font-size:1.7rem;font-weight:800;letter-spacing:-.02em}.stat-label{color:var(--muted);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0d1480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem;animation:fadeIn .12s ease}.modal{background:var(--card);border-radius:var(--radius);padding:2.1rem;width:100%;max-width:540px;display:flex;flex-direction:column;gap:1.15rem;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);animation:slideUp .15s ease}.modal h2{margin:0}.confirm-modal{max-width:440px}.confirm-modal-message{margin:0;color:var(--muted);line-height:1.5}.confirm-modal-danger h2{color:var(--err)}.modal-wide{max-width:1200px;width:calc(100vw - 3rem)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.field-grid-compact{grid-template-columns:max-content max-content}.field-grid-compact .field input,.field-grid-compact .field select{width:260px;max-width:100%}@media (max-width: 640px){.field-grid-compact{grid-template-columns:1fr}}.palette-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.25rem}.palette-field{display:flex;flex-direction:column;gap:.3rem}.palette-input-row{display:flex;align-items:center;gap:.5rem}.palette-input-row input[type=color]{width:44px;height:38px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--card);cursor:pointer}.palette-hex-input{flex:1;font-family:ui-monospace,Consolas,monospace;text-transform:uppercase}.palette-hint{font-size:.78rem}.theme-mode-toggle{display:inline-flex;background:var(--card-alt);border:1px solid var(--border);border-radius:999px;padding:.25rem;gap:.15rem}.theme-mode-toggle button{background:transparent;color:var(--muted);border:none;box-shadow:none;border-radius:999px;padding:.5rem 1.25rem;font-weight:600}.theme-mode-toggle button:hover{background:var(--border);color:var(--text)}.theme-mode-toggle button.theme-mode-active{background:var(--card);color:var(--accent);box-shadow:var(--shadow-sm)}.section-eyebrow{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:0}.preset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.25rem}.preset-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;text-align:left;background:var(--card-alt);border:1.5px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;font-family:var(--font-sans);box-shadow:none;transition:border-color .12s ease,transform .12s ease}.preset-card:hover{border-color:var(--muted);transform:translateY(-1px)}.preset-card-active{border-color:var(--accent);background:var(--accent-soft)}.preset-check{position:absolute;top:.7rem;right:.7rem;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.preset-dots{display:flex}.preset-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--card)}.preset-dot+.preset-dot{margin-left:-8px}.preset-name{font-weight:700;font-size:.92rem;color:var(--text)}.preset-description{font-size:.78rem}@media (max-width: 640px){.preset-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;position:sticky;bottom:0;background:var(--card);padding-top:.25rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.breadcrumb{color:var(--muted);font-size:.78rem;margin:0 0 .35rem}.perm-module-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.35rem;margin-bottom:1rem}.perm-module-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.perm-module-header h3{margin:0;font-size:.98rem}.perm-select-all{display:flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--accent);white-space:nowrap}.perm-save-bar{position:sticky;bottom:.75rem;display:flex;justify-content:flex-end;margin-top:1rem}.perm-save-bar button{box-shadow:var(--shadow-md)}.checkbox-row{display:flex;align-items:center;gap:.5rem;font-weight:500;font-size:.88rem}.result-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:2.5rem 2rem;max-width:520px;margin:1.5rem auto 0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.5rem}.result-card h1{margin:.25rem 0 0}.result-card-wide{max-width:720px}.result-icon{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:700}.result-icon.result-ok{background:var(--ok-bg);color:var(--ok)}.result-icon.result-err{background:var(--err-bg);color:var(--err)}.result-icon.result-pending{background:var(--pending-bg);color:var(--pending)}.result-meta{width:100%;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;text-align:left;background:var(--card-alt);border:1px solid var(--border);border-radius:8px;padding:1.1rem 1.25rem;margin:.5rem 0}.result-meta strong{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}.result-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem;width:100%}@media (max-width: 900px){.hamburger{display:flex}.sidebar{position:fixed;left:0;top:0;height:100vh;transform:translate(-100%);transition:transform .2s ease;z-index:40;box-shadow:var(--shadow-lg)}.app-shell.sidebar-open .sidebar{transform:translate(0)}.app-shell.sidebar-open .sidebar-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0d1473;z-index:35}.content{padding:1.25rem 1rem 2.5rem}.card{padding:1.15rem 1.25rem}.profile-name{display:none}.app-shell.sidebar-collapsed .sidebar{width:230px}.app-shell.sidebar-collapsed .brand-row{padding:0 1.25rem 1.25rem;flex-direction:row}.app-shell.sidebar-collapsed .brand{justify-content:flex-start}.app-shell.sidebar-collapsed .brand-full{display:block}.app-shell.sidebar-collapsed .brand-short{display:none}.app-shell.sidebar-collapsed .nav-label{display:inline}.app-shell.sidebar-collapsed .nav-group-label{display:block}.app-shell.sidebar-collapsed .sidebar nav a{justify-content:flex-start;padding:.7rem 1.25rem}.sidebar-collapse-toggle{display:none}}@media (max-width: 640px){.login-card{padding:1.75rem}.page-header{flex-direction:column;align-items:stretch}.page-header button{align-self:flex-start}.stat-grid{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr 1fr}.checkbox-grid,.field-grid{grid-template-columns:1fr}.modal{padding:1.25rem;max-width:100%}th,td{padding:.5rem .6rem;font-size:.82rem}.topbar{padding:.65rem 1rem}.impersonation-badge-full{display:none}.impersonation-badge{padding:.35rem .65rem;font-size:.72rem}.result-card{padding:1.75rem 1.25rem}.result-meta{grid-template-columns:1fr}.result-actions{flex-direction:column}.result-actions button{width:100%}}@media (max-width: 420px){.stat-grid,.detail-grid{grid-template-columns:1fr}}.toast-stack{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;display:flex;flex-direction:column;gap:.5rem;max-width:min(360px,calc(100vw - 2rem))}.toast{padding:.75rem 1rem;border-radius:var(--radius);box-shadow:var(--shadow-md);font-size:.9rem;cursor:pointer;color:#fff;animation:toast-in .2s ease-out}.toast-success{background:var(--ok)}.toast-error{background:var(--err)}.toast-info{background:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton-block{display:flex;flex-direction:column;gap:.6rem}.skeleton-line{border-radius:6px;background:linear-gradient(90deg,var(--card-alt) 25%,var(--border) 37%,var(--card-alt) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.remember-me-row{margin:.25rem 0 .5rem}
