:root{--paper:#f4f5f7;--surface:#fff;--sunk:#f0f1f4;--ink:#2f3033;--muted:#6b6d72;--line:#e3e4e8;--brand:#9e2a2f;--brand-hover:#82222a;--brand-ink:#fff;--brand-soft:#f7eced;--ok:#16794a;--ok-soft:#e5f3eb;--warn:#9a5b0d;--warn-soft:#fbf1df;--info:#2f5d8a;--info-soft:#e8eff7;--danger:#a12020;--danger-soft:#fbe9e9;--shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;--card-shadow:0 1px 3px #2f303312;--font:"Hind Madurai",system-ui,-apple-system,"Segoe UI",sans-serif;--side:264px;--radius:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#121316;--surface:#1b1c20;--sunk:#24262b;--ink:#ececec;--muted:#a0a3aa;--line:#2f3137;--brand:#d9636a;--brand-hover:#e98087;--brand-ink:#1b0a0b;--brand-soft:#36201f;--ok:#5cc493;--ok-soft:#173326;--warn:#e5ac55;--warn-soft:#372a17;--info:#86b2df;--info-soft:#1c2a3a;--danger:#f08b8b;--danger-soft:#3d2222;--shadow:0 1px 2px #0000004d,0 8px 24px #00000059;--card-shadow:0 1px 3px #0006;color-scheme:dark}}*{box-sizing:border-box}#root,body,html{height:100%}body{font-feature-settings:lining-nums tabular-nums;-webkit-font-smoothing:antialiased;background:#f4f5f7;background:var(--paper);color:#2f3033;color:var(--ink);font:400 15px/1.55 Hind Madurai,system-ui,-apple-system,Segoe UI,sans-serif;font:400 15px/1.55 var(--font);font-variant-numeric:lining-nums tabular-nums;margin:0}button,input,select,textarea{color:inherit;font:inherit}button{cursor:pointer}a{color:#9e2a2f;color:var(--brand)}:focus-visible{border-radius:6px;outline:2px solid #9e2a2f;outline:2px solid var(--brand);outline-offset:2px}[hidden]{display:none!important}h1,h2,h3{line-height:1.25;margin:0}.muted{color:#6b6d72;color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.right{text-align:right}.grow{flex:1 1}.row{align-items:center;flex-wrap:wrap;gap:.6rem}.row,.stack{display:flex}.stack{flex-direction:column;gap:1rem}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}.lucide{stroke-width:1.9;flex:none;height:18px;width:18px}.app{display:grid;grid-template-columns:264px minmax(0,1fr);grid-template-columns:var(--side) minmax(0,1fr);min-height:100dvh}.main{display:flex;flex-direction:column;min-width:0}.topbar{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,#f4f5f7 88%,#0000);background:color-mix(in srgb,var(--paper) 88%,#0000);border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);display:flex;gap:.75rem;padding:.9rem 1.75rem;position:-webkit-sticky;position:sticky;top:0;z-index:5}.topbar h1{font-size:1.3rem;font-weight:700}.topbar .sub{color:#6b6d72;color:var(--muted);font-size:.9rem}.content{max-width:1360px;padding:1.5rem 1.75rem 3rem;width:100%}.icon-btn.menu-btn{display:none}.sidebar{background:#fff;background:var(--surface);border-right:1px solid #e3e4e8;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:.5rem;height:100dvh;padding:.9rem .75rem;position:-webkit-sticky;position:sticky;top:0}.brand{align-items:center;color:#2f3033;color:var(--ink);display:flex;gap:.6rem;padding:.3rem .5rem .8rem;text-decoration:none}.brand-mark{background:#9e2a2f;background:var(--brand);border-radius:9px;color:#fff;display:grid;font-weight:700;height:34px;letter-spacing:-.5px;place-items:center;width:34px}.brand-text b{display:block;font-size:1rem;line-height:1.15}.brand-text span{color:#6b6d72;color:var(--muted);display:block;font-size:.75rem}.nav{flex:1 1;margin:0 -.25rem;overflow-y:auto;padding:0 .25rem}.nav-title{color:#6b6d72;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.06em;margin:.9rem .6rem .3rem;text-transform:uppercase}.nav a{align-items:center;border-radius:8px;color:#2f3033;color:var(--ink);display:flex;font-weight:500;gap:.65rem;padding:.48rem .65rem;text-decoration:none}.nav a:hover{background:#f0f1f4;background:var(--sunk)}.nav a[aria-current=page]{background:#f7eced;background:var(--brand-soft);box-shadow:inset 3px 0 0 #9e2a2f;box-shadow:inset 3px 0 0 var(--brand);color:#9e2a2f;color:var(--brand);font-weight:600}.nav a .count{background:#9e2a2f;background:var(--brand);border-radius:999px;color:#fff;color:var(--brand-ink);font-size:.72rem;font-weight:700;margin-left:auto;min-width:1.3rem;padding:0 .45rem;text-align:center}.account{align-items:center;border-top:1px solid #e3e4e8;border-top:1px solid var(--line);display:flex;gap:.6rem;padding-top:.75rem}.avatar{background:#9e2a2f;background:var(--brand);border-radius:50%;color:#fff;color:var(--brand-ink);display:grid;flex:none;font-size:.85rem;font-weight:700;height:34px;place-items:center;width:34px}.avatar.lg{font-size:1.2rem;height:56px;width:56px}.who{display:flex;flex:1 1;flex-direction:column;line-height:1.3;min-width:0}.who b{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.who span{color:#6b6d72;color:var(--muted);font-size:.78rem;text-transform:capitalize}.card{background:#fff;background:var(--surface);border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:10px;border-radius:var(--radius);box-shadow:0 1px 3px #2f303312;box-shadow:var(--card-shadow)}.card-pad{padding:1.1rem 1.25rem}.card-head{align-items:center;border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.75rem;padding:.95rem 1.25rem}.card-head h2{font-size:1.02rem;font-weight:600}.card-head .hint{margin-left:auto}.grid{grid-gap:1rem;display:grid;gap:1rem}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.span2{grid-column:span 2}.stat{display:flex;flex-direction:column;gap:.15rem;padding:1rem 1.2rem}.stat .label{align-items:center;color:#6b6d72;color:var(--muted);display:flex;font-size:.85rem;font-weight:500;gap:.4rem}.stat .value{font-size:1.75rem;font-weight:700;letter-spacing:-.01em;line-height:1.15}.stat .foot{color:#6b6d72;color:var(--muted);font-size:.8rem}.stat.link{color:inherit;cursor:pointer;text-decoration:none}.stat.link:hover{border-color:#9e2a2f;border-color:var(--brand)}.hint{font-size:.85rem;margin:0}.empty,.hint{color:#6b6d72;color:var(--muted)}.empty{padding:2.2rem 1rem;text-align:center}.empty .lucide{height:28px;margin-bottom:.4rem;opacity:.7;width:28px}.btn{align-items:center;background:#fff;background:var(--surface);border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:7px;color:#2f3033;color:var(--ink);display:inline-flex;font-weight:500;gap:.4rem;justify-content:center;line-height:1.4;padding:.42rem .9rem;text-decoration:none;white-space:nowrap}.btn:hover{border-color:color-mix(in srgb,#2f3033 30%,#e3e4e8);border-color:color-mix(in srgb,var(--ink) 30%,var(--line))}.btn.primary{background:#9e2a2f;background:var(--brand);border-color:#9e2a2f;border-color:var(--brand);color:#fff;color:var(--brand-ink);font-weight:600}.btn.primary:hover{background:#82222a;background:var(--brand-hover);border-color:#82222a;border-color:var(--brand-hover)}.btn.ok{background:#16794a;background:var(--ok);border-color:#16794a;border-color:var(--ok);color:#fff;font-weight:600}.btn.danger{color:#a12020;color:var(--danger)}.btn.danger:hover{background:#fbe9e9;background:var(--danger-soft);border-color:#a12020;border-color:var(--danger)}.btn.ghost{background:none;border-color:#0000;color:#6b6d72;color:var(--muted)}.btn.ghost:hover{background:#f0f1f4;background:var(--sunk);color:#2f3033;color:var(--ink)}.btn.sm{font-size:.85rem;padding:.22rem .6rem}.btn:disabled{cursor:not-allowed;opacity:.55}.icon-btn{background:none;border:0;border-radius:8px;color:#6b6d72;color:var(--muted);display:inline-grid;padding:.4rem;place-items:center}.icon-btn:hover{background:#f0f1f4;background:var(--sunk);color:#2f3033;color:var(--ink)}.input,select.input,textarea.input{background:#fff;background:var(--surface);border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:7px;min-width:0;padding:.42rem .7rem}.input:focus{border-color:#9e2a2f;border-color:var(--brand);outline:2px solid color-mix(in srgb,#9e2a2f 40%,#0000);outline:2px solid color-mix(in srgb,var(--brand) 40%,#0000)}textarea.input{min-height:80px;resize:vertical;width:100%}.field{display:flex;flex-direction:column;gap:.3rem}.field>span{color:#6b6d72;color:var(--muted);font-size:.85rem;font-weight:500}.search{position:relative}.search .lucide{color:#6b6d72;color:var(--muted);height:16px;left:.6rem;position:absolute;top:50%;transform:translateY(-50%);width:16px}.search .input{padding-left:2rem;width:260px}.tabs{border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);display:flex;gap:.25rem;margin-bottom:1rem;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid #0000;color:#6b6d72;color:var(--muted);font-weight:500;margin-bottom:-1px;padding:.55rem .9rem;white-space:nowrap}.tabs button[aria-selected=true]{border-bottom-color:#9e2a2f;border-bottom-color:var(--brand);color:#9e2a2f;color:var(--brand);font-weight:600}.seg{background:#fff;background:var(--surface);border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:none;border:0;color:#6b6d72;color:var(--muted);padding:.35rem .8rem}.seg button+button,.seg button+label,.seg label+button{border-left:1px solid #e3e4e8;border-left:1px solid var(--line)}.seg button[aria-pressed=true]{background:#f7eced;background:var(--brand-soft);color:#9e2a2f;color:var(--brand);font-weight:600}.table-wrap{overflow-x:auto}table.t{border-collapse:collapse;font-size:.92rem;width:100%}.t th{background:#fff;background:var(--surface);color:#6b6d72;color:var(--muted);font-size:.8rem;font-weight:600;padding:.6rem .9rem;text-align:left;white-space:nowrap}.t td,.t th{border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line)}.t td{padding:.62rem .9rem;vertical-align:middle}.t tr:last-child td{border-bottom:0}.t tbody tr.click{cursor:pointer}.t tbody tr.click:hover td{background:#f0f1f4;background:var(--sunk)}.person{align-items:center;display:flex;gap:.6rem;min-width:0}.person .avatar{background:#f0f1f4;background:var(--sunk);color:#2f3033;color:var(--ink);font-size:.75rem;height:30px;width:30px}.person>div b{display:block;font-weight:600}.person>div span{display:block;font-size:.8rem}.badge,.person>div span{color:#6b6d72;color:var(--muted)}.badge{align-items:center;background:#f0f1f4;background:var(--sunk);border-radius:999px;display:inline-flex;font-size:.78rem;font-weight:600;gap:.3rem;padding:.05rem .55rem;text-transform:capitalize;white-space:nowrap}.badge.ok{background:#e5f3eb;background:var(--ok-soft);color:#16794a;color:var(--ok)}.badge.warn{background:#fbf1df;background:var(--warn-soft);color:#9a5b0d;color:var(--warn)}.badge.bad{background:#fbe9e9;background:var(--danger-soft);color:#a12020;color:var(--danger)}.badge.info{background:#e8eff7;background:var(--info-soft);color:#2f5d8a;color:var(--info)}.badge.brand{background:#f7eced;background:var(--brand-soft);color:#9e2a2f;color:var(--brand)}.reg{border-collapse:initial;border-spacing:0;font-size:.8rem}.reg td,.reg th{border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);min-width:34px;padding:0;text-align:center}.reg th{background:#fff;background:var(--surface);color:#6b6d72;color:var(--muted);font-weight:600;padding:.4rem 0;position:-webkit-sticky;position:sticky;top:0;z-index:1}.reg th.we{color:#9e2a2f;color:var(--brand)}.reg .name{background:#fff;background:var(--surface);border-right:1px solid #e3e4e8;border-right:1px solid var(--line);left:0;min-width:200px;padding:.4rem .75rem;position:-webkit-sticky;position:sticky;text-align:left;z-index:2}.reg th.name{z-index:3}.reg .tot{border-left:1px solid #e3e4e8;border-left:1px solid var(--line);font-weight:600;min-width:2.6rem;padding:.4rem .5rem}.cell{background:none;border:0;border-radius:6px;color:#6b6d72;color:var(--muted);display:grid;font-size:.72rem;font-weight:700;height:30px;margin:2px;padding:0;place-items:center;width:30px}button.cell:hover{outline:2px solid #9e2a2f;outline:2px solid var(--brand)}.s-present{background:#e5f3eb;background:var(--ok-soft);color:#16794a;color:var(--ok)}.s-absent{background:#fbe9e9;background:var(--danger-soft);color:#a12020;color:var(--danger)}.s-half_day,.s-leave{background:#e8eff7;background:var(--info-soft);color:#2f5d8a;color:var(--info)}.s-holiday{background:#fbf1df;background:var(--warn-soft);color:#9a5b0d;color:var(--warn)}.s-weekly_off{background:#f0f1f4;background:var(--sunk);color:#6b6d72;color:var(--muted)}.s-needs_review{background:#9a5b0d;background:var(--warn);color:#fff}.s-na,.s-not_marked,.s-unmarked{color:color-mix(in srgb,#6b6d72 55%,#0000);color:color-mix(in srgb,var(--muted) 55%,#0000)}.cell.implied{opacity:.6}.reg.dense .cell{font-size:.66rem;height:24px;margin:1px;width:24px}.reg.dense td,.reg.dense th{min-width:27px}.reg.dense .name{min-width:0;padding:.35rem .5rem}.sheet-pages{display:flex;flex-direction:column;gap:.75rem;padding:.75rem}.sheet-pages img{background:#fff;border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:6px;display:block;height:auto;width:100%}.cell.low{box-shadow:inset 0 0 0 2px #9a5b0d;box-shadow:inset 0 0 0 2px var(--warn)}.legend{color:#6b6d72;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.8rem;gap:.9rem}.legend span{align-items:center;display:inline-flex;gap:.35rem}.legend .cell{font-size:.6rem;height:20px;margin:0;width:20px}.overlay{background:#1414186b;display:grid;inset:0;padding:1rem;place-items:center;position:fixed;z-index:40}.modal{background:#fff;background:var(--surface);border-radius:12px;box-shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:calc(100dvh - 2rem);width:min(560px,100%)}.modal.wide{width:min(1100px,100%)}.modal-head{align-items:center;border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);display:flex;gap:.75rem;padding:1rem 1.25rem}.modal-head h2{flex:1 1;font-size:1.05rem}.modal-body{display:flex;flex-direction:column;gap:.9rem;overflow-y:auto;padding:1.1rem 1.25rem}.modal-foot{border-top:1px solid #e3e4e8;border-top:1px solid var(--line);display:flex;gap:.5rem;justify-content:flex-end;padding:.85rem 1.25rem}.drawer{bottom:0;right:0;top:0;width:min(560px,100%);z-index:41}.drawer,.pop{background:#fff;background:var(--surface);box-shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;box-shadow:var(--shadow);display:flex;flex-direction:column;position:fixed}.pop{border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:10px;min-width:170px;padding:.4rem;z-index:50}.pop button{align-items:center;background:none;border:0;border-radius:6px;display:flex;gap:.5rem;padding:.4rem .6rem;text-align:left}.pop button:hover{background:#f0f1f4;background:var(--sunk)}.toasts{bottom:1rem;display:flex;flex-direction:column;gap:.5rem;position:fixed;right:1rem;z-index:60}.toast{background:#2f3033;background:var(--ink);border-radius:8px;box-shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;box-shadow:var(--shadow);color:#f4f5f7;color:var(--paper);max-width:420px;padding:.65rem 1rem}.toast.err{background:#a12020;background:var(--danger);color:#fff}.alert{align-items:flex-start;background:#e8eff7;background:var(--info-soft);border-radius:8px;color:#2f5d8a;color:var(--info);display:flex;gap:.6rem;padding:.7rem .9rem}.alert.warn{background:#fbf1df;background:var(--warn-soft);color:#9a5b0d;color:var(--warn)}.alert.bad{background:#fbe9e9;background:var(--danger-soft);color:#a12020;color:var(--danger)}.alert.ok{background:#e5f3eb;background:var(--ok-soft);color:#16794a;color:var(--ok)}.alert .lucide{margin-top:2px}.spinner{animation:spin .8s linear infinite;border:2px solid #e3e4e8;border-radius:50%;border-top-color:#9e2a2f;border:2px solid var(--line);border-top-color:var(--brand);display:inline-block;height:18px;width:18px}.center{display:grid;padding:3rem;place-items:center}@keyframes spin{to{transform:rotate(1turn)}}.drop{background:#f0f1f4;background:var(--sunk);border:1.5px dashed #e3e4e8;border:1.5px dashed var(--line);border-radius:10px;color:#6b6d72;color:var(--muted);cursor:pointer;padding:1.6rem;text-align:center}.drop.over,.drop:hover{background:#f7eced;background:var(--brand-soft);border-color:#9e2a2f;border-color:var(--brand);color:#9e2a2f;color:var(--brand)}.drop .lucide{height:28px;width:28px}.drop b{color:#2f3033;color:var(--ink)}.steps{align-items:center;color:#6b6d72;color:var(--muted);display:flex;flex-wrap:wrap;font-size:.85rem;gap:.5rem}.steps .on{color:#9e2a2f;color:var(--brand);font-weight:600}.check{align-items:center;border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);cursor:pointer;display:flex;gap:.6rem;padding:.5rem .2rem}.check:last-child{border-bottom:0}.check .box{border:1.5px solid #e3e4e8;border:1.5px solid var(--line);border-radius:6px;display:grid;flex:none;height:20px;place-items:center;width:20px}.check.done .box{background:#16794a;background:var(--ok);border-color:#16794a;border-color:var(--ok);color:#fff}.check.done .label{color:#6b6d72;color:var(--muted);text-decoration:line-through}.progress{background:#f0f1f4;background:var(--sunk);border-radius:99px;height:6px;overflow:hidden}.progress>div{background:#16794a;background:var(--ok);height:100%}.kiosk{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.reader{background:#000;border-radius:12px;min-height:340px;overflow:hidden}.reader video{display:block;width:100%!important}.scan-result{align-items:center;display:flex;flex-direction:column;gap:.5rem;padding:1.5rem;text-align:center}.scan-result.in{background:#e5f3eb;background:var(--ok-soft)}.scan-result.out{background:#e8eff7;background:var(--info-soft)}.scan-result.err{background:#fbe9e9;background:var(--danger-soft);color:#a12020;color:var(--danger)}.scan-result .big{font-size:1.6rem;font-weight:700}.kiosk-full{background:#f4f5f7;background:var(--paper);inset:0;overflow:auto;padding:1.25rem;position:fixed;z-index:30}.id-card{background:#fff;border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:16px;box-shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;box-shadow:var(--shadow);color:#222;overflow:hidden;width:300px}.id-card .top{background:#9e2a2f;color:#fff;padding:.9rem 1.1rem}.id-card .top b{display:block;font-size:1rem}.id-card .top span{font-size:.75rem;opacity:.85}.id-card .body{align-items:center;display:flex;flex-direction:column;gap:.6rem;padding:1.1rem;text-align:center}.id-card .body b{font-size:1.1rem}.id-card .body span{color:#666;font-size:.85rem}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.login-side{background:#9e2a2f;background:var(--brand);color:#fff;display:flex;flex-direction:column;justify-content:space-between;padding:3rem}.login-side h2{font-size:2rem;font-weight:700;line-height:1.2;max-width:22ch}.login-side p{max-width:44ch;opacity:.85}.login-side .brand-mark{background:#fff;color:#9e2a2f;color:var(--brand)}.login-form{display:grid;padding:2rem 1rem;place-items:center}.login-form form{display:flex;flex-direction:column;gap:1rem;width:min(380px,100%)}.login-form h1{font-size:1.5rem}.login-form .input{padding:.6rem .8rem}.login-form .btn{padding:.65rem}.chart{height:240px;padding:.5rem .75rem .75rem 0}.bars{display:flex;flex-direction:column;gap:.55rem;padding:1rem 1.25rem}.bar-row{grid-gap:.6rem;align-items:center;display:grid;font-size:.88rem;gap:.6rem;grid-template-columns:130px 1fr 44px}.bar-row .track{background:#f0f1f4;background:var(--sunk);border-radius:99px;height:10px;overflow:hidden}.bar-row .track>div{background:#9e2a2f;background:var(--brand);border-radius:99px;height:100%;opacity:.85}.bar-row .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kv{grid-gap:.45rem 1rem;display:grid;font-size:.92rem;gap:.45rem 1rem;grid-template-columns:160px 1fr}.kv dt{color:#6b6d72;color:var(--muted)}.kv dd{margin:0}@media (max-width:1100px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.kiosk{grid-template-columns:1fr}}@media (max-width:860px){.app{grid-template-columns:1fr}.sidebar{bottom:0;box-shadow:0 1px 2px #2f30330f,0 8px 24px #2f303314;box-shadow:var(--shadow);left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .2s;width:280px;z-index:45}.sidebar.open{transform:none}.icon-btn.menu-btn{display:inline-grid}.topbar{padding:.75rem 1rem}.content{padding:1rem 1rem 3rem}.g2,.g3{grid-template-columns:1fr}.span2{grid-column:auto}.login{grid-template-columns:1fr}.login-side{display:none}.search .input{width:100%}.search{flex:1 1}.kv{grid-template-columns:120px 1fr}}@media (max-width:520px){.g4{grid-template-columns:1fr 1fr}.stat .value{font-size:1.4rem}.bar-row{grid-template-columns:90px 1fr 36px}}.cap{text-transform:capitalize}@media (max-width:860px){.page-title{min-width:60%;padding-left:2.4rem}.topbar{flex-wrap:wrap}.topbar h1{font-size:1.15rem}}.modal-body>*,.stack>*{flex-shrink:0}button.link{background:none;border:0;color:#9e2a2f;color:var(--brand);cursor:pointer;font:inherit;padding:0;text-align:left;text-decoration:underline}.month-block{border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:10px;border-radius:var(--radius);overflow:hidden}.month-head{align-items:center;background:#f0f1f4;background:var(--sunk);display:flex;flex-wrap:wrap;gap:.6rem;padding:.75rem 1rem}.month-head h3{font-size:1rem;font-weight:600;margin:0}.month-edit{align-items:center;background:#f7eced;background:var(--brand-soft);border-bottom:1px solid #e3e4e8;border-bottom:1px solid var(--line);border-top:1px solid #e3e4e8;border-top:1px solid var(--line);color:#9e2a2f;color:var(--brand);display:flex;flex-wrap:wrap;font-weight:600;gap:.5rem;padding:.7rem 1rem;text-decoration:none}.month-edit:hover{text-decoration:underline}.month-edit .hint{flex-basis:100%;font-weight:400;margin-left:1.6rem}.month-block .table-wrap{border:0;border-radius:0}.my-cal{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(7,minmax(0,1fr))}.my-day{border:1px solid #e3e4e8;border:1px solid var(--line);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:2px;min-height:64px;min-width:0;overflow:hidden;padding:.4rem .5rem;text-align:left}.my-day:not(:disabled):hover{outline:2px solid #9e2a2f;outline:2px solid var(--brand);outline-offset:-1px}.my-day:disabled{cursor:default;opacity:.55}.my-day.implied{opacity:.6}.my-day.today{outline:2px solid #2f3033;outline:2px solid var(--ink);outline-offset:-1px}.my-day.s-na,.my-day.s-unmarked{background:#fff;background:var(--surface);color:#2f3033;color:var(--ink)}@media (max-width:600px){.my-day{min-height:52px;padding:.25rem}.my-day .small{font-size:.7rem}}.slip-list>.slip-row{align-items:center;border-top:1px solid #e3e4e8;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem;padding:.85rem 1.25rem}.slip-list>.slip-row:first-child{border-top:0}.slip-net{align-items:flex-end;display:flex;flex-direction:column;min-width:90px}.slip-net b{font-size:1.05rem}