/* Local assets only. Light glass stays readable over arbitrary photos. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.55;color:#17243b;color-scheme:light;--blue:#0067d9;--card-alpha:.88;--shade:.18;--wall-x:50%;--wall-y:50%;--wallpaper:linear-gradient(145deg,#e4edff 0%,#f5f7fc 48%,#dceef5 100%)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:#edf2fa}body{margin:0;min-height:100vh}body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2}body::before{background-image:var(--wallpaper);background-size:cover;background-position:var(--wall-x) var(--wall-y);background-repeat:no-repeat}body::after{background:rgb(20 35 59 / var(--shade));z-index:-1}body{isolation:isolate}main{max-width:920px;margin:auto;padding:40px max(20px,env(safe-area-inset-right)) calc(120px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:28px}h1{font-size:32px;letter-spacing:-1.2px;line-height:1.2;margin:7px 0 10px}h2{font-size:20px;letter-spacing:-.5px;margin:0 0 16px}h3{font-size:16px;margin:28px 0 14px;color:#243c63}p{margin:8px 0}.eyebrow{font-size:12px;letter-spacing:2px;color:#314a6d}.brand-dot{color:var(--blue)}header p{font-size:14px;color:#30476a}.muted,small,footer{color:#40516a;font-size:13px}.panel,.stats article,.month-bar,.pwa-panel,header{background:rgb(255 255 255 / var(--card-alpha));border:1px solid rgb(255 255 255 / .85);box-shadow:0 6px 24px #1834570b;border-radius:24px}.panel,.pwa-panel{padding:24px;margin-bottom:18px}header{padding:22px 24px}.section-title{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.section-title>span{color:#40516a;font-size:12px}.section-title h2{margin-bottom:18px}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;min-height:46px;padding:11px 16px;border:1px solid #d6deec;border-radius:13px;background:#f5f8ff;color:#245487;touch-action:manipulation;transition:background .15s}button:hover{background:#e6efff}button:active{transform:scale(.985)}button:disabled{opacity:.5;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,.upload-button:focus-visible{outline:3px solid #007aff;outline-offset:3px}.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 12px #0067d91f}.primary:hover{background:#005bc2;color:white}.full{width:100%;display:block;margin-top:12px}input,select,textarea{font-size:16px;min-height:48px;width:100%;min-width:0;max-width:100%;padding:12px;border:1px solid #d4ddeb;border-radius:12px;background:#ffffffeb}textarea{resize:vertical}label{display:block;font-size:14px;font-weight:600;margin:20px 0 8px}fieldset{border:0;min-width:0;padding:0;margin:0}[hidden]{display:none!important}.month-bar{padding:12px;display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;margin-bottom:20px}.month-bar label{margin:0;display:flex;align-items:center;gap:12px;min-width:0;justify-content:center;font-size:13px}.month-bar input{max-width:210px;text-align:center;font-weight:650;border:0;background:transparent;font-size:18px;padding:8px}.month-bar button{font-size:13px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.stats article{padding:20px 24px;min-width:0}.stats article:first-child{grid-column:1/-1;padding:26px;background:linear-gradient(120deg,#ffffffee,#edf5fff2)}.stats article>span{font-size:13px;color:#40516a}.stats article p{font-size:24px;letter-spacing:-.6px;font-weight:650;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.stats article:first-child p{font-size:42px;line-height:1.2;color:#064b9f;margin:12px 0}.stats strong{font-size:28px}.stats small{display:block;line-height:1.5}.workspace{display:block}.weekdays,.calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays{text-align:center;color:#536680;font-size:12px;margin:4px 0 12px}.calendar button{min-width:0;padding:8px 1px;min-height:78px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:18px;border-color:transparent;background:#f2f5fb;color:#52617a;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.calendar button span{font-size:11px;margin-top:3px;line-height:1.4;max-width:100%}.calendar button.work,.day-options .work{background:#dcecff;color:#034b9c}.calendar button.rest,.day-options .rest{background:#e9edf4;color:#475970}.calendar button.leave,.day-options .leave{background:#fff0d5;color:#795213}.calendar .is-today{box-shadow:inset 0 0 0 2px var(--blue)}.legend{display:flex;gap:8px;flex-wrap:wrap;font-size:11px;margin-top:14px;color:#40516a}.legend span{padding:3px 7px;border-radius:6px;background:#edf2f9}.legend .work{background:#dcecff;color:#034b9c}.legend .leave{background:#fff0d5;color:#795213}#record-summary{margin-top:20px}.salary-panel{max-width:700px;margin-left:auto;margin-right:auto}.breakdown{border-top:1px solid #dce3ef;margin-top:26px;padding-top:24px}.breakdown p{font-size:14px;overflow-wrap:anywhere}.breakdown p:last-child{font-size:18px;font-weight:650;color:#074b9e;padding-top:10px}.backup h2{margin-top:0}.pwa-panel p{font-size:13px}.pwa-panel button{margin:8px 8px 8px 0}.pwa-panel summary{min-height:44px;padding-top:10px;cursor:pointer}footer{text-align:center;font-size:11px;line-height:1.8;margin-top:28px}.bottom-nav{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(440px,calc(100% - 32px));display:flex;align-items:center;padding:6px;background:rgb(255 255 255 / .94);border:1px solid #fffffff2;border-radius:24px;box-shadow:0 8px 32px #12244526;z-index:10}.bottom-nav button{border:0;border-radius:18px;min-height:56px;flex:1;background:transparent;color:#52617a;display:flex;gap:3px;flex-direction:column;align-items:center;justify-content:center;padding:5px;font-size:11px}.bottom-nav button[aria-current="page"]{background:#deecff;color:#005abe}.bottom-nav svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.bottom-nav circle{fill:#fff}.keyboard-open .bottom-nav{display:none}.warning{padding:16px;background:#fff1d6;color:#715015;border-radius:14px;margin-bottom:20px}[role=status],[role=alert]{font-size:13px;overflow-wrap:anywhere}#calculation-warning,#day-error{color:#8a4514}dialog{border:1px solid #fff;border-radius:26px;padding:24px;width:calc(100% - 24px);max-width:510px;max-height:calc(100dvh - 28px);overflow-y:auto;overscroll-behavior:contain;background:#f7f9fefc;color:#17243b;box-shadow:0 20px 80px #14263b38}dialog::backdrop{background:#13243b55;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.close{float:right;border:0;padding:0 12px;font-size:25px;background:transparent}.day-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.day-options span{display:block;font-size:11px;margin-top:5px}.day-options button{padding:14px 4px;border:0;min-height:76px}.overtime-editor{border-top:1px solid #dce3ef;margin-top:22px;padding-top:4px}li{margin:10px 0}a{color:#005cc5}.preset-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.preset{min-height:80px;padding:8px 4px;border:2px solid transparent;color:#253c60;font-size:13px}.preset span{display:block;font-size:10px}.preset[aria-pressed=true]{border-color:#0067d9}.sky{background:linear-gradient(145deg,#e4edff,#f5f7fc,#dceef5)}.mist{background:linear-gradient(140deg,#e2e9e6,#f4f5ee,#dfe6ef)}.pearl{background:#f2f3f7}.lavender{background:linear-gradient(145deg,#e8e0f6,#f4eff8,#dae9fa)}.upload-button{display:block;text-align:center;background:#e7f0ff;border:1px solid #c7dafa;border-radius:12px;padding:14px;cursor:pointer;color:#064eaa}.appearance-panel output{float:right;color:#40516a;font-variant-numeric:tabular-nums}.appearance-panel input[type=range]{accent-color:var(--blue);padding:0;min-height:44px;background:transparent;border:0}.appearance-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.appearance-actions .primary{flex:1;min-width:120px}.appearance-panel h3{margin-top:26px}.appearance-panel #remove-wallpaper{font-size:13px}.appearance-panel #appearance-status{margin-top:16px}.appearance-panel{max-width:700px;margin-left:auto;margin-right:auto}
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.panel,.stats article,.month-bar,.pwa-panel,header,.bottom-nav{backdrop-filter:blur(22px) saturate(135%);-webkit-backdrop-filter:blur(22px) saturate(135%)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.panel,.stats article,.month-bar,.pwa-panel,header,.bottom-nav{background:#f5f8fd}}
@media(max-width:600px){main{padding:20px max(12px,env(safe-area-inset-right)) calc(118px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}header{padding:18px 20px;margin-bottom:16px;border-radius:23px}h1{font-size:28px}header p{font-size:12px}.eyebrow{font-size:10px;letter-spacing:1.5px}header button{font-size:12px;padding:8px 12px;flex-shrink:0}.month-bar{grid-template-columns:1fr 1fr 1fr;gap:6px;border-radius:19px;padding:10px;margin-bottom:14px}.month-bar label{grid-column:1/-1;grid-row:1;justify-content:space-between;padding:0 6px}.month-bar input{flex:1;max-width:180px;font-size:19px}.month-bar button{font-size:12px;padding:8px 2px;min-height:46px;border:0}.stats{gap:10px;margin-bottom:16px}.stats article{padding:16px 18px;border-radius:21px}.stats article:first-child{padding:22px}.stats article:first-child p{font-size:37px}.stats article p{font-size:22px}.stats small{font-size:11px}.panel{padding:20px 16px;border-radius:23px}.calendar-panel{padding:20px 8px}.calendar-panel .section-title,.calendar-panel>p,.calendar-panel .legend{padding-left:8px;padding-right:8px}.calendar,.weekdays{gap:2px}.calendar button{min-height:72px;border-radius:11px;font-size:17px}.calendar button span{font-size:11px}.section-title>span{font-size:11px}h2{font-size:18px}.preset-grid{gap:6px}.appearance-actions{gap:6px}.appearance-actions button{font-size:13px;padding:12px}.pwa-panel{padding:18px}.bottom-nav{bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}