*,:before,:after{box-sizing:border-box}:root{--bg:#f4f6fa;--surface:#fff;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--line:#e2e8f0;--line-soft:#eef2f7;--primary:#4f46e5;--primary-strong:#4338ca;--primary-soft:#eef2ff;--link:#4f46e5;--primary-line:#c7d2fe;--surface-2:#fafbfd;--nav-bg:#ffffffe0;--grad:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--ok:#059669;--ok-soft:#ecfdf5;--ok-ink:#047857;--warn:#d97706;--warn-soft:#fffbeb;--warn-ink:#b45309;--bad:#e11d48;--bad-soft:#fff1f2;--bad-ink:#be123c;--info-soft:#eef2ff;--info-ink:#4338ca;--side-bg:#0b1428;--side-ink:#94a3b8;--side-ink-hi:#f1f5f9;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px #0f172a0d, 0 10px 30px -18px #0f172a2e;--shadow-lift:0 2px 4px #0f172a0f, 0 16px 40px -20px #4f46e559}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b1220;--surface:#121c31;--ink:#e6ecf5;--ink-2:#c2cde0;--muted:#8b9ab3;--line:#24334f;--line-soft:#1c2942;--primary:#6366f1;--primary-strong:#818cf8;--primary-soft:#1c2752;--link:#97a7fd;--primary-line:#3b4a80;--surface-2:#172341;--nav-bg:#0d1424eb;--ok:#10b981;--ok-soft:#0a2b22;--ok-ink:#5eead4;--warn:#d97706;--warn-soft:#33240a;--warn-ink:#fbbf24;--bad:#e11d48;--bad-soft:#3a1424;--bad-ink:#fb7185;--info-soft:#1c2752;--info-ink:#a5b4fc;--side-bg:#070d1a;--shadow:0 1px 2px #0006, 0 10px 30px -18px #0009;--shadow-lift:0 2px 4px #00000080, 0 16px 40px -20px #4f46e566}html[data-brand=gold]{--bg:#faf8f3;--surface:#fff;--ink:#191510;--ink-2:#463c28;--muted:#6b6152;--line:#e6dcc6;--line-soft:#f2ebdc;--primary:#8a6a12;--primary-strong:#6d5310;--primary-soft:#fdf6e3;--link:#8a6a12;--primary-line:#dcc98d;--surface-2:#fdfbf6;--nav-bg:#ffffffe6;--grad:linear-gradient(135deg, #d4af37 0%, #8a6a12 100%);--info-soft:#fdf6e3;--info-ink:#6d5310;--side-bg:#000;--side-ink:#b9ae95;--side-ink-hi:#f5eeda;--shadow:0 1px 2px #1915100d, 0 10px 30px -18px #19151038;--shadow-lift:0 2px 4px #19151012, 0 16px 40px -20px #8a6a1261}html[data-brand=gold][data-theme=dark]{--bg:#0b0b0d;--surface:#16161a;--ink:#f2ece0;--ink-2:#d8cfbc;--muted:#9d9482;--line:#2e2a24;--line-soft:#232019;--primary:#d4af37;--primary-strong:#f0d97b;--primary-soft:#241d0c;--link:#e8c85c;--primary-line:#4a3d1a;--surface-2:#1d1d22;--nav-bg:#0b0b0ded;--ok:#34d399;--ok-soft:#0c2a1f;--ok-ink:#6ee7b7;--warn:#f0b429;--warn-soft:#2e2409;--warn-ink:#fcd34d;--bad:#f87171;--bad-soft:#2e1416;--bad-ink:#fca5a5;--info-soft:#241d0c;--info-ink:#e8c85c;--side-bg:#000;--shadow:0 1px 2px #00000080, 0 10px 30px -18px #000000bf;--shadow-lift:0 2px 4px #0000008c, 0 16px 40px -20px #d4af3747}html[data-brand=gold][data-theme=dark] .btn-primary{color:#14120c}html[data-brand=gold] .side-logo,html[data-brand=gold] .top-logo,html[data-brand=gold] .paylogo{background:0 0;padding:0}html[data-brand=gold] .chip-day,html[data-brand=gold] .chip-morning{color:#4a3708;background:#f6e6b8;border-color:#d4af37}html[data-brand=gold] .chip-night{color:#23304d;background:#dfe3ee;border-color:#7d8aa8}html[data-brand=gold][data-theme=dark] .chip-day,html[data-brand=gold][data-theme=dark] .chip-morning{color:#f0d97b;background:#2e2408;border-color:#6b551a}html[data-brand=gold][data-theme=dark] .chip-night{color:#b3c2e0;background:#1b2233;border-color:#3d4a66}html[data-brand=blue]{--bg:#f3f6fa;--surface:#fff;--ink:#0c1b2e;--ink-2:#2f4257;--muted:#5f6b7a;--line:#dbe4ee;--line-soft:#eaf0f6;--primary:#0b5ea8;--primary-strong:#044778;--primary-soft:#e6f1fb;--link:#0b5ea8;--primary-line:#b6d4ee;--surface-2:#f8fbfe;--nav-bg:#ffffffe6;--grad:linear-gradient(135deg, #044778 0%, #0c8ecd 100%);--info-soft:#e6f1fb;--info-ink:#044778;--side-bg:#03213f;--side-ink:#9db3c9;--side-ink-hi:#f1f6fb;--shadow:0 1px 2px #0c1b2e0d, 0 10px 30px -18px #0c1b2e33;--shadow-lift:0 2px 4px #0c1b2e0f, 0 16px 40px -20px #0c8ecd59}html[data-brand=blue][data-theme=dark]{--bg:#07121f;--surface:#0e1d30;--ink:#e5eef7;--ink-2:#bfd0e2;--muted:#8aa0b6;--line:#1f3550;--line-soft:#172a41;--primary:#1675b3;--primary-strong:#5bb8ec;--primary-soft:#0c2a45;--link:#6cc0ef;--primary-line:#1f4f78;--surface-2:#122640;--nav-bg:#07121feb;--info-soft:#0c2a45;--info-ink:#8fd0f5;--side-bg:#031526;--side-ink:#9db3c9;--side-ink-hi:#f1f6fb;--shadow:0 1px 2px #0006, 0 10px 30px -18px #0009;--shadow-lift:0 2px 4px #00000080, 0 16px 40px -20px #0c8ecd59}html[data-brand=blue] .side-link.active{background:linear-gradient(90deg,#0c8ecd59,#0447782e)}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);margin:0;font:15.5px/1.55 Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif}h1{letter-spacing:-.015em;margin:.25rem 0 1.1rem;font-size:1.45rem;font-weight:700}h1 .badge{vertical-align:middle}a{color:var(--link);text-decoration:none}a:hover{color:var(--primary-strong)}.muted{color:var(--muted)}.small{font-size:.85rem}.icon{vertical-align:-.22em;stroke-width:1.8px;width:1.15em;height:1.15em}.sidebar{z-index:60;background:var(--side-bg);width:min(280px,84vw);max-width:100%;color:var(--side-ink);visibility:hidden;flex-direction:column;padding:1.1rem .8rem .9rem;transition:transform .22s,visibility 0s linear .22s;display:flex;position:fixed;inset:0 auto 0 0;overflow-y:auto;transform:translate(-100%)}.sidebar.open{visibility:visible;transition:transform .22s,visibility;transform:none;box-shadow:0 0 60px #00000080}.nav-backdrop{z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0206178c;position:fixed;inset:0}body.nav-open{overflow:hidden}.navtoggle{padding:.3rem .45rem}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.side-brand{color:var(--side-ink-hi);letter-spacing:-.01em;align-items:center;gap:.6rem;padding:.2rem .55rem 1rem;font-weight:700;display:flex}.side-brand .small{color:var(--side-ink);letter-spacing:0;font-weight:500;display:block}.side-brand.has-logo{display:block}.side-nav{scrollbar-width:thin;flex:1;overflow-y:auto}.nav-section{letter-spacing:.12em;text-transform:uppercase;color:#475569;padding:1.05rem .6rem .35rem;font-size:.67rem;font-weight:700}.side-link{color:var(--side-ink);white-space:nowrap;border-radius:9px;align-items:center;gap:.5rem;margin-bottom:1px;padding:.48rem .6rem;font-size:.9rem;font-weight:500;display:flex}.side-link .icon{opacity:.85}.side-link:hover{color:var(--side-ink-hi);background:#94a3b81a}.side-link.active{color:#fff;box-shadow:inset 2.5px 0 0 var(--primary);background:linear-gradient(90deg,#4f46e559,#7c3aed29)}.side-user{color:var(--side-ink);border-top:1px solid #94a3b82e;flex-direction:column;align-items:stretch;gap:.45rem;padding:.8rem .55rem 0;font-size:.8rem;display:flex}.side-user .email{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.side-user-actions{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.topbar{z-index:20;background:var(--nav-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.8rem;padding:.65rem 1rem;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;align-items:center;gap:.55rem;font-weight:700;display:flex}.logomark{background:var(--grad);color:#fff;width:1.9rem;height:1.9rem;box-shadow:var(--shadow-lift);border-radius:9px;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;display:inline-flex}.topbar>.inline-form{flex-wrap:nowrap;flex:none}.topbar .brand,.topbar .top-logo{min-width:0}.topbar .logomark{flex:none}.brand-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.logout-icon{display:none}@media (width<=479px){.topbar{gap:.5rem}.topbar>.inline-form{gap:.45rem}.topbar .btn-sm{padding-inline:.5rem}}@media (width<=359px){.logout-icon{display:inline}.logout-label{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.container{max-width:74rem;margin:0 auto;padding:1.1rem 1rem 2rem}@media (width>=1200px){.container{padding:1.7rem 2.4rem 2.6rem}}.flow-cols{grid-template-columns:repeat(auto-fit,minmax(min(23rem,100%),1fr));align-items:start;gap:1rem;display:grid}.flow-cols>.card{margin-bottom:0}.leave-layout{align-items:start;gap:1rem;display:grid}.leave-layout>.card{margin-bottom:0}.leave-main{align-content:start;gap:1rem;display:grid}.leave-main>.card{margin-bottom:0}@media (width>=1000px){.leave-layout{grid-template-columns:minmax(0,1fr) 19rem}}.form-tight p{margin:0 0 .55rem}.form-tight label{color:var(--muted);margin-bottom:.15rem;font-size:.78rem;display:block}.form-tight input[type=text],.form-tight input[type=date],.form-tight input[type=number],.form-tight input[type=file],.form-tight select,.form-tight textarea{box-sizing:border-box;width:100%}.form-tight textarea{min-height:3.4rem}.form-tight .helptext,.form-tight .small{color:var(--muted);font-size:.72rem}@media (width>=900px){body{padding-bottom:2rem}.topbar{display:none}.sidebar{z-index:30;visibility:visible;width:248px;box-shadow:none;transition:none;transform:none}.nav-backdrop,.navtoggle{display:none!important}.sidebar~.shell{margin-left:248px}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.1rem 1.2rem}.card h2{letter-spacing:-.01em;margin:0 0 .7rem;font-size:1.02rem;font-weight:700}.card .card{box-shadow:none;background:var(--surface-2)}.card-warn{background:#fffdf5;border-color:#fde68a}.card-bad{border-color:var(--bad);background:var(--bad-soft)}html[data-theme=dark] .card-warn{background:#241c08;border-color:#6b5518}.grid{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:.8rem;display:grid}.manage-heading{letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin:1.7rem 0 .7rem;font-size:.74rem;font-weight:700}.manage-heading:first-of-type{margin-top:.3rem}.btn-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 1rem;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));gap:.8rem;margin-bottom:1rem;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);box-shadow:var(--shadow);padding:.95rem 1rem;transition:transform .12s,box-shadow .12s,border-color .12s;display:block}a.tile:hover{box-shadow:var(--shadow-lift);border-color:var(--primary-line);color:var(--ink);transform:translateY(-2px)}.tile .tile-head{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;display:flex}.tile .count{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:.25rem;font-size:1.7rem;font-weight:700;display:block}.tile .sub{color:var(--muted);margin-top:.1rem;font-size:.8rem}.tile.tile-warn .count{color:var(--warn-ink)}.tile.tile-ok .count{color:var(--ok-ink)}.tile .count-md{font-size:1.35rem}.tile .count-sm{font-size:1.1rem}.tile .count-xs{font-size:.9rem}.icon-chip{background:var(--primary-soft);width:1.7rem;height:1.7rem;color:var(--primary);border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-chip.ok{background:var(--ok-soft);color:var(--ok)}.icon-chip.warn{background:var(--warn-soft);color:var(--warn)}.btn{background:var(--primary);color:#fff;border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.45rem;padding:.55rem 1.05rem;font-size:.95rem;font-weight:600;transition:transform .1s,box-shadow .12s,background .12s;display:inline-flex;box-shadow:0 1px 2px #4f46e54d}.btn:hover{background:var(--primary-strong);box-shadow:var(--shadow-lift);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn-secondary{background:var(--surface);color:var(--link);border-color:var(--primary-line);box-shadow:none}.btn-secondary:hover{background:var(--primary-soft)}.btn-danger{background:var(--bad);box-shadow:0 1px 2px #e11d484d}.btn-danger:hover{background:var(--bad-ink)}.btn-ok{background:var(--ok);box-shadow:0 1px 2px #0596694d}.btn-ok:hover{background:var(--ok-ink)}.btn-ghost{border-color:var(--line);color:var(--ink-2);box-shadow:none;background:0 0}.btn-ghost:hover{background:var(--line-soft);box-shadow:none;transform:none}.btn-sm{padding:.3rem .7rem;font-size:.84rem}.btn-big{border-radius:12px;width:100%;padding:1rem;font-size:1.12rem;font-weight:700}.inline-form{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:inline-flex}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top;padding:.55rem .65rem}th{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--line);font-size:.78rem;font-weight:600}tr:hover>td{background:var(--surface-2)}tr:last-child>td{border-bottom:none}.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.mid{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}th.mid{text-align:center}.badge{background:var(--line-soft);color:var(--ink-2);border-radius:999px;align-items:center;gap:.3rem;padding:.13rem .6rem;font-size:.74rem;font-weight:600;display:inline-flex}.badge-ok{background:var(--ok-soft);color:var(--ok-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn-ink)}.badge-bad{background:var(--bad-soft);color:var(--bad-ink)}.badge-info{background:var(--info-soft);color:var(--info-ink)}.shift-chip{white-space:nowrap;background:var(--primary-soft);color:var(--info-ink);border:1px solid #e0e7ff;border-radius:7px;margin:.1rem .1rem .1rem 0;padding:.16rem .5rem;font-size:.76rem;font-weight:600;display:inline-block}.chip-morning{color:#3f2f9e;background:#ece9fe;border-color:#9e8efa}.chip-office{color:#8a2f28;background:#fdeceb;border-color:#f4cccc}.chip-mid{color:#0b4f4f;background:#dbfbfb;border-color:#00d4d4}.chip-night{color:#3c5a10;background:#eefadc;border-color:#bdf483}.chip-rest{color:#9f1239;background:#ffe8ef;border-color:#f69}.chip-al{color:#8a4b00;background:#fff2dd;border-color:#f90}.chip-mc{color:#1c4587;background:#e4edfb;border-color:#3c78d8}.chip-el{color:#a10000;background:#ffe5e5;border-color:red}.chip-day{color:#075985;background:#e0f2fe;border-color:#bae6fd}.chip-late{color:#5b21b6;background:#ede9fe;border-color:#ddd6fe}.chip-closing{color:#9f1239;background:#fff1f2;border-color:#fecdd3}.chip-in{color:#065f46;background:#ecfdf5;border-color:#a7f3d0}.chip-out{color:#334155;background:#f8fafc;border-color:#e2e8f0}.chip-break_start,.chip-break_end{color:#92400e;background:#fffbeb;border-color:#fde68a}html[data-theme=dark] .shift-chip{border-color:#2c3b63}html[data-theme=dark] .chip-day{color:#7dd3fc;background:#0c2e42;border-color:#155e75}html[data-theme=dark] .chip-late{color:#c4b5fd;background:#251b47;border-color:#4c3a8f}html[data-theme=dark] .chip-morning{color:#c4b5fd;background:#241c47;border-color:#6b5cc7}html[data-theme=dark] .chip-office{color:#f7b7b1;background:#3a201e;border-color:#9c554d}html[data-theme=dark] .chip-mid{color:#7fe6ea;background:#06333a;border-color:#0f8f97}html[data-theme=dark] .chip-night{color:#c3ee92;background:#1f3311;border-color:#6f9c3c}html[data-theme=dark] .chip-rest{color:#fda4af;background:#3a1424;border-color:#a83a5c}html[data-theme=dark] .chip-al{color:#fbbf24;background:#3a2708;border-color:#a86e12}html[data-theme=dark] .chip-mc{color:#93b8f5;background:#10233f;border-color:#2f5ea8}html[data-theme=dark] .chip-el{color:#fca5a5;background:#3d1111;border-color:#a13030}html[data-theme=dark] .chip-closing{color:#fda4af;background:#3a1424;border-color:#6b1d33}html[data-theme=dark] .chip-in{color:#6ee7b7;background:#0b2f22;border-color:#14603f}html[data-theme=dark] .chip-out{color:#cbd5e1;background:#1a2436;border-color:#33415a}html[data-theme=dark] .chip-break_start,html[data-theme=dark] .chip-break_end{color:#fcd34d;background:#33240a;border-color:#6b5518}.sched-cell{min-width:7.2rem}.is-today{background:var(--primary-soft)!important}th.is-today{color:var(--primary-strong)}.messages{z-index:60;width:min(24rem,100vw - 1.6rem);margin:0;padding:0;position:fixed;top:.8rem;right:.8rem}.msg{border-radius:var(--radius-sm);background:var(--info-soft);color:var(--info-ink);box-shadow:var(--shadow-lift);cursor:pointer;border:1px solid #e0e7ff;margin-bottom:.45rem;padding:.65rem 2.2rem .65rem 1rem;font-size:.92rem;font-weight:500;animation:.28s both toast-in;position:relative}.msg:after{content:"×";opacity:.5;font-weight:700;position:absolute;top:.55rem;right:.8rem}.msg.msg-out{opacity:0;transition:opacity .3s,transform .3s;transform:translateY(-8px)}@keyframes toast-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.msg-success{background:var(--ok-soft);color:var(--ok-ink);border-color:#a7f3d0}.msg-error{background:var(--bad-soft);color:var(--bad-ink);border-color:#fecdd3}.msg-warning{background:var(--warn-soft);color:var(--warn-ink);border-color:#fde68a}html[data-theme=dark] .msg{border-color:#2c3b63}html[data-theme=dark] .msg-success{border-color:#14532d}html[data-theme=dark] .msg-error{border-color:#6b1d33}html[data-theme=dark] .msg-warning{border-color:#6b5518}form p{margin:0 0 .85rem}form label{color:var(--ink-2);margin-bottom:.25rem;font-size:.84rem;font-weight:600;display:block}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=time],select,textarea{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--ink);padding:.55rem .7rem;font-size:.96rem;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #4f46e51f}textarea{min-height:4.5rem}ul{padding-left:1.2rem}form ul{margin:0;padding:0;list-style:none}form ul li{margin-bottom:.3rem}.helptext{color:var(--muted);margin-top:.2rem;font-size:.77rem;font-weight:400;display:block}.errorlist{color:var(--bad-ink);margin:0 0 .4rem;padding-left:1.1rem;font-size:.87rem}.auth-wrap{justify-content:center;align-items:center;min-height:calc(100vh - 10rem);padding:1rem;display:flex}.auth-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:26rem;box-shadow:var(--shadow-lift);border-radius:18px;overflow:hidden}.auth-form{padding:2.2rem 2rem}.payslip-doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;overflow:hidden}.payslip-head{color:#fff;background:linear-gradient(135deg,#0b1428 0%,#1e1b4b 100%);flex-wrap:wrap;align-items:center;gap:1rem;padding:1.3rem 1.4rem;display:flex}.payslip-head .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:#a5b4fc;font-size:.7rem;font-weight:700}.pay-entity-name{letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1.15}.pay-entity-sub{color:#a5b4fc;margin-top:.15rem;font-size:.78rem}.pay-period{text-align:right;margin-left:auto}.pay-period .small{color:#a5b4fc;text-transform:uppercase;letter-spacing:.14em;font-size:.65rem;font-weight:700}.payslip-head .period{letter-spacing:-.01em;font-size:1.45rem;font-weight:800}.pay-meta{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.45rem 1.4rem;margin-bottom:1.1rem;display:grid}.pay-meta>div{flex-direction:column;gap:.05rem;display:flex}.pay-meta span{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.64rem;font-weight:700}.pay-meta strong{font-size:.92rem;font-weight:600}.pay-cols{grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem;display:grid}.pay-col table{width:100%}.pay-col th{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);font-size:.68rem}.pay-net{border-radius:var(--radius);background:var(--line-soft);border:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:.75rem 1rem;display:flex}.pay-net span{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.7rem;font-weight:700}.pay-net strong{letter-spacing:-.02em;font-size:1.4rem;font-weight:800}.pay-stat{font-size:.84rem}.pay-stat th{letter-spacing:.06em;font-size:.62rem}.pay-sign{flex-wrap:wrap;gap:2.5rem;margin-top:2rem;display:flex}.pay-sign>div{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.pay-sign .line{border-bottom:1px solid var(--ink-2);width:12rem;height:1.6rem;margin-bottom:.3rem;display:block}.payslip-body{padding:1.2rem 1.4rem}.payslip-body h2{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:1.1rem 0 .4rem;font-size:.74rem;font-weight:700}.payslip-body h2:first-child{margin-top:0}.total-row td,.total-row th{border-top:1px solid var(--line);font-size:1rem;font-weight:700}.subtotal-row td{color:var(--ink);background:var(--primary-soft);border-top:1px solid var(--primary-line);border-bottom:3px solid var(--primary-line);font-weight:700}.empty{color:var(--muted);padding:.4rem 0;font-size:.92rem}.is-muted-row>td{background:var(--line-soft)}.empty-state{text-align:center;padding:2.6rem 1.2rem}.empty-state .icon-chip{border-radius:14px;width:3.1rem;height:3.1rem;margin:0 auto .9rem}.empty-state .icon-chip .icon{width:1.5rem;height:1.5rem}.empty-state h3{letter-spacing:-.01em;margin:0 0 .35rem;font-size:1.08rem;font-weight:700}.empty-state p{color:var(--muted);max-width:27rem;margin:0 auto 1.1rem;font-size:.93rem}.needs-you{margin-bottom:1.1rem}.needs-list{gap:.5rem;display:grid}.needs-item{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:var(--radius-sm);color:var(--ink);align-items:center;gap:.75rem;padding:.7rem .9rem;transition:transform .12s,box-shadow .12s;display:flex}.needs-item:hover{box-shadow:var(--shadow);color:var(--ink);transform:translate(2px)}.needs-item .label{flex:1;font-weight:600}.needs-item .count{background:var(--warn-soft);color:var(--warn-ink);font-variant-numeric:tabular-nums;border-radius:999px;padding:.1rem .6rem;font-size:.82rem;font-weight:700}.all-clear{background:var(--ok-soft);color:var(--ok-ink);border-radius:var(--radius);border:1px solid #a7f3d0;align-items:center;gap:.7rem;margin-bottom:1.1rem;padding:.9rem 1.1rem;font-weight:600;display:flex}html[data-theme=dark] .all-clear{border-color:#14532d}.clock-hero{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.5rem 1.1rem 1.6rem}.clock-time{letter-spacing:-.035em;font-variant-numeric:tabular-nums;font-size:3.5rem;font-weight:700;line-height:1}.clock-date{color:var(--muted);margin-top:.4rem;font-size:.95rem}.clock-status{flex-wrap:wrap;justify-content:center;gap:.4rem;margin-top:.9rem;display:flex}.clock-primary{border-radius:14px;width:100%;margin-top:1.2rem;padding:1.25rem;font-size:1.3rem;font-weight:700}.clock-secondary{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.5rem;margin-top:.6rem;display:grid}.clock-secondary .btn{padding:.7rem .6rem;font-size:.92rem}.clock-choice{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1.2rem;display:grid}.clock-choice .clock-half{border-radius:14px;justify-content:center;align-items:center;gap:.4rem;width:100%;min-height:3.9rem;padding:1.1rem .5rem;font-size:1.05rem;font-weight:700;display:inline-flex}.clock-extra{width:100%}.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(35%)}.btn:disabled:hover,.btn[disabled]:hover{box-shadow:none;filter:grayscale(35%);transform:none}@media (width>=700px){.clock-time{font-size:4rem}}.notice{border-bottom:1px solid var(--line-soft);align-items:flex-start;gap:.7rem;padding:.7rem .2rem;display:flex}.notice:last-child{border-bottom:none}.notice-unread{background:var(--primary-soft);border-radius:8px;padding-inline:.6rem}.bell{position:relative}.bell-dot{background:var(--bad);color:#fff;text-align:center;border-radius:999px;min-width:1.05rem;padding:.18rem .34rem;font-size:.62rem;font-weight:700;line-height:1;position:absolute;top:-.35rem;right:-.45rem}.nav-count{background:var(--bad);color:#fff;text-align:center;border-radius:999px;min-width:1.05rem;margin-left:auto;padding:.2rem .36rem;font-size:.62rem;font-weight:700;line-height:1}.avatar{color:#fff;letter-spacing:.02em;vertical-align:middle;border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;margin-right:.45rem;font-size:.68rem;font-weight:700;display:inline-flex}.side-logo,.top-logo,.paylogo{object-fit:contain;background:#fff;border-radius:7px;padding:.4rem .55rem;display:block}.side-logo{max-width:100%;max-height:4.5rem;margin:0 auto}.top-logo{max-width:8.5rem;max-height:1.7rem}.paylogo{max-width:17rem;max-height:84px;padding:.5rem .7rem}.stamp-flash{background:var(--ok-soft);color:var(--ok-ink);border-radius:var(--radius);border:1px solid #a7f3d0;align-items:center;gap:.55rem;margin-bottom:1rem;padding:.8rem 1rem;font-size:1.05rem;font-weight:700;animation:.45s cubic-bezier(.2,1.4,.4,1) both stamp-pop;display:flex}.stamp-flash .icon{width:1.5em;height:1.5em;color:var(--ok);animation:.6s .1s both stamp-check}html[data-theme=dark] .stamp-flash{border-color:#14532d}@keyframes stamp-pop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes stamp-check{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{html,html[data-theme=dark]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--surface-2:#fff;--ink:#0f172a;--ink-2:#334155;--muted:#64748b;--line:#e2e8f0;--line-soft:#eef2f7}body{background:#fff;padding:0;font-size:12.5px}.sidebar,.topbar,.nav-backdrop,.messages,.no-print,.btn,form{display:none!important}.shell{margin:0!important}.container{max-width:none;padding:0}.payslip-doc{box-shadow:none;border:none}.payslip-head{color:var(--ink);border-bottom:3px solid var(--ink);border-radius:0;padding:0 0 .8rem;background:#fff!important}.payslip-head .eyebrow{color:var(--ink-2)}.payslip-head .small{color:var(--muted)!important}.payslip-body{padding:.8rem 0}.paylogo{background:0 0;max-height:76px;padding:0}.pay-entity-name{color:var(--ink)}.pay-entity-sub,.pay-period .small{color:var(--ink-2)!important}.payslip-head .period{color:var(--ink)}.pay-net{border:none;border-top:2px solid var(--ink);background:0 0;border-radius:0;padding:.5rem 0}.pay-cols,.pay-net,.pay-stat,.pay-sign,.pay-meta{break-inside:avoid;page-break-inside:avoid}tr:hover>td{background:0 0}a{color:inherit}}.month-cal{table-layout:fixed;min-width:980px}.month-cal th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.cal-cell{vertical-align:top;border:1px solid var(--line);height:7rem;padding:.4rem .45rem}.cal-empty,.cal-weekend{background:var(--line-soft)}.cal-holiday{background:color-mix(in srgb, var(--line-soft) 60%, transparent)}.cal-today{box-shadow:inset 0 0 0 2px var(--accent,var(--primary))}.cal-date{flex-wrap:wrap;align-items:center;gap:.3rem;margin-bottom:.3rem;font-weight:700;display:flex}.cal-shift{background:var(--line-soft);border-radius:7px;margin-bottom:.25rem;padding:.25rem .4rem}.cal-shift-name{letter-spacing:.04em;text-transform:uppercase;font-size:.68rem;font-weight:700;display:block}.cal-away{border:1px dashed var(--line);opacity:.85;background:0 0}.cal-shift.chip-office,.cal-shift.chip-morning,.cal-shift.chip-mid,.cal-shift.chip-night,.cal-shift.chip-rest,.cal-shift.chip-al,.cal-shift.chip-mc,.cal-shift.chip-el{border-style:solid;border-width:1px}.cal-cover{background:var(--bad-soft);border:1px solid var(--bad)}.cal-cover .cal-shift-name{color:var(--bad-ink)}.cal-away .cal-shift-name{color:var(--muted)}.cal-names{font-size:.78rem;line-height:1.35}.roster{table-layout:fixed;border-collapse:collapse;width:100%}.roster th,.roster td{text-align:center;vertical-align:middle;border-bottom:1px solid var(--line-soft);padding:.34rem .2rem}.roster-group th{border-top:3px solid var(--line)}.roster-count td{border-bottom:2px solid var(--line)}.roster .roster-name{text-align:left;white-space:nowrap;text-overflow:ellipsis;width:10.5rem;padding-left:.45rem;overflow:hidden}.roster-name .roster-dept{max-width:100%;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.62rem;font-weight:400;line-height:1.05;display:block;overflow:hidden}.roster td[data-name]{cursor:pointer}.roster td[data-name]:hover{background:var(--surface-2)}.roster-person{font-weight:600}.roster-day{cursor:pointer;color:var(--muted);font-size:.7rem;font-weight:700;line-height:1.15}.roster-day:hover{background:var(--surface-2)}.roster-dow{text-transform:uppercase;letter-spacing:.04em;display:block}.roster-dom{color:var(--ink);font-size:.78rem;display:block}.roster-hol{background:var(--info-soft);color:var(--info-ink);border-radius:4px;margin-top:.1rem;padding:0 .2rem;font-size:.55rem;display:inline-block}.roster .is-today{background:color-mix(in srgb, var(--accent,var(--primary)) 12%, transparent)}.roster-group th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);padding-top:.45rem;padding-bottom:.45rem;font-size:.68rem}.roster-count td{color:var(--muted);background:color-mix(in srgb, var(--ok) 8%, transparent);font-size:.72rem;font-weight:700}.roster-count .roster-name{text-transform:none;letter-spacing:0;font-size:.68rem;font-weight:600}.sh{border:1px solid #0000;border-radius:6px;min-width:1.55rem;padding:.12rem .18rem;font-size:.82rem;font-weight:700;line-height:1.3;display:inline-block}.sh-rest{color:#9f1239;background:#ffe8ef;border-color:#ffc2d4}.sh-leave{color:#7a4b00;background:#fff4d6;border-color:#f0c86a;font-size:.68rem}.sh-clash{background:var(--bad-soft);color:var(--bad-ink);border-color:var(--bad)}.roster.row-focus tr:not(.row-on):not(.roster-group):not(:first-child) .sh,.roster.row-focus tr:not(.row-on):not(.roster-group):not(:first-child) .roster-name,.roster.row-focus tr.roster-count td,.roster.col-focus td:not(.col-on) .sh,.roster.col-focus th.roster-day:not(.col-on){opacity:.2}.roster.row-focus tr:not(.row-on) .roster-name.role-mgmt,.roster.row-focus tr:not(.row-on) .roster-name.role-lead,.roster.col-focus .roster-name.role-mgmt,.roster.col-focus .roster-name.role-lead{border-left-color:#0000}.roster.col-focus .roster-name .role-tag,.roster.col-focus .roster-name .roster-person{opacity:.35}.roster tr.row-on td{background:color-mix(in srgb, var(--primary) 22%, transparent)}.roster tr.row-on td[data-name]{font-weight:800}.roster td.col-on,.roster th.col-on{background:color-mix(in srgb, var(--primary) 22%, transparent)}.roster th.col-on{box-shadow:inset 0 -3px 0 var(--primary)}.roster .sh,.roster .roster-name,.roster td,.roster th{transition:opacity .12s,background .12s}@media (prefers-reduced-motion:reduce){.roster .sh,.roster .roster-name,.roster td,.roster th{transition:none}}.roster-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;font-size:.76rem;display:flex}@media (width<=599px){.roster th,.roster td{padding:.22rem .08rem}.roster .roster-name{width:4.6rem;font-size:.68rem}.roster .roster-name .avatar{display:none}.roster-day{font-size:.58rem}.roster-dom{font-size:.68rem}.sh{min-width:1.15rem;padding:.08rem .1rem;font-size:.72rem}.sh-leave{font-size:.56rem}.roster-legend{gap:.35rem .7rem;font-size:.68rem}}html[data-theme=dark] .sh-rest{color:#ffa7c4;background:#3d1526;border-color:#7d2d4a}html[data-theme=dark] .sh-leave{color:#f5d183;background:#3a2c07;border-color:#7a5d15}.cal-day-link{color:inherit;border-radius:var(--radius-sm);min-height:100%;text-decoration:none;display:block}.cal-day-link:hover{background:var(--surface-2);color:inherit}@media (width<=599px){.month-cal{width:100%;min-width:0}.month-cal th{letter-spacing:.02em;padding:.25rem .15rem;font-size:.55rem}.cal-cell{height:auto;min-height:3.4rem;padding:.22rem .2rem}.cal-date{gap:.15rem;margin-bottom:.18rem;font-size:.72rem}.cal-shift{border-radius:5px;margin-bottom:.14rem;padding:.14rem .22rem}.cal-shift-name{letter-spacing:.01em;font-size:.52rem}.cal-shift-name .muted{display:none}.cal-names{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.6rem;line-height:1.25;display:-webkit-box;overflow:hidden}.cal-cell .badge{padding:.05rem .22rem;font-size:.5rem}}.fb-post{align-items:flex-start;gap:.9rem;display:flex}.fb-body{flex:1;min-width:0}.fb-meta{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .35rem;display:flex}.fb-message{white-space:pre-wrap;margin:0}.decide-facts{flex-wrap:wrap;gap:.5rem;margin:.6rem 0;display:flex}.decide-facts>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);flex:14rem;min-width:0;padding:.5rem .7rem}.decide-facts dt{letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-bottom:.15rem;font-size:.66rem;font-weight:700}.decide-facts dd{overflow-wrap:anywhere;margin:0;font-weight:600}.decide-bar{border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--radius) var(--radius);flex-wrap:wrap;align-items:center;gap:.6rem;margin:.9rem -1.2rem -1.1rem;padding:.75rem 1.2rem;display:flex}.decide-bar .field{align-items:center;gap:.4rem;display:flex}.decide-bar label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem;font-weight:700}.decide-bar input[type=number]{width:5.5rem}.decide-bar .decide-note{flex:12rem;min-width:0}.decide-actions{gap:.5rem;margin-left:auto;display:flex}@media (width<=599px){.decide-actions{width:100%;margin-left:0}.decide-actions .btn{flex:1}}.notice-link{color:inherit;cursor:pointer;border-radius:var(--radius-sm)}.notice-link:hover{color:inherit;background:var(--surface-2)}.notice-link strong{color:var(--ink)}.fb-comment{border-radius:var(--radius-sm);background:var(--surface-2);border-left:3px solid var(--line);margin-top:.5rem;padding:.45rem .7rem}.fb-comment-author{border-left-color:var(--warn)}.fb-followup{margin-top:.5rem}.fb-followup textarea{width:100%}.fb-reply{border-radius:var(--radius-sm);background:var(--surface-2);border-left:3px solid var(--primary);margin-top:.6rem;padding:.5rem .7rem}.fb-shot{margin-top:.6rem;display:inline-block}.fb-shot img{border-radius:var(--radius-sm);border:1px solid var(--line);max-width:100%;max-height:18rem;display:block}.acct-actions{flex-wrap:nowrap;align-items:center;gap:.4rem;display:flex}.acct-actions .inline-form{flex-wrap:nowrap;gap:.3rem;margin:0}.acct-actions input[type=email]{width:9.5rem;min-width:0}.acct-actions .btn{white-space:nowrap}@media (width<=899px){.acct-actions{flex-wrap:wrap}}.rungs{margin:.3rem 0 0;padding:0 0 0 1.2rem;list-style:none;position:relative}.rungs:before{content:"";border-left:2px solid var(--line);position:absolute;top:.6rem;bottom:.6rem;left:0}.rung-row{padding:.85rem 0;position:relative}.rung-row+.rung-row{border-top:1px solid var(--line-soft)}.rung-row:before{content:"";border-top:2px solid var(--line);width:.85rem;position:absolute;top:1.35rem;left:-1.2rem}.rung-owner .rung-name{color:var(--primary)}.rung-main{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.rung-name{letter-spacing:-.01em;font-size:1rem;font-weight:700}.rung-main .inline-form{margin:0}.rung-main select{padding:.18rem .4rem;font-size:.82rem}.rung-count{color:var(--muted);margin-left:auto;font-size:.8rem}.rung-people{flex-wrap:wrap;gap:.35rem;margin-top:.55rem;display:flex}.rung-can{color:var(--muted);margin:.5rem 0 0;font-size:.82rem;line-height:1.5}.dept-grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.9rem;display:grid}.dept{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:.85rem .95rem}.dept-headless{border-color:var(--bad)}.dept-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.dept-people{margin:.6rem 0 0;padding:0;list-style:none}.dept-people li{border-top:1px solid var(--line-soft);justify-content:space-between;gap:.6rem;padding:.3rem 0;font-size:.88rem;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.4rem;padding:.2rem .65rem .2rem .25rem;font-size:.85rem;display:inline-flex}.chip .avatar{width:1.45rem;height:1.45rem;font-size:.62rem}.chip .small{padding-left:.2rem}.shift-day{margin-bottom:.6rem;padding:.8rem 1rem}.shift-today{border-color:var(--primary)}.shift-day-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding-bottom:.5rem;display:flex}.shift-day-head .small{margin-left:auto}.shift-line{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.shift-line:last-child{border-bottom:none;padding-bottom:0}.shift-names{flex:12rem;min-width:0;font-size:.9rem}.shift-actions{gap:.3rem;margin-left:auto;display:flex}.shift-actions .inline-form{margin:0}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);background:var(--surface-2);text-align:center;cursor:pointer;flex-direction:column;align-items:center;gap:.25rem;margin:.35rem 0 .5rem;padding:1.5rem 1rem;transition:border-color .15s,background .15s;display:flex;position:relative}.dropzone:hover,.dropzone:focus-visible{border-color:var(--primary-line);background:var(--primary-soft)}.dropzone.dropping{border-color:var(--primary);background:var(--primary-soft)}.dropzone p{margin:0}.dropzone .icon{width:1.5rem;height:1.5rem;color:var(--muted)}.dropzone .link{color:var(--link);text-decoration:underline}.dropzone input[type=file]{opacity:0;cursor:pointer;position:absolute;inset:0}.filelist{margin:0 0 .75rem;padding:0;list-style:none}.filelist li{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.3rem;padding:.35rem .6rem;font-size:.85rem;display:flex}.thumbs{flex-wrap:wrap;gap:.6rem;display:flex}.thumb{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);align-items:center;gap:.5rem;padding:.5rem .7rem;text-decoration:none;display:flex}.thumb:hover{border-color:var(--primary-line);background:var(--primary-soft)}.thumb-icon{color:var(--muted);display:inline-flex}.timeline{margin:0 0 .75rem;padding:0;list-style:none}.timeline li{border-left:2px solid var(--line);opacity:.55;padding:.35rem 0 .35rem 1.4rem;position:relative}.timeline li.done{opacity:1;border-left-color:var(--ok)}.timeline li:before{content:"";background:var(--line);border-radius:50%;width:.7rem;height:.7rem;position:absolute;top:.7rem;left:-.42rem}.timeline li.done:before{background:var(--ok)}.timeline strong{font-size:.9rem;display:block}.detail-list{grid-template-columns:auto 1fr;gap:.35rem .9rem;margin:0;display:grid}.detail-list dt{color:var(--muted);font-size:.85rem}.detail-list dd{margin:0;font-size:.9rem}.detail-list dd.figure{font-size:1.05rem;font-weight:650}.filter-bar{flex-wrap:wrap;align-items:center;gap:.5rem}.filter-bar label{margin:0}.filter-bar>:not(label)+label{margin-left:1.1rem}.filter-bar>.btn+.btn{margin-left:-.15rem}.tile-active{outline:2px solid var(--primary);outline-offset:-2px}@media (width<=640px){.detail-list{grid-template-columns:1fr;gap:.1rem .5rem}.detail-list dd{margin-bottom:.5rem}}.clock-break{background:var(--warn-soft);color:var(--warn-ink);border:2px solid var(--warn);justify-content:center;align-items:center;gap:.45rem;padding-block:.7rem;font-weight:650;display:inline-flex}.clock-break:hover{background:var(--warn);color:#fff}.clock-break .icon{width:1.1rem;height:1.1rem}.clock-primary{justify-content:center;align-items:center;gap:.5rem;display:inline-flex}.roster-name.role-mgmt{border-left:4px solid var(--primary);font-weight:650}.roster-name.role-lead{border-left:4px solid #db2777;font-weight:620}.roster-name.role-cs{border-left:4px solid #0000}.role-tag{letter-spacing:.01em;white-space:nowrap;vertical-align:middle;border-radius:999px;margin-left:.35rem;padding:.05rem .35rem;font-size:.62rem;font-weight:600;display:inline-block}.role-mgmt .role-tag,.role-tag.role-mgmt{background:var(--primary-soft);color:var(--primary-strong)}.role-lead .role-tag,.role-tag.role-lead{color:#9d174d;background:#fce7f3}[data-theme=dark] .role-mgmt .role-tag{color:#c7d2fe;background:#312e81}[data-theme=dark] .role-lead .role-tag{color:#fbcfe8;background:#831843}.roster-band-head{text-align:left;padding:.3rem .5rem;font-weight:500}.roster-band-head .badge{margin-right:.3rem}.roster-count .count-short{background:var(--bad-soft);color:var(--bad-ink);font-weight:700}[data-theme=dark] .roster-count .count-short{color:#fecdd3;background:#4c0519}.roster-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;overflow-x:auto}.roster-month{width:100%;min-width:0}.roster-month th.roster-name,.roster-month td.roster-name{z-index:2;background:var(--surface);width:7.6rem;box-shadow:1px 0 0 var(--line);padding-left:.4rem;position:sticky;left:0}.roster-month .roster-group th.roster-name,.roster-month .roster-count td.roster-name{background:var(--surface-2)}.roster-month .roster-person{font-size:.74rem;font-weight:600}.roster-month .roster-day,.roster-month .roster-cell{padding:.26rem 0}.roster-month .sh{border-radius:4px;width:92%;min-width:0;padding:.1rem 0;font-size:.72rem}.roster-month .sh-leave{font-size:.58rem}.roster-month .roster-dow{letter-spacing:0;font-size:.58rem}.roster-month .roster-dom{font-size:.68rem}.roster-month .role-tag{margin-left:.2rem;padding:0 .22rem;font-size:.56rem}.roster-band-head{text-align:left;padding:.38rem .5rem}.band-label{letter-spacing:.06em;font-weight:700}.roster-band-head .small{text-transform:none;letter-spacing:0;margin-left:.4rem}.roster-band-head .badge{margin-left:.5rem}.roster-month .roster-group th.roster-name{white-space:nowrap;overflow:visible}.roster-band-head{padding-block:.35rem}.roster .roster-name{overflow:visible}.roster-person{max-width:100%;display:inline-block}.roster-off{text-align:center;font-variant-numeric:tabular-nums;border-left:2px solid var(--line);width:2.2rem;font-size:.72rem;font-weight:700}.roster .is-trip{background:#f6c3432e}.roster th.is-trip{background:#f6c3434d}.trip-mark{font-size:.7rem;line-height:1;display:block}[data-theme=dark] .roster .is-trip{background:#f6c34324}[data-theme=dark] .roster th.is-trip{background:#f6c3433d}.week-pager{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.week-pager [data-week-of]{margin-left:auto}@media (width>=600px){.week-pager{display:none!important}}.fb-post:target{outline:2px solid var(--primary);outline-offset:2px;scroll-margin-top:5rem}.rules-table th{white-space:normal;min-width:7rem}.rules-table td{min-width:12rem}.mode-tabs{background:var(--surface-2);border-radius:10px;gap:.2rem;margin:0 0 1rem;padding:.25rem;display:inline-flex}.mode-tab{color:var(--muted);border-radius:8px;padding:.4rem 1.1rem;font-size:.9rem;font-weight:600;line-height:1.6;text-decoration:none}.mode-tab:hover{color:var(--ink)}.mode-tab.is-on{background:var(--surface);color:var(--primary-strong);box-shadow:var(--shadow-lift)}table.dense{font-size:.8rem}table.dense th,table.dense td{padding:.35rem .4rem}table.dense th{white-space:normal;overflow-wrap:anywhere;letter-spacing:.02em;font-size:.66rem}table.dense .btn-sm{padding:.15rem .45rem;font-size:.72rem}table.dense .total-row td,table.dense .total-row th{white-space:nowrap;overflow-wrap:normal;font-size:.85rem}table.dense input[type=number]{width:3.6rem}table.dense.ent-matrix{table-layout:fixed;width:100%;min-width:calc(10.5rem + var(--cols,6) * 4.75rem)}table.dense.ent-matrix th:first-child{width:10.5rem}table.dense.ent-matrix input[type=number]{width:100%;padding-inline:.35rem}table.dense.ent-matrix th{overflow-wrap:break-word;word-break:normal;-webkit-hyphens:manual;hyphens:manual;vertical-align:bottom}table.dense.run-lines{width:max-content;min-width:100%;font-size:.78rem}table.dense.run-lines th,table.dense.run-lines td{padding:.35rem .3rem}table.dense.run-lines th{white-space:nowrap;overflow-wrap:normal}table.dense.run-lines td{white-space:nowrap;vertical-align:middle}table.dense.run-lines .line-team-form,table.dense.run-lines .line-add-form{flex-wrap:nowrap;align-items:center;gap:.3rem;margin:0;display:flex}table.dense.run-lines .line-add-form{margin-top:.3rem}table.dense.run-lines select{width:auto;min-width:4.5rem;padding:.2rem .4rem;font-size:.78rem}table.dense.run-lines .btn-ghost.btn-sm{padding:.1rem .3rem}table.dense.run-lines tr>:first-child{z-index:1;background:var(--surface);box-shadow:1px 0 0 var(--line);position:sticky;left:0}table.dense.run-lines tr:hover>td:first-child{background:var(--surface-2)}table.dense.run-lines .line-name{white-space:normal;vertical-align:middle;max-width:13rem;display:inline-block}.run-lines-wrap{scroll-padding-left:16rem}@media (width<=599px){table.dense.run-lines td:first-child .avatar{display:none}table.dense.run-lines .line-name{max-width:6.5rem}table.dense.run-lines .line-add-form{flex-wrap:wrap;max-width:6.5rem}.run-lines-wrap{scroll-padding-left:8.5rem}}table.dense.adjust-table input[type=number]{box-sizing:border-box;text-align:right;width:100%;min-width:3.4rem;max-width:8rem}table.dense.adjust-table td.num{text-align:right}table.dense.punch-table td.punch{white-space:nowrap}.punch-time{font-variant-numeric:tabular-nums}.punch-fixed{text-underline-offset:.18em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:var(--ok-ink);text-decoration-color:var(--ok-ink)}.punch-mark{color:var(--ok-ink);cursor:help;font-size:.85em}.check-inline{white-space:nowrap;cursor:pointer;align-items:center;gap:.35rem;display:inline-flex}.check-inline input{margin:0}.scheme-ticks{flex-wrap:wrap;gap:.5rem 1.1rem;margin:.2rem 0 .6rem;display:flex}.leave-doc{margin:.6rem 0}.leave-doc img{border:1px solid var(--line);background:var(--surface-2);object-fit:contain;border-radius:6px;width:auto;max-width:min(22rem,100%);height:auto;max-height:15rem;display:block}label.tick{cursor:pointer;text-align:center;padding:.25rem;display:block}label.tick input{cursor:pointer;width:1.05rem;height:1.05rem;margin:0}fieldset.form-section{border:0;border-top:1px solid var(--line);margin:1.4rem 0 0;padding:.2rem 0 0}fieldset.form-section:first-of-type{border-top:0;margin-top:0}fieldset.form-section>legend{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);padding:0 .5rem 0 0;font-size:.78rem;font-weight:600}fieldset.form-section .helptext{display:block}@media (width<=599px){.roster th[hidden],.roster td[hidden]{display:none!important}.roster-month th.roster-name,.roster-month td.roster-name{width:5.6rem;padding-left:.3rem}.roster-month .roster-person{font-size:.68rem;line-height:1.15;display:block}.roster-month .role-tag{margin:0;padding:0 .2rem;font-size:.54rem}.roster-month .roster-day,.roster-month .roster-cell{padding:.2rem .04rem}.roster-month .sh{width:auto;min-width:1.35rem;padding:.1rem .12rem;font-size:.72rem}.roster-month .sh-leave,.roster-month .roster-dow{font-size:.56rem}.roster-month .roster-dom{font-size:.72rem}.roster-month .roster-group th.roster-name,.roster-band-head{white-space:normal}.roster-off{width:2rem;font-size:.68rem}.week-link{display:none}table.dense.adjust-table th.opt{font-size:0}table.dense.adjust-table th.opt:after{content:"EPF";letter-spacing:0;font-size:.62rem}table.dense.adjust-table td.opt{text-align:center;padding-left:0;padding-right:0}table.dense.adjust-table th,table.dense.adjust-table td{padding:.3rem .2rem}table.dense.adjust-table input[type=number]{min-width:2.4rem;padding:.25rem .2rem;font-size:.7rem}table.dense.adjust-table td,table.dense.adjust-table th{font-size:.68rem}table.dense.adjust-table input[name$=_amount]{min-width:3.4rem}table.dense.adjust-table .total-row th{font-size:.75rem}}.row-fix{display:inline-block;position:relative}.row-fix>summary{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;list-style:none}.row-fix>summary::-webkit-details-marker{display:none}.row-fix[open]>summary{background:var(--surface-2)}.row-fix>.stack-sm{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:left;min-width:15rem;margin-top:.35rem;padding:.75rem;position:absolute;right:0;box-shadow:0 8px 24px #0000002e}.row-fix>.stack-sm>*{width:100%;display:block}.row-fix>.stack-sm>label{margin-top:.5rem}.row-fix>.stack-sm>input{margin-top:.15rem}.row-fix>.stack-sm>button{margin-top:.7rem}.row-fix>.stack-sm p{margin:0 0 .2rem}tr:nth-last-child(-n+3) .row-fix>.stack-sm{margin:0 0 .35rem;top:auto;bottom:100%}.receipts{flex-wrap:wrap;align-items:flex-start;gap:.7rem;margin:.6rem 0;display:flex}.receipt{margin:0}.receipt img{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);object-fit:contain;width:auto;max-width:min(16rem,100%);height:auto;max-height:12rem;display:block}.receipt:hover img{border-color:var(--primary-line)}.receipt figcaption{max-width:16rem;margin-top:.25rem}.receipt-mini{margin:0 .25rem .25rem 0;display:inline-block}.receipt-mini img{object-fit:cover;border:1px solid var(--line);background:var(--surface-2);border-radius:6px;width:3.4rem;height:3.4rem;display:block}.receipt-mini:hover img{border-color:var(--primary-line)}.setup-page{padding:0}.setup-wrap{max-width:54rem;margin:0 auto;padding:2.5rem 1.25rem 5rem}.setup-logo{max-height:3.4rem;margin-bottom:1.6rem;display:block}.setup-wrap h2{margin-top:2.2rem}.setup-wrap .card{margin-bottom:1rem}.setup-wrap h3{margin:0 0 .6rem;font-size:1rem}.setup-form input[type=text],.setup-form textarea{width:100%}.setup-form td{vertical-align:middle}.mono{color:var(--ink-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em}[hidden]{display:none!important}.side-zh{opacity:.65;letter-spacing:.04em;font-size:.72rem;font-weight:500;display:block}.side-btn{color:#94a3b8;border-color:#334155}.icon-chip.bad{background:var(--bad-soft);color:var(--bad)}.tile.tile-bad .count{color:var(--bad-ink)}.tile-btn{text-align:left;font:inherit;cursor:pointer;width:100%}.tile-btn:hover{box-shadow:var(--shadow-lift);border-color:var(--primary-line);transform:translateY(-2px)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.card-head h2{margin:0 0 .6rem}.field{flex-direction:column;gap:.25rem;min-width:0;margin-bottom:.75rem;display:flex}.field label{color:var(--muted);font-size:.8rem;font-weight:600}.field input,.field select,.field textarea{width:100%}.field-hint{color:var(--muted);font-size:.75rem}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr));gap:0 1rem;display:grid}.check-row{align-items:center;gap:.45rem;margin:.25rem 0 .75rem;font-size:.92rem;display:flex}.check-row input{width:1.05rem;height:1.05rem}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filters input[type=search]{flex:14rem}.line-name{font-weight:550}.person{align-items:center;display:inline-flex}.num{text-align:right;font-variant-numeric:tabular-nums}td.nowrap,th.nowrap{white-space:nowrap}.row-actions{flex-wrap:wrap;gap:.3rem;display:flex}.lock-note{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn-ink);align-items:flex-start;gap:.5rem;margin:0 0 .8rem;padding:.6rem .8rem;font-size:.9rem;display:flex}.ok-note{background:var(--ok-soft);color:var(--ok-ink)}.week-nav{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.week-grid td{min-width:7.5rem}.week-grid .slot{margin-bottom:.25rem;font-size:.82rem}.pay-input{text-align:right;width:6rem}.print-only{display:none}@media print{.print-only{display:inline}.sidebar,.topbar,.no-print,.nav-backdrop{display:none!important}.sidebar~.shell{margin-left:0!important}}.name-input{background:0 0;border:1px solid #0000;border-radius:6px;width:min(16rem,100%);padding:.2rem .35rem}.name-input:hover,.name-input:focus{border-color:var(--line);background:var(--surface)}.share-text{white-space:pre-wrap;font:inherit;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;margin:.5rem 0;padding:.6rem .75rem;font-size:.85rem}.page-help{justify-content:flex-end;gap:1rem;margin:-.4rem 0 .2rem;font-size:.82rem;display:flex}.guide-section h2{align-items:center;gap:.5rem;display:flex}.guide-section{scroll-margin-top:4.5rem}.guide-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.guide-list li{line-height:1.5}.guide-btn{background:var(--primary-soft);color:var(--info-ink);border:1px solid var(--primary-line);border-radius:6px;margin-right:.35rem;padding:.08rem .5rem;font-size:.8rem;font-weight:650;display:inline-block}.setup-steps{gap:.75rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.setup-steps li{align-items:flex-start;gap:.7rem;display:flex}.setup-mark{background:var(--surface-2);border:1px solid var(--line);border-radius:50%;flex:none;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;font-size:.85rem;font-weight:700;display:inline-flex}.setup-steps li.is-done .setup-mark{background:var(--ok-soft);color:var(--ok);border-color:var(--ok)}.feedback-list{gap:.8rem;display:grid}.feedback-item{border-bottom:1px solid var(--line-soft);padding-bottom:.7rem}
