:root{--bg:#f7f3ee;--card:#fff;--text:#1f1b16;--muted:#6b6259;--border:#e4dcd2;--primary:#b3261e;--primary-hover:#93201a;--green:#1e7a46;--green-bg:#e3f4ea;--red-bg:#fde8e6;--radius:12px}@media (prefers-color-scheme:dark){:root{--bg:#17140f;--card:#221e18;--text:#f1ebe3;--muted:#a99f93;--border:#3a332a;--primary:#e0574b;--primary-hover:#f06d61;--green:#5fd18e;--green-bg:#183a27;--red-bg:#43201c}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}a{color:var(--primary)}.topbar{background:var(--primary);color:#fff;padding:12px 16px}.logo{font-size:1.15rem;font-weight:700}.container{max-width:760px;margin:0 auto;padding:20px 16px 48px}h1{margin:0 0 4px;font-size:1.5rem}h2{margin:0 0 12px;font-size:1.15rem}.muted{color:var(--muted)}.small{font-size:.875rem}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin:16px 0;padding:18px}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stack>*+*{margin-top:12px}label{margin-bottom:4px;font-weight:600;display:block}input,textarea{width:100%;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:10px 12px;font-size:16px}textarea{resize:vertical;min-height:120px}input:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:1px}button,.button{font:inherit;border:1px solid var(--primary);background:var(--primary);color:#fff;cursor:pointer;text-align:center;border-radius:8px;min-height:44px;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-block}button:hover:not(:disabled),.button:hover{background:var(--primary-hover);border-color:var(--primary-hover)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.button.secondary{color:var(--primary);background:0 0}button.secondary:hover:not(:disabled),.button.secondary:hover{background:var(--red-bg)}button.link{color:var(--primary);background:0 0;border:none;min-height:0;padding:4px 8px;font-weight:500}button.link:hover:not(:disabled){background:0 0;text-decoration:underline}.full{width:100%}.alert{border-radius:8px;margin:8px 0;padding:10px 12px}.alert.error{background:var(--red-bg)}.alert.ok{background:var(--green-bg);color:var(--green)}.badge{background:var(--border);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;display:inline-block}.badge.done{background:var(--green-bg);color:var(--green)}.badge.open{background:var(--red-bg)}.wish{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:14px}.wish h3{margin:0 0 6px;font-size:1.05rem}.wish p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px}.wish.chosen{border-color:var(--green);background:var(--green-bg)}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;display:flex}.list li:last-child{border-bottom:none}.participant{flex-direction:column;min-width:0;display:flex}.participant code{-webkit-user-select:all;user-select:all;font-size:.95rem}.participant-status{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.login{max-width:400px;margin:32px auto}.progress{background:var(--border);border-radius:999px;height:8px;margin:8px 0;overflow:hidden}.progress>div{background:var(--green);height:100%}
