:root{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,sans-serif;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f5f5f7;--surface: #ffffff;--surface-muted: #f2f2f2;--text: #1d1d1f;--muted: #6e6e73;--border: rgba(60, 60, 67, .18);--separator: rgba(60, 60, 67, .12);--blue: #007aff;--blue-soft: #eef0f2;--primary: #1d1d1f;--primary-contrast: #ffffff;--green: #248a3d;--red: #c9342d;--orange: #b76e00;--shadow: 0 8px 30px rgba(0, 0, 0, .05);color-scheme:light}:root[data-theme=dark]{--bg: #000000;--surface: #1c1c1e;--surface-muted: #2c2c2e;--text: #f5f5f7;--muted: #98989d;--border: rgba(235, 235, 245, .18);--separator: rgba(235, 235, 245, .12);--blue: #0a84ff;--blue-soft: #172c42;--primary: #f5f5f7;--primary-contrast: #000000;--green: #30d158;--red: #ff453a;--orange: #ff9f0a;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #000000;--surface: #1c1c1e;--surface-muted: #2c2c2e;--text: #f5f5f7;--muted: #98989d;--border: rgba(235, 235, 245, .18);--separator: rgba(235, 235, 245, .12);--blue: #0a84ff;--blue-soft: #172c42;--primary: #f5f5f7;--primary-contrast: #000000;--green: #30d158;--red: #ff453a;--orange: #ff9f0a;color-scheme:dark}}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;min-width:320px;background:var(--bg)}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{border:0;background:transparent;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 65%,transparent);outline-offset:3px}svg{flex-shrink:0}a{color:var(--blue)}h1,h2,h3,p{margin:0}h1,h2,h3{color:var(--text)}h1{font-size:34px;font-weight:700;letter-spacing:-.9px;line-height:1.15}h2{font-size:21px;font-weight:650;letter-spacing:-.4px}h3{font-size:16px;font-weight:650}.app-shell{width:min(960px,100%);margin:0 auto;padding:0 24px}.app-header{height:68px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:8px;color:var(--text);text-decoration:none;font-size:17px;font-weight:650;letter-spacing:-.2px}.brand svg{color:var(--blue)}.personal-label{display:none}.mobile-header-icon{display:flex;align-items:center;color:var(--muted)}main{padding:25px 0 122px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:17px}.page-heading__title{min-width:0;display:flex;align-items:center;gap:3px}.page-heading .primary{flex-shrink:0}.dog-mascot{width:72px;height:72px;display:inline-flex;position:relative;flex:0 0 72px;align-items:center;justify-content:center;margin:-10px -6px -10px 0;padding:0;border-radius:14px}.dog-mascot__sprite{width:72px;height:72px;display:block;position:relative;flex:0 0 72px;image-rendering:pixelated;transform-origin:50% 94%;animation:dog-mascot-breathe 2.8s ease-in-out infinite}.dog-mascot__frame{width:72px;height:72px;display:block;position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;background-size:200% 200%;opacity:0}.dog-mascot__frame--idle{opacity:1;animation:dog-mascot-idle-frame 4s steps(1,end) infinite}.dog-mascot__frame--tail-right{background-position:100% 0;animation:dog-mascot-tail-right-frame 4s steps(1,end) infinite}.dog-mascot__frame--blink{background-position:0 100%;animation:dog-mascot-blink-frame 4s steps(1,end) infinite}.dog-mascot__frame--paw{background-position:100% 100%}.dog-mascot__rest{opacity:1;animation:dog-mascot-settle .45s ease-out both}.dog-mascot__rest--sleep{background-position:100% 0}.dog-mascot__rest--stretch{background-position:0 100%}.dog-mascot__rest--curious{background-position:100% 100%}.dog-mascot[data-pose=lie] .dog-mascot__sprite,.dog-mascot[data-pose=sleep] .dog-mascot__sprite{animation:dog-mascot-rest-breathe 4s ease-in-out infinite}.dog-mascot[data-pose=stretch] .dog-mascot__sprite{animation:dog-mascot-stretch 2.5s ease-in-out both}.dog-mascot.is-still .dog-mascot__sprite,.dog-mascot.is-still .dog-mascot__frame{animation:none}@keyframes dog-mascot-settle{0%{transform:translateY(-2px) scaleY(1.03)}to{transform:none}}@keyframes dog-mascot-rest-breathe{0%,to{transform:scaleY(1)}50%{transform:scaleY(1.035) translateY(-.5px)}}@keyframes dog-mascot-stretch{0%,to{transform:none}45%,65%{transform:scaleX(1.04) scaleY(.95) rotate(-2deg)}}.dog-mascot.is-petted .dog-mascot__frame{animation:none;opacity:0}.dog-mascot.is-petted .dog-mascot__frame--paw{opacity:1}.dog-mascot.is-petted .dog-mascot__sprite{animation:dog-mascot-happy 1.8s ease-in-out both}.dog-mascot__hearts{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.dog-mascot__hearts i{position:absolute;width:9px;height:9px;top:22px;left:9px;background:#d87985;clip-path:polygon(0 0,40% 0,40% 20%,60% 20%,60% 0,100% 0,100% 60%,50% 100%,0 60%);opacity:0;animation:dog-mascot-heart 1.3s ease-out both}.dog-mascot__hearts i:nth-child(2){left:56px;top:18px;animation-delay:.2s}.dog-mascot__hearts i:nth-child(3){left:34px;top:7px;width:7px;height:7px;animation-delay:.4s}.primary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:0 17px;background:var(--primary);color:var(--primary-contrast);font-size:14px;font-weight:650}.primary:hover{filter:brightness(.96)}.balance-grid{display:grid;grid-template-columns:1fr 1fr;margin-bottom:17px;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.balance-card{min-width:0;padding:14px 19px 15px}.balance-card+.balance-card{border-left:1px solid var(--separator)}.balance-title{color:var(--muted);font-size:13px;font-weight:550}.balance-card strong{display:block;margin:5px 0 2px;color:var(--text);font-size:27px;font-weight:650;letter-spacing:-.8px;line-height:1.15;font-variant-numeric:tabular-nums}.balance-card small{color:var(--muted);font-size:12px;font-weight:450;letter-spacing:0}.balance-card p{color:var(--muted);font-size:11px;line-height:1.4}.calendar-card{overflow:hidden;border:1px solid var(--border);border-radius:17px;background:var(--surface);box-shadow:var(--shadow)}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 17px}.calendar-toolbar h2{font-size:19px;text-transform:capitalize}.month-controls{display:flex;align-items:center;gap:2px}.icon-button{width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;color:var(--text)}.icon-button:hover{background:var(--surface-muted)}.icon-button svg{width:19px}.small-button{min-height:36px;border:1px solid var(--border);border-radius:9px;padding:0 12px;color:var(--blue);font-size:13px;font-weight:600}.small-button:hover{background:var(--blue-soft)}.weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:8px 6px;border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);color:var(--muted);font-size:11px;font-weight:600;text-align:center}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:5px 6px}.day{min-width:0;min-height:68px;display:flex;align-items:center;flex-direction:column;gap:3px;position:relative;margin:1px;padding:5px 1px;border:1px solid transparent;border-radius:11px}.day:hover{background:var(--surface-muted)}.day.empty{pointer-events:none}.day.weekend{background:color-mix(in srgb,var(--bg) 42%,transparent)}.day.before-start:not(.has-entry):not(.today){opacity:.48}.day-number{width:28px;height:28px;display:grid;place-items:center;flex-shrink:0;position:relative;color:var(--text);font-size:14px;font-weight:550}.day.today .day-number{border-radius:50%;background:var(--primary);color:var(--primary-contrast);font-weight:700}.day.today{background:color-mix(in srgb,var(--text) 8%,transparent)}.day-empty{color:var(--muted);font-size:13px;opacity:.65}.day-hours{color:var(--text);font-size:12px;font-weight:650;line-height:1.25;font-variant-numeric:tabular-nums}.draft-text,.missing-label,.holiday-label{color:var(--orange);font-size:11px}.missing-label{border-bottom:1px dashed color-mix(in srgb,var(--orange) 55%,transparent);line-height:1.5}.day-type{display:inline-flex;align-items:center;gap:3px;max-width:100%;color:var(--blue);font-size:12px;line-height:1.2}.day-type svg{width:12px;height:12px}.day-type.home{color:#8e6bd1}.day-type.vacation,.day-type.sick{color:var(--green)}.day-type.timeoff{color:var(--orange)}.holiday-mark{width:5px;height:5px;position:absolute;right:-4px;top:4px;border-radius:50%;background:var(--orange)}.calendar-legend{display:flex;flex-wrap:wrap;gap:17px;padding:13px 17px;border-top:1px solid var(--separator);color:var(--muted);font-size:11px}.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:6px;height:6px;display:inline-block;border-radius:50%}.legend-dot.office{background:var(--blue)}.legend-dot.home{background:#8e6bd1}.legend-dot.leave{background:var(--green)}.legend-dot.holiday-dot{background:var(--orange)}.context-row{width:100%;min-height:58px;display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 13px;border:1px solid var(--border);border-radius:14px;background:var(--surface);text-align:left}.context-row>svg:first-child{color:var(--blue)}.context-row>svg:last-child{color:var(--muted)}.context-row>span{min-width:0;flex:1}.context-row strong,.context-row small{display:block}.context-row strong{font-size:13px;font-weight:600}.context-row small{margin-top:2px;color:var(--muted);font-size:12px;line-height:1.45}.context-row-static{cursor:default}.context-row-static>svg:last-child{display:none}.footnote{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:19px;color:var(--muted);font-size:11px;line-height:1.5;text-align:center}.bottom-nav{position:fixed;z-index:5;right:0;bottom:0;left:0;display:flex;justify-content:center;gap:2px;padding:6px 12px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--separator);background:color-mix(in srgb,var(--surface) 88%,transparent);box-shadow:0 -4px 24px #0000000a;-webkit-backdrop-filter:blur(22px) saturate(150%);backdrop-filter:blur(22px) saturate(150%)}.bottom-nav button{min-width:110px;min-height:50px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:3px;border-radius:10px;color:var(--muted);font-size:12px;font-weight:550}.bottom-nav button:hover{background:var(--surface-muted)}.bottom-nav button.active{color:var(--blue)}.bottom-nav svg{width:21px;height:21px}.notice{display:flex;align-items:center;gap:9px;margin-bottom:14px;padding:11px 13px;border-radius:11px;background:var(--blue-soft);color:var(--blue);font-size:13px;line-height:1.45}.notice button{margin-left:auto;color:inherit;font-weight:650;text-decoration:underline}.update-notice button{min-height:32px}.secondary{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--border);border-radius:11px;background:var(--surface);font-size:14px;font-weight:550}.secondary:hover{background:var(--surface-muted)}.danger-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:11px;padding:0 16px;background:var(--red);color:#fff;font-size:14px;font-weight:600}.negative{color:var(--red)!important}.positive{color:var(--green)!important}.loading,.fatal{min-height:80vh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;padding:30px;color:var(--muted);text-align:center}.fatal h1{max-width:500px}.fatal p{max-width:500px;line-height:1.6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.modal{width:min(520px,calc(100% - 32px));max-height:90dvh;overflow:auto;overscroll-behavior:contain;padding:0;border:1px solid var(--border);border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 22px 70px #00000040}.modal::backdrop{background:#0000006b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.modal[open]{animation:modal-in .18s ease-out}.sheet-handle{display:none}.editor-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:22px 24px 18px}.editor-weekday{margin-bottom:4px;color:var(--muted);font-size:13px}.editor-header h2{font-size:24px}.editor-body{padding:0 24px 22px}.kind-selector{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:22px;padding:4px;border-radius:13px;background:var(--surface-muted)}.kind-selector button{min-height:58px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;border-radius:10px;color:var(--muted);font-size:12px}.kind-selector button.selected{background:var(--surface);color:var(--blue);box-shadow:0 1px 5px #00000014}.field-group{margin:0 0 22px;padding:0;border:0}.field-group legend{margin-bottom:9px;color:var(--muted);font-size:13px;font-weight:600}.segmented{display:flex;gap:3px;padding:3px;border-radius:11px;background:var(--surface-muted)}.segmented button{min-height:38px;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:8px;color:var(--muted);font-size:14px;font-weight:550}.segmented button.selected{background:var(--surface);color:var(--text);box-shadow:0 1px 5px #00000014}.time-inputs{display:grid;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:end;gap:8px}.time-inputs label,.stacked-label{min-width:0;display:flex;flex-direction:column;gap:8px;color:var(--muted);font-size:13px;font-weight:600}.time-inputs input,input[type=date],.stacked-label input{width:100%;min-width:0;min-height:50px;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted);color:var(--text);font-size:16px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.time-inputs input{min-height:65px;padding:13px 7px;color:var(--text);font-size:26px;font-weight:550;letter-spacing:-.4px;text-align:center;font-variant-numeric:tabular-nums}.time-inputs input::-webkit-date-and-time-value{text-align:center}input:focus{outline:2px solid var(--blue);outline-offset:1px}.time-separator{padding-bottom:22px;color:var(--muted);text-align:center}.pause-section{padding:20px 0;border-bottom:1px solid var(--separator)}.pause-input{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;font-weight:550}.pause-input>span:first-child{display:inline-flex;align-items:center;gap:7px}.pause-input svg{color:var(--muted)}.pause-input-row{display:flex;align-items:center;gap:9px}.pause-input-row input{width:90px;text-align:right;min-height:50px;padding:12px 13px;border:1px solid var(--border);border-radius:11px;background:var(--surface-muted);color:var(--text);font-size:18px;font-variant-numeric:tabular-nums}.pause-input-row small{color:var(--muted);font-size:13px;font-weight:500}.paid-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0;color:var(--text);font-size:13px;font-weight:550}.paid-field small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:400}.paid-field input{width:83px;min-height:46px;flex-shrink:0;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-muted);color:var(--text);font-size:16px;text-align:center}.day-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:15px 12px;border-radius:12px;background:var(--blue-soft)}.day-summary>div{display:flex;flex-direction:column;gap:6px}.day-summary span{color:var(--muted);font-size:12px}.day-summary strong{color:var(--text);font-size:20px;font-weight:650;letter-spacing:-.4px;white-space:nowrap;font-variant-numeric:tabular-nums}.day-summary small{color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0}.helper{margin-top:11px;color:var(--muted);font-size:12px;line-height:1.6}.absence-explanation{padding:5px 15px 23px;text-align:center}.absence-icon{display:inline-flex;margin-bottom:13px;padding:15px;border-radius:15px;background:color-mix(in srgb,var(--green) 13%,transparent);color:var(--green)}.absence-icon.timeoff{background:color-mix(in srgb,var(--orange) 13%,transparent);color:var(--orange)}.absence-explanation h3{margin-bottom:7px;font-size:19px}.absence-explanation p{color:var(--muted);font-size:14px;line-height:1.6}.editor-body>.stacked-label{margin-bottom:10px}.editor-body>.helper+.day-summary{margin-top:19px}.form-error{display:flex;align-items:flex-start;gap:8px;margin:14px 0 0;padding:11px 13px;border-radius:10px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red);font-size:13px;line-height:1.55}.editor-footer{position:sticky;bottom:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 24px;border-top:1px solid var(--separator);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.editor-footer>.primary{min-height:47px;flex:1}.editor-footer>.secondary{min-width:108px}.delete-button{width:47px;height:47px;display:grid;place-items:center;border-radius:11px;background:color-mix(in srgb,var(--red) 10%,transparent);color:var(--red)}.confirm-modal{width:min(430px,calc(100% - 40px));padding:25px}.confirm-icon{margin-bottom:13px;color:var(--blue)}.confirm-modal h2{font-size:22px;line-height:1.3}.confirm-modal p{margin-top:11px;color:var(--muted);font-size:14px;line-height:1.6}.confirm-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:9px;margin-top:22px}.toast{position:fixed;z-index:20;bottom:calc(79px + env(safe-area-inset-bottom));left:50%;width:max-content;max-width:calc(100% - 32px);display:flex;align-items:center;gap:10px;transform:translate(-50%);padding:12px 14px;border-radius:12px;background:var(--text);color:var(--surface);box-shadow:0 8px 28px #0003;font-size:13px;line-height:1.45}.toast button{display:grid;place-items:center;min-height:24px;margin-left:5px}.stats-total{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;padding:16px 19px;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.stats-total span{color:var(--muted);font-size:13px}.stats-total strong{display:block;margin-top:4px;color:var(--text);font-size:27px;font-weight:650;letter-spacing:-.8px;font-variant-numeric:tabular-nums}.stats-total small{color:var(--muted);font-size:12px;font-weight:450;letter-spacing:0}.stats-total>svg{color:var(--muted)}.stats-period{max-width:250px;margin-bottom:16px}.stats-card,.settings-card,.day-list{overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--surface)}.stats-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:19px;border-top:1px solid var(--separator)}.stats-metrics>div>span{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px}.stats-metrics strong{display:block;margin-top:8px;color:var(--text);font-size:23px;font-weight:650;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.stats-metrics small{color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0}.stats-explanation{padding:0 19px 18px;color:var(--muted);font-size:12px;line-height:1.6}.week-chart{padding:18px 19px;border-top:1px solid var(--separator)}.week-chart-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.week-chart-row>span{min-width:38px}.week-chart-label{white-space:nowrap}.week-chart-row strong{width:42px;color:var(--text);font-size:13px;text-align:right}.bar-track{height:7px;flex:1;overflow:hidden;border-radius:8px;background:var(--surface-muted)}.bar-track>div{height:100%;border-radius:8px;background:var(--text)}.week-chart>p{margin-top:15px;color:var(--muted);font-size:11px;line-height:1.5}.month-chart{padding:9px 19px 17px;border-top:1px solid var(--separator)}.month-stat-row{width:100%;min-height:43px;display:grid;grid-template-columns:minmax(100px,1fr) minmax(100px,1.6fr) auto;align-items:center;gap:13px;padding:4px 0;border-bottom:1px solid var(--separator);text-align:left}.month-stat-row:last-of-type{border-bottom:0}.month-stat-row:hover{background:var(--surface-muted)}.month-stat-label{color:var(--text);font-size:13px;text-transform:capitalize}.month-stat-row .bar-track{min-width:50px}.month-stat-row .bar-track>span{display:block;height:100%;border-radius:8px;background:var(--text)}.month-stat-row strong{min-width:65px;color:var(--text);font-size:13px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}.month-stat-row small{color:var(--muted);font-size:10px;font-weight:450}.month-chart>p{margin-top:13px;color:var(--muted);font-size:11px;line-height:1.5}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:25px 0 11px}.section-heading h2{font-size:19px}.section-heading>span{color:var(--muted);font-size:12px}.day-list-row{width:100%;min-height:72px;display:flex;align-items:center;gap:13px;padding:13px 17px;border-bottom:1px solid var(--separator);text-align:left}.day-list-row:last-child{border-bottom:0}.day-list-row:hover{background:var(--surface-muted)}.list-date{min-width:33px;display:flex;align-items:center;flex-direction:column;gap:2px}.list-date strong{font-size:19px;font-weight:600}.list-date small{color:var(--muted);font-size:11px}.list-description{min-width:0;flex:1}.list-description strong{display:block;overflow:hidden;font-size:14px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.list-description small{display:block;margin-top:4px;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}.list-result{flex-shrink:0;text-align:right}.list-result strong{display:block;font-size:15px;font-weight:600}.list-result small{display:block;margin-top:3px;font-size:11px}.day-list-row>svg{color:var(--muted)}.empty-state{padding:34px 20px;color:var(--muted);text-align:center}.empty-state svg{margin-bottom:13px;color:var(--blue)}.empty-state h3{font-size:16px}.empty-state p{margin-top:7px;font-size:14px;line-height:1.55}.settings-card{margin-bottom:14px;padding:19px}.settings-card-heading{display:flex;align-items:center;gap:11px;margin-bottom:18px}.settings-icon{display:inline-flex;flex-shrink:0;padding:9px;border-radius:11px;background:var(--blue-soft);color:var(--blue)}.settings-card h2{font-size:18px}.settings-card-heading p{margin-top:3px;color:var(--muted);font-size:12px;line-height:1.45}.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.stacked-label>small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.45}.schedule-rule{display:grid;grid-template-columns:1fr auto;gap:10px 15px;margin-top:18px;padding:16px 0;border-top:1px solid var(--separator);border-bottom:1px solid var(--separator);font-size:12px}.schedule-rule span{color:var(--muted)}.schedule-rule strong{font-weight:550;text-align:right}.theme-options{display:flex;gap:7px}.theme-options button{min-height:52px;flex:1;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--border);border-radius:11px;color:var(--muted);font-size:13px}.theme-options button.selected{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.settings-save{width:100%;margin:2px 0 14px}.settings-copy{color:var(--muted);font-size:13px;line-height:1.65}.backup-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.backup-actions .secondary{flex:1;font-size:13px;white-space:nowrap}.install-card{display:flex;gap:13px}.install-card h2{line-height:1.35}.install-card p{margin-top:7px;color:var(--muted);font-size:13px;line-height:1.6}.offline-status{display:flex;align-items:center;gap:6px;margin-top:11px;color:var(--blue);font-size:11px;line-height:1.5}@keyframes dog-mascot-idle-frame{0%,14%,28%,42%,56%,88%,to{opacity:1}7%,21%,35%,49%,82%{opacity:0}}@keyframes dog-mascot-tail-right-frame{0%,14%,28%,42%,56%,to{opacity:0}7%,21%,35%,49%{opacity:1}}@keyframes dog-mascot-blink-frame{0%,88%,to{opacity:0}82%{opacity:1}}@keyframes dog-mascot-breathe{0%,to{transform:translateY(0) rotate(-1deg) scaleY(1)}50%{transform:translateY(-2px) rotate(1.5deg) scaleY(1.025)}}@keyframes dog-mascot-happy{0%,to{transform:translateY(0) rotate(0)}12%{transform:translateY(1px) scale(1.04,.95)}26%{transform:translateY(-9px) rotate(-7deg)}40%{transform:translateY(0) rotate(5deg)}56%{transform:translateY(-5px) rotate(-5deg)}72%{transform:translateY(0) rotate(4deg)}86%{transform:translateY(-2px) rotate(-2deg)}}@keyframes dog-mascot-heart{0%{opacity:0;transform:translateY(0) scale(.6)}20%,60%{opacity:1}to{opacity:0;transform:translateY(-19px) scale(1.1)}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.app-shell{padding:0 16px}.app-header{height:59px}main{padding-top:20px;padding-bottom:calc(115px + env(safe-area-inset-bottom))}h1{font-size:29px}.page-heading{margin-bottom:15px}.page-heading>.primary{width:44px;padding:0;font-size:0}.page-heading>.primary svg{width:21px;height:21px}.balance-grid{margin-bottom:15px}.balance-card{padding:12px 13px 13px}.balance-title{font-size:12px}.balance-card strong{margin-top:4px;font-size:25px}.balance-card p{font-size:10px}.calendar-card{border-radius:15px}.calendar-toolbar{padding:11px 11px 10px 13px}.calendar-toolbar h2{font-size:17px}.month-controls .icon-button{width:36px}.small-button{min-height:34px;padding:0 10px}.weekdays{padding:8px 3px}.calendar-grid{padding:4px 3px}.day{min-height:62px;margin:1px;padding:3px 1px;gap:2px;border-radius:9px}.day-number{width:25px;height:25px;font-size:13px}.day-hours{font-size:11px}.day-type{font-size:12px}.day-type>span{display:none}.day-type.absence{flex-direction:column;gap:0}.day-type.absence>.absence-label{display:block;max-width:100%;overflow:hidden;font-size:9px;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.day-type svg{width:12px;height:12px}.holiday-label,.missing-label{font-size:10px}.calendar-legend{gap:11px;padding:12px 13px;font-size:10px}.legend-dot{width:5px;height:5px}.bottom-nav{justify-content:space-around;gap:0;padding-right:7px;padding-left:7px}.bottom-nav button{min-width:0;flex:1}.context-row{margin-top:10px}.editor-modal{position:fixed;inset:auto 0 0;width:100%;max-width:none;max-height:95dvh;margin:0;border-right:0;border-bottom:0;border-left:0;border-radius:22px 22px 0 0}.sheet-handle{display:block;width:36px;height:4px;margin:9px auto 0;border-radius:5px;background:var(--border)}.editor-header{padding:16px 20px 17px}.editor-header h2{font-size:22px}.editor-body{padding:0 20px 19px}.kind-selector{margin-bottom:19px}.kind-selector button{min-height:56px;font-size:11px}.time-inputs input{font-size:24px}.editor-footer{padding:13px 20px calc(13px + env(safe-area-inset-bottom))}.confirm-modal{border-radius:18px;padding:22px}.confirm-actions{flex-direction:column-reverse}.confirm-actions button{width:100%}.toast{bottom:calc(73px + env(safe-area-inset-bottom));font-size:12px}.stats-total{padding:14px 16px}.stats-total strong{font-size:25px}.stats-period{max-width:none}.stats-card .calendar-toolbar{flex-wrap:wrap}.stats-card .calendar-toolbar h2{font-size:16px}.stats-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 14px;padding:17px}.stats-metrics strong{font-size:23px}.stats-explanation{padding:0 17px 17px}.week-chart{padding:17px}.week-chart-label{min-width:0!important;overflow:hidden;text-overflow:ellipsis}.month-chart{padding:8px 17px 16px}.month-stat-row{grid-template-columns:minmax(83px,1fr) minmax(45px,1.2fr) auto;gap:9px}.month-stat-label{font-size:12px}.month-stat-row strong{min-width:55px;font-size:12px}.day-list-row{gap:9px;padding:12px 13px}.list-description small{font-size:11px}.day-list-row>svg{width:15px}.settings-card{padding:17px 16px}.settings-card-heading{gap:9px;margin-bottom:16px}.settings-card h2{font-size:17px}.settings-form{grid-template-columns:1fr;gap:14px}.theme-options button{flex-direction:column;gap:5px;font-size:11px}.backup-actions{flex-direction:column}.backup-actions .secondary{min-height:46px}.install-card{flex-direction:column}.install-card>.settings-icon{align-self:flex-start}}@media(max-width:360px){.app-shell{padding:0 12px}h1{font-size:27px}.balance-card{padding-right:10px;padding-left:10px}.balance-card strong{font-size:23px}.calendar-toolbar h2{font-size:16px}.day{min-height:58px}.day-hours{font-size:11px}.calendar-legend{column-gap:8px}.editor-body{padding-right:17px;padding-left:17px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.dog-mascot__hearts i{opacity:1}}.kind-selector{grid-template-columns:repeat(3,minmax(0,1fr))}.day-free{color:var(--muted);font-size:12px}.target-exceptions{margin-top:20px;border-top:1px solid var(--separator)}.target-exceptions summary{min-height:68px;display:flex;align-items:center;gap:10px;padding:14px 0 0;cursor:pointer;list-style:none;font-size:14px;font-weight:550}.target-exceptions summary::-webkit-details-marker{display:none}.target-exceptions summary>svg:first-child{color:var(--blue)}.target-exceptions summary>span{flex:1}.target-exceptions summary small{display:block;margin-top:4px;font-size:12px;color:var(--muted);font-weight:400}.target-exceptions summary>svg:last-child{color:var(--muted);transition:transform .25s ease}.target-exceptions[open] summary>svg:last-child{transform:rotate(180deg)}.target-exceptions summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:8px}.target-exceptions__body{animation:calendar-arrive .25s var(--ease-out)}.target-exceptions__fields{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;margin-top:18px}.target-exceptions__fields input{min-height:48px;font-variant-numeric:tabular-nums}.target-exceptions__list{list-style:none;padding:0;margin:18px 0 0}.target-exceptions__list li{display:flex;align-items:center;border-bottom:1px solid var(--separator)}.target-exceptions__edit{display:flex;flex:1;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:66px;padding:10px 4px 10px 0;text-align:left;font-size:14px}.target-exceptions__edit small{display:block;margin-top:4px;color:var(--muted);font-size:12px}.target-exceptions__edit>svg{color:var(--muted)}.target-exceptions__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.kind-selector button{flex-direction:row;gap:7px;min-height:46px}.context-row{border-radius:18px}.settings-card+.settings-card{margin-top:18px}:root{--glass: rgba(255, 255, 255, .78);--glass-edge: rgba(255, 255, 255, .92);--glass-shadow: 0 10px 36px rgba(28, 34, 48, .09), 0 2px 5px rgba(28, 34, 48, .04);--glass-selected: rgba(255, 255, 255, .88);--page-glow: rgba(255, 255, 255, .95);--ease-out: cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{--glass: rgba(37, 37, 41, .82);--glass-edge: rgba(255, 255, 255, .16);--glass-shadow: 0 12px 36px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .05);--glass-selected: rgba(88, 88, 94, .62);--page-glow: rgba(72, 72, 79, .18)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--glass: rgba(37, 37, 41, .82);--glass-edge: rgba(255, 255, 255, .16);--glass-shadow: 0 12px 36px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .05);--glass-selected: rgba(88, 88, 94, .62);--page-glow: rgba(72, 72, 79, .18)}}body{background:radial-gradient(ellipse at 20% 0,var(--page-glow),transparent 65%),var(--bg);background-attachment:fixed}.app-header{padding-top:env(safe-area-inset-top);height:calc(68px + env(safe-area-inset-top))}main{animation:page-arrive .38s var(--ease-out) both}.page-heading{margin-bottom:22px}.balance-grid,.calendar-card,.stats-card,.stats-total,.settings-card,.day-list{border-color:color-mix(in srgb,var(--border) 65%,transparent);border-radius:22px;box-shadow:0 4px 20px #191e2c06,inset 0 1px 0 var(--glass-edge)}.balance-grid{margin-bottom:20px}.balance-card{padding-top:18px;padding-bottom:18px}.balance-card p,.balance-card small{font-size:12px}.balance-card strong{margin-top:7px}.calendar-toolbar{padding-top:15px;padding-bottom:15px}.calendar-grid{animation:calendar-arrive .3s var(--ease-out) both}.calendar-legend{font-size:12px;row-gap:9px}.day.today{background:color-mix(in srgb,var(--text) 5%,transparent)}.day.today .day-number{box-shadow:0 3px 8px #0000001f}button:not(.dog-mascot){transition:transform .2s var(--ease-out),background-color .2s ease,box-shadow .2s ease,color .2s ease}button:not(:disabled):not(.dog-mascot):active{transform:scale(.96)}.primary{border-radius:15px;background:linear-gradient(160deg,color-mix(in srgb,var(--primary) 85%,#888),var(--primary));box-shadow:inset 0 1px #ffffff2e,0 3px 8px #00000017}.icon-button,.small-button{border-radius:50%}.small-button{border-radius:20px}.page-heading>.primary{border-radius:50%}.page-heading>.primary:has(span){border-radius:16px}.bottom-nav{left:50%;right:auto;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(420px,calc(100% - 32px));display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:6px;border:1px solid var(--glass-edge);border-radius:28px;background:var(--glass);box-shadow:var(--glass-shadow);-webkit-backdrop-filter:blur(26px) saturate(140%);backdrop-filter:blur(26px) saturate(140%);isolation:isolate}.bottom-nav__selection{position:absolute;z-index:-1;left:6px;top:6px;bottom:6px;width:calc((100% - 12px) / 3);border-radius:22px;background:var(--glass-selected);border:1px solid var(--glass-edge);box-shadow:0 2px 7px #0000000f,inset 0 1px 0 var(--glass-edge);transition:transform .46s cubic-bezier(.2,.85,.25,1.08);pointer-events:none}.bottom-nav button{min-width:0;min-height:54px;border-radius:22px;font-size:12px;gap:4px}.bottom-nav button.active{color:var(--text)}.bottom-nav button:hover{background:transparent}.bottom-nav button.active svg{animation:icon-settle .42s var(--ease-out);color:var(--blue)}.segmented,.kind-selector{border:1px solid var(--separator);background:color-mix(in srgb,var(--surface-muted) 78%,transparent);border-radius:16px;padding:4px}.segmented button,.kind-selector button{border-radius:12px}.segmented button.selected,.kind-selector button.selected{box-shadow:0 2px 7px #00000012,inset 0 1px 0 var(--glass-edge)}.stats-period{max-width:none}.bar-track>*{transform-origin:left;animation:bar-arrive .6s var(--ease-out) both;transition:width .4s var(--ease-out)}.modal{border-radius:26px;box-shadow:0 28px 80px #0003,inset 0 1px 0 var(--glass-edge)}.modal[open]{animation:sheet-arrive .38s var(--ease-out) both}.modal::backdrop{background:#0f12193d;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.editor-footer{background:var(--glass);border-color:var(--glass-edge);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.time-inputs input,.pause-input-row input,.paid-field input,.stacked-label input{border-radius:14px;transition:box-shadow .2s ease,background-color .2s ease}input:focus{box-shadow:0 0 0 4px color-mix(in srgb,var(--blue) 10%,transparent)}.toast{bottom:calc(100px + env(safe-area-inset-bottom));border-radius:22px;animation:toast-arrive .32s var(--ease-out) both}@keyframes page-arrive{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes calendar-arrive{0%{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-arrive{0%{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes icon-settle{0%{transform:scale(.85)}55%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes bar-arrive{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes toast-arrive{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:600px){.app-header{height:calc(59px + env(safe-area-inset-top))}.page-heading>.primary:has(span){border-radius:50%}.balance-card{padding:14px 13px}.balance-card strong{font-size:clamp(22px,6.4vw,27px)}.calendar-toolbar{padding:12px 10px 12px 14px}.month-controls .icon-button{width:40px}.editor-modal{border-radius:28px 28px 0 0}.day-hours,.holiday-label,.missing-label{font-size:12px}.balance-title{font-size:13px}.kind-selector button{font-size:12px}}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.bottom-nav,.editor-footer{background:var(--surface)}}@media(prefers-reduced-transparency:reduce),(prefers-contrast:more){.bottom-nav,.editor-footer{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav__selection{background:var(--surface-muted);border-color:var(--border)}.modal::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:#00000080}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
