:root{color:#171717;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#171717;--muted:#626262;--line:#dededb;--soft:#f5f5f2;--holiday:#a42e30;--saturday:#2158a3;--confirmed:#42633a;--available:#ffe58a;background:#fff;font-family:Apple SD Gothic Neo,Malgun Gothic,Noto Sans KR,sans-serif}*{box-sizing:border-box}body{min-width:300px;margin:0;font-size:16px;line-height:1.55}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default}input{caret-color:var(--ink)}::selection{color:#fff;background:#171717}:focus-visible{outline-offset:3px;outline:3px solid #446a89}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:#bababa;border:3px solid #fff;border-radius:10px}a{color:inherit;text-underline-offset:4px}h1,h2,p{margin:0}h3{margin:0;font-size:14px;font-weight:600}h1,h2{letter-spacing:-.025em;text-wrap:balance;line-height:1.35}h1{font-size:28px;font-weight:700}h2{font-size:24px;font-weight:650}p,label,button,h1,h2{word-break:keep-all;overflow-wrap:anywhere}.app-shell{max-width:640px;margin:0 auto;padding:0 12px}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 0;display:flex}.wordmark{font-size:18px;font-weight:700;text-decoration:none}.site-header>span{color:var(--muted);font-size:13px}.site-footer{padding:22px 0 max(28px, env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;margin-top:40px;font-size:12px;display:flex}.site-footer button{text-underline-offset:3px;background:0 0;border:0;min-height:44px;padding:8px 0;font-size:12px;text-decoration:underline}.form-page{max-width:460px;margin:32px auto 0}.form-page>p{color:var(--muted);margin-top:16px}.intro{font-size:18px;line-height:1.65}.stack-form{flex-direction:column;gap:24px;margin-top:28px;display:flex}label{flex-direction:column;gap:8px;font-weight:600;display:flex}input:not([type=checkbox]){width:100%;min-height:50px;color:var(--ink);background:#fff;border:1px solid #b5b5b2;border-radius:7px;padding:12px 14px;font-size:16px}input::placeholder{color:#737373;font-weight:400}input:disabled{color:var(--muted);background:var(--soft)}input[aria-invalid=true]{border-color:#a42e30}input[type=password]{font-variant-numeric:tabular-nums;letter-spacing:.16em}.field-hint{color:var(--muted);font-size:12px;font-weight:400;line-height:1.5}.field-error{color:#902628;font-size:13px;font-weight:400;line-height:1.5}.input-with-unit{align-items:center;gap:12px;display:flex}.input-with-unit>input{max-width:120px}.primary-button,.secondary-button,.danger-button{border:1px solid var(--ink);border-radius:7px;justify-content:center;align-items:center;min-height:48px;padding:12px 16px;font-weight:600;text-decoration:none;display:inline-flex}.primary-button{background:var(--ink);color:#fff}.secondary-button{background:#fff;border-color:#b5b5b2}.danger-button{color:#9a2628;background:#fff;border-color:#9a2628}.primary-button:hover:not(:disabled){background:#333}.secondary-button:hover:not(:disabled){background:var(--soft)}.danger-button:hover:not(:disabled){background:#fcf1f1}.primary-button:disabled{background:#737373;border-color:#737373}.secondary-button:disabled,.danger-button:disabled{color:#737373;border-color:var(--line);background:var(--soft)}.form-page>.primary-button{width:100%;margin-top:20px}.quiet-note{color:var(--muted);font-size:13px;line-height:1.6}.secondary-text{color:var(--muted);font-size:13px}.pin-receipt{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:28px 0;padding:24px 0}.pin-receipt h2{font-size:16px}.pin-receipt strong{letter-spacing:.2em;font-variant-numeric:tabular-nums;margin:12px 0;font-size:40px;display:block}.pin-receipt p{color:var(--muted);font-size:13px}.segmented-choice{border-bottom:1px solid var(--line);margin-top:28px;display:flex}.segmented-choice button{background:#fff;border:0;border-bottom:2px solid #0000;flex:1;min-height:48px;padding:12px 5px;font-size:15px}.segmented-choice button[aria-pressed=true]{border-bottom-color:var(--ink);font-weight:700}.segmented-choice button:disabled{color:#737373}.empty-state{flex-direction:column;align-items:flex-start;gap:20px;margin-top:54px;display:flex}.empty-state p{color:var(--muted)}.error-notice{color:#902628;background:#fcf1f1;border:1px solid #ebc6c7;border-radius:6px;padding:12px 14px;font-size:14px}.inline-notice{color:#40576a;margin-top:12px;font-size:13px}.text-button{text-underline-offset:4px;background:0 0;border:0;min-height:44px;padding:10px 0;font-size:14px;text-decoration:underline}.checkbox-label{flex-direction:row;align-items:center;gap:8px;min-height:44px;margin:4px 0;font-size:13px;display:flex}input[type=checkbox]{width:18px;height:18px;accent-color:var(--ink);flex:0 0 18px}.remember-option .checkbox-label{margin:0}[hidden]{display:none!important}.app-shell:has(.calendar-page) .site-header{min-height:36px;padding:4px 2px}.app-shell:has(.calendar-page) .wordmark{align-items:center;min-height:28px;font-size:14px;display:inline-flex}.app-shell:has(.calendar-page) .site-header>span{font-size:11px}.calendar-page{margin-top:4px}.room-overview{padding:0 2px}.room-heading h1{text-overflow:ellipsis;white-space:nowrap;font-size:18px;line-height:22px;overflow:hidden}.expiry{color:var(--muted);margin-top:6px;font-size:12px}.participant-line{flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin-top:8px;font-size:13px;display:flex}.identity-label{color:var(--muted);font-size:11px}.participant-line strong{overflow-wrap:anywhere}.connection-status{color:var(--muted);margin-left:auto;font-size:11px}.connection-status.live{color:#44613c}.connection-status.offline{color:#8a4d17}.calendar-tabs{border-bottom:1px solid var(--line);margin-top:2px;display:flex}.calendar-tabs>button{min-width:0;min-height:44px;color:var(--muted);background:#fff;border:0;border-bottom:2px solid #0000;flex:1;padding:8px 4px;font-size:13px}.calendar-tabs>button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);font-weight:700}.calendar-tabs>button:hover{background:var(--soft)}.calendar-tabpanel{min-width:0}.month-toolbar{justify-content:space-between;align-items:center;margin:2px 0;display:flex}.month-toolbar h2{font-variant-numeric:tabular-nums;font-size:20px}.month-arrow{border:1px solid var(--line);background:#fff;border-radius:6px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.month-arrow:hover:not(:disabled){background:var(--soft)}.month-arrow:disabled{color:#9a9a9a;border-color:#eee}.calendar-month-surface{min-width:0;overflow-x:clip;container-type:inline-size}.calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;display:grid}.calendar-grid{--calendar-day-height:max(52px, min(calc((100cqw - 6px) / 7 * 1.2), calc((100svh - 204px) / var(--calendar-week-count,6))));grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:var(--calendar-day-height);gap:1px;display:grid}.calendar-grid,.calendar-day{touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.weekday{text-align:center;color:var(--muted);padding:1px 0 4px;font-size:12px}.weekday.sunday{color:var(--holiday)}.weekday.saturday{color:var(--saturday)}.calendar-day{min-width:0;min-height:52px;color:var(--ink);border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fff;border-radius:5px;flex-direction:column;align-items:stretch;gap:0;padding:2px;display:flex;position:relative}.calendar-day:hover:not(:disabled){border-color:var(--ink)}.day-heading{flex-shrink:0;justify-content:center;align-items:center;gap:2px;min-height:20px;display:flex}.day-number{flex-shrink:0;font-size:17px;font-weight:600;line-height:20px;display:block}.day-meta{flex-shrink:0;justify-content:center;align-items:center;gap:2px;min-height:11px;display:flex}.holiday-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;min-height:11px;font-size:9px;line-height:11px;overflow:hidden}.calendar-day.saturday .day-number{color:var(--saturday)}.calendar-day.holiday .day-number,.calendar-day.holiday .holiday-name{color:var(--holiday)}.day-response{flex-shrink:0;justify-content:center;align-items:center;gap:1px;min-width:0;min-height:14px;margin-top:auto;display:flex}.day-count{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;max-width:100%;font-size:10px;line-height:12px;display:block;overflow:hidden}.day-marker{white-space:nowrap;flex-shrink:0;justify-content:center;align-items:center;min-height:11px;font-size:9px;font-weight:600;line-height:11px;display:flex}.my-selection,.my-unavailable{border-radius:3px;justify-content:center;align-items:center;gap:2px;max-width:100%;padding:0 2px;line-height:13px;text-decoration:none;display:inline-flex}.my-selection{color:#171717;background:#fff;border:1px dashed #626262;flex-shrink:0;padding:1px}.my-unavailable{color:#171717;background:#fff;border:1px solid #707070;flex-shrink:0;font-size:9px;line-height:10px}.my-unavailable-short{display:none}.confirmed-marker{font-weight:700}.calendar-day:focus-visible{outline-offset:-3px}.calendar-day.available{background:var(--available);border-color:#d6b84e}.calendar-day.unavailable{background:var(--ink);border-color:var(--ink);color:#fff}.calendar-day.confirmed{background:var(--confirmed);border-color:var(--confirmed);color:#fff}.calendar-day.unavailable .day-number,.calendar-day.unavailable .holiday-name,.calendar-day.confirmed .day-number,.calendar-day.confirmed .holiday-name{color:#fff}.calendar-day.draft:after{content:"";border:2px dashed var(--ink);pointer-events:none;border-radius:4px;position:absolute;inset:0}.calendar-day.unavailable.draft:after,.calendar-day.confirmed.draft:after{border-color:#fff}.calendar-day[data-calendar-holding=true]:before{content:"";pointer-events:none;transform-origin:0;background:currentColor;border-radius:1px;height:1px;position:absolute;bottom:1px;left:6px;right:6px}.calendar-day[data-calendar-painting=true]{outline-offset:-2px;outline:2px solid #171717}.calendar-day.unavailable[data-calendar-painting=true],.calendar-day.confirmed[data-calendar-painting=true]{outline-color:#fff}.calendar-day:disabled{color:#72726e;background:#f6f6f4;border-color:#e9e9e6}.calendar-day:disabled .day-number,.calendar-day:disabled .holiday-name{color:#72726e}.calendar-day.confirmed:disabled{background:var(--confirmed);color:#fff;border-color:var(--confirmed)}.calendar-day.confirmed:disabled .day-number,.calendar-day.confirmed:disabled .holiday-name{color:#fff}.save-panel{padding:10px 0 max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff;flex-direction:column;flex-shrink:0;gap:7px;margin-top:12px;display:flex}.save-status{min-height:19px;font-size:12px}.registration-row{gap:6px;display:flex}.registration-button{border:1px solid var(--ink);border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:56px;padding:7px 3px;font-size:14px;font-weight:600;line-height:18px;display:flex}.registration-button>span{white-space:nowrap}.register-unavailable{color:#fff;background:var(--ink)}.register-available{color:var(--ink);background:var(--available);border-color:#ad9132}.register-confirm{color:#fff;background:var(--confirmed);border-color:var(--confirmed)}.registration-button:hover:not(:disabled){filter:brightness(.92)}.registration-button:disabled{color:#737373;background:#f0f0ed;border-color:#d7d7d3}.registration-hint{color:var(--muted);font-size:11px;line-height:1.5}.confirmation-banner{color:#3b5b32;background:#f1f5ee;border:1px solid #c8d8c1;border-radius:5px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:12px;padding:10px 12px;display:flex}.confirmation-banner span{font-size:12px}.confirmation-banner strong{font-size:15px}.calendar-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:16px;font-size:11px;display:flex}.calendar-legend>span{align-items:center;gap:5px;display:inline-flex}.calendar-legend i{border-radius:2px;width:12px;height:12px;display:inline-block}.legend-black{background:var(--ink)}.legend-yellow{background:var(--available);border:1px solid #d6b84e}.legend-green{background:var(--confirmed)}.legend-draft{border:1.5px dashed var(--ink)}.day-people{border:1px solid var(--line);border-radius:6px;margin-top:20px;overflow:hidden}.day-people h3{flex-wrap:wrap;align-items:baseline;gap:4px 8px;padding:12px;display:flex}.day-people h3>span{color:var(--muted);font-size:12px;font-weight:400}.day-people ul{margin:0;padding:0;list-style:none}.day-people li{border-top:1px solid var(--line);overflow-wrap:anywhere;align-items:baseline;gap:8px;min-height:44px;padding:10px 12px;font-size:14px;display:flex}.day-people>.empty-date-list{border-top:1px solid var(--line);margin:0;padding:12px}.own-date-lists{border:1px solid var(--line);border-radius:6px;flex-direction:column;margin-top:20px;display:flex;overflow:hidden}.own-date-section{padding:14px 12px}.own-date-section+.own-date-section{border-top:1px solid var(--line)}.own-date-section h3,.participant-roster h3{align-items:baseline;gap:8px;display:flex}.own-date-section h3>span,.participant-roster h3>span{color:var(--muted);font-size:12px;font-weight:400}.date-chip-list{border:1px solid var(--line);border-radius:5px;flex-direction:column;margin:10px 0;padding:0;list-style:none;display:flex;overflow:hidden}.date-chip-list li+li{border-top:1px solid var(--line)}.date-chip-list button{width:100%;min-height:44px;color:var(--ink);text-align:left;font-variant-numeric:tabular-nums;background:#fff;border:0;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;font-size:14px;display:flex}.date-chip-list button:hover{background:var(--soft)}.date-row-action{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:inline-flex}.empty-date-list{color:var(--muted);margin-top:7px;font-size:12px}.participant-roster{margin-top:24px}.participant-roster ul{border:1px solid var(--line);border-radius:6px;margin:12px 0;padding:0;list-style:none;overflow:hidden}.participant-roster li{justify-content:space-between;align-items:baseline;gap:8px 16px;min-height:48px;padding:12px;display:flex}.participant-roster li+li{border-top:1px solid var(--line)}.participant-name{overflow-wrap:anywhere;align-items:baseline;gap:6px;min-width:0;font-size:15px;display:inline-flex}.own-person-badge{color:var(--muted);border:1px solid #b5b5b2;border-radius:3px;flex-shrink:0;padding:0 4px;font-size:10px}.participant-response-count{color:var(--muted);flex-shrink:0;font-size:12px}.calendar-help{margin-top:14px;margin-bottom:16px}.calendar-help summary{min-height:44px;color:var(--muted);padding:12px 0;font-size:12px;font-weight:400}.calendar-help p{color:var(--muted);margin-bottom:10px;font-size:13px}.calendar-tabpanel>.error-notice,.calendar-page>.error-notice{margin-top:12px}.settings-panel{padding-top:22px}.panel-heading{font-size:19px}.utility-row{align-items:start;gap:8px;margin-top:20px;display:flex}.utility-row>*{flex:1;min-width:0}.share-control>.secondary-button{width:100%}.share-control.expanded{flex-direction:column;gap:12px;display:flex}.share-url-label{font-size:12px}.share-url-label input{font-size:12px;overflow:hidden}.utility-row+.field-hint{margin-top:10px}.management,.participation-settings{border-top:1px solid var(--line);margin-top:24px}.participation-settings>h3{margin-bottom:12px;padding-top:18px}.remember-pin-form{flex-direction:column;align-items:flex-start;gap:10px;margin:14px 0;display:flex}.remember-pin-form label{width:100%;max-width:260px;font-size:14px}summary{cursor:pointer;min-height:44px;padding:14px 0;font-size:14px;font-weight:600}.management-content{flex-direction:column;gap:16px;padding-bottom:16px;display:flex}.management-content>p{color:var(--muted);font-size:13px}.management-content label{font-size:14px}.management-content>label input{max-width:260px}.delete-section{border-top:1px solid var(--line);margin-top:8px}.delete-section summary{color:#9a2628}.delete-section p{color:var(--muted);font-size:13px}@media (width<=430px){.app-shell{padding:0 8px}.calendar-day{padding:2px 1px}.my-unavailable{padding:0 1px}.registration-row{gap:4px}.registration-button{font-size:13px}.site-footer{justify-content:flex-start}}@media (width<=359px){.app-shell{padding:0 6px}.app-shell:has(.calendar-page){padding:0 3px}.app-shell:has(.calendar-page) .site-header{padding-left:5px;padding-right:5px}.room-overview{padding:0 5px}}@media (width<=639px){.calendar-page{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.calendar-grid{--calendar-day-height:max(52px, min(calc((100cqw - 6px) / 7 * 1.2), calc((100svh - 250px - env(safe-area-inset-bottom)) / var(--calendar-week-count,6))))}.registration-row{z-index:5;padding:6px max(6px, env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left));border-top:1px solid var(--line);background:#fff;gap:5px;position:fixed;bottom:0;left:0;right:0}.registration-button{gap:0;min-height:44px;padding:3px;font-size:12px;line-height:16px}.my-unavailable-long{display:none}.my-unavailable-short{display:inline}}@media (width>=640px){.app-shell{padding:0 24px}.site-header{padding:20px 0}.form-page{margin-top:46px}.calendar-day{padding:2px 3px}.day-count{font-size:11px}.registration-button{min-height:58px;font-size:15px}}@media (prefers-reduced-motion:no-preference){.calendar-day.draft:after{animation:.14s cubic-bezier(.16,1,.3,1) calendar-selection}.calendar-day{transition:background-color .11s ease-out,color .11s ease-out}.calendar-grid{transition:transform .14s cubic-bezier(.16,1,.3,1)}.calendar-grid[data-calendar-gesture=swiping]{transform:translateX(var(--calendar-swipe-offset,0px));transition:none}.calendar-month-surface.month-forward{animation:.18s cubic-bezier(.16,1,.3,1) month-forward}.calendar-month-surface.month-backward{animation:.18s cubic-bezier(.16,1,.3,1) month-backward}.calendar-day[data-calendar-holding=true]:before{animation:calendar-hold var(--calendar-hold-duration,.5s) linear}}@media (prefers-reduced-motion:reduce){.calendar-grid{transform:none}.calendar-month-surface,.calendar-day,.calendar-day:before,.calendar-day:after{transition:none;animation:none}}@keyframes month-forward{0%{opacity:.7;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes month-backward{0%{opacity:.7;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes calendar-hold{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes calendar-selection{0%{opacity:.25}to{opacity:1}}
