:root{--bg: light-dark(#f4f3f0, #141413);--card: light-dark(#fff, #1e1e1c);--text: light-dark(#1b1b1a, #ecebe7);--muted: light-dark(#6e6c67, #9b9993);--border: light-dark(#dddbd5, #33322f);--primary: light-dark(#a4502a, #e59a6c);--on-primary: light-dark(#fff, #141413);--danger: light-dark(#b3261e, #f2766b);--ok: light-dark(#2f7a3a, #5fbf6e);--sync-ok: light-dark(#2f8a46, #4fb86a);--sync-wait: light-dark(#c28a1b, #e0a93a);--hint-bg: light-dark(#f3ead2, #3a3220);--hint-text: light-dark(#5c4510, #ecd9a6);--overlay: rgba(0, 0, 0, .4);--divider: color-mix(in srgb, var(--border) 60%, transparent);--input-bg: color-mix(in srgb, var(--text) 5%, var(--card));--ring: 0 0 0 3px color-mix(in srgb, var(--primary) 28%, transparent);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-xs: 4px;--radius-sm: 8px;--radius-lg: 14px;--radius-pill: 999px;--fs-xs: 11px;--fs-sm: 13px;--fs-md: 15px;--fs-base: 16px;--fs-lg: 17px;--fs-xl: 26px;--fs-xxl: 30px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04), 0 8px 24px rgba(0, 0, 0, .05);--shadow-card: 0 1px 2px rgba(0, 0, 0, .05), 0 2px 12px rgba(0, 0, 0, .04);--shadow-md: 0 10px 30px color-mix(in srgb, var(--primary) 28%, transparent), 0 2px 6px rgba(0, 0, 0, .12);--control-h: 44px;--control-h-sm: 44px;--tabbar-h: 56px;color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-scheme=cool]{--bg: light-dark(#eef2f6, #10151b);--card: light-dark(#fff, #18202a);--border: light-dark(#d3dbe4, #2a3542);--muted: light-dark(#5f6b78, #93a1b0);--text: light-dark(#18202a, #e6edf4);--primary: light-dark(#1d4f86, #6fa4dc);--on-primary: light-dark(#fff, #10151b)}:root[data-scheme=green]{--bg: light-dark(#eff3ee, #111511);--card: light-dark(#fff, #1a1f19);--border: light-dark(#d4ddd2, #2d352b);--muted: light-dark(#5f6a5c, #98a594);--text: light-dark(#1a2118, #e7ede5);--primary: light-dark(#2f6b3a, #7cbf86);--on-primary: light-dark(#fff, #111511)}:root[data-scheme=contrast]{--bg: light-dark(#fff, #000);--card: light-dark(#fff, #000);--border: light-dark(#000, #fff);--muted: light-dark(#333, #ddd);--text: light-dark(#000, #fff);--primary: light-dark(#000, #fff);--on-primary: light-dark(#fff, #000);--danger: light-dark(#a00000, #ff8a80);--ok: light-dark(#005a14, #7dff9a);--hint-bg: light-dark(#fff1b8, #2a2200);--hint-text: light-dark(#000, #fff)}@supports not (color: light-dark(#000,#fff)){:root,:root[data-scheme]{--bg: #f4f3f0;--card: #fff;--text: #1b1b1a;--muted: #6e6c67;--border: #dddbd5;--primary: #a4502a;--on-primary: #fff;--danger: #b3261e;--ok: #2f7a3a;--sync-ok: #2f8a46;--sync-wait: #c28a1b;--hint-bg: #f3ead2;--hint-text: #5c4510;color-scheme:light}:root[data-scheme=cool]{--bg: #eef2f6;--border: #d3dbe4;--muted: #5f6b78;--text: #18202a;--primary: #1d4f86}:root[data-scheme=green]{--bg: #eff3ee;--border: #d4ddd2;--muted: #5f6a5c;--text: #1a2118;--primary: #2f6b3a}:root[data-scheme=contrast]{--bg: #fff;--border: #000;--muted: #333;--text: #000;--primary: #000;--danger: #a00000;--ok: #005a14;--hint-bg: #fff1b8;--hint-text: #000}}:root[data-size=large]{--fs-xs: 13px;--fs-sm: 15px;--fs-md: 17px;--fs-base: 18px;--fs-lg: 19px;--fs-xl: 29px;--fs-xxl: 33px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:var(--fs-base)/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}h1{font-size:var(--fs-xl);margin:0 0 var(--space-1);letter-spacing:-.01em}h2{font-size:var(--fs-lg);margin:0}h3{font-size:var(--fs-md);margin:0 0 var(--space-3)}h4,.set-label,.card>h3,.group-head h3{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}h4{margin:var(--space-5) 0 var(--space-2)}.card>h3{margin:0 0 var(--space-3)}.muted{color:var(--muted)}.small{font-size:var(--fs-sm);margin:var(--space-2) 0 0}.error{color:var(--danger)}.center{text-align:center}.loading{padding:40vh 0;text-align:center;color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:where(button,[tabindex],a,.ov-due):focus-visible{outline:none;box-shadow:var(--ring)}.topbar{min-height:calc(env(safe-area-inset-top) + 48px);position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top) + 2px) calc(env(safe-area-inset-right) + var(--space-4)) 2px calc(env(safe-area-inset-left) + var(--space-4));background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--fs-lg)}.topbar-title{font-size:var(--fs-lg);font-weight:700;margin:0;letter-spacing:-.01em}.topbar{border-bottom-color:transparent;transition:border-color .15s}.scrolled .topbar{border-bottom-color:var(--border)}.topbar-right{display:flex;align-items:center;gap:var(--space-3)}.topbar-btn{display:grid;place-items:center;width:var(--control-h);height:var(--control-h);margin-right:calc(-1 * var(--space-2));border:0;border-radius:50%;background:none;color:var(--muted)}.topbar-btn .tab-icon{width:22px;height:22px}.topbar-btn.active{color:var(--primary);background:var(--input-bg)}.topbar-left{display:flex;align-items:center;gap:var(--space-1);min-width:0;margin-left:calc(-1 * var(--space-3))}.topbar-left .topbar-btn{margin-right:0;color:var(--primary)}.topbar-left .topbar-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me{font-size:var(--fs-sm);font-weight:600}.me:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:currentColor}.me.pc{color:var(--pc)}.banner{background:var(--danger);color:#fff;padding:var(--space-2) var(--space-4);font-size:var(--fs-md)}.banner.soft{background:var(--hint-bg);color:var(--hint-text);font-size:var(--fs-sm);text-align:center}.content{padding:var(--space-4) calc(env(safe-area-inset-right) + var(--space-3)) calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-4)) calc(env(safe-area-inset-left) + var(--space-3));max-width:640px;margin:0 auto}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:10;display:grid;grid-template-columns:repeat(4,1fr);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:color-mix(in srgb,var(--card) 82%,transparent);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--divider)}.tab{position:relative;height:var(--tabbar-h);border:0;background:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-xs);font-family:inherit;transition:color .15s}.tab .tab-icon{width:44px;height:26px;padding:2px 11px;border-radius:var(--radius-pill);transition:background-color .15s}.tab.active{color:var(--primary);font-weight:600}.tab.active .tab-icon{background:color-mix(in srgb,var(--primary) 14%,transparent);stroke-width:2.1}.tab-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.badge{position:absolute;top:6px;left:calc(50% + 6px);min-width:17px;height:17px;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:var(--fs-xs);font-weight:700;line-height:17px}.setup{min-height:100vh;min-height:100dvh;max-width:420px;margin:0 auto;display:flex;flex-direction:column;justify-content:center;gap:var(--space-4);padding:calc(env(safe-area-inset-top) + var(--space-8)) var(--space-5) calc(env(safe-area-inset-bottom) + var(--space-6))}.setup p{margin:0}.setup .btn.block+.btn.block{margin-top:var(--space-2)}.setup-hero{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:var(--space-2)}.setup-hero h1{font-size:var(--fs-xxl);font-weight:700;letter-spacing:-.02em;margin:0}.setup-hero.compact h1{font-size:var(--fs-xl)}.setup-hero p{max-width:30ch;text-wrap:balance}.setup-logo{width:88px;height:88px;border-radius:22px;margin-bottom:var(--space-3);box-shadow:var(--shadow-md)}.setup-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm)}.setup-card .btn.block+.btn.block{margin-top:0}.setup-card .code-box{margin:0;font-size:var(--fs-md)}.setup-card .qr{margin:0 auto;width:180px;border:1px solid var(--border);border-radius:var(--radius-lg)}.setup-card .small{margin:0;text-align:center}.setup-foot{text-align:center;text-wrap:balance}.setup-steps{display:flex;justify-content:center;gap:6px}.setup-steps span{width:24px;height:4px;border-radius:2px;background:var(--border)}.setup-steps span.on{background:var(--primary)}.person-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.person-tile{font:inherit;font-size:var(--fs-lg);font-weight:600;color:var(--text);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-3) var(--space-4);display:flex;flex-direction:column;align-items:center;gap:var(--space-3);box-shadow:var(--shadow-sm)}.person-tile:active{transform:scale(.97)}.person-tile .avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:var(--fs-xl);font-weight:700}.person-tile.pc .avatar{background:var(--pc)}.person-tile.pc:focus-visible,.person-tile.pc:hover{border-color:var(--pc)}.card{background:var(--card);border:0;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);margin-bottom:var(--space-4);box-shadow:var(--shadow-card)}:root[data-scheme=contrast] .card{border:1px solid var(--border);box-shadow:none}.list{list-style:none;margin:0;padding:0}.item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--divider)}.item:first-child{border-top:0}.item .grow{flex:1;min-width:0}.item-actions{display:flex;gap:var(--space-1);flex-shrink:0}.note{font-size:var(--fs-sm);color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.note .dot{margin-right:var(--space-1)}.group-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-1)}.group-head h3{margin:0}.empty-state{text-align:center;padding:var(--space-8) var(--space-5)}.empty-icon{display:inline-grid;place-items:center;width:56px;height:56px;margin-bottom:var(--space-3);border-radius:50%;background:var(--input-bg);color:var(--muted)}.empty-icon .tab-icon{width:26px;height:26px}.empty-state p{margin:0 0 6px}.car-tag{width:28px;height:28px;border-radius:var(--radius-xs);flex-shrink:0;display:grid;place-items:center;font-size:var(--fs-sm);font-weight:700;color:#fff}.car-tag.cc{background:var(--cc)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;vertical-align:middle}.dot.pc{background:var(--pc)}.pill{font-size:var(--fs-sm);font-weight:600;padding:2px var(--space-2);border-radius:var(--radius-pill);color:#fff;flex-shrink:0}.pill.pc{background:var(--pc)}.pill.free{background:none;color:var(--muted);border:1px dashed var(--border);font-weight:400}.warn,.hint{background:var(--hint-bg);color:var(--hint-text);border-radius:var(--radius-sm);padding:10px var(--space-3);margin:0;font-size:var(--fs-md)}.hint{margin-top:var(--space-3)}.due{font-size:var(--fs-sm);font-weight:600}.due.overdue{color:var(--danger)}.due.soon{color:var(--hint-text)}form{display:flex;flex-direction:column;gap:var(--space-3)}fieldset{border:0;padding:0;margin:0}legend{font-size:var(--fs-sm);color:var(--muted);margin-bottom:var(--space-1)}label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--fs-sm);color:var(--muted);flex:1;min-width:0}label[hidden],.row[hidden],.hint[hidden]{display:none}label>span{display:block}label.check{flex-direction:row;align-items:center;gap:10px;font-size:var(--fs-md);color:inherit}label.check input{width:20px;height:20px;min-height:0;padding:0;-webkit-appearance:checkbox;appearance:auto;accent-color:var(--primary)}input,select,textarea{font:inherit;font-size:var(--fs-base);color:var(--text);background:var(--input-bg);border:1px solid transparent;border-radius:var(--radius-sm);padding:10px var(--space-3);width:100%;min-height:var(--control-h);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--ring)}:root[data-scheme=contrast] :is(input,select,textarea){border-color:var(--border)}.row{display:flex;gap:10px}.edit-row{display:flex;align-items:center;gap:var(--space-2)}.edit-row input.short{width:52px;flex:none;text-align:center}.edit-row input:not(.short){flex:1 1 0;min-width:96px}.edit-row select{width:auto;flex:none}@media(max-width:420px){.edit-row:has(>.icon-btn){flex-wrap:wrap}.edit-row:has(>.icon-btn) select{order:1;flex:1 1 100%}}.preview{min-height:1.4em;margin:calc(-1 * var(--space-1)) 0 0}.seg{display:flex;gap:2px;padding:3px;background:var(--input-bg);border-radius:var(--radius-sm)}.seg{flex-wrap:wrap}.seg-opt{flex:1 1 0;min-width:max-content;flex-direction:row;position:relative}.seg-opt input{position:absolute;opacity:0;pointer-events:none}.seg-opt span,.btn-seg{display:block;width:100%;text-align:center;padding:9px 10px;border-radius:6px;white-space:nowrap;font-size:var(--fs-md);font-weight:500;color:var(--text);background:none;border:0;font-family:inherit;transition:background-color .15s,color .15s}.seg-opt input:checked+span,.btn-seg.active{background:var(--card);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001f}.seg-opt.pc input:checked+span,.btn-seg.pc.active{background:var(--pc);color:#fff}.seg-opt input:focus-visible+span{box-shadow:var(--ring)}:root[data-scheme=contrast] .seg{border:1px solid var(--border)}:root[data-scheme=contrast] .seg-opt input:checked+span,:root[data-scheme=contrast] .btn-seg.active{background:var(--primary);color:var(--on-primary)}.seg-sm .btn-seg{padding:6px 10px}.btn{font:inherit;font-size:var(--fs-base);font-weight:600;min-height:var(--control-h);padding:10px var(--space-4);border-radius:var(--radius-sm);border:1px solid transparent;background:var(--input-bg);color:var(--text);transition:transform .1s,opacity .15s}.btn:active,.icon-btn:active,.tab:active{transform:scale(.97)}.btn:active{opacity:.85}.icon-btn,.tab{transition:transform .1s,color .15s}:root[data-scheme=contrast] .btn{border-color:var(--border)}.btn.block{display:block;width:100%}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.danger{color:var(--danger)}.btn.link{background:none;border:0;color:var(--muted);font-weight:500}.btn.person{min-height:var(--control-h);color:#fff;border:0}.btn.person.pc{background:var(--pc)}.btn.lg{border-radius:var(--radius-lg)}.btn.btn-sm,.btn-sm{min-height:var(--control-h-sm);padding:6px 10px;font-size:var(--fs-sm);width:auto;flex:none}.card .btn.block+.btn.block{margin-top:var(--space-2)}.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.btn-row .btn{font-size:var(--fs-md)}.btn-text{border:0;background:none;color:var(--text);font:inherit;font-size:var(--fs-md);font-weight:600;padding:var(--space-2);text-decoration:underline;text-underline-offset:3px}.icon-btn{border:0;background:var(--input-bg);color:var(--text);border-radius:var(--radius-sm);width:var(--control-h);height:var(--control-h);font-size:20px;line-height:1;flex-shrink:0}.icon-btn.small{width:var(--control-h-sm);height:var(--control-h-sm);font-size:var(--fs-md);border:0;background:none}.icon-btn.danger{color:var(--muted)}.icon-btn{display:inline-grid;place-items:center;padding:0}.icon-btn .tab-icon{width:20px;height:20px;stroke-width:2}.icon-btn.small .tab-icon{width:18px;height:18px}.add-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}.add-btn .tab-icon{width:20px;height:20px;stroke-width:2.25}.overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.overview .card{margin:0}.ov-day{font:inherit;color:var(--text);text-align:left;display:flex;flex-direction:column;gap:6px;padding:var(--space-3);transition:transform .1s}.ov-label{font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}.ov-date{font-weight:500;text-transform:none;letter-spacing:0;margin-left:2px}.ov-car{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ov-row .car-tag{width:24px;height:24px;font-size:var(--fs-xs)}.ov-row .pill{min-width:56px;text-align:center}.due-strip:active{transform:scale(.98)}button.ov-label{display:block;width:100%;min-height:var(--control-h-sm);margin:calc(-1 * var(--space-2)) 0 0;padding:0;border:0;background:none;font-family:inherit;text-align:left}.ov-row .pill{min-height:36px;padding:0 var(--space-3);font:inherit;font-size:var(--fs-sm);font-weight:600;border:0}.ov-row .pill.free{border:1px dashed var(--border);font-weight:400}.ov-row .pill:active{transform:scale(.96)}.car-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;background:var(--cc);vertical-align:0}.ov-row{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:var(--fs-md)}.ov-row .ov-car{flex:1;min-width:0;font-size:inherit;font-weight:400}.ov-row .pill{flex-shrink:0}@media(max-width:420px){.ov-day .ov-row{flex-wrap:wrap;gap:2px}.ov-day .ov-car{flex-basis:100%;font-size:var(--fs-sm)}.ov-day .ov-row .pill{flex:1}}.copy-week .ws-toggle{margin-top:0;padding-top:0;border-top:0}.copy-week .week-pick{margin-top:var(--space-3)}.due-strip{display:flex;align-items:center;gap:var(--space-3);width:100%;margin-bottom:var(--space-4);padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-lg);background:var(--hint-bg);color:var(--hint-text);font:inherit;font-size:var(--fs-sm);text-align:left}.due-strip .tab-icon{width:20px;height:20px;flex-shrink:0}.due-items{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3)}.due-item{display:inline-flex;align-items:center;gap:6px}.due-item .car-tag{width:20px;height:20px;font-size:var(--fs-xs)}.due-item .due{font-weight:600}.cal{padding:var(--space-4) var(--space-3);touch-action:pan-y}.cal .seg-sm{margin:calc(-1 * var(--space-1)) 0 10px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.cal-head h2{flex:1;text-align:center}.cal-head h2 small{font-size:var(--fs-sm);font-weight:400;margin-left:var(--space-1)}.weekdays,.grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.weekdays span{text-align:center;font-size:var(--fs-xs);color:var(--muted);padding-bottom:var(--space-1)}.day{min-height:48px;border:1px solid transparent;border-radius:var(--radius-xs);background:var(--bg);color:var(--text);display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:2px;font:inherit;padding:3px 2px;overflow:hidden}.day:active{transform:scale(.95)}.day.empty{background:none}.day.past .day-num{color:var(--muted)}.day.past .chip{opacity:.55}.day.in-week{border-color:color-mix(in srgb,var(--primary) 35%,transparent)}.day-num{align-self:center;display:grid;place-items:center;min-width:24px;height:24px;border-radius:var(--radius-pill);font-size:var(--fs-sm)}.day.today .day-num{background:var(--primary);color:var(--on-primary);font-weight:700}.chip{display:block;height:16px;font-size:11px;line-height:16px;font-weight:700;color:#fff;border-radius:var(--radius-xs);text-align:center;overflow:hidden}.chip.pc{background:var(--pc)}.chips{display:flex;gap:2px}.chips .chip{flex:1;min-width:0}.chips.dots{justify-content:center;flex-wrap:wrap}.chips.dots .chip{flex:none;width:7px;height:7px;border-radius:50%}.legend{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);justify-content:center;margin-top:var(--space-3);font-size:var(--fs-sm);color:var(--muted)}.legend .dot{margin-right:6px}.week-pick{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.week-label{display:flex;flex-direction:column;align-items:center;font-size:var(--fs-md)}.week-label .muted{font-size:var(--fs-sm)}.week-list{list-style:none;margin:0;padding:0}.week-day{display:flex;gap:var(--space-3);width:100%;text-align:left;font:inherit;color:var(--text);background:none;border:0;border-top:1px solid var(--divider);padding:10px 2px}.week-list li:first-child .week-day{border-top:0}.week-day .wd{width:52px;flex-shrink:0;font-size:var(--fs-md)}.week-day .wd-cars{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.week-day.today .wd b{text-decoration:underline;text-underline-offset:3px}.week-day.past{opacity:.65}.overlay{position:fixed;left:0;right:0;top:var(--vv-top, 0px);height:var(--vv-h, 100%);z-index:50;background:var(--overlay);display:flex;align-items:flex-end;justify-content:center}.dialog{background:var(--card);width:100%;max-width:520px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-5) calc(env(safe-area-inset-right) + var(--space-4)) calc(env(safe-area-inset-bottom) + var(--space-4)) calc(env(safe-area-inset-left) + var(--space-4));display:flex;flex-direction:column;gap:var(--space-3);max-height:calc(100% - env(safe-area-inset-top) - var(--space-4));overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;animation:slide-up .18s ease-out}.dialog:before{content:"";width:36px;height:4px;border-radius:2px;background:var(--border);align-self:center;margin-top:calc(-1 * var(--space-2))}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:none}}@keyframes fade-in{0%{opacity:0}}.overlay{animation:fade-in .18s ease-out}.dialog{animation-duration:.24s;animation-timing-function:cubic-bezier(.2,.9,.3,1)}.sheet-head,.sheet-foot{position:sticky;z-index:1;background:var(--card);margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4)}.sheet-head{top:calc(-1 * var(--space-5));display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-top:calc(-1 * var(--space-2));margin-bottom:var(--space-2);padding-top:var(--space-2);padding-bottom:var(--space-2)}.sheet-foot{bottom:calc(-1 * (env(safe-area-inset-bottom) + var(--space-4)));margin-top:auto;margin-bottom:calc(-1 * (env(safe-area-inset-bottom) + var(--space-4)));padding-top:var(--space-3);padding-bottom:calc(env(safe-area-inset-bottom) + var(--space-4));border-top:1px solid var(--divider)}.sheet-head h3{margin:0;flex:1;text-align:center}#entry-form .sheet-head h3{text-align:left}.dialog :is(input,select,textarea){scroll-margin:80px 0 104px}.code-box{font-family:ui-monospace,Menlo,monospace;font-size:var(--fs-base);letter-spacing:.5px;background:var(--bg);border-radius:var(--radius-sm);padding:var(--space-3);text-align:center;word-break:break-all;margin-bottom:10px;user-select:all;-webkit-user-select:all}.qr{background:#fff;border-radius:var(--radius-sm);padding:var(--space-2);margin:var(--space-3) auto 0;width:200px;max-width:100%}.qr svg{display:block;width:100%;height:auto}.device-list{list-style:none;padding:0;margin:var(--space-3) 0 0}.device-list li{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-top:1px solid var(--divider)}.device-list .small{margin:0}.set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);font-size:var(--fs-md)}.set-row:first-of-type{margin-top:0}.set-label{color:var(--muted);font-size:var(--fs-sm);margin:var(--space-3) 0 6px}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}.swatch{position:relative;width:34px;height:34px;border-radius:50%;border:2px solid var(--card);outline:2px solid transparent;padding:0}.swatch:after{content:"";position:absolute;inset:-6px -4px}.swatch.active{outline-color:var(--text)}.car-card{border-left:4px solid}.car-card.cc{border-left-color:var(--cc)}.stat-big{font-size:var(--fs-xxl);font-weight:700;font-variant-numeric:tabular-nums}.stat-big small{display:block;font-size:var(--fs-sm);color:var(--muted);font-weight:400}.kv{list-style:none;padding:0;margin:var(--space-3) 0 0;font-size:var(--fs-md)}.kv li{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid var(--divider);font-variant-numeric:tabular-nums}.kv li span:first-child{color:var(--muted)}.settle{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.settle td,.settle th{padding:6px var(--space-1);text-align:right;font-variant-numeric:tabular-nums;border-top:1px solid var(--divider)}.settle th{color:var(--muted);font-weight:500;border-top:0}.settle td:first-child,.settle th:first-child{text-align:left}.chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.chart{display:block}.chart .axis{stroke:var(--border)}.chart .bar.cc{fill:var(--cc)}.chart text{font-size:10px;text-anchor:middle;fill:var(--muted)}.chart .bar-val{fill:var(--text)}.toast{position:fixed;left:50%;transform:translate(-50%);z-index:100;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-4));display:flex;align-items:center;gap:var(--space-3);max-width:calc(100vw - var(--space-8));background:var(--text);color:var(--bg);padding:9px var(--space-4);border-radius:var(--radius-sm);font-size:var(--fs-md);box-shadow:0 6px 20px #0000002e;animation:toast-in .22s cubic-bezier(.2,.9,.3,1.2),fade 2.2s ease forwards}.toast.has-action{animation:toast-in .22s cubic-bezier(.2,.9,.3,1.2),fade-long 5s ease forwards}@keyframes toast-in{0%{transform:translate(-50%,16px)}to{transform:translate(-50%)}}.toast span{min-width:0}.toast button{flex-shrink:0}.toast button{border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;min-height:var(--control-h-sm);padding:0 var(--space-2);margin:-8px calc(-1 * var(--space-2)) -8px 0}@keyframes fade{0%,80%{opacity:1}to{opacity:0}}@keyframes fade-long{0%,90%{opacity:1}to{opacity:0}}.pos{color:var(--ok)}.neg{color:var(--danger)}.idle{color:var(--muted);font-weight:500}.ws-date{margin:calc(-1 * var(--space-2)) 0 var(--space-3);font-size:var(--fs-sm);font-weight:600;color:var(--muted);text-align:center}.ws-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2);text-align:center}.ws-grid>div{display:flex;flex-direction:column;gap:2px;min-width:0}.ws-grid b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;white-space:nowrap}.ws-progress{height:8px;border-radius:var(--radius-pill);background:var(--input-bg);overflow:hidden;margin-top:var(--space-4)}.ws-progress i{display:block;height:100%;background:var(--primary);border-radius:inherit;transition:width .4s ease}.ws-sub{margin:var(--space-2) 0 0;font-size:var(--fs-sm);color:var(--muted);text-align:center}.work-status .warn,.work-status .hint{margin-top:var(--space-3)}.ws-place{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3)}.ws-place .seg{flex:1 1 auto}.ql-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.ql-btn{display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto;column-gap:var(--space-2);align-items:center;min-height:56px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;border:1px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer}.ql-btn>.tab-icon,.ql-check{grid-row:1 / 3}.ql-btn .tab-icon{width:20px;height:20px;color:var(--muted)}.ql-text{font-weight:600;font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ql-time{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums;min-height:1.2em}.ql-check{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--ok);color:#fff}.ql-check .tab-icon{width:12px;height:12px;margin:0;color:inherit;stroke-width:3}.ql-btn.is-logged{background:color-mix(in srgb,var(--ok) 8%,var(--card));border-color:color-mix(in srgb,var(--ok) 35%,var(--border))}.ql-btn:active{transform:scale(.98)}.ql-main-wrap{position:sticky;z-index:5;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--space-3));margin-top:var(--space-4)}.btn.ql-main{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);font-size:var(--fs-lg);text-align:left;box-shadow:var(--shadow-md)}.ql-main>span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ql-main small{font-size:var(--fs-sm);font-weight:500;opacity:.85;font-variant-numeric:tabular-nums}.ql-main .tab-icon{width:22px;height:22px;stroke-width:2.1}:is(.ql-btn,.ql-main).just-logged{animation:ql-pulse .7s ease}:is(.ql-btn,.ql-main).is-rejected{animation:ql-shake .45s ease;border-color:var(--danger)}@keyframes ql-pulse{30%{transform:scale(1.03)}}@keyframes ql-shake{20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.ws-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;min-height:var(--control-h);margin-top:var(--space-3);padding:var(--space-2) 0 0;border:0;border-top:1px solid var(--divider);background:none;color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left}.ws-toggle>span{display:flex;flex-direction:column;min-width:0}.ws-toggle .muted{font-size:var(--fs-sm)}.ws-toggle .tab-icon{width:20px;height:20px;color:var(--muted);flex-shrink:0}.work-times[hidden]{display:none}.work-times{margin-top:var(--space-3)}.card>.seg+.set-label{margin-top:var(--space-3)}.work-times{display:flex;flex-direction:column;gap:var(--space-3)}.wt-row{display:flex;align-items:center;gap:var(--space-2)}.wt-row>label{flex:0 0 4.2em;font-size:var(--fs-md);color:var(--text)}.wt-row input{flex:1;min-width:0;padding-left:var(--space-2);padding-right:var(--space-2)}.wt-pair{flex:1;display:flex;align-items:center;gap:var(--space-1);min-width:0}.work-times .muted{margin:0}.stats-switch{margin-bottom:var(--space-4)}.stat-big.pos,.stat-big.neg{margin-top:var(--space-1)}.mode-tag{flex-shrink:0;min-width:58px;padding:3px 6px;border-radius:var(--radius-xs);text-align:center;font-size:var(--fs-xs);font-weight:700;background:var(--input-bg);color:var(--muted)}.mode-office{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary)}.mode-ho{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}.mode-vacation,.mode-holiday{background:var(--hint-bg);color:var(--hint-text)}.mode-sick{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger)}.work-num{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.work-num b{font-size:var(--fs-md)}.item.is-today,.kv li.is-today{background:color-mix(in srgb,var(--primary) 6%,transparent);margin:0 calc(-1 * var(--space-2));padding-left:var(--space-2);padding-right:var(--space-2);border-radius:var(--radius-sm)}.card>.list+.btn{margin-top:var(--space-3)}.btn:has(>.tab-icon){display:flex;align-items:center;justify-content:center;gap:var(--space-2)}.btn>.tab-icon{width:18px;height:18px;flex-shrink:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.toast{animation:fade 2.2s ease forwards!important}.toast.has-action{animation:fade-long 5s ease forwards!important}}.car-switch{margin-bottom:var(--space-4)}.badge-inline{display:inline-block;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:var(--radius-pill);background:var(--danger);color:#fff;font-size:var(--fs-xs);font-weight:700;line-height:18px;vertical-align:1px}.settings-list{padding:var(--space-1) var(--space-4)}.settings-list li+li .settings-row{border-top:1px solid var(--divider)}.settings-row{display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:60px;padding:var(--space-3) 0;border:0;background:none;color:var(--text);font:inherit;text-align:left}.settings-row .grow{flex:1;min-width:0;display:flex;flex-direction:column}.settings-row>.tab-icon{width:18px;height:18px;color:var(--muted);flex-shrink:0}.settings-icon{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary)}.settings-icon .tab-icon{width:20px;height:20px}.settings-row:active{background:var(--input-bg)}.ask{z-index:60}.ask-text{margin:var(--space-2) 0 0;white-space:pre-line;font-size:var(--fs-base)}.btn.danger-fill{background:var(--danger);border-color:var(--danger);color:#fff}.item-open{display:flex;align-items:center;gap:var(--space-3);flex:1;min-width:0;min-height:var(--control-h);padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left}.item-open .grow{display:block;flex:1;min-width:0}.item-open .note{display:block}.item-open>.tab-icon{width:18px;height:18px;color:var(--muted);flex-shrink:0}.item-open:active{opacity:.7}
