: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}.calendar-page{margin-top:14px}.room-heading h1{font-size:23px}.expiry{color:var(--muted);margin-top:3px;font-size:11px}.participant-line{flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:13px;display:flex}.participant-line strong{overflow-wrap:anywhere}.connection-status{color:var(--muted);font-size:11px}.connection-status.live{color:#44613c}.connection-status.offline{color:#8a4d17}.confirmation-banner{color:#3b5b32;background:#f1f5ee;border:1px solid #c8d8c1;border-radius:5px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin-top:8px;padding:6px 10px;display:flex}.confirmation-banner span{font-size:11px}.confirmation-banner strong{font-size:14px}.month-toolbar{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.month-toolbar h2{font-variant-numeric:tabular-nums;font-size:23px}.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-instruction{color:var(--muted);margin:6px 0 10px;font-size:12px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;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:2px 0 5px;font-size:12px}.weekday.sunday{color:var(--holiday)}.weekday.saturday{color:var(--saturday)}.calendar-day{min-width:0;min-height:84px;color:var(--ink);border:1px solid var(--line);font-variant-numeric:tabular-nums;background:#fff;border-radius:5px;grid-template-rows:23px 22px 15px 15px;align-content:start;padding:4px 2px;display:grid;position:relative}.calendar-day:hover:not(:disabled){border-color:var(--ink)}.day-number{font-size:17px;font-weight:600;line-height:23px;display:block}.holiday-name{word-break:keep-all;overflow-wrap:normal;white-space:pre-line;min-width:0;font-size:9px;line-height:1.2}.calendar-day.saturday .day-number{color:var(--saturday)}.calendar-day.holiday .day-number,.calendar-day.holiday .holiday-name{color:var(--holiday)}.day-count{justify-content:center;gap:3px;font-size:9px;line-height:14px;display:flex}.day-marker{white-space:nowrap;justify-content:center;align-items:center;gap:2px;font-size:9px;font-weight:600;line-height:14px;display:flex}.my-selection,.my-unavailable{border-radius:3px;padding:0 2px;line-height:11px;text-decoration:none;display:inline-block}.my-selection{color:#173759;background:#d8e7ff}.my-unavailable{color:#171717;background:#fff;border:1px solid #707070}.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:3px;position:absolute;inset:2px}.calendar-day.unavailable.draft:after,.calendar-day.confirmed.draft:after{border-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{flex-direction:column;gap:5px;margin-top:10px;display:flex}.save-status{min-height:19px;font-size:12px}.registration-row{gap:6px;display:flex}.registration-button{border:1px solid var(--ink);white-space:nowrap;border-radius:6px;flex:1;min-width:0;min-height:44px;padding:8px 3px;font-size:13px;font-weight:600}.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}.calendar-legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px;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)}.response-summary{margin-top:10px;font-size:12px}.own-date-lists{border-top:1px solid var(--line);flex-direction:column;gap:14px;margin-top:18px;padding-top:14px;display:flex}.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{flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.date-chip-list button{color:#173759;font-variant-numeric:tabular-nums;background:#eef4fd;border:1px solid #859bb7;border-radius:6px;justify-content:center;align-items:center;gap:5px;min-height:44px;padding:7px 10px;font-size:13px;display:inline-flex}.date-chip-list button:hover{border-color:#173759}.unavailable-date-list button{color:#fff;background:#171717;border-color:#171717}.empty-date-list{color:var(--muted);margin-top:7px;font-size:12px}.participant-roster{border-top:1px solid var(--line);margin-top:18px;padding-top:14px}.participant-roster ul{margin:8px 0;padding:0;list-style:none}.participant-roster li{justify-content:space-between;align-items:baseline;gap:8px 16px;padding:8px 0;display:flex}.participant-name{overflow-wrap:anywhere;align-items:baseline;gap:6px;min-width:0;font-size:14px;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:6px}.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-page>.error-notice{margin-top:12px}.utility-row{align-items:start;gap:8px;margin-top:16px;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: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}.app-shell:has(.calendar-page) .site-header{padding:7px 0}.calendar-page{margin-top:10px}.room-heading h1{font-size:21px;line-height:1.25}.month-toolbar{margin-top:8px}.calendar-grid{gap:2px}.calendar-day{grid-template-rows:21px 12px 12px 12px;min-height:59px;padding:2px 1px}.day-number{font-size:16px;line-height:21px}.holiday-name{font-size:8px;line-height:1.1}.day-count,.day-marker{font-size:8px;line-height:12px}.day-count{white-space:nowrap}.day-marker{gap:1px}.my-selection,.my-unavailable{padding:0;line-height:9px}.day-marker.multiple .selection-owner{display:none}.registration-button{font-size:12px}.site-footer{justify-content:flex-start}}@media (width<=430px) and (height<=650px){.app-shell:has(.calendar-page) .site-header{padding:5px 0}.expiry{line-height:14px}.room-heading h1{white-space:nowrap;text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.participant-line{margin-top:3px}.month-toolbar{margin-top:5px}.calendar-instruction{margin:3px 0 6px;line-height:16px}.calendar-day{border-radius:4px;grid-template-rows:17px 8px 7px 10px;height:44px;min-height:44px;padding:0 1px}.day-number{font-size:16px;line-height:17px}.holiday-name{white-space:nowrap;text-overflow:ellipsis;font-size:7px;line-height:8px;overflow:hidden}.day-count{font-size:7px;line-height:7px}.day-marker{gap:0;font-size:7px;line-height:8px}.my-selection,.my-unavailable{line-height:8px}.save-panel{gap:3px;margin-top:6px}.confirmation-banner{margin-top:5px;padding:2px 8px}}@media (width<=359px){.app-shell{padding:0 6px}.calendar-grid{gap:0}.registration-row{gap:4px}}@media (width>=640px){.app-shell{padding:0 24px}.site-header{padding:24px 0}.form-page{margin-top:46px}.calendar-page{margin-top:24px}.room-heading h1{font-size:25px}.calendar-day{grid-template-rows:25px 25px 17px 17px;min-height:99px;padding:7px 3px 6px}.holiday-name,.day-count,.day-marker{font-size:10px;line-height:16px}.month-toolbar{margin-top:24px}.calendar-instruction{margin:10px 0 16px;font-size:13px}.registration-button{min-height:48px;font-size:15px}}@media (prefers-reduced-motion:no-preference){.calendar-day{transition:background-color .11s ease-out,color .11s ease-out}}
