:root{--page:#eeeeef;--shell:#f7f7f8;--card:#fff;--line:#e4e5e8;--ink:#232529;--ink-soft:#70747c;--ink-faint:#9c9fa6;--brand:#53699e;--brand-soft:#eef1f7;--accent:#a85a4b;--accent-soft:#f7efec;--good:#3f7157;--good-soft:#eef4f0;--good-line:#d6e3da;--warn:#8a6534;--warn-soft:#f6f2ea;--strip:#f1f1f3;--radius-shell:24px;--radius-card:16px;--radius-control:10px;--shadow-shell:0 8px 28px #1f26371a;--shadow-card:0 2px 10px #1f26370d}*{box-sizing:border-box}body{background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif}#root{min-height:100vh}button,input,select,textarea{font-family:inherit}.page{flex-direction:column;align-items:center;min-height:100vh;padding:24px 16px 48px;display:flex}.app{background:var(--shell);border:1px solid var(--line);border-radius:var(--radius-shell);width:100%;max-width:480px;box-shadow:var(--shadow-shell);flex-direction:column;display:flex;overflow:hidden}.topbar{flex-direction:column;gap:4px;padding:24px 20px 12px;display:flex}.topbar h1{margin:0;font-size:18px;font-weight:700}.bottom-actions{align-items:stretch;gap:8px;display:flex}.bottom-primary{flex:1;min-width:0}.btn-back{background:var(--card);border:1px solid var(--line);color:var(--ink-soft);white-space:nowrap;border-radius:12px;flex:none;padding:16px;font-size:14px;font-weight:600}.btn-back:not(:disabled):hover{color:var(--brand);border-color:var(--brand)}.topbar .sub{color:var(--ink-soft);margin:0;font-size:13px}.screen-body{flex-direction:column;gap:12px;padding:0 20px 20px;display:flex}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-direction:column;gap:12px;padding:18px;display:flex}.card.pad-lg{padding:20px}.card-title{margin:0;font-size:15px;font-weight:700}.card-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.card-head .count{color:var(--ink-faint);font-size:12px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--ink-soft);font-size:13px;font-weight:600}input,select,textarea{width:100%;min-width:0;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);padding:11px 12px;font-size:15px}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);outline:none}.row{gap:10px;display:flex}.row>*{flex:1;min-width:0}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}button{cursor:pointer;border:1px solid #0000;border-radius:12px;padding:13px 16px;font-size:15px;font-weight:700;transition:filter .12s}button:disabled{opacity:.45;cursor:not-allowed}button:not(:disabled):active{filter:brightness(.96)}.btn-primary{background:var(--brand);color:#fff;width:100%}.btn-accent{background:var(--accent);color:#fff;width:100%}.btn-good{background:var(--good);color:#fff;width:100%}.btn-soft{background:var(--brand-soft);color:var(--brand);padding:12px 20px;font-size:14px}.btn-ghost{background:var(--card);color:var(--ink);border-color:var(--line);padding:12px;font-size:14px;font-weight:600}.btn-outline{background:var(--card);color:var(--ink-soft);border-color:var(--line);width:100%;padding:10px;font-size:13px;font-weight:600}.pill{background:var(--card);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap;border-radius:999px;flex:none;padding:6px 12px;font-size:12px;font-weight:600}.pill-filled{background:var(--brand-soft);color:var(--brand);white-space:nowrap;border:0;border-radius:999px;flex:none;padding:7px 13px;font-size:12px;font-weight:700}.link-btn{color:var(--ink-faint);background:0 0;border:0;padding:0;font-size:12px;font-weight:600}.bottom-bar{background:linear-gradient(180deg, #f7f7f800, var(--shell) 38%);padding:14px 20px 18px;position:sticky;bottom:0}.choice-group{gap:8px;display:flex}.choice{text-align:center;background:var(--card);border:1px solid var(--line);color:var(--ink-soft);border-radius:var(--radius-control);flex:1;padding:12px;font-size:14px;font-weight:600}.choice[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.list{flex-direction:column;gap:8px;display:flex}.item{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 13px;display:flex}.item-stack{flex-direction:column;align-items:stretch;gap:10px}.item .name{font-size:14px;font-weight:600}.item .meta{color:var(--ink-faint);font-size:12px}.item .grow{flex-direction:column;flex:150px;gap:3px;min-width:0;display:flex}.item-actions{flex-wrap:wrap;gap:6px;display:flex}.item-head{align-items:flex-start;gap:11px;display:flex}.rank-label{color:var(--brand);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:700}.rank-dot{background:var(--brand);color:#fff;border-radius:999px;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.rank-dot.empty{background:var(--strip);color:var(--ink-faint)}.item.draggable{cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:stretch;gap:0}.item-main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.item-expand{border-top:1px solid var(--line);cursor:auto;-webkit-user-select:auto;user-select:auto;margin-top:12px;padding-top:12px}.place-editor{flex-direction:column;gap:14px;display:flex}.place-time-section{flex-direction:column;gap:12px;padding-top:4px;display:flex}.item.draggable:active{cursor:grabbing}.item.draggable:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.item.draggable .item-actions{cursor:auto;-webkit-user-select:auto;user-select:auto}.list.drop-target{outline:2px dashed var(--brand);outline-offset:6px;border-radius:12px}.rank-label{margin-left:0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--brand-soft);color:var(--brand);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600}.chip.accent{background:var(--accent-soft);color:var(--accent)}.chip.gray{background:var(--strip);color:var(--ink-soft)}.tag{border-radius:999px;padding:5px 11px;font-size:12px;font-weight:700}.roomcode{letter-spacing:.18em;text-align:center;color:var(--brand);margin:0;font-size:34px;font-weight:800}.stats{flex-wrap:wrap;gap:18px;display:flex}.stat{flex-direction:column;gap:3px;display:flex}.stat .label{color:var(--ink-faint);font-size:12px}.stat .value{font-size:14px;font-weight:600}.stat .value.warn{color:var(--warn)}.timeline{flex-direction:column;display:flex}.tl-row{gap:12px;display:flex}.tl-rail{flex-direction:column;flex:none;align-items:center;width:10px;display:flex}.tl-rail .dot{background:var(--brand);border-radius:999px;width:9px;height:9px;margin-top:5px}.tl-rail .dot.faint{background:var(--line)}.tl-rail .line{background:var(--line);flex:1;width:1px}.tl-body{flex-direction:column;flex:1;gap:5px;min-width:0;padding-bottom:12px;display:flex}.tl-head{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.tl-time{color:var(--brand);font-size:13px;font-weight:700}.tl-name{font-size:14px;font-weight:600}.tl-note{color:var(--ink-faint);font-size:12px}.tl-flag{color:var(--warn);font-size:12px;font-weight:600}.tl-leg{background:var(--strip);border-radius:var(--radius-control);color:var(--ink-soft);padding:9px 12px;font-size:12px}.notice{border-radius:var(--radius-control);padding:10px 12px;font-size:12px;font-weight:600;line-height:1.55}.notice.error{background:var(--accent-soft);color:var(--accent)}.notice.warn{background:var(--warn-soft);color:var(--warn)}.notice.good{background:var(--good-soft);border:1px solid var(--good-line);color:var(--good);flex-direction:column;gap:6px;padding:18px;font-size:15px;font-weight:700;display:flex}.notice.good .sub{color:var(--ink-soft);font-size:13px;font-weight:400}.progress-step{align-items:center;gap:11px;display:flex}.progress-step .tick{background:var(--strip);width:22px;height:22px;color:var(--ink-faint);border-radius:999px;flex:none;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.progress-step .label{color:var(--ink-faint);font-size:14px;font-weight:600}.progress-step.done .tick{background:var(--good-soft);color:var(--good)}.progress-step.done .label{color:var(--ink)}.muted{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.6}.hint{color:var(--ink-faint);margin:0;font-size:12px}.center{text-align:center}.stack-8{flex-direction:column;gap:8px;display:flex}.empty-state{color:var(--ink-faint);margin:0;font-size:12px}.wheel-row{gap:10px;display:flex}.wheel-row.single{max-width:140px}.wheel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);flex:1;min-width:0;position:relative;overflow:hidden}.wheel-band{left:6px;right:6px;top:calc(var(--wheel-item) * 2);height:var(--wheel-item);background:var(--brand-soft);pointer-events:none;border-radius:8px;position:absolute}.wheel-list{height:calc(var(--wheel-item) * 5);scroll-snap-type:y mandatory;scroll-padding-top:calc(var(--wheel-item) * 2);scrollbar-width:none;overscroll-behavior:contain;position:relative;overflow-y:auto}.wheel-list::-webkit-scrollbar{display:none}.wheel-list:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.wheel-pad{height:calc(var(--wheel-item) * 2)}.wheel-item{height:var(--wheel-item);scroll-snap-align:start;color:var(--ink-faint);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:15px;display:flex}.wheel-item.selected{color:var(--ink);font-weight:700}.calendar{flex-direction:column;gap:10px;display:flex}.calendar-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.calendar-month{font-size:15px;font-weight:700}.calendar-nav{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);color:var(--ink-soft);padding:6px 12px;font-size:18px;line-height:1}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-weekday{text-align:center;color:var(--ink-faint);padding-bottom:4px;font-size:11px;font-weight:600}.calendar-day{aspect-ratio:1;min-width:0;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;padding:0;font-size:14px}.calendar-day:disabled{color:var(--ink-faint);opacity:.45}.calendar-day.inside{background:var(--brand-soft);border-radius:0}.calendar-day.picked{background:var(--brand);color:#fff;font-weight:700}.calendar-day.range-start{border-top-right-radius:0;border-bottom-right-radius:0}.calendar-day.range-end{border-top-left-radius:0;border-bottom-left-radius:0}.place-field{position:relative}.place-field-row{align-items:center;gap:8px;display:flex}.place-field-row>input{flex:1}.picked-place{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);align-items:center;gap:8px;padding:10px 12px;display:flex}.search-results{margin-top:6px}.item.result{text-align:left;cursor:pointer;width:100%}.add-stay{color:var(--brand);border-style:dashed}.setup-app{height:min(760px,100dvh - 32px)}.setup-screen-body{flex:1;min-height:0;padding-bottom:0;overflow:hidden}.setup-progress{background:var(--line);border-radius:999px;flex:none;height:5px;overflow:hidden}.setup-progress>span{border-radius:inherit;background:var(--brand);height:100%;transition:width .18s;display:block}.setup-step-shell{overscroll-behavior:contain;flex:1;align-items:center;min-height:0;padding-bottom:12px;display:flex;overflow-y:auto}.setup-step-shell>.card{width:100%}.setup-error{margin:0}.participant-field{align-items:center}.participant-picker{width:140px;margin-inline:auto}.participant-picker .wheel{background:0 0;border:0}@media (width<=520px){.page:has(.setup-app){padding:16px}.setup-app{height:calc(100dvh - 32px)}}@media (width<=640px){.item-expand{z-index:100;inset:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-shell);background:var(--shell);margin:0;padding:20px;position:fixed;overflow-y:auto;box-shadow:0 18px 48px #1f263747}.item-expand .place-editor{min-height:calc(100dvh - 66px)}}.dragging-overlay{cursor:grabbing;box-shadow:0 10px 24px #1f26372e}
