@font-face{font-family:__display_20f31b;src:url(/_next/static/media/575c227f41d6e305-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:__display_Fallback_20f31b;src:local("Arial");ascent-override:95.27%;descent-override:27.36%;line-gap-override:0.00%;size-adjust:102.25%}.__className_20f31b{font-family:__display_20f31b,__display_Fallback_20f31b;font-weight:400;font-style:normal}.__variable_20f31b{--font-display:"__display_20f31b","__display_Fallback_20f31b"}@font-face{font-family:__sans_722fba;src:url(/_next/static/media/5e6bae5f98c16790-s.p.woff2) format("woff2");font-display:swap;font-weight:400;font-style:normal}@font-face{font-family:__sans_722fba;src:url(/_next/static/media/3182e117de19ab8e-s.p.woff2) format("woff2");font-display:swap;font-weight:600;font-style:normal}@font-face{font-family:__sans_Fallback_722fba;src:local("Arial");ascent-override:98.46%;descent-override:29.83%;line-gap-override:0.00%;size-adjust:101.56%}.__className_722fba{font-family:__sans_722fba,__sans_Fallback_722fba}.__variable_722fba{--font-sans:"__sans_722fba","__sans_Fallback_722fba"}@font-face{font-family:__mono_e8440e;src:url(/_next/static/media/dece0821e8ed059f-s.p.woff2) format("woff2");font-display:swap;font-weight:500;font-style:normal}@font-face{font-family:__mono_Fallback_e8440e;src:local("Arial");ascent-override:77.95%;descent-override:20.91%;line-gap-override:0.00%;size-adjust:131.49%}.__className_e8440e{font-family:__mono_e8440e,__mono_Fallback_e8440e;font-weight:500;font-style:normal}.__variable_e8440e{--font-mono:"__mono_e8440e","__mono_Fallback_e8440e"}:root{--display:var(--font-display,"Iowan Old Style"),"Iowan Old Style",Georgia,"Times New Roman",serif;--sans:var(--font-sans,"Segoe UI"),"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;--mono:var(--font-mono,"Cascadia Mono"),"Cascadia Mono",Consolas,ui-monospace,"Liberation Mono",monospace}:root,:root[data-theme=light]{--bg:#f1efe6;--bg-grad:radial-gradient(1100px 520px at 82% -12%,rgba(158,128,66,.07),transparent 60%),radial-gradient(1000px 520px at -8% 108%,rgba(46,125,91,.05),transparent 55%);--surface:#fbfaf4;--surface-2:#f4f2e9;--surface-3:#eae7dd;--border:#e4e1d3;--border-strong:#cdc8b9;--text:#20241d;--text-2:#4b4f47;--muted:#787c6e;--gold:#8a6b36;--hair:color-mix(in srgb,var(--gold) 36%,transparent);--primary:#8a6b36;--primary-dark:#6e5228;--primary-soft:color-mix(in srgb,#8a6b36 12%,transparent);--grad:linear-gradient(180deg,#c3a263,#97783c);--grad-soft:linear-gradient(135deg,color-mix(in srgb,#8a6b36 15%,transparent),color-mix(in srgb,#8a6b36 7%,transparent));--green:#2e7d5b;--green-soft:color-mix(in srgb,#2e7d5b 13%,transparent);--amber:#a96426;--amber-soft:color-mix(in srgb,#a96426 13%,transparent);--red:#b5443f;--red-soft:color-mix(in srgb,#b5443f 12%,transparent);--radius-sm:7px;--radius:11px;--radius-lg:14px;--ring:0 0 0 3px color-mix(in srgb,var(--gold) 26%,transparent);--shadow-sm:0 1px 2px rgba(29,32,25,.05);--shadow:0 1px 2px rgba(29,32,25,.05),0 8px 24px rgba(29,32,25,.07);--shadow-lg:0 2px 8px rgba(29,32,25,.06),0 24px 60px rgba(29,32,25,.15);--case-bg:#0a0d12;--case-tx:#b4b8c0;--case-hi:#eceae1;--case-mut:#6e7079;--case-gold:#c7a96b;color-scheme:light}:root[data-theme=dark]{--bg:#0c0f14;--bg-grad:radial-gradient(1100px 520px at 82% -12%,hsla(40,45%,60%,.06),transparent 60%),radial-gradient(1000px 520px at -8% 108%,rgba(76,175,135,.05),transparent 55%);--surface:#12161d;--surface-2:#171c25;--surface-3:#1f2530;--border:#232a36;--border-strong:#343e4e;--text:#ebe9e1;--text-2:#b7b5ac;--muted:#7e828b;--gold:#c7a96b;--hair:color-mix(in srgb,var(--gold) 32%,transparent);--primary:#c7a96b;--primary-dark:#dbbe82;--primary-soft:color-mix(in srgb,#c7a96b 18%,transparent);--grad:linear-gradient(180deg,#d5b87a,#a6813f);--grad-soft:linear-gradient(135deg,color-mix(in srgb,#c7a96b 18%,transparent),color-mix(in srgb,#c7a96b 9%,transparent));--green:#4caf87;--green-soft:color-mix(in srgb,#4caf87 17%,transparent);--amber:#c98b4d;--amber-soft:color-mix(in srgb,#c98b4d 17%,transparent);--red:#d8655f;--red-soft:color-mix(in srgb,#d8655f 16%,transparent);--ring:0 0 0 3px color-mix(in srgb,var(--gold) 30%,transparent);--shadow-sm:0 1px 2px rgba(0,0,0,.3);--shadow:0 1px 2px rgba(0,0,0,.35),0 10px 30px rgba(0,0,0,.32);--shadow-lg:0 2px 8px rgba(0,0,0,.4),0 28px 70px rgba(0,0,0,.55);--case-bg:#07090d;--case-tx:#aeb2bb;--case-hi:#eceae1;--case-mut:#6a6d76;--case-gold:#c7a96b;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--bg:#0c0f14;--bg-grad:radial-gradient(1100px 520px at 82% -12%,hsla(40,45%,60%,.06),transparent 60%);--surface:#12161d;--surface-2:#171c25;--surface-3:#1f2530;--border:#232a36;--border-strong:#343e4e;--text:#ebe9e1;--text-2:#b7b5ac;--muted:#7e828b;--gold:#c7a96b;--hair:color-mix(in srgb,#c7a96b 32%,transparent);--primary:#c7a96b;--primary-dark:#dbbe82;--primary-soft:color-mix(in srgb,#c7a96b 18%,transparent);--grad:linear-gradient(180deg,#d5b87a,#a6813f);--grad-soft:linear-gradient(135deg,color-mix(in srgb,#c7a96b 18%,transparent),color-mix(in srgb,#c7a96b 9%,transparent));--green:#4caf87;--green-soft:color-mix(in srgb,#4caf87 17%,transparent);--amber:#c98b4d;--amber-soft:color-mix(in srgb,#c98b4d 17%,transparent);--red:#d8655f;--red-soft:color-mix(in srgb,#d8655f 16%,transparent);color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background-image:var(--bg-grad);background-attachment:fixed}a{color:var(--primary);text-decoration:none;transition:color .15s ease}a:hover{color:var(--primary-dark)}h1,h2,h3{margin:0;font-family:var(--display);font-weight:400;letter-spacing:.01em;color:var(--text);text-wrap:balance}.muted{color:var(--muted)}.eyebrow{font-family:var(--display);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--primary)}.page-head .eyebrow{margin-bottom:8px}.center-screen{display:grid;place-items:center;min-height:100vh}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell{display:flex;min-height:100vh}.sidebar{--text:var(--case-hi);--text-2:var(--case-tx);--muted:var(--case-mut);--surface:var(--case-bg);--surface-2:hsla(0,0%,100%,.05);--surface-3:hsla(0,0%,100%,.09);--border:hsla(0,0%,100%,.08);--border-strong:hsla(0,0%,100%,.14);--primary:var(--case-gold);--primary-dark:#e6cb8e;--primary-soft:color-mix(in srgb,var(--case-gold) 16%,transparent);width:244px;flex-shrink:0;background:var(--case-bg);background-image:repeating-linear-gradient(0deg,hsla(0,0%,100%,.014) 0 1px,transparent 1px 3px);border-right:1px solid hsla(0,0%,100%,.06);padding:14px 12px;display:flex;flex-direction:column;gap:1px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:visible}.nav-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:1px;scrollbar-width:thin}.nav-scroll::-webkit-scrollbar{width:6px}.brand{display:flex;align-items:center;gap:11px;font-family:var(--display);font-size:18px;font-weight:400;letter-spacing:.1em;color:var(--text);padding:4px 10px 12px}.brand .logo{width:32px;height:32px;border-radius:50%;background:transparent;color:var(--case-gold);border:1.5px solid var(--case-gold);display:grid;place-items:center;font-size:14px;position:relative;flex-shrink:0}.brand .logo:after{content:"";position:absolute;inset:3px;border:1px solid color-mix(in srgb,var(--case-gold) 40%,transparent);border-radius:50%}.nav-section{font-family:var(--display);font-size:9px;font-weight:400;text-transform:uppercase;letter-spacing:.32em;color:var(--case-mut);padding:10px 12px 4px}.nav-section:first-of-type{padding-top:2px}.nav-link{display:flex;align-items:center;gap:11px;padding:7px 12px;border-radius:9px;color:var(--text-2);font-weight:550;position:relative;transition:background .15s ease,color .15s ease}.nav-link svg{width:18px;height:18px;flex-shrink:0;opacity:.85}.nav-link:hover{background:var(--surface-2);color:var(--text)}.nav-link.active{background:color-mix(in srgb,var(--case-gold) 10%,transparent);color:var(--text);font-weight:600}.nav-link.active svg{opacity:1;color:var(--primary)}.nav-link.active:before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:2.5px;border-radius:2px;background:var(--case-gold)}.nav-link .badge{margin-left:auto}.sidebar-foot{margin-top:auto;border-top:1px solid var(--border);padding-top:10px;flex-shrink:0}.user-chip{display:flex;align-items:center;gap:10px;padding:6px 8px 10px}.avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:var(--grad);color:#1a160b;display:grid;place-items:center;font-family:var(--mono);font-weight:500;font-size:12px;text-transform:uppercase;border:1px solid var(--hair)}.user-chip .who{min-width:0}.sidebar-foot .email{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-foot .tenant{font-size:12px}.foot-actions{display:flex;gap:8px}.foot-actions .btn,.foot-actions button,.main{flex:1 1}.main{min-width:0;padding:30px 40px;max-width:1160px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px;flex-wrap:wrap;animation:rise .4s ease both}.page-head h1{font-size:25px}.page-head p{margin:5px 0 0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;animation:rise .4s ease both}.card+.card{margin-top:18px}.card h2{font-size:15px;margin-bottom:16px}.grid{display:grid;grid-gap:18px;gap:18px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width:820px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr 1fr}.main{padding:22px 16px}.sidebar{width:66px;padding:18px 10px}.brand-text,.nav-section,.sidebar .label,.user-chip .who{display:none}.brand,.nav-link,.user-chip{justify-content:center}.foot-actions{flex-direction:column}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.stat{display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}.stat .stat-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.stat .label{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.13em;text-transform:uppercase}.stat .value{font-family:var(--display);font-size:32px;font-weight:400;letter-spacing:0;line-height:1.05;font-feature-settings:lining-nums tabular-nums;font-variant-numeric:lining-nums tabular-nums}.stat .sub{font-size:12.5px;color:var(--muted)}.stat .stat-ico{display:none}.card.stat.accent-top:after,.card.stat.clickable:after,.card.stat.hoverable:after{content:"";position:absolute;inset:5px;border:1px solid var(--hair);border-radius:8px;opacity:.5;pointer-events:none}.stat .stat-ico svg{width:19px;height:19px}.stat.accent-green .stat-ico{background:var(--green-soft);color:var(--green)}.stat.accent-amber .stat-ico{background:var(--amber-soft);color:var(--amber)}.stat.accent-red .stat-ico{background:var(--red-soft);color:var(--red)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:14px}td,th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--border);white-space:nowrap}thead th{background:var(--surface-2);position:-webkit-sticky;position:sticky;top:0}th{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}tbody tr{transition:background .12s ease}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--surface-2)}td.num,th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:7px;padding:2px 0;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;background:transparent;color:var(--muted);border:none;white-space:nowrap}.badge:before{content:"";width:7px;height:7px;border-radius:50%;flex-shrink:0;background:currentColor;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 15%,transparent)}.badge.green{color:var(--green)}.badge.amber{color:var(--amber)}.badge.red{color:var(--red)}.badge.blue{color:var(--primary)}.badge.count{background:var(--red);color:#f5efe6;padding:1px 7px;min-width:20px;justify-content:center;border-radius:999px;letter-spacing:.02em;font-size:11px;font-family:var(--mono);font-weight:500}.badge.count:before{display:none}label.field{display:block;margin-bottom:15px}label.field .lbl{display:block;font-size:12.5px;font-weight:650;margin-bottom:6px;color:var(--text-2)}input,select,textarea{width:100%;padding:10px 12px;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color .15s ease,box-shadow .15s ease}input::placeholder,textarea::placeholder{color:var(--muted)}input:hover:not(:focus),select:hover:not(:focus),textarea:hover:not(:focus){border-color:var(--muted)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}input:disabled{background:var(--surface-2);color:var(--muted);cursor:not-allowed}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.row>*{flex:1 1;min-width:120px}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9.5px 17px;cursor:pointer;font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;background:var(--grad);color:#1a160b;border:1px solid color-mix(in srgb,var(--gold) 62%,#000);border-radius:var(--radius-sm);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.36),0 2px 7px rgba(0,0,0,.16);transition:filter .12s ease,transform .08s ease,box-shadow .12s ease,opacity .15s ease,border-color .12s ease,color .12s ease}.btn:hover,button:hover{filter:brightness(1.06);transform:none;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.4),0 4px 13px rgba(0,0,0,.2)}.btn:active,button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px rgba(0,0,0,.24)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none;filter:none}.btn.ghost,button.ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:0 1px 2px rgba(0,0,0,.04)}.btn.ghost:hover,button.ghost:hover{background:var(--surface-2);border-color:var(--gold);color:var(--gold);filter:none;transform:none}button.success{background:linear-gradient(180deg,color-mix(in srgb,var(--green) 84%,#fff),var(--green));color:#08130d;border-color:color-mix(in srgb,var(--green) 58%,#000)}button.danger{background:linear-gradient(180deg,color-mix(in srgb,var(--red) 88%,#fff),var(--red));color:#1b0908;border-color:color-mix(in srgb,var(--red) 58%,#000)}.btn.sm,button.sm{padding:6px 12px;font-size:11px}.btn-group button,.profile-card,.profile-menu button.mrow,.role-card,.seg button,.tabs button,.theme-switch button{text-transform:none;letter-spacing:normal}.alert{padding:12px 15px;border-radius:var(--radius-sm);font-size:14px;margin-bottom:15px;border:1px solid transparent;font-weight:500}.alert.error{background:var(--red-soft);color:var(--red);border-color:color-mix(in srgb,var(--red) 25%,transparent)}.alert.ok{background:var(--green-soft);color:var(--green);border-color:color-mix(in srgb,var(--green) 25%,transparent)}.empty{padding:36px;text-align:center;color:var(--muted)}.skeleton{display:block;background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 37%,var(--surface-2) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.stack{display:flex;flex-direction:column;gap:10px}.inline{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.divider{height:1px;background:var(--border);margin:18px 0}.theme-toggle{display:inline-grid;place-items:center;width:38px;height:38px;flex:0 0 auto!important;padding:0;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:none;cursor:pointer}.theme-toggle:hover{background:var(--surface-2);color:var(--text);transform:none;box-shadow:none}.theme-toggle svg{width:18px;height:18px}.login-wrap{display:grid;place-items:center;min-height:100vh;padding:20px;position:relative}.login-card{width:100%;max-width:400px;padding:30px;box-shadow:var(--shadow-lg)}.login-card .brand{justify-content:center;padding:4px 0;font-size:20px}.login-card .sub{text-align:center;margin:0 0 24px}.login-topbar{position:absolute;top:20px;right:20px}.login-hint{margin-top:18px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface-2);border:1px dashed var(--border-strong);font-size:12.5px;color:var(--muted)}.login-hint b{color:var(--text-2)}.punch-card{background-image:var(--grad-soft);position:relative;overflow:hidden}.punch-card:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-conic-gradient(from 0deg at 12% 50%,color-mix(in srgb,var(--text) 2%,transparent) 0deg 2deg,transparent 2deg 4deg)}.punch-main{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.punch-main button{min-width:130px}.net-status{display:inline-flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;font-weight:600}.net-status .dot{width:8px;height:8px;border-radius:50%}.net-status.ok{color:var(--green)}.net-status.ok .dot{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.net-status.bad{color:var(--amber)}.net-status.bad .dot{background:var(--amber);box-shadow:0 0 0 3px var(--amber-soft)}.punch-timeline{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.punch-chip{font-size:12px;font-weight:650;padding:4px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--border-strong)}.punch-chip.in{color:var(--green);border-color:color-mix(in srgb,var(--green) 30%,transparent)}.punch-chip.out{color:var(--red);border-color:color-mix(in srgb,var(--red) 30%,transparent)}.notif{border-left:3px solid var(--border-strong);padding:13px 16px;background:var(--surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;transition:background .15s ease}.notif.unread{border-left-color:var(--primary);background:var(--grad-soft)}.notif .subj{font-weight:650}.notif .body{font-size:14px;color:var(--text-2);margin-top:3px}.notif .meta{font-size:12px;color:var(--muted);margin-top:7px}.card,.stat{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.card.clickable{cursor:pointer}.card.clickable:hover,.stat.hoverable:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--border-strong)}.grid.cols-3 .stat,.grid.cols-4 .stat{min-height:116px}.stat.accent-top,.stat.accent-top.amber,.stat.accent-top.blue,.stat.accent-top.green,.stat.accent-top.red{border-top:none}.wave{display:inline-block;transform-origin:70% 70%;animation:wave 2s ease .4s 1}.wave:hover{animation:wave 1.4s ease 1}@keyframes wave{0%,60%,to{transform:rotate(0)}10%,30%,50%{transform:rotate(14deg)}20%,40%{transform:rotate(-8deg)}}.date-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:var(--primary-soft);border:1px solid var(--hair);font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--primary)}.date-pill svg{width:15px;height:15px;opacity:.8}.month-nav{display:inline-flex;align-items:center;gap:6px}.month-nav .nav-btn{width:34px;height:34px;padding:0;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:none;display:grid;place-items:center}.month-nav .nav-btn:hover{background:var(--surface-2);color:var(--text);transform:none;box-shadow:none}.month-nav .nav-btn svg{width:16px;height:16px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:40px 20px}.empty-ico{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--grad-soft);color:var(--primary)}.empty-ico svg{width:26px;height:26px}.empty-title{font-weight:650;color:var(--text)}.empty-hint{font-size:13.5px;color:var(--muted);max-width:340px}.avatar-badge{display:inline-grid;place-items:center;border-radius:50%;font-weight:700;color:#fff;flex-shrink:0;text-transform:uppercase}.avatar-badge.tint-a{background:linear-gradient(135deg,#5b7cfa,#6a5cf6)}.avatar-badge.tint-b{background:linear-gradient(135deg,#12a06a,#0e8a6a)}.avatar-badge.tint-c{background:linear-gradient(135deg,#e08a2c,#d2691e)}.avatar-badge.tint-d{background:linear-gradient(135deg,#dd3b57,#c9315a)}.avatar-badge.tint-e{background:linear-gradient(135deg,#8b7bf8,#a06cf6)}.avatar-badge.tint-f{background:linear-gradient(135deg,#0ea5b7,#0e8ab7)}.person{display:inline-flex;align-items:center;gap:9px}.person .who2{display:flex;flex-direction:column;line-height:1.2}.person .who2 .nm{font-weight:600}.person .who2 .cd{font-size:11.5px;color:var(--muted)}.ring{position:relative;display:inline-grid;place-items:center}.ring svg{position:absolute;inset:0}.ring-label{display:flex;flex-direction:column;align-items:center;line-height:1}.ring-value{font-family:var(--display);font-size:24px;font-weight:400;letter-spacing:0}.ring-sub{font-size:10.5px;color:var(--muted);margin-top:2px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;background:var(--surface);color:var(--text-2);border:1px solid var(--border-strong);transition:all .14s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chip:hover{border-color:var(--muted)}.chip.selected{background:var(--grad-soft);color:var(--primary-dark);border-color:var(--primary)}.icon-btn{width:32px;height:32px;padding:0;display:grid;place-items:center;border-radius:var(--radius-sm);box-shadow:none}.icon-btn svg{width:16px;height:16px}.icon-btn.approve{background:var(--green-soft);color:var(--green);border:1px solid transparent}.icon-btn.approve:hover{background:var(--green);color:#fff;transform:none}.icon-btn.reject{background:var(--red-soft);color:var(--red);border:1px solid transparent}.icon-btn.reject:hover{background:var(--red);color:#fff;transform:none}.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:18px;gap:18px}.bento .col-2{grid-column:span 2}@media (max-width:820px){.bento{grid-template-columns:1fr 1fr}.bento .col-2{grid-column:span 2}}.qa-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));grid-gap:12px;gap:12px}.qa{display:flex;flex-direction:column;gap:10px;align-items:flex-start;padding:16px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-weight:600;transition:all .15s ease}.qa:hover{transform:translateY(-3px);box-shadow:var(--shadow);background:var(--surface);border-color:var(--border-strong)}.qa .qa-ico{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--grad-soft);color:var(--primary)}.qa .qa-ico svg{width:19px;height:19px}.qa.primary{background:var(--grad);color:#fff;border-color:transparent}.qa.primary .qa-ico{background:hsla(0,0%,100%,.2);color:#fff}.notif-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}.notif-group-head{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:18px 0 8px}.notif-group-head:first-child{margin-top:0}.notif-group-head .cnt{background:var(--surface-3);color:var(--text-2);border-radius:999px;padding:1px 8px;font-size:11px}.notif{display:flex;flex-direction:column}.notif.sel{outline:2px solid var(--primary);outline-offset:-1px}.notif .pick{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.notif.type-approved{border-left-color:var(--green)}.notif.type-rejected{border-left-color:var(--red)}.notif.type-action{border-left-color:var(--amber)}.notif.type-info{border-left-color:var(--primary)}.stack.compact .notif{padding:8px 13px}.stack.compact .notif .body{display:none}.stack.compact .notif .meta{margin-top:3px}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.seg button{background:var(--surface);color:var(--text-2);border:none;border-radius:0;box-shadow:none;padding:6px 12px;font-size:13px}.seg button:hover{background:var(--surface-2);transform:none;box-shadow:none}.seg button.on{background:var(--grad-soft);color:var(--primary-dark)}.clock{font-family:var(--mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.01em}.net-status.ok .dot{animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 0 3px var(--green-soft)}50%{box-shadow:0 0 0 7px transparent}}.punch-card.state-idle{background-image:radial-gradient(600px 200px at 92% -30%,var(--amber-soft),transparent 60%),var(--grad-soft)}.punch-card.state-in{background-image:radial-gradient(600px 200px at 92% -30%,var(--green-soft),transparent 60%),var(--grad-soft)}.days-counter{align-items:center;gap:8px;margin:2px 0 14px;font-size:13.5px;font-weight:600;color:var(--primary-dark);background:var(--grad-soft);border:1px solid var(--primary);padding:8px 12px}.days-counter,.tabs{display:inline-flex;border-radius:var(--radius-sm)}.tabs{gap:4px;background:var(--surface-2);padding:4px;margin-bottom:16px}.tabs button{background:transparent;color:var(--text-2);box-shadow:none;padding:6px 14px;font-size:13.5px}.tabs button:hover{background:var(--surface);transform:none;box-shadow:none}.tabs button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid hsla(0,0%,100%,.45);border-top-color:#fff;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.profile-wrap{position:relative}.profile-card{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;cursor:pointer;box-shadow:none;color:var(--text);text-align:left}.profile-card:hover{background:var(--surface-3);transform:none;box-shadow:none}.profile-card .who{min-width:0;flex:1 1}.profile-card .who .email{font-size:13px;font-weight:600}.profile-card .who .email,.profile-card .who .tenant{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card .who .tenant{font-size:12px;color:var(--muted)}.profile-card .chev{color:var(--muted);display:grid;place-items:center}.profile-card .chev svg{width:16px;height:16px}.profile-menu{position:absolute;bottom:calc(100% + 8px);left:0;min-width:220px;background:var(--surface);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-lg);padding:8px;z-index:40}.profile-menu .mrow{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 10px;border-radius:8px;font-size:13.5px;color:var(--text-2)}.profile-menu button.mrow{width:100%;background:transparent;color:var(--text);border:none;box-shadow:none;font-weight:600}.profile-menu button.mrow:hover{background:var(--surface-2);transform:none;box-shadow:none}.menu-overlay{position:fixed;inset:0;z-index:30}.theme-switch{display:inline-flex;border:1px solid var(--border-strong);border-radius:999px;overflow:hidden}.theme-switch button{background:transparent;border:none;box-shadow:none;padding:5px 9px;color:var(--muted);border-radius:0}.theme-switch button.on{background:var(--grad-soft);color:var(--primary-dark)}.theme-switch button:hover{transform:none;box-shadow:none;background:var(--surface-2)}.theme-switch svg{width:15px;height:15px;display:block}.drawer-overlay{position:fixed;inset:0;background:rgba(10,14,25,.45);z-index:60;animation:fade .15s ease}.drawer{position:fixed;top:0;right:0;height:100vh;width:min(460px,94vw);background:var(--surface);border-left:1px solid var(--border-strong);box-shadow:var(--shadow-lg);z-index:61;padding:24px;overflow-y:auto;animation:slidein .2s ease}@keyframes slidein{0%{transform:translateX(100%)}to{transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.drawer-head .x{width:32px;height:32px;padding:0;display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);border-radius:8px;box-shadow:none}.drawer-head .x:hover{background:var(--surface-3);transform:none;box-shadow:none}.btn-group{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden}.btn-group button{background:var(--surface);color:var(--text);border:none;border-right:1px solid var(--border-strong);border-radius:0;box-shadow:none;font-size:13px;padding:8px 13px;font-weight:600}.btn-group button:last-child{border-right:none}.btn-group button:hover{background:var(--surface-2);transform:none;box-shadow:none}.btn-group button.secure{background:var(--green-soft);color:var(--green);font-weight:700}.btn-group button.secure:hover{background:var(--green);color:#fff}.btn-group button svg{width:14px;height:14px}.callout{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius-sm);font-size:13px;line-height:1.5;background:var(--amber-soft);color:var(--amber);border:1px solid color-mix(in srgb,var(--amber) 25%,transparent);margin-top:14px}.cell-flag{display:inline-block;min-width:24px;text-align:center;padding:2px 8px;border-radius:999px;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cell-flag.bad{background:var(--red-soft);color:var(--red)}.cell-flag.warn{background:var(--amber-soft);color:var(--amber)}.stepper{gap:6px;margin-bottom:22px;flex-wrap:wrap}.step,.stepper{display:flex;align-items:center}.step{gap:8px;cursor:pointer}.step .dot{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--surface-2);color:var(--muted);border:1px solid var(--border-strong)}.step .nm{font-size:13px;font-weight:600;color:var(--muted)}.step.active .dot{background:var(--grad);color:#fff;border-color:transparent}.step.active .nm{color:var(--text)}.step.done .dot{background:var(--green-soft);color:var(--green);border-color:transparent}.step .bar{width:24px;height:2px;background:var(--border-strong)}.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px;gap:10px}.role-card{padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border-strong);cursor:pointer;transition:all .14s ease;background:var(--surface)}.role-card:hover{border-color:var(--muted)}.role-card.on{border-color:var(--primary);background:var(--grad-soft)}.role-card .rc-top{display:flex;align-items:center;justify-content:space-between;font-weight:650}.role-card .rc-sub{font-size:12px;color:var(--muted);margin-top:4px}.role-card .tick{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:transparent}.role-card.on .tick{background:var(--primary);border-color:var(--primary);color:#fff}.role-card .tick svg{width:12px;height:12px}.people-grid{display:flex;flex-direction:column;gap:8px}.people-card{display:flex;align-items:center;gap:12px;padding:11px 13px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);transition:all .14s ease}.people-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.people-card .pc-main{flex:1 1;min-width:0}.code-pill,.people-card .pc-name{font-weight:650}.code-pill{font-size:11.5px;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:2px 9px;white-space:nowrap}.gross-pill{display:inline-flex;align-items:center;gap:8px;font-size:18px;font-weight:750;color:var(--green);background:var(--green-soft);border:1px solid color-mix(in srgb,var(--green) 25%,transparent);border-radius:var(--radius-sm);padding:8px 14px}.shift-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.chip .shift-dot{margin-right:2px;vertical-align:middle}.heatmap{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px;width:100%;max-width:392px}.heatmap .hm-dow{font-size:10.5px;font-weight:700;color:var(--muted);text-align:center;text-transform:uppercase}.hm-cell{aspect-ratio:1;border-radius:7px;display:grid;place-items:center;font-size:12px;font-weight:600;background:var(--surface-2);color:var(--text-2)}.hm-cell.present{background:var(--green-soft);color:var(--green)}.hm-cell.half_day,.hm-cell.late_entry{background:var(--amber-soft);color:var(--amber)}.hm-cell.absent{background:var(--red-soft);color:var(--red)}.hm-cell.week_off{background:var(--surface-3);color:var(--muted)}.hm-cell.holiday{background:var(--primary-soft);color:var(--primary-dark)}.hm-cell.leave{background:var(--grad-soft);color:var(--primary-dark)}.hm-cell.none{background:var(--surface-2);color:var(--muted);opacity:.45}.hm-cell.upcoming{background:var(--surface);color:var(--text-2);border:1px solid var(--border)}.hm-cell.today{outline:2px solid var(--primary);outline-offset:1px;font-weight:750}.hm-cell.empty{background:transparent}.hm-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;font-size:12px;color:var(--muted)}.hm-legend .lg{display:inline-flex;align-items:center;gap:6px}.hm-legend .sw{width:12px;height:12px;border-radius:4px;display:inline-block}.matrix-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius)}table.matrix{border-collapse:separate;border-spacing:0;font-size:12px;width:100%;table-layout:fixed;min-width:920px}table.matrix td,table.matrix th{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;padding:0}table.matrix thead th{background:var(--surface-2);padding:7px 3px;font-size:10.5px;color:var(--muted);font-weight:700}table.matrix td.emp,table.matrix thead th.emp{position:-webkit-sticky;position:sticky;left:0;width:170px;background:var(--surface);text-align:left;padding:9px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:1}table.matrix thead th.emp{background:var(--surface-2)}.mx{display:block;height:30px;line-height:30px}.mx.SHIFT{background:var(--green-soft);color:var(--green)}.mx.WEEK_OFF{background:var(--surface-3);color:var(--muted)}.mx.draft{opacity:.5}.badge.count.crit{animation:shake .9s ease-in-out 2}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-2px)}40%{transform:translateX(2px)}60%{transform:translateX(-1px)}80%{transform:translateX(1px)}}.btn>svg,button>svg{width:15px;height:15px;flex-shrink:0}.step .dot svg{width:12px;height:12px}.chrono{display:flex;align-items:center;gap:24px;flex-wrap:wrap;position:relative}.chrono .dial{width:126px;height:126px;flex-shrink:0}.chrono-main{display:flex;flex-direction:column;gap:6px;min-width:0}.dial-face{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1}.dial-chapter{fill:none;stroke:var(--hair);stroke-width:1;opacity:.6}.dial-tick{stroke:color-mix(in srgb,var(--text) 30%,transparent);stroke-width:1.4}.dial-tick.major{stroke:var(--primary);stroke-width:2.2}.hand{stroke:var(--text);stroke-linecap:round}.hand.hr{stroke-width:3.6}.hand.mn{stroke-width:2.4}.hand.sc{stroke:var(--primary);stroke-width:1.2}.dial-hub{fill:var(--primary)}.clock .sec{color:var(--primary)}.wt{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--muted)}.lrow{display:flex;align-items:baseline;gap:10px;padding:7px 0}.lrow .nm{font-size:13.5px;color:var(--text-2)}.lrow .dots{flex:1 1;min-width:22px;border-bottom:1px dotted var(--border-strong);transform:translateY(-3px)}.lrow .val{font-family:var(--mono);font-size:13.5px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lrow.total{border-top:3px double var(--border-strong);margin-top:6px;padding-top:12px;align-items:center}.lrow.total .nm{font-weight:600;color:var(--text)}.lrow.total .val{font-family:var(--display);font-size:19px;color:var(--text)}.doc-preview{position:relative;border:1px solid var(--border);border-radius:var(--radius);padding:22px;background:var(--surface-2);max-height:520px;overflow:auto}.doc-watermark{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-24deg);font-size:52px;font-weight:800;color:var(--text);opacity:.06;letter-spacing:.1em;pointer-events:none}.doc-title{font-weight:700;margin-bottom:12px}.doc-body{white-space:pre-wrap;font-family:inherit;font-size:13px;line-height:1.6;color:var(--text-2);margin:0}