:root{color-scheme:light;--bg: #ffffff;--card: #ffffff;--text: #141414;--muted: #8a8a8a;--range-bg: #d5e4f7;--range-text: #1a3f73;--work-ink: #1a3f73;--absence-bg: #f3e4b8;--absence-text: #6e5310;--leave-ink: #8a6914;--off-text: #ffffff;--off-bg: #141414;--hover: #f4f4f4;--shadow: 0 10px 40px rgba(0, 0, 0, .05);--border: #efefef;--font: ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--counter-size: clamp(96px, 14vw, 160px);--counter-weight: 400;--body-size: 14px;--small-size: 13px;--label-size: 11px;--radius: 16px;--gap: 24px;--card-pad: 28px;--page-pad: 28px;--day-radius: 12px}html[data-theme=dark]{color-scheme:dark;--bg: #141414;--card: #1c1c1c;--text: #f5f5f5;--muted: #8a8a8a;--range-bg: #243e66;--range-text: #d5e4f7;--work-ink: #9dbeea;--absence-bg: #5a4a22;--absence-text: #f6e7c1;--leave-ink: #e4c56a;--off-text: #f5f5f5;--off-bg: #0a0a0a;--hover: #2a2a2a;--shadow: 0 10px 40px rgba(0, 0, 0, .35);--border: #2a2a2a}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--body-size);transition:background-color .3s ease,color .3s ease}button,p{font:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.frame{width:min(980px,100%);margin:0 auto;flex:1;display:flex;flex-direction:column}.navbar{display:flex;justify-content:space-between;align-items:center;padding:20px var(--page-pad) 0}.layout{display:grid;grid-template-columns:minmax(320px,440px) minmax(260px,1fr);gap:var(--gap);width:100%;padding:12px var(--page-pad) 48px;align-items:stretch;align-content:center;flex:1}.month-nav{display:grid;grid-template-columns:36px 1fr 36px 36px;align-items:center;gap:4px;margin-bottom:18px}.month-label{text-align:center;color:var(--muted);font-size:var(--small-size);font-variant-numeric:tabular-nums;letter-spacing:.04em}.icon-btn{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--text);cursor:pointer;padding:0;transition:background-color .18s ease,color .18s ease}.icon-btn:hover{background:var(--hover)}.icon-btn.work{color:var(--work-ink)}.icon-btn.leave{color:var(--leave-ink)}.icon-btn.work.active{background:var(--range-bg);color:var(--work-ink)}.icon-btn.leave.active{background:var(--absence-bg);color:var(--leave-ink)}.mode-switch{display:flex;justify-content:center;align-items:center;gap:12px;height:36px;margin-bottom:18px}.summary{display:flex;flex-direction:column;min-height:0}.grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;-webkit-user-select:none;user-select:none;touch-action:none}.weekday{display:grid;place-items:center;height:28px;color:var(--muted);font-size:var(--label-size);font-weight:500}.day{aspect-ratio:1;border:0;border-radius:var(--day-radius);background:transparent;color:var(--text);font-weight:500;font-size:14px;font-variant-numeric:tabular-nums;cursor:pointer;padding:0;transition:background-color .18s ease,color .18s ease}.day.empty{visibility:hidden}.day:disabled{opacity:1}.day.off{background:var(--off-bg);color:var(--off-text);font-weight:400;cursor:default}.day.range{background:var(--range-bg);color:var(--range-text);font-weight:600}.day.absence,.day.range.absence{background:var(--absence-bg);color:var(--absence-text);text-decoration:none}.day:not(:disabled):not(.range):not(.absence):hover{background:var(--hover)}.icon-btn:focus-visible,.day:focus-visible{outline:2px solid var(--muted);outline-offset:2px}.counter-card{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:360px}.counter-value{margin:0;font-size:var(--counter-size);font-weight:var(--counter-weight);letter-spacing:-.04em;line-height:.85;font-variant-numeric:tabular-nums;animation:fade .18s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}@media(max-width:760px){.layout{grid-template-columns:1fr;padding-top:20px}.counter-card{min-height:220px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
