:root{--ink: #2a1810;--night: #3c2418;--night-2: #51301c;--paper: #f6e6c8;--guava: #c43c2c;--mango: #e09a2a;--leaf: #2f6b3a;--wine: #8b1e12;--bg: var(--night);--card: var(--paper);--text: var(--ink);--muted: #51301c;--accent: var(--guava);--ok: var(--leaf);--radius: 0;font-family:Pixelify Sans,ui-monospace,monospace;color:var(--paper);background:var(--night);line-height:1.5;font-size:1.125rem}*{box-sizing:border-box}html,body,#root{min-height:100dvh}body{margin:0;min-height:100dvh;background:var(--night);image-rendering:pixelated}button,input,textarea,select{font:inherit;border-radius:0}.page{max-width:400px;margin:0 auto;padding:16px 16px calc(96px + env(safe-area-inset-bottom));min-height:100dvh;background:var(--night);color:var(--paper)}h1{font-size:1.5rem;font-weight:700;margin:0 0 8px;color:var(--paper);line-height:1.25}h2{font-size:1.125rem;font-weight:700;margin:0 0 8px}.sub{color:var(--paper);opacity:.85;margin:0 0 16px;font-size:1.125rem}.ribbon{height:8px;background:var(--night-2);margin:-16px -16px 16px}.btn{display:block;width:100%;min-height:48px;border:4px solid var(--ink);border-radius:0;padding:12px 14px;font-weight:700;background:var(--guava);color:var(--paper);cursor:pointer;box-shadow:4px 4px 0 var(--ink);text-align:center;text-decoration:none}.btn:hover,.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}.btn.ghost{background:var(--paper);color:var(--ink)}.btn.danger{background:var(--wine);color:var(--paper)}.btn:disabled{background:var(--paper);color:color-mix(in srgb,var(--ink) 40%,transparent);cursor:not-allowed;opacity:1}.btn.with-icon{display:flex;align-items:center;justify-content:center;gap:8px}.btn:disabled:hover,.btn:disabled:active{transform:none;box-shadow:4px 4px 0 var(--ink)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:1.125rem;font-weight:700;color:var(--paper)}.page .field label{color:var(--paper)}.card .field label{color:var(--ink)}.field input,.field textarea,.field select{border:4px solid var(--ink);border-radius:0;min-height:48px;padding:10px 12px;background:var(--paper);color:var(--ink);font-size:1.125rem;box-shadow:4px 4px 0 var(--ink)}.field input:focus,.field textarea:focus,.field select:focus{outline:4px solid var(--mango);border-color:var(--mango)}.field input.invalid,.field textarea.invalid,.field select.invalid{border-color:var(--wine);outline:none}.chip{display:inline-block;font-size:.875rem;font-weight:700;padding:4px 8px;border:4px solid var(--ink);border-radius:0;background:var(--mango);color:var(--ink);text-transform:uppercase;letter-spacing:0}.chip.status-abierta{background:var(--mango);color:var(--ink)}.chip.status-en_juego{background:var(--guava);color:var(--paper)}.chip.status-revelacion{background:var(--leaf);color:var(--paper)}.chip.status-cerrada{background:var(--night-2);color:var(--paper)}.chip.leaf{background:var(--leaf);color:var(--paper)}.tag{display:inline-block;font-size:.875rem;font-weight:700;padding:4px 8px;margin-right:4px;margin-bottom:4px;border:4px solid var(--ink);border-radius:0;background:var(--paper);color:var(--ink);text-transform:none}.card{background:var(--paper);color:var(--ink);border-radius:0;padding:12px;margin-bottom:8px;border:4px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}.card.highlight{outline:none;border-color:var(--mango);box-shadow:4px 4px 0 var(--mango);background:var(--paper)}.card.result{outline:none;border-color:var(--leaf);box-shadow:4px 4px 0 var(--leaf);background:var(--paper)}.page a:not(.btn):not(.card){color:var(--mango)}.card a,a.card{color:inherit}.err{color:var(--wine);font-size:1.125rem;margin:0 0 8px}.err-card{background:var(--paper);color:var(--wine);border:4px solid var(--wine);box-shadow:4px 4px 0 var(--ink);padding:12px;margin:0 0 12px;font-size:1.125rem}.thumb-bar{position:fixed;left:0;right:0;bottom:0;background:var(--night-2);padding:12px 16px calc(12px + env(safe-area-inset-bottom));z-index:10}.thumb-bar .btn{max-width:400px;margin:0 auto}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 70%,transparent);z-index:20;display:flex;align-items:flex-end;justify-content:center;padding:16px}.confirm{width:100%;max-width:400px;background:var(--paper);color:var(--ink);border:4px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:16px}.confirm .btn+.btn{margin-top:8px}.toast{position:fixed;left:16px;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));max-width:400px;margin:0 auto;background:var(--mango);color:var(--ink);border:4px solid var(--ink);padding:8px 12px;text-align:center;z-index:15}.avatar{width:32px;height:32px;object-fit:cover;border:4px solid var(--ink);image-rendering:auto;vertical-align:middle;margin-right:8px}.avatar.me{border-color:var(--guava)}.avatar.assigned{border-color:var(--mango)}.avatar-fallback{display:inline-block;width:16px;height:16px;margin-right:8px;vertical-align:middle;image-rendering:pixelated;-webkit-mask:url(/silhouette.svg) center / 16px 16px no-repeat;mask:url(/silhouette.svg) center / 16px 16px no-repeat}.pixel-icon{display:inline-block;width:16px;height:16px;image-rendering:pixelated;vertical-align:middle}.avoid{color:var(--wine)}.person-identity{display:flex;align-items:center;margin-bottom:16px}.person-prefs .sub.person-empty{margin:0;color:inherit}.pref-section+.pref-section{margin-top:8px}.pref-label{display:block;font-weight:700;color:var(--ink)}.pref-label.avoid,.pref-value.avoid{color:var(--wine)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:16px}.page-header h1{flex:1}.assigned-block{margin-bottom:16px}.assigned-name{font-size:1.5rem;font-weight:700;color:var(--paper);margin:8px 0;line-height:1.25}.room-code{font-size:.875rem;font-weight:700;letter-spacing:.12em}.gift-hero{width:64px;height:64px;image-rendering:pixelated;display:block;margin:24px auto 16px}details{margin:16px 0}summary{cursor:pointer;font-weight:700;min-height:48px;display:flex;align-items:center;gap:8px;list-style:none}summary::-webkit-details-marker{display:none}@media(prefers-reduced-motion:reduce){.btn:hover,.btn:active{transform:none}}
