*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246/0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--font-body:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-display:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-num:"Pretendard Variable","Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:#ffffff;--ink:rgba(0,0,0,0.92);--ink-muted:#4a4a4a;--ink-faint:#595959;--line:#e8e8e8;--surface:#f5f5f5;--surface-2:#ececec;--accent:#0e6b5c;--accent-vivid:#12856f;--accent-soft:#e8f3f0;--warn:#8a4b12;--warn-soft:#f6eadc;--ok:#0b5c4f;--ok-soft:#e8f3f0;--radius:10px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--header-h:64px;--tabbar-h:64px;--wrap:720px}html{scrollbar-gutter:stable;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px)}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.65;word-break:keep-all;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input,select,textarea{font-family:inherit;font-size:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--font-display);font-weight:680;letter-spacing:-.03em;color:var(--ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.sr-only{border:0}.app-frame{min-height:100svh;display:flex;flex-direction:column;background:var(--bg)}.app-header{position:sticky;top:0;z-index:20;background:var(--bg)}.header-rule,.tabbar-rule{height:1px;background:var(--line);width:100%}.app-header .header-inner{width:100%;max-width:var(--wrap);margin:0 auto;min-height:var(--header-h);padding:0 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:inline-flex;align-items:center;gap:10px;flex:0 0 auto;min-height:44px}.brand-mark{width:12px;height:12px;border-radius:99px;background:var(--accent)}.brand-name{font-family:var(--font-display);font-weight:720;font-size:18px;letter-spacing:-.04em;line-height:1.2}.header-nav{display:none;align-items:center;gap:4px}.header-nav .nav-link{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 12px;border-radius:8px;color:var(--ink-muted);font-size:14px;font-weight:580;line-height:1.3}.header-nav .nav-link svg{width:16px;height:16px;color:var(--ink-faint)}.header-nav .nav-link.is-active{background:var(--accent-soft);color:var(--ok)}.header-nav .nav-link.is-active svg{color:var(--ok)}.header-nav .nav-link:hover{background:var(--surface);color:var(--ink)}.header-nav .nav-link.is-active:hover{background:var(--accent-soft);color:var(--accent)}.app-main{width:100%;min-width:0;flex:1 0 auto;padding:8px 20px calc(28px + var(--tabbar-h) + env(safe-area-inset-bottom))}.app-footer,.app-main>*{width:100%;max-width:var(--wrap);margin:0 auto}.app-footer{display:none;flex-shrink:0;padding:16px 20px 24px;color:var(--ink-faint);font-size:13px}.tabbar-wrap{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--bg)}.tabbar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;min-height:var(--tabbar-h);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--bg)}.tabbar .nav-link{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:48px;color:var(--ink-faint);font-size:11px;font-weight:620;line-height:1.2}.tabbar .nav-link svg{width:22px;height:22px}.tabbar .nav-link.is-active{color:var(--ok)}.calendar-page,.home-main,.log-main,.stages-page,.stages-wrap{display:flex;flex-direction:column;gap:24px;width:100%;min-width:0;padding-bottom:24px}.page-head{display:flex;flex-direction:column;gap:6px}.current-stage-block h1,.month-nav h1,.page-head h1{margin:0;font-size:clamp(26px,6vw,36px);line-height:1.22}.page-head p:not(.kicker){margin:0;color:var(--ink-muted);max-width:42rem}.kicker{margin:0;color:var(--ink-faint);font-size:13px;font-weight:620;letter-spacing:.02em}.timer-panel{align-items:stretch;gap:12px;padding:8px 0 4px}.timer-panel,.timer-status{display:flex;flex-direction:column}.timer-status{gap:8px}.status-chip{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 12px;border-radius:99px;font-size:13px;font-weight:680}.status-chip.is-on{background:var(--accent-soft);color:var(--accent)}.status-chip.is-off{background:var(--surface);color:var(--ink-muted)}.status-dot{width:8px;height:8px;border-radius:99px;background:currentColor}.status-chip.is-on .status-dot{box-shadow:0 0 0 4px rgba(18,133,111,.16)}.timer-kicker{margin:0;color:var(--ink-muted);font-size:15px}.timer-clock{margin:8px 0 0;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:clamp(36px,9vw,56px);font-weight:720;letter-spacing:-.05em;line-height:1.12}.timer-sub{margin:0;color:var(--ink-faint);font-size:14px}.timer-btn{width:100%;min-height:64px;border:0;border-radius:12px;font-size:18px;font-weight:700;letter-spacing:-.02em;line-height:1.2}.timer-btn.is-off{background:var(--accent);color:#ffffff}.timer-btn.is-off:hover{background:#0c5d50}.timer-btn.is-on{background:var(--surface-2);color:var(--ink)}.timer-btn:disabled{opacity:.7}.today-meter{display:flex;flex-direction:column;gap:8px;padding-top:8px}.meter-head{display:flex;justify-content:space-between;gap:12px;color:var(--ink-muted);font-size:13px;font-variant-numeric:tabular-nums}.meter-track{position:relative;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.meter-fill{display:block;height:100%;background:var(--accent-vivid);border-radius:inherit}.panel{display:flex;flex-direction:column;gap:16px}.panel,.panel-quiet{padding:4px 0 0;background:transparent}.panel-copy{display:flex;flex-direction:column;gap:4px}.day-detail h2,.panel-copy h2{margin:0;font-size:18px;line-height:1.3}.empty-copy,.meta-line,.panel-copy p{margin:0;color:var(--ink-muted);font-size:15px}.text-link,.text-toggle{align-self:flex-start;background:none;border:0;padding:8px 0;color:var(--accent);font-weight:650;min-height:44px}.text-toggle{color:var(--ink-muted);text-decoration:underline;text-underline-offset:3px}.btn-ghost,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border-radius:8px;font-weight:650;line-height:1.2}.btn-secondary{border:0;background:var(--accent);color:#ffffff}.btn-secondary:hover{background:#0c5d50}.btn-ghost{border:0;background:transparent;color:var(--ink-muted)}.btn-ghost:hover{background:var(--surface);color:var(--ink)}.btn-ghost:disabled,.btn-secondary:disabled{opacity:.6}.banner{margin:0;padding:10px 12px;border-radius:8px;font-size:14px;font-weight:600}.banner-ok{background:var(--ok-soft);color:var(--ok)}.banner-error{background:var(--warn-soft);color:var(--warn)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{color:var(--ink-muted);font-size:13px;font-weight:620}.field input,.field select,.field textarea{width:100%;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#ffffff;color:var(--ink);font-variant-numeric:tabular-nums}.field input[type=date],.field input[type=datetime-local]{min-width:0}.field input:focus{border-color:var(--accent)}.field-inline{flex-direction:row;align-items:center;gap:8px}.field-inline input{width:72px}.edit-form,.goal-form,.manual-form,.stack-form{display:flex;flex-direction:column;gap:12px}.goal-form,.jump-form{flex-direction:row;flex-wrap:wrap;align-items:flex-end}.jump-form{padding-top:4px}.jump-form .field{flex:1 1 180px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;flex-wrap:wrap;gap:8px}.check-row{display:flex;align-items:center;gap:8px;min-height:44px;color:var(--ink-muted)}.check-row input{width:18px;height:18px;accent-color:var(--accent)}.session-list,.session-stack,.stage-list{display:flex;flex-direction:column;gap:16px}.day-sessions,.session-list,.stage-list{list-style:none;margin:0;padding:0}.session-item,.stage-item{display:flex;flex-direction:column;gap:8px;padding:0}.day-sessions li+li,.session-item+.session-item,.stage-item+.stage-item{box-shadow:none}.session-main,.stage-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 auto}.session-time,.stage-title{margin:0;font-weight:650;line-height:1.35;font-variant-numeric:tabular-nums}.session-meta{margin:0;color:var(--ink-faint);font-size:13px;font-variant-numeric:tabular-nums}.session-arrow{display:inline-block;padding:0 6px;color:var(--ink-faint)}.meta-sep{display:inline-block;width:1px;height:10px;margin:0 8px;background:var(--line);vertical-align:-1px}.session-actions{display:flex;flex-wrap:wrap;flex:0 0 auto;gap:4px}.now-badge{display:inline-flex;align-items:center;margin-left:8px;padding:2px 8px;border-radius:99px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700;vertical-align:1px}.stage-item.is-current{background:transparent}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.month-nav h1{flex:1 1 auto;min-width:0;text-align:center;font-size:clamp(22px,5.6vw,36px);line-height:1.22}.month-btn{flex:0 0 auto}.month-summary{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-label{margin:0;color:var(--ink-faint);font-size:13px}.stat-value{margin:4px 0 0;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:28px;font-weight:700;letter-spacing:-.04em;line-height:1.2}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cal-weekday{text-align:center;color:var(--ink-faint);font-size:12px;font-weight:620;padding:4px 0}.cal-cell{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;min-width:0;padding:6px 0;border:0;border-radius:8px;background:transparent;color:var(--ink)}.cal-cell.is-empty{min-height:56px;pointer-events:none}.cal-heat{position:absolute;left:10px;right:10px;bottom:6px;height:3px;border-radius:99px;background:var(--accent-vivid)}.cal-day{font-variant-numeric:tabular-nums;font-size:14px;font-weight:650;line-height:1.2}.cal-hours{font-variant-numeric:tabular-nums;font-size:11px;color:var(--ink-muted);line-height:1.2;min-height:1.2em}.cal-cell.is-today .cal-day{color:var(--accent);font-weight:720}.cal-cell.is-selected{background:var(--surface)}.cal-cell.has-wear .cal-hours{color:var(--accent);font-weight:700}.day-detail{display:flex;flex-direction:column;gap:8px}.day-total{margin:0;font-variant-numeric:tabular-nums;font-size:18px;font-weight:680;line-height:1.3}.day-sessions{display:flex;flex-direction:column;gap:8px}.day-sessions li{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums;color:var(--ink-muted)}.current-stage-block{display:flex;flex-direction:column;gap:10px}.current-stage-block p{margin:0;color:var(--ink-muted)}.current-stage-block .kicker{color:var(--ink-faint)}.error-page,.loading-page,.meta-state{display:flex;flex-direction:column;gap:12px;padding:48px 0}.loading-bar{width:120px;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.loading-bar span{display:block;width:40%;height:100%;background:var(--accent-vivid);animation:load 1.1s ease-in-out infinite}@keyframes load{0%{transform:translateX(-120%)}to{transform:translateX(320%)}}@media (min-width:800px){.header-nav{display:flex}.tabbar-wrap{display:none}.app-footer{display:block}.app-main{padding-top:20px;padding-bottom:48px}.session-item,.stage-item{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:16px}.session-item:has(.edit-form),.stage-item:has(.edit-form){flex-direction:column}.home-main,.log-main,.stages-wrap{gap:32px}.timer-btn{max-width:360px}.cal-cell{min-height:72px}}@media (max-width:379px){.app-main{padding-left:16px;padding-right:16px}.form-grid{grid-template-columns:1fr}.timer-clock{font-size:34px}.cal-hours{font-size:10px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.flex{display:flex}.grid{display:grid}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}