:root{font-family:Pretendard,Noto Sans KR,Apple SD Gothic Neo,Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#17241f;background:#edf2ee;font-synthesis:none;text-rendering:optimizeLegibility;--green-950: #0c2f2a;--green-900: #123c35;--green-700: #25685b;--green-600: #2f7d6d;--green-100: #dceddf;--cream: #fafbf8;--surface: #ffffff;--line: #dfe7e1;--muted: #65736c;--orange: #e76f32;--danger: #bc3e37;--shadow: 0 12px 40px rgba(12, 47, 42, .08)}*{box-sizing:border-box}html{min-width:320px;background:var(--green-950)}body{margin:0;min-width:320px;min-height:100vh;background:#edf2ee}button,input,select,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(231,111,50,.38);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit}code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.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-open{overflow:hidden}.eyebrow{margin:0 0 5px;color:#6c8178;font-size:.68rem;font-weight:800;letter-spacing:.15em}.dashboard-page{min-height:100vh;padding-bottom:calc(104px + env(safe-area-inset-bottom))}.dashboard-header{color:#fff;background:var(--green-900);padding:max(18px,env(safe-area-inset-top)) 18px 24px;border-radius:0 0 28px 28px;box-shadow:0 12px 30px #0c2f2a29}.topline,.week-heading,.section-title,.settings-card-heading,.settings-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.topline h1{margin:0;font-size:1.5rem;letter-spacing:-.035em}.dashboard-header .eyebrow{color:#9ec4b9}.settings-link{display:flex;align-items:center;gap:6px;min-height:44px;padding:0 12px;border:1px solid rgba(255,255,255,.16);border-radius:14px;color:#fff;text-decoration:none;font-size:.85rem;font-weight:700;background:#ffffff12}.settings-link>span:first-child{font-size:1.05rem}.week-heading{margin-top:24px;align-items:flex-end}.week-heading>div:first-child{display:grid;gap:4px}.week-heading>div:first-child span{color:#a9c8c0;font-size:.78rem}.week-heading>div:first-child strong{font-size:1.24rem;letter-spacing:-.02em}.connection-pill{display:flex;align-items:center;gap:6px;min-height:28px;padding:4px 9px;border-radius:999px;color:#c7e8de;background:#2e7d6d57;font-size:.72rem;font-weight:700}.connection-pill i{width:7px;height:7px;border-radius:50%;background:#62d5a9;box-shadow:0 0 0 3px #62d5a924}.connection-pill--offline{color:#ffe1cf;background:#e76f3240}.connection-pill--offline i{background:#ff9d69}.summary-strip{display:grid;grid-template-columns:1fr 1fr 1.1fr;gap:1px;margin-top:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:#ffffff14}.summary-strip>div{min-width:0;padding:12px 10px;background:#ffffff09}.summary-strip span{display:block;margin-bottom:4px;color:#aac5bd;font-size:.7rem}.summary-strip strong{font-size:1.12rem;letter-spacing:-.03em}.summary-strip small{margin-left:3px;color:#bed2cc;font-size:.66rem}.summary-strip .summary-remaining{background:#62d5a917}.summary-strip .summary-remaining strong{color:#8ce6c4}.last-updated{margin:9px 2px -9px;color:#8fb0a7;font-size:.66rem;text-align:right}.offline-banner,.error-banner{position:relative;z-index:5;padding:12px 16px;font-size:.78rem;line-height:1.45}.offline-banner{color:#5e2b13;background:#ffe1cf;border-bottom:1px solid #ffc39f}.error-banner{display:flex;justify-content:space-between;gap:12px;color:#6d201c;background:#ffe3e0}.error-banner button{min-height:36px;border:0;color:inherit;background:transparent;font-weight:800}.schedule-section{margin:14px 12px 0;padding:18px 12px 14px;border:1px solid rgba(32,87,75,.07);border-radius:22px;background:var(--surface);box-shadow:var(--shadow)}.schedule-section--current{margin-top:18px}.section-title{margin:0 4px 18px}.section-title h2{margin:0;font-size:1.12rem;letter-spacing:-.025em}.sync-label{color:var(--green-600);font-size:.72rem;font-weight:700}.chart-scroll{overflow-x:auto;padding:4px 1px 1px;overscroll-behavior-inline:contain;scrollbar-width:thin}.chart-grid{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:7px;min-width:336px}.chart-day{min-width:0;text-align:center}.chart-value{height:34px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1px;overflow:hidden;white-space:nowrap;line-height:1;letter-spacing:-.025em}.chart-value strong{font-size:.7rem}.chart-value span{color:#819087;font-size:.53rem}.bar-track{position:relative;height:244px;overflow:visible;border:1px solid #dce7e0;border-radius:9px 9px 4px 4px;background:repeating-linear-gradient(to top,#f7faf7 0 calc(25% - 1px),#e8eee9 25%)}.bar-track--closed{display:flex;align-items:center;justify-content:center;background:#eef1ef;border-style:dashed}.closed-label{writing-mode:vertical-rl;color:#8b9791;font-size:.61rem;letter-spacing:.1em}.bar-remaining,.bar-segment{position:absolute;inset-inline:0;width:100%;min-width:0;padding:0;border:0}.bar-remaining{z-index:1;color:#738079;background:transparent;font-size:.55rem}.bar-remaining:hover{background:#2f7d6d0f}.bar-remaining:after{content:"";position:absolute;left:0;right:0;top:50%;height:max(44px,100%);transform:translateY(-50%)}.bar-remaining span{writing-mode:vertical-rl;max-height:90%;overflow:hidden}.bar-segment{z-index:2;min-height:2px;overflow:visible;border-top:1px solid rgba(255,255,255,.65);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.38)}.bar-segment:after{content:"";position:absolute;z-index:3;left:0;right:0;top:50%;height:max(44px,100%);transform:translateY(-50%)}.bar-segment span{position:absolute;z-index:4;left:50%;top:50%;max-height:calc(100% - 3px);overflow:hidden;transform:translate(-50%,-50%);font-size:.55rem;font-weight:800;white-space:nowrap;pointer-events:none}.over-badge{position:absolute;z-index:8;top:-9px;left:50%;transform:translate(-50%);padding:2px 4px;border-radius:4px;color:#fff;background:var(--danger);font-size:.52rem;font-weight:800}.chart-day--warning .bar-track{border:2px solid var(--danger);box-shadow:0 0 0 3px #bc3e3714}.chart-date{display:grid;gap:1px;padding-top:7px}.chart-date strong{font-size:.76rem}.chart-date span{color:#76847d;font-size:.58rem}.day-add{display:grid;place-items:center;width:32px;height:32px;margin:5px auto 0;padding:0;border:1px solid #cfdcd5;border-radius:50%;color:var(--green-700);background:#f7faf7;font-size:1rem;font-weight:700}.chart-legend{display:flex;flex-wrap:wrap;gap:7px 12px;margin:14px 2px 0;padding-top:12px;border-top:1px solid #edf1ed}.legend-item{display:flex;align-items:center;gap:6px;min-width:0;max-width:44%;color:#58675f;font-size:.72rem}.legend-item i{flex:0 0 auto;width:9px;height:9px;border-radius:3px}.legend-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-empty{color:#89958f;font-size:.7rem}.schedule-section--next{background:#f8faf8}.next-week-heading{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:48px;margin:-6px 0 8px;padding:0 4px;border:0;color:inherit;background:transparent;text-align:left}.next-week-heading>span:first-child{display:grid;gap:2px}.next-week-heading small{color:#829087;font-size:.62rem;font-weight:800;letter-spacing:.12em}.next-week-heading strong{font-size:.96rem}.next-week-heading>span:last-child{color:var(--green-700);font-size:.68rem;font-weight:700}.capacity-chart--compact .bar-track{height:132px}.capacity-chart--compact .chart-value{height:31px}.capacity-chart--compact .chart-legend{display:none}.capacity-chart--compact .day-add{width:30px;height:30px}.schedule-section--next.is-expanded .bar-track{height:224px}.floating-add{position:fixed;z-index:20;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;gap:8px;min-height:54px;padding:0 20px;border:0;border-radius:18px;color:#fff;background:var(--orange);box-shadow:0 10px 28px #c44f1b4d;font-weight:800}.floating-add span{font-size:1.18rem}.sheet-layer,.dialog-layer{position:fixed;z-index:100;inset:0;display:grid;align-items:end}.sheet-backdrop,.dialog-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:#071a168c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.bottom-sheet{position:relative;z-index:1;width:min(100%,660px);max-height:min(91vh,850px);margin-inline:auto;overflow:hidden;border-radius:26px 26px 0 0;background:var(--surface);box-shadow:0 -16px 50px #071a1640;animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(24px);opacity:.5}}.sheet-handle{width:42px;height:5px;margin:9px auto 3px;border-radius:5px;background:#cfdbd4}.sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:13px 18px 12px;border-bottom:1px solid #edf1ed}.sheet-header h2{margin:0;font-size:1.18rem;letter-spacing:-.025em}.sheet-header p{margin:5px 0 0;color:var(--muted);font-size:.72rem;line-height:1.4}.icon-button{flex:0 0 44px;width:44px;height:44px;margin:-7px -8px 0 0;border:0;color:#69776f;background:transparent;font-size:1.75rem}.sheet-content{max-height:calc(min(91vh,850px) - 86px);overflow-y:auto;padding:16px 18px calc(20px + env(safe-area-inset-bottom))}.sheet-state{min-height:180px;display:grid;place-items:center;color:var(--muted)}.plan-form{display:grid;gap:15px}.plan-form label,.capacity-default-form label,.override-form label{display:grid;gap:7px;color:#35453d;font-size:.78rem;font-weight:700}.plan-form label>span small,.override-form label>span small{color:#89958f;font-weight:500}input,select,textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid #ccd9d1;border-radius:12px;color:#17241f;background:#fff}textarea{min-height:82px;resize:vertical;line-height:1.5}input:disabled,select:disabled,textarea:disabled{color:#5f6c65;background:#f0f3f1}.quantity-input{position:relative}.quantity-input input{padding-right:54px}.quantity-input>span{position:absolute;right:13px;top:50%;transform:translateY(-50%);color:#64736b;font-size:.76rem;font-weight:700}.plan-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:11px;border-radius:12px;background:#f4f7f4}.plan-meta div{display:grid;gap:3px}.plan-meta dt{color:#7a8780;font-size:.66rem}.plan-meta dd{margin:0;font-size:.7rem}.form-error,.inline-notice{padding:11px 12px;border-radius:11px;font-size:.76rem;line-height:1.45}.form-error{color:#78241f;border:1px solid #f3c0bc;background:#fff0ee}.inline-notice{margin-bottom:14px;color:#664019;background:#fff0dc}.form-actions{display:flex;gap:9px;padding-top:3px}.button{min-height:46px;padding:0 15px;border:1px solid transparent;border-radius:12px;font-weight:800}.button--grow{flex:1}.button--primary{color:#fff;background:var(--green-700)}.button--ghost{color:#425149;border-color:#cfdad4;background:#fff}.button--danger{color:#fff;background:var(--danger)}.button--danger-outline{color:var(--danger);border-color:#eab9b5;background:#fff}.button--small{min-height:38px;padding-inline:10px;font-size:.72rem}.dialog-layer{z-index:160;align-items:center;justify-items:center;padding:20px}.confirm-dialog{position:relative;z-index:1;width:min(100%,370px);padding:22px;border-radius:20px;background:#fff;box-shadow:0 18px 60px #071a164d}.confirm-dialog h2{margin:0;font-size:1.08rem}.confirm-dialog p{margin:10px 0 20px;color:#5d6b63;font-size:.84rem;line-height:1.55}.dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.toast-region{position:fixed;z-index:220;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));display:grid;gap:7px;width:min(calc(100% - 28px),420px);transform:translate(-50%);pointer-events:none}.toast{padding:13px 15px;border-radius:13px;color:#fff;background:#263d35;box-shadow:0 8px 24px #071a1638;font-size:.8rem;font-weight:700;text-align:center}.toast--success{background:var(--green-700)}.toast--error{background:var(--danger)}.update-banner{position:fixed;z-index:210;left:12px;right:12px;bottom:calc(14px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:7px;max-width:560px;margin:auto;padding:10px;border:1px solid #d7e2db;border-radius:15px;background:#fff;box-shadow:0 12px 36px #071a1633;font-size:.72rem}.update-banner span{flex:1}.setup-page,.loading-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 10%,#dfeae3,#eef2ef 48%)}.setup-card{width:min(100%,530px);padding:32px 26px;border:1px solid rgba(32,87,75,.1);border-radius:26px;background:#ffffffeb;box-shadow:var(--shadow)}.setup-mark{display:grid;place-items:center;width:54px;height:54px;margin-bottom:20px;border-radius:16px;color:#fff;background:var(--green-900);font-size:1.4rem;font-weight:900}.setup-card h1{margin:0 0 12px;font-size:1.45rem}.setup-card>p:not(.eyebrow){color:#59675f;font-size:.85rem;line-height:1.65}.code-block{display:grid;gap:6px;padding:13px;overflow-x:auto;border-radius:12px;color:#c9eadd;background:var(--green-950);font-size:.7rem}.setup-note{color:var(--danger)!important;font-weight:700}.loading-page{align-content:center;gap:14px;color:#617068}.loading-brand{color:var(--green-900);font-size:1.35rem;font-weight:900}.loading-card,.loading-chart{width:min(92vw,600px);border-radius:20px;background:linear-gradient(100deg,#e0e7e2 30%,#f4f7f4,#e0e7e2 70%);background-size:300% 100%;animation:shimmer 1.2s infinite}.loading-card{height:120px}.loading-chart{height:330px}@keyframes shimmer{to{background-position-x:-150%}}.settings-page{min-height:100vh;padding:max(16px,env(safe-area-inset-top)) 12px calc(34px + env(safe-area-inset-bottom))}.settings-header{max-width:900px;margin:0 auto 14px;padding:4px}.settings-header>div{flex:1}.settings-header h1{margin:0;font-size:1.45rem}.back-link{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid #d3dfd7;border-radius:14px;background:#fff;text-decoration:none;font-size:1.25rem}.public-badge{padding:6px 9px;border-radius:999px;color:#6d461e;background:#f8dfc5;font-size:.66rem;font-weight:800}.settings-intro,.settings-card{max-width:900px;margin:0 auto 14px}.settings-intro{padding:15px 17px;border-left:4px solid var(--orange);border-radius:6px 14px 14px 6px;background:#fff7ed}.settings-intro strong{font-size:.82rem}.settings-intro p{margin:4px 0 0;color:#78614b;font-size:.72rem;line-height:1.45}.settings-card{padding:19px 16px;border:1px solid rgba(32,87,75,.08);border-radius:21px;background:#fff;box-shadow:var(--shadow)}.settings-card-heading{margin-bottom:17px}.settings-card-heading h2{margin:0;font-size:1.1rem}.settings-card-heading>span{color:#718078;font-size:.68rem}.product-create{display:grid;grid-template-columns:50px 1fr auto;gap:8px}.color-field input,.product-edit-fields input[type=color]{height:46px;padding:4px}.field-grow{min-width:0}.product-list{display:grid;gap:1px;margin-top:14px;border-block:1px solid #edf1ed}.product-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;min-height:68px;padding:9px 3px;border-bottom:1px solid #edf1ed}.product-row:last-child{border-bottom:0}.product-row--inactive{opacity:.63}.product-identity{display:flex;align-items:center;gap:10px;min-width:0;max-width:46%}.product-identity>i{flex:0 0 16px;width:16px;height:34px;border-radius:6px}.product-identity>div{display:grid;gap:3px;min-width:0}.product-identity strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.product-identity span{color:#7d8983;font-size:.63rem}.product-actions{display:flex;align-items:center;gap:3px}.mini-button{min-width:34px;min-height:34px;padding:0 7px;border:1px solid #d8e1dc;border-radius:9px;color:#526159;background:#f7f9f7}.mini-button--wide{min-width:46px}.text-button{min-height:40px;padding:0 7px;border:0;color:var(--green-700);background:transparent;font-size:.72rem;font-weight:800}.text-button--muted{color:#7a8780}.text-button--danger{color:var(--danger)}.product-edit-fields{display:grid;grid-template-columns:48px minmax(110px,1fr) auto auto;gap:5px;width:100%}.product-edit-fields input{min-height:42px}.product-row>.form-error{width:100%}.capacity-default-form{display:grid;grid-template-columns:minmax(120px,1.5fr) .7fr .8fr;gap:9px;align-items:end}.capacity-default-form .button{grid-column:1 / -1}.settings-subsection{margin-top:24px;padding-top:20px;border-top:1px solid #e9efeb}.subsection-heading h3{margin:0;font-size:.9rem}.subsection-heading p{margin:4px 0 12px;color:#78857e;font-size:.69rem}.weekday-list{display:grid;gap:6px}.weekday-row{display:grid;grid-template-columns:32px 1fr auto auto;gap:5px;align-items:center}.weekday-row>strong{text-align:center;font-size:.78rem}.compact-input input{min-height:42px}.override-form{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:end}.override-form .field-wide,.override-form .button{grid-column:1 / -1}.override-list{display:grid;gap:7px;margin-top:13px}.override-list article{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:9px 11px;border:1px solid #e1e9e3;border-radius:12px;background:#f9fbf9}.override-list article>div{display:grid;gap:3px}.override-list article>div:last-child{justify-items:end}.override-list strong{font-size:.76rem}.override-list span{color:#79867f;font-size:.65rem}.empty-message{color:#849089;font-size:.72rem}.capacity-error{margin-top:14px}.capacity-error ul{margin:7px 0 0;padding-left:18px}@media(min-width:700px){.dashboard-page{max-width:980px;margin:0 auto}.dashboard-header{padding-inline:28px}.schedule-section{margin-inline:18px;padding:22px}.bar-track{height:300px}.chart-grid{gap:12px}.chart-value strong{font-size:.8rem}.capacity-chart--compact .bar-track{height:174px}.legend-item{max-width:220px}.floating-add{right:max(24px,calc((100vw - 960px)/2))}.settings-card{padding:24px}.capacity-default-form{grid-template-columns:2fr 1fr 1fr auto}.capacity-default-form .button{grid-column:auto}.override-form{grid-template-columns:1fr 1fr 1.4fr auto}.override-form .field-wide,.override-form .button{grid-column:auto}}@media(max-width:370px){.dashboard-header{padding-inline:13px}.schedule-section{margin-inline:7px;padding-inline:8px}.chart-grid{gap:5px}.summary-strip>div{padding-inline:7px}.summary-strip strong{font-size:1rem}.settings-link>span:last-child{display:none}.product-actions .mini-button{display:none}.capacity-default-form{grid-template-columns:1fr 1fr}.capacity-default-form label:first-child,.capacity-default-form .button{grid-column:1 / -1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
