@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d0d9446e69c4847e-s.3w7f_p1-p40wk.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(../media/4e1c87b7aa9e2f2f-s.403cw4u-aurg6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(../media/3fd967fc5374d70a-s.0aam4xq51u8ez.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(../media/dd14639a62c56cb2-s.2--ii1rah3vw3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:500;font-display:swap;src:url(../media/b59689b1142d37ce-s.p.3tqbdkkdqajd-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(../media/d0d9446e69c4847e-s.3w7f_p1-p40wk.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(../media/4e1c87b7aa9e2f2f-s.403cw4u-aurg6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3fd967fc5374d70a-s.0aam4xq51u8ez.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(../media/dd14639a62c56cb2-s.2--ii1rah3vw3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:600;font-display:swap;src:url(../media/b59689b1142d37ce-s.p.3tqbdkkdqajd-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(../media/d0d9446e69c4847e-s.3w7f_p1-p40wk.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(../media/4e1c87b7aa9e2f2f-s.403cw4u-aurg6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3fd967fc5374d70a-s.0aam4xq51u8ez.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(../media/dd14639a62c56cb2-s.2--ii1rah3vw3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Unbounded;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b59689b1142d37ce-s.p.3tqbdkkdqajd-.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Unbounded Fallback;src:local(Arial);ascent-override:73.93%;descent-override:18.2%;line-gap-override:0.0%;size-adjust:134.59%}.unbounded_da18a7b8-module__e0oLmG__className{font-family:Unbounded,Unbounded Fallback;font-style:normal}.unbounded_da18a7b8-module__e0oLmG__variable{--font-head:"Unbounded", "Unbounded Fallback"}
@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b2ea385cb5ae8625-s.3gpqod6e6kd7d.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Outfit;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1b99372b3eaef0c8-s.p.1ay-qk1u8nydy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit Fallback;src:local(Arial);ascent-override:100.18%;descent-override:26.05%;line-gap-override:0.0%;size-adjust:99.82%}.outfit_da31e491-module__zDXeta__className{font-family:Outfit,Outfit Fallback;font-style:normal}.outfit_da31e491-module__zDXeta__variable{--font-body:"Outfit", "Outfit Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_d85583d7-module__1dHVEa__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_d85583d7-module__1dHVEa__variable{--font-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--ink:#243a5a;--midnight:#1a2940;--dusty:#6e86a6;--sapphire:#4f6f96;--lavender:#b8abcf;--charcoal:#111318;--stone:#f7f6ed;--fog:#eceaec;--white:#fff;--ok:#2f7a55;--ok-bg:#e6f2ea;--warn:#9a6b00;--warn-bg:#fbf1d6;--bad:#a33a3a;--bad-bg:#f8e3e3;--radius:10px}*{box-sizing:border-box}html,body{margin:0}body{background:var(--stone);color:var(--charcoal);font-family:var(--font-body), system-ui, sans-serif;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-head), system-ui, sans-serif;color:var(--midnight);margin:0 0 12px;font-weight:600}h1{letter-spacing:-.01em;font-size:22px}h2{font-size:16px}h3{font-size:14px}a{color:var(--sapphire)}.mono{font-family:var(--font-mono), ui-monospace, monospace;font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums;text-align:right}.muted{color:var(--dusty)}.small{font-size:13px}.top{background:var(--ink);color:var(--white);z-index:20;align-items:center;gap:20px;height:56px;padding:0 20px;display:flex;position:sticky;top:0}.top .brand{font-family:var(--font-head);letter-spacing:.12em;color:var(--white);font-size:16px;font-weight:700;text-decoration:none}.top nav{flex:1;gap:4px;display:flex;overflow-x:auto}.top nav a{color:#d8deea;white-space:nowrap;border-radius:6px;padding:6px 10px;font-size:14px;text-decoration:none}.top nav a:hover,.top nav a.on{color:var(--white);background:#ffffff1f}.top .who{color:#c5cfdf;white-space:nowrap;align-items:center;gap:10px;font-size:13px;display:flex}.top .who button{color:#fff;cursor:pointer;font:inherit;background:0 0;border:1px solid #ffffff4d;border-radius:6px;padding:3px 8px;font-size:12px}main{max-width:1240px;margin:0 auto;padding:24px 20px 64px}.card{background:var(--white);border-radius:var(--radius);border:1px solid var(--fog);padding:18px}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;display:grid}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;display:grid}.stat{background:var(--white);border:1px solid var(--fog);border-radius:var(--radius);padding:12px 14px}.stat b{font-family:var(--font-head);color:var(--ink);font-size:20px;font-weight:600;display:block}.stat span{color:var(--dusty);font-size:12px}button,.btn{font:inherit;border:1px solid var(--fog);background:var(--white);color:var(--charcoal);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;text-decoration:none;display:inline-flex}button:hover,.btn:hover{border-color:var(--dusty)}.primary{background:var(--sapphire);border-color:var(--sapphire);color:var(--white)}.primary:hover{background:var(--ink);border-color:var(--ink)}.danger{color:var(--bad)}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font:inherit;background:var(--white);color:var(--charcoal);border:1px solid #d6d4d6;border-radius:8px;max-width:100%;padding:7px 10px;font-size:14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--lavender);outline-offset:1px;border-color:var(--sapphire)}label{color:var(--dusty);flex-direction:column;gap:4px;font-size:13px;display:flex}label.check{color:var(--charcoal);flex-direction:row;align-items:center;gap:6px}.form{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}textarea.msg{width:100%;min-height:320px;font-family:var(--font-mono), monospace;font-size:13px;line-height:1.6}.tablewrap{background:var(--white);border:1px solid var(--fog);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;color:var(--dusty);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--fog);white-space:nowrap;background:#fbfaf5;padding:10px 12px;font-size:12px;font-weight:500}td{border-bottom:1px solid var(--fog);vertical-align:middle;padding:9px 12px}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right}tr.total td{background:#fbfaf5;font-weight:600}.tag{background:var(--fog);color:var(--midnight);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.warn{background:var(--warn-bg);color:var(--warn)}.tag.bad{background:var(--bad-bg);color:var(--bad)}.tag.accent{color:#5b4c80;background:#eeeaf5}.notice{background:var(--warn-bg);color:#5c4300;border-radius:8px;padding:12px 14px;font-size:14px}.notice.ok{background:var(--ok-bg);color:#1f5139}.notice.bad{background:var(--bad-bg);color:#6d2323}.steps{border-bottom:1px solid var(--fog);flex-wrap:wrap;gap:4px;margin-bottom:18px;display:flex}.steps a{color:var(--dusty);border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:10px 14px;font-size:14px;text-decoration:none;display:flex}.steps a.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:500}.att{border-collapse:separate;border-spacing:2px;font-size:12px}.att th,.att td{text-transform:none;letter-spacing:0;background:0 0;border:none;padding:0}.att th.day{text-align:center;width:30px;color:var(--dusty);font-size:11px;font-weight:400}.att th.day.off{color:var(--lavender)}.att td.name{white-space:nowrap;background:var(--white);z-index:1;padding:0 10px 0 0;font-size:13px;position:sticky;left:0}.att td.sum{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding:0 8px}.cellbtn{cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:11px;font-weight:600;line-height:1.05;display:inline-flex}.cellbtn small{font-size:9px;font-weight:500}.s-P{background:var(--ok-bg);color:var(--ok)}.s-H{color:var(--warn);background:#fdf0d2}.s-A{background:var(--bad-bg);color:var(--bad)}.s-L{color:#8a3f62;background:#f6e7ee}.s-WFH{color:var(--sapphire);background:#e4ecf6}.s-WO,.s-HOL,.s-NA{color:#b3b0b8;background:#f3f2ee}.s-OFFWORK{color:#5b4c80;background:#eeeaf5}.s-MISSING{color:var(--bad);border:1.5px dashed var(--bad);background:#fff}.cellbtn.ov{box-shadow:inset 0 0 0 2px var(--sapphire)}.cellbtn.late:after{content:"";background:var(--warn);border-radius:50%;width:4px;height:4px;margin-top:1px}.legend{color:var(--dusty);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:4px;display:inline-flex}.legend i{border-radius:4px;width:14px;height:14px;display:inline-block}dialog{border:none;border-radius:12px;width:min(440px,100vw - 32px);padding:20px;box-shadow:0 20px 60px #1a294040}dialog::backdrop{background:#1a294059}.login{place-items:center;min-height:100vh;padding:16px;display:grid}.login .card{width:min(380px,100%);padding:28px}.login .brand{font-family:var(--font-head);color:var(--ink);letter-spacing:.14em;margin-bottom:4px;font-size:22px;font-weight:700}.cal{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal .dow{color:var(--dusty);text-align:center;font-size:11px}.cal .d{aspect-ratio:1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;font-size:12px;display:flex}.cal .d b{font-size:13px}.cal .d small{font-size:10px}@media (max-width:640px){main{padding:16px 16px 48px}.top{gap:10px;padding:0 12px}.top .who span{display:none}h1{font-size:19px}}
