:root{--ink:#1b1d22;--muted:#646b75;--line:#dfe3e7;--line-strong:#c8ced5;--surface:#fff;--surface-soft:#f8f9fa;--page:#f2f4f6;--brand:#1c1c1c;--brand-dark:#000;--link:#176d70;--link-dark:#105658;--success:#237344;--warning:#8b5606;--danger:#ab2931;--focus:#176d70;--c-black:var(--ink);--c-slate:#424a54;--c-muted:var(--muted);--c-brand:var(--brand);--c-brand-hover:var(--brand-dark);--c-danger:var(--danger);--c-error:var(--danger);--c-success:var(--success);--c-warning:var(--warning);--c-white:var(--surface);--sidebar-w:244px}*{box-sizing:border-box}html{background:var(--page);min-width:320px}body{min-height:100vh;color:var(--ink);background:var(--page);margin:0;font:15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:var(--link);text-decoration:none}a:hover{color:var(--link-dark);text-decoration:underline}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}h1{letter-spacing:0;margin:0;font-size:1.6rem;line-height:1.25}h2{letter-spacing:0;margin:0 0 14px;font-size:1.08rem;line-height:1.35}p{margin-top:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:100;background:var(--ink);color:#fff;border-radius:6px;padding:10px 14px;font-weight:700;position:fixed;top:8px;left:8px;transform:translateY(-160%)}.skip-link:focus{color:#fff;transform:translateY(0)}.container{width:min(1180px,100%);margin:0 auto;padding:28px 22px 72px}.portal-content:focus{outline:none}.page-sub{color:var(--muted);margin:4px 0 0}.page-heading{justify-content:space-between;align-items:flex-start;gap:20px;min-height:54px;margin-bottom:22px;display:flex}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.portal-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{z-index:30;background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;box-shadow:1px 0 10px #1b1d220a}.sidebar-brand{border-bottom:1px solid var(--line);flex:none;align-items:center;min-height:64px;padding:13px 16px;display:flex}.sidebar-brand .brand-mark-compact{flex-direction:column;align-items:flex-start;gap:5px}.sidebar-brand .brand-product{border-left:0;padding-left:0;font-size:.73rem}.brand-link{color:inherit}.brand-link:hover{color:inherit;text-decoration:none}.brand-mark{justify-items:center;gap:7px;display:grid}.brand-mark img{width:220px;height:auto;display:block}.brand-mark-compact{align-items:center;gap:10px;display:flex}.brand-mark-compact img{width:148px}.brand-product{color:var(--muted);letter-spacing:0;font-size:.78rem;font-weight:750}.brand-mark-compact .brand-product{border-left:1px solid var(--line-strong);white-space:nowrap;padding-left:10px}.sidebar-nav{scrollbar-width:thin;flex:auto;align-content:start;gap:2px;padding:12px 10px;display:grid;position:relative;overflow-y:auto}.nav-link{color:#424a54;white-space:nowrap;border-radius:7px;align-items:center;gap:11px;min-height:42px;padding:0 12px;transition:background-color .18s,color .18s;display:flex}.nav-link svg{color:#7b838d;flex:none;transition:color .18s}.nav-link:hover{background:var(--surface-soft);color:var(--brand);text-decoration:none}.nav-link:hover svg,.nav-link.active svg{color:var(--brand)}.nav-link.active{color:var(--brand);background:#fdf1f1;font-weight:750}.nav-link:focus-visible{outline-offset:-2px;outline:3px solid #176d703d}.nav-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.nav-count{background:var(--brand);color:#fff;border-radius:999px;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 5px;font-size:.68rem;font-weight:850;line-height:1;display:grid}.nav-indicator{background:var(--brand);opacity:0;pointer-events:none;border-radius:0 3px 3px 0;width:3px;height:0;transition:transform .3s cubic-bezier(.35,.1,.25,1),height .3s cubic-bezier(.35,.1,.25,1),opacity .15s linear;position:absolute;top:0;left:0}@media (prefers-reduced-motion:reduce){.nav-link,.nav-link svg,.nav-indicator{transition:none}}.sidebar-footer{border-top:1px solid var(--line);flex:none;gap:6px;padding:10px;display:grid}.sidebar-user{align-items:center;gap:9px;padding:2px 2px 0;display:flex}.sidebar-avatar{background:var(--brand);color:#fff;border-radius:50%;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:.78rem;font-weight:800;display:grid}.user{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.84rem;overflow:hidden}.icon-btn{border:1px solid var(--line-strong);background:var(--surface);color:#424a54;cursor:pointer;border-radius:6px;place-items:center;width:42px;height:42px;padding:0;display:grid}.icon-btn:hover{color:var(--brand);border-color:#929ba5;text-decoration:none}.notification-bell{position:relative;overflow:visible}.notification-count{border:2px solid var(--surface);background:var(--brand);color:#fff;border-radius:999px;place-items:center;min-width:19px;height:19px;padding:0 4px;font-size:.65rem;font-weight:850;line-height:1;display:grid;position:absolute;top:-5px;right:-5px}.mobile-topbar,.mobile-bottom-nav,.mobile-more-panel,.mobile-nav-backdrop{display:none}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:8px 14px;font-weight:750;display:inline-flex}.btn:hover{text-decoration:none}.btn:disabled{cursor:not-allowed;opacity:.55}.btn-primary{background:var(--brand);color:#fff;transition:background-color .25s,transform .18s,box-shadow .25s;position:relative;overflow:hidden}.btn-primary:after{content:"";pointer-events:none;background:linear-gradient(105deg,#0000 25%,#ffffff47 50%,#0000 75%);position:absolute;inset:0;transform:translate(-130%)skew(-18deg)}.btn-primary:hover:not(:disabled){background:var(--brand-dark);color:#fff;transform:translateY(-1px);box-shadow:0 6px 16px #a51f2752}.btn-primary:hover:not(:disabled):after{transition:transform .55s;transform:translate(130%)skew(-18deg)}.btn-primary:active:not(:disabled){transform:translateY(0)scale(.985);box-shadow:0 2px 6px #a51f2747}@media (prefers-reduced-motion:reduce){.btn-primary,.btn-primary:after{transition:none}.btn-primary:hover:not(:disabled){box-shadow:none;transform:none}.btn-primary:hover:not(:disabled):after{transform:translate(-130%)skew(-18deg)}}.btn-ghost{border-color:var(--line-strong);background:var(--surface);color:#424a54}.btn-ghost:hover:not(:disabled){color:var(--ink);border-color:#8d96a0}.btn-danger{background:var(--surface);color:var(--danger);border-color:#d7a8ac}.btn-danger:hover:not(:disabled){background:#fff1f1}.btn-sm{min-height:34px;padding:5px 10px;font-size:.82rem}.btn:focus-visible,.icon-btn:focus-visible,.segmented button:focus-visible,.password-toggle:focus-visible,.mobile-bottom-nav a:focus-visible,.mobile-bottom-nav button:focus-visible,.mobile-more-links a:focus-visible,.mobile-signout:focus-visible{outline-offset:2px;outline:3px solid #176d703d}.label{color:#424a54;margin:13px 0 5px;font-size:.86rem;font-weight:750;display:block}.input{border:1px solid var(--line-strong);background:var(--surface);width:100%;min-height:42px;color:var(--ink);border-radius:6px;padding:9px 11px}textarea.input{resize:vertical}select[multiple].input{min-height:108px}.input:focus{border-color:var(--focus);outline:0;box-shadow:0 0 0 3px #176d7024}.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.help{color:var(--muted);margin:5px 0 0;font-size:.82rem}.error-text,.inline-error{color:var(--danger)}.otp-input{text-align:center;letter-spacing:8px;font-size:1.2rem}.password-field{position:relative}.password-field .input{padding-right:50px}.password-toggle{width:44px;height:42px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid;position:absolute;top:0;right:0}.form-actions{align-items:center;gap:10px;margin-top:18px;display:flex}.form-summary{color:#185a58;background:#edf8f7;border:1px solid #abd0ce;border-radius:6px;margin:14px 0 0;padding:12px}.alert{border:1px solid;border-radius:6px;margin:12px 0;padding:11px 13px}.alert-error{color:#8d1c23;background:#fff1f1;border-color:#e1b3b6}.alert-success{color:#155c32;background:#eef8f1;border-color:#aed0b9}.alert-info{color:#185a58;background:#edf8f7;border-color:#abd0ce}.table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:7px;overflow-x:auto}.table-wrap:focus-visible{outline-offset:2px;outline:3px solid #176d7038}.table{border-collapse:collapse;width:100%}.table caption{text-align:left;padding:12px;font-weight:750}.table th{border-bottom:1px solid var(--line);background:var(--surface-soft);color:#59616c;letter-spacing:0;text-align:left;text-transform:uppercase;padding:10px 12px;font-size:.76rem}.table td{vertical-align:middle;border-bottom:1px solid #e7eaed;padding:12px}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fafbfb}.table-actions{text-align:right}.badge{color:#fff;text-transform:capitalize;white-space:nowrap;text-shadow:0 1px 1px #0000002e;border:0;border-radius:999px;align-items:center;min-height:26px;padding:4px 13px;font-size:.75rem;font-weight:800;display:inline-flex}.badge-pending{background:linear-gradient(#dfa032,#bd7a12);box-shadow:0 2px 5px #bd7a1261}.badge-partial{background:linear-gradient(#2e9094,#176d70);box-shadow:0 2px 5px #176d7057}.badge-approved{background:linear-gradient(#4cae5c,#2f9040);box-shadow:0 2px 5px #2f904061}.badge-refused{background:linear-gradient(#d25058,#b62f37);box-shadow:0 2px 5px #b62f3761}.badge-cancelled{background:linear-gradient(#9ca3ac,#79808a);box-shadow:0 2px 5px #79808a61}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.metric{border:1px solid var(--line);background:var(--surface);border-radius:7px;flex-direction:column;align-items:flex-start;min-height:126px;padding:16px;display:flex}.metric>span{color:var(--muted);font-size:.82rem}.metric>strong{margin:5px 0;font-size:1.65rem}.metric>strong.metric-text{font-size:1.05rem}.metric>a,.metric>small{margin-top:auto;font-size:.8rem}.metric>small{color:var(--muted)}.quick-actions{flex-wrap:wrap;gap:10px;margin:-6px 0 24px;display:flex}.quick-actions a{border:1px solid var(--line-strong);background:var(--surface);color:#35404a;border-radius:6px;align-items:center;gap:8px;min-height:44px;padding:9px 12px;font-weight:700;display:inline-flex}.quick-actions a:hover{color:var(--link);border-color:#8d96a0;text-decoration:none}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 26px;display:grid}.dashboard-grid>section,.two-column>section,.form-section{border:1px solid var(--line);background:var(--surface);border-radius:7px;min-width:0;padding:18px}.form-section+.table-wrap,.table-wrap+.form-section,.form-section+.form-section{margin-top:18px}.form-section form>.btn:last-child,.stack form>.btn:last-child{margin-top:16px}.attendance-clocking{gap:16px;margin-bottom:18px;display:grid}.attendance-clocking .section-heading{margin-bottom:0}.attendance-clocking .btn{justify-self:start}.attendance-mode{max-width:352px}.attendance-timer{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:544px;display:grid}.attendance-timer>div{border:1px solid var(--line);background:var(--surface-soft);border-radius:7px;padding:13px 16px}.attendance-timer span,.attendance-timer strong{display:block}.attendance-timer strong{font-variant-numeric:tabular-nums;margin-top:5px;font-size:1.35rem}.two-column{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:start;gap:22px;display:grid}.narrow{max-width:640px}.stack{gap:12px;display:grid}.stack>div+div{border-top:1px solid var(--line);padding-top:12px}.list-row{justify-content:space-between;align-items:center;gap:14px;min-height:54px;display:flex}.list-row>div{min-width:0;display:grid}.list-row span:not(.badge){color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.toolbar{gap:10px;margin-bottom:14px;display:flex}.toolbar .input{flex:1}.toolbar .toolbar-filter{flex:0 230px}.segmented{border:1px solid var(--line-strong);border-radius:6px;width:fit-content;margin-bottom:12px;display:flex;overflow:hidden}.segmented button{border:0;border-right:1px solid var(--line-strong);color:#424a54;cursor:pointer;background:#fff;min-height:38px;padding:7px 12px}.segmented button:last-child{border-right:0}.segmented button.active{color:#185a58;background:#edf8f7;font-weight:800}.detail-grid{border:1px solid var(--line);background:var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.detail-grid>div{background:var(--surface);align-content:center;min-height:72px;padding:12px;display:grid}.detail-grid span:not(.badge){color:var(--muted);font-size:.8rem}.data-list{margin:0}.data-list>div{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:12px;padding:9px 0;display:grid}.data-list dt{color:var(--muted);text-transform:capitalize}.data-list dd{overflow-wrap:anywhere;margin:0}.comment{border-bottom:1px solid var(--line);padding:12px 0}.comment header{justify-content:space-between;gap:12px;display:flex}.comment time{color:var(--muted);font-size:.78rem}.comment p{white-space:pre-wrap;margin:6px 0 0}.notification-list{border:1px solid var(--line);background:var(--surface);border-radius:7px}.notification-settings{border:1px solid var(--line);background:var(--surface);border-radius:7px;margin-bottom:18px;padding:18px}.notification-settings .section-heading{align-items:flex-start}.notification-setting-actions{flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 8px;display:flex}.notification-row{border-bottom:1px solid var(--line);background:#fff9f7;justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:11px 14px;display:flex}.notification-row:last-child{border-bottom:0}.notification-row.read{background:var(--surface)}.notification-row>div:first-child{display:grid}.notification-row span:not(.badge){color:var(--muted);text-transform:capitalize;font-size:.82rem}.row-actions{align-items:center;gap:10px;display:flex}.unread-dot{background:var(--brand);border-radius:50%;flex:0 0 9px;width:9px;height:9px}.empty{color:var(--muted);text-align:center;margin:0;padding:28px 16px}.loading-state,.error-state{text-align:center;align-content:center;place-items:center;gap:10px;min-height:220px;display:grid}.loading-state{color:var(--muted)}.spinner{border:3px solid #cbd1d7;border-top-color:var(--focus);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-wrap{border-top:4px solid var(--brand);background:#e9ecef url(../media/odoo-background-light.0jw9wzu3drlm4.svg) 50%/cover no-repeat fixed;place-items:center;min-height:100vh;padding:32px 22px;display:grid}.auth-card{background:var(--surface);border:1px solid #ccd2d8;border-radius:8px;width:min(460px,100%);padding:30px;box-shadow:0 16px 38px #1b1d2221}.auth-card .brand-mark{margin-bottom:18px}.auth-title{text-align:center;margin:0;font-size:1.25rem}.tagline,.auth-footer,.auth-support{color:var(--muted);text-align:center}.tagline{margin:4px 0 20px}.auth-submit{width:100%;margin-top:16px}.auth-footer{margin:15px 0 0;font-size:.88rem}.auth-support{border-top:1px solid var(--line);margin:18px 0 0;padding-top:14px;font-size:.8rem}.auth-links{flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-top:15px;display:flex}.auth-links .auth-footer{margin:0}.auth-progress{grid-template-columns:repeat(3,1fr);gap:4px;margin:0 0 18px;padding:0;list-style:none;display:grid}.auth-progress li{color:var(--muted);text-align:center;justify-items:center;gap:4px;font-size:.73rem;display:grid;position:relative}.auth-progress li:before{content:"";z-index:0;background:var(--line);height:2px;position:absolute;top:12px;left:-50%;right:50%}.auth-progress li:first-child:before{display:none}.auth-progress li span{z-index:1;border:1px solid var(--line-strong);background:#fff;border-radius:50%;place-items:center;width:25px;height:25px;font-weight:800;display:grid;position:relative}.auth-progress li.complete,.auth-progress li.current{color:var(--ink);font-weight:700}.auth-progress li.complete:before,.auth-progress li.current:before{background:var(--brand)}.auth-progress li.complete span,.auth-progress li.current span{border-color:var(--brand);background:var(--brand);color:#fff}.resend-row{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;margin-top:10px;font-size:.82rem;display:flex}.link-button{color:var(--link);cursor:pointer;background:0 0;border:0;padding:4px;font-weight:700}.link-button:disabled{color:var(--muted);cursor:not-allowed}.record-panel{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:18px}.record-panel h3{letter-spacing:0;margin:16px 0 8px;font-size:.92rem}.record-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.announcement-band{border:1px solid var(--line);background:var(--line);border-radius:6px;gap:1px;margin:0 0 18px;display:grid;overflow:hidden}.announcement-band article{background:var(--surface);justify-content:space-between;align-items:flex-start;gap:14px;padding:12px 14px;display:flex}.announcement-band article>div{gap:2px;min-width:0;display:grid}.announcement-band article span{color:var(--muted);overflow-wrap:anywhere}.line-editor{border:1px solid var(--line);border-radius:6px;min-width:0;margin:0;padding:12px}.line-editor legend{padding:0 5px;font-size:.82rem;font-weight:800}.amount-field{grid-template-columns:minmax(76px,.32fr) minmax(0,1fr);gap:8px;display:grid}.check-row{align-items:center;gap:8px;margin:14px 0 2px;font-weight:700;display:flex}.check-row input{width:18px;height:18px;accent-color:var(--brand)}.approval-timeline{border:1px solid var(--line);border-radius:7px;gap:0;margin:0;padding:0;list-style:none;display:grid}.approval-timeline li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;min-height:62px;padding:10px 14px;display:flex}.approval-timeline li:last-child{border-bottom:0}.approval-timeline li>div{gap:2px;display:grid}.approval-timeline li span:not(.badge){color:var(--muted);text-transform:capitalize;font-size:.84rem}.approval-timeline li.waiting{opacity:.68}.range{width:100%;accent-color:var(--brand)}.file-input{height:auto;padding:7px}.inline-form{grid-template-columns:repeat(2,minmax(120px,1fr));gap:8px;min-width:min(520px,75vw);padding:8px 0;display:grid}.breakdown-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.amount-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:14px;padding:7px 0;display:flex}details{margin:14px 0}summary{color:var(--link);cursor:pointer;font-weight:750}.alert-warning{color:#674204;background:#fff9e9;border-color:#e3c88d}.wide-form{grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr)}.relief-actions{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;margin-top:10px;display:grid}.relief-actions .error-text{grid-column:1/-1}@media (max-width:1100px){:root{--sidebar-w:210px}.sidebar-brand{padding:12px}.sidebar-brand .brand-mark-compact img{width:128px}.sidebar-nav{padding:10px 8px}.nav-link{gap:9px;padding:0 10px;font-size:.92rem}}@media (max-width:900px){.portal-shell{display:block}.sidebar{display:none}.mobile-topbar{z-index:30;background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:8px 12px;display:flex;position:sticky;top:0;box-shadow:0 2px 10px #1b1d220f}.mobile-topbar .brand-mark-compact img{width:136px}.mobile-topbar .brand-product{font-size:.72rem;display:block}.mobile-bottom-nav{z-index:35;min-height:64px;padding:5px max(4px, env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(4px, env(safe-area-inset-left));border-top:1px solid var(--line-strong);background:var(--surface);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 14px #1b1d2214}.mobile-bottom-nav a,.mobile-bottom-nav button{color:#59616c;cursor:pointer;background:0 0;border:0;align-content:center;place-items:center;gap:2px;min-width:0;min-height:52px;padding:3px;font-size:.68rem;display:grid}.mobile-bottom-nav a:hover{text-decoration:none}.mobile-bottom-nav .active,.mobile-bottom-nav [aria-current=page]{color:var(--brand);font-weight:800}.mobile-nav-backdrop{z-index:40;background:#1b1d2273;border:0;display:block;position:fixed;inset:0}.mobile-more-panel{z-index:45;padding:18px 16px calc(18px + env(safe-area-inset-bottom));background:var(--surface);border-radius:8px 8px 0 0;display:block;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 40px #1b1d2233}.mobile-more-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:14px;display:flex}.mobile-more-header>div{min-width:0;display:grid}.mobile-more-header strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mobile-more-header span{color:var(--muted);font-size:.8rem}.mobile-more-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px 0;display:grid}.mobile-more-links a{border:1px solid var(--line);color:#35404a;border-radius:6px;align-items:center;gap:10px;min-height:48px;padding:10px;font-weight:700;display:flex}.mobile-more-links a:hover{text-decoration:none}.mobile-more-links a.active{color:var(--brand);background:#fff6f6;border-color:#d7a8ac}.mobile-signout{width:100%;min-height:46px;color:var(--danger);cursor:pointer;background:#fff6f6;border:1px solid #d7a8ac;border-radius:6px;justify-content:center;align-items:center;gap:8px;font-weight:800;display:flex}.container{padding-bottom:96px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-column,.wide-form{grid-template-columns:1fr}}@media (max-width:700px){.container{padding:20px 12px 96px}.page-heading{flex-direction:column;align-items:stretch;gap:12px}.page-heading .btn{width:100%}.metric-grid,.dashboard-grid,.field-row,.detail-grid,.record-grid,.breakdown-grid,.inline-form,.relief-actions{grid-template-columns:1fr}.inline-form{min-width:min(280px,70vw)}.metric{min-height:112px}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.quick-actions a{white-space:normal}.toolbar{flex-direction:column;align-items:stretch}.toolbar .toolbar-filter{flex-basis:auto}.data-list>div{grid-template-columns:1fr;gap:2px}.list-row{align-items:flex-start}.list-row .badge{flex:none}.notification-row{align-items:flex-start}.row-actions{flex-direction:column;align-items:flex-end}.auth-wrap{place-items:start center;padding:24px 12px}.auth-card{padding:24px 18px}.auth-card .brand-mark img{width:min(220px,80vw)}.input,.password-toggle,.btn{min-height:44px}.responsive-table{min-width:0}.responsive-table thead{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.responsive-table tbody{gap:10px;padding:10px;display:grid}.responsive-table tr{border:1px solid var(--line);background:var(--surface);border-radius:6px;display:grid;overflow:hidden}.responsive-table td{border-bottom:1px solid var(--line);overflow-wrap:anywhere;grid-template-columns:minmax(92px,.42fr) minmax(0,1fr);gap:12px;min-width:0;padding:9px 11px;display:grid}.responsive-table td:before{content:attr(data-label);color:var(--muted);text-transform:uppercase;font-size:.74rem;font-weight:800}.responsive-table td:last-child{border-bottom:0}.responsive-table .table-actions{text-align:left}.responsive-table .table-actions .btn{width:100%}.responsive-table .badge{justify-self:start}.profile-table tbody{display:grid}.profile-table tr{border-bottom:1px solid var(--line);grid-template-columns:1fr;padding:10px 12px;display:grid}.profile-table tr:last-child{border-bottom:0}.profile-table th,.profile-table td{text-transform:none;background:0 0;border:0;padding:0}.profile-table th{color:var(--muted);margin-bottom:3px;font-size:.76rem}}@media (max-width:420px){.mobile-topbar .brand-product{display:none}.quick-actions,.mobile-more-links{grid-template-columns:1fr}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%}.attendance-timer{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spinner{animation:none}}
