:root{--bg:#fbf7f0;--card:#fff;--ink:#232b3d;--muted:#646b7c;--line:#eae3d6;--accent:#3767d6;--accent-ink:#2449a6;--on-accent:#fff;--soft:#e3ebfb;--star:#f2a93b;--warn:#b4573a;--warn-soft:#f6e2d6;--ok:#2f8f5b;--ok-soft:#ddf2e6;--maybe:#b7791f;--maybe-soft:#fcefc9;--radius-card:20px;--radius-button:16px;--touch:48px;--gap:12px}html{font-size:17px}html[data-text=large]{font-size:20px}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-text-size-adjust:100%;margin:0;font-family:Pretendard,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;line-height:1.5}#root{max-width:560px;margin:0 auto;padding:16px 16px 48px}h1,h2,h3{margin:0 0 8px;line-height:1.3}h1{font-size:1.35rem}h2{font-size:1.2rem}h3{font-size:1.05rem}p{margin:0 0 8px}a{color:var(--accent-ink)}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%}.muted{color:var(--muted);font-size:.9rem}.stack>*+*{margin-top:var(--gap)}.row{align-items:center;gap:8px;display:flex}.stack>.btn:not(.btn-block){margin-right:8px}.btn{min-height:var(--touch);border-radius:var(--radius-button);cursor:pointer;border:1px solid #0000;padding:12px 18px;font-size:1rem;font-weight:700}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-ghost{background:var(--card);color:var(--ink);border-color:var(--line)}.btn-danger{background:var(--card);color:var(--warn);border-color:var(--warn)}.btn-block{width:100%;display:block}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);padding:16px}.tag{border-radius:999px;margin:0 4px 4px 0;padding:4px 10px;font-size:.8rem;display:inline-block}.tag-info{background:var(--soft);color:var(--accent-ink)}.tag-warn{background:var(--warn-soft);color:var(--warn)}.tag-ok{background:var(--ok-soft);color:var(--ok)}.field label{margin-bottom:4px;font-weight:600;display:block}.field input,.field select,.field textarea{width:100%;min-height:var(--touch);border:1px solid var(--line);background:var(--card);border-radius:14px;padding:10px 14px}.field [aria-invalid=true]{border-color:var(--warn)}.field-error{color:var(--warn);margin-top:4px;font-size:.9rem}.notice{background:var(--warn-soft);color:var(--warn);border-radius:14px;padding:12px 14px}.notice .btn{margin-top:8px}a.btn{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}a.btn.btn-block{display:flex}.shell-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:16px;display:flex}.shell-title{color:var(--ink);min-height:var(--touch);align-items:center;font-size:1.05rem;font-weight:700;text-decoration:none;display:flex}.shell-size{min-height:var(--touch);border:1px solid var(--line);background:var(--card);white-space:nowrap;cursor:pointer;border-radius:999px;padding:8px 14px;font-size:.85rem}.todo{background:var(--accent);color:var(--on-accent);border-radius:var(--radius-card);padding:16px;text-decoration:none;display:block}.todo small{opacity:.9;font-size:.85rem;display:block}.todo b{margin-top:4px;font-size:1.2rem;display:block}.steps{gap:4px;margin:6px 0 10px;display:flex}.steps i{background:var(--line);border-radius:3px;flex:1;height:6px}.steps i.on{background:var(--accent)}.menu a{min-height:var(--touch);border-top:1px solid var(--line);color:var(--ink);justify-content:space-between;align-items:center;padding:8px 0;text-decoration:none;display:flex}.menu a:first-child{border-top:0}.menu a span:last-child{color:var(--accent-ink);font-size:.9rem}.field .code-input{letter-spacing:.4em;text-align:center;font-size:1.6rem;font-weight:700}.name-pick{border-radius:var(--radius-button);border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;width:100%;min-height:56px;padding:12px 16px;font-size:1.1rem;display:block}.name-pick-on{border:2px solid var(--accent);background:var(--soft);font-weight:700}.secret{background:var(--bg);border:1px dashed var(--line);word-break:break-all;border-radius:12px;padding:10px 12px;font-weight:700}.members{margin:0 0 12px;padding:0;list-style:none}.members li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:8px 0;display:flex}.members li:first-child{border-top:0}.checks{border:0;margin:0;padding:0}.checks legend{margin-bottom:4px;font-weight:600}.checks label{min-height:var(--touch);align-items:center;gap:10px;display:flex}.checks input{width:22px;height:22px}.saved{color:var(--ok);font-weight:700}.cal{grid-template-columns:repeat(7,1fr);gap:5px;display:grid}.cal-head{text-align:center;color:var(--muted);font-size:.8rem}.cal-day{cursor:pointer;border:1px solid #0000;border-radius:12px;min-height:56px;padding:4px 0;font-weight:700}.cal-day small{font-size:.7rem;font-weight:400;display:block}.cal-day:disabled{cursor:default}.cal-yes{background:var(--ok-soft);color:var(--ok)}.cal-maybe{background:var(--maybe-soft);color:var(--maybe);border-style:dashed;border-color:var(--maybe)}.cal-no{background:var(--warn-soft);color:var(--warn)}.cal-no span{text-decoration:line-through}.vote-bar{color:var(--muted);justify-content:space-between;gap:8px;font-size:.9rem;display:flex}.detail-top{justify-content:space-between}.price{font-size:1.3rem;font-weight:700}.rooms{color:var(--muted);margin:0;padding-left:1.1rem}.why{background:var(--bg);border-radius:14px;padding:12px}.grow{flex:1}.winner{border:2px solid var(--accent)}.ranking{margin:0;padding:0;list-style:none}.ranking li{border-top:1px solid var(--line);padding:10px 0}.ranking li:first-child{border-top:0}.rank{min-width:2.6em;color:var(--accent-ink);font-weight:700;display:inline-block}.rank-score{color:var(--muted)}.tabs{gap:6px;margin-bottom:12px;display:flex}.tab{min-height:var(--touch);border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:999px;flex:1}.tab-on{background:var(--ink);color:var(--card);border-color:var(--ink);font-weight:700}input.grow{min-height:var(--touch);border:1px solid var(--line);border-radius:14px;min-width:0;padding:10px 14px}.room-row{border:1px solid var(--line);border-radius:14px;grid-template-columns:1fr 1fr;gap:6px;padding:10px;display:grid}.room-row input{min-height:var(--touch);border:1px solid var(--line);border-radius:12px;min-width:0;padding:10px 12px}.room-row input:first-child{grid-column:1/-1}.link-chip{min-height:var(--touch);align-items:center;margin-right:12px;font-size:.9rem;display:inline-flex}.room-field{color:var(--muted);font-size:.8rem;display:block}.room-field input{width:100%;margin-top:2px;display:block}.check-row{min-height:var(--touch);align-items:center;gap:10px;display:flex}.check-row input{flex:none;width:22px;height:22px}.photo-edit{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.photo-edit li{flex-direction:column;align-items:stretch;gap:4px;display:flex}.photo-edit img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-button);background:var(--soft);width:100%}.stars-row{align-items:center;gap:0;display:flex}.star,.star-zero{min-width:var(--touch);min-height:var(--touch);cursor:pointer;background:0 0;border:0;padding:0}.star{color:#0000;-webkit-text-stroke:1.5px #8a8478;font-size:1.9rem;line-height:1}.star-on{color:var(--star);-webkit-text-stroke:1.5px #a86a00}.star-zero{color:var(--muted);border:1px solid var(--line);border-radius:12px;margin-right:2px;padding:0 6px;font-size:.85rem}.star-zero-on{background:var(--ink);color:var(--card);border-color:var(--ink);font-weight:700}[aria-disabled=true].star,[aria-disabled=true].star-zero{cursor:not-allowed;opacity:.6}.stars-lg .stars-row{justify-content:center}.stars-lg .star{font-size:2.4rem}.stars-hint{text-align:center;margin-top:4px}.veto-link{width:100%;min-height:var(--touch);color:var(--warn);cursor:pointer;background:0 0;border:0;text-decoration:underline;display:block}.veto{border:1px solid var(--warn-soft);border-radius:14px;padding:12px}.veto-used{background:var(--warn-soft);color:var(--warn)}.photo-empty{text-align:center;background:#f3ede2;margin:0;padding:18px 8px;display:block}.photo-thumb{background:var(--line);object-fit:cover;width:100%;height:120px;display:block}.photo-hero{background:var(--line);object-fit:cover;border-radius:14px;width:100%;max-height:240px;display:block}.photo-row{gap:6px;margin-top:6px;display:flex}.photo-small{background:var(--line);object-fit:cover;border-radius:10px;flex:1;min-width:0;height:64px}.photo-more{min-height:var(--touch);background:var(--soft);color:var(--accent-ink);cursor:pointer;border:0;border-radius:10px;flex:none;padding:0 10px;font-size:.8rem}.photo-dialog{z-index:10;background:var(--bg);padding:16px;position:fixed;inset:0;overflow-y:auto}.photo-dialog>*+*{margin-top:10px}.cand{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden}.cand-open{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.cand-text{padding:12px 16px 0;display:block}.cand-title{font-size:1.05rem;font-weight:700;display:block}.cand-price{color:var(--muted);display:block}.cand-score{padding:4px 12px 12px}.qr{margin:8px auto;display:block}
