:root{--bg:#f4efe4;--surface:#fffdf8;--surface-2:#ece5d6;--text:#24262b;--muted:#6c6f77;--line:#ddd4c2;--town:#d6ccb6;--cell:#f3ede0;--accent:#24262b;--accent-text:#fffdf8;--err:#c0392b;--casa:#d9774a;--botiga:#e2b33c;--placa:#cbbfa6;--parc:#5fa85a;--equip:#5d7fbf;--font:#8fc9ea;--ruina:#9a9385;--s0:#3d7be0;--s1:#e8594a;--s2:#e0a91f;--s3:#3a9d62;--radius:14px;--shadow:0 1px 2px #0000000f, 0 4px 16px #0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#16181d;--surface:#1f2229;--surface-2:#2a2e37;--text:#eceef2;--muted:#9ba1ad;--line:#353a46;--town:#0f1115;--cell:#2a2d35;--accent:#eceef2;--accent-text:#16181d;--err:#ff7b6b;--casa:#e08458;--botiga:#e9bf4f;--placa:#b3a78f;--parc:#6db868;--equip:#6d8fd0;--font:#79b7da;--ruina:#6f695e;--s0:#5a93f0;--s1:#f26b5b;--s2:#f4c13d;--s3:#4fba7b;--shadow:0 1px 2px #0000004d, 0 4px 16px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);min-height:100dvh;margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input{font:inherit;color:inherit}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .5em;line-height:1.15}h1{font-size:clamp(1.8rem,5vw,2.8rem);font-weight:750}h2{font-size:1.25rem;font-weight:700}h3{font-size:1rem;font-weight:700}.muted{color:var(--muted)}.note{color:var(--muted);margin:.5rem 0 0;font-size:.875rem}kbd{border:1px solid var(--line);background:var(--surface);border-radius:4px;padding:1px 5px;font:600 .8em ui-monospace,monospace}.eyebrow{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 .25rem;font-size:.8rem;font-weight:600}.t-casa{fill:var(--casa);background:var(--casa)}.t-botiga{fill:var(--botiga);background:var(--botiga)}.t-placa{fill:var(--placa);background:var(--placa)}.t-parc{fill:var(--parc);background:var(--parc)}.t-equip{fill:var(--equip);background:var(--equip)}.t-font{fill:var(--font);background:var(--font)}.t-ruina{fill:var(--ruina);background:var(--ruina)}.logo rect.t-casa{fill:var(--casa)}.s0{--pc:var(--s0)}.s1{--pc:var(--s1)}.s2{--pc:var(--s2)}.s3{--pc:var(--s3)}button,.button{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.4em;min-height:44px;padding:.55em 1em;font-weight:600;text-decoration:none;transition:background .15s,transform 50ms;display:inline-flex}a.button{color:inherit}button:hover:not(:disabled){background:var(--surface-2)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary,.button.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent);opacity:.88}button.big{min-height:52px;padding:.7em 1.4em;font-size:1.05rem}button.link{min-height:0;color:var(--muted);background:0 0;border:0;padding:2px 0;font-size:.85rem;font-weight:500;text-decoration:underline}button.link:hover:not(:disabled){color:var(--text);background:0 0}:focus-visible{outline:3px solid var(--s0);outline-offset:2px}input:not([type]){border:1px solid var(--line);background:var(--surface);border-radius:10px;width:100%;min-height:44px;padding:.6em .8em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.tag{text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2);color:var(--muted);vertical-align:2px;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:700;display:inline-block}.tag.you{background:var(--accent);color:var(--accent-text)}.swatch{background:var(--pc);border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.online{background:var(--muted);opacity:.5;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.online.on{background:var(--s3);opacity:1}.chip{border-radius:6px;flex:none;place-items:center;width:26px;height:26px;font-size:15px;font-style:normal;display:inline-grid}.empty-chip{background:var(--cell);border:1px dashed var(--muted)}.top{padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));align-items:center;gap:12px;max-width:1400px;margin:0 auto;display:flex}.top .spacer{flex:1}.top .eyebrow{margin:0}.top .icon{min-height:36px;padding:.3em .8em;font-size:.875rem}.brand{color:inherit;align-items:center;gap:8px;font-size:1.1rem;font-weight:750;text-decoration:none;display:inline-flex}.logo{width:24px;height:24px}.conn{color:var(--muted);background:var(--surface-2);border-radius:999px;padding:2px 8px;font-size:.8rem}.home,.lobby{gap:20px;max-width:760px;margin:0 auto;padding:8px 16px 48px;display:grid}.hero{padding:16px 0 4px}.hero p{color:var(--muted);max-width:60ch;margin:0;font-size:1.05rem}.learn{flex-wrap:wrap;align-items:center;gap:8px 14px;display:flex;margin-top:16px!important}.learn .note{margin:0}.create{gap:18px;display:grid}.field{gap:6px;font-weight:600;display:grid}.variants{border:0;grid-template-columns:repeat(4,1fr);gap:10px;margin:0;padding:0;display:grid}.variants legend{margin-bottom:6px;padding:0;font-weight:600}.variant input{opacity:0;pointer-events:none;position:absolute}.vcard{border:2px solid var(--line);cursor:pointer;background:var(--bg);text-align:center;border-radius:12px;justify-items:center;gap:2px;padding:12px 6px;display:grid}.vnum{font-size:1.6rem;font-weight:750;line-height:1.1}.vtitle{color:var(--muted);font-size:.8rem;font-weight:600}.variant input:checked+.vcard{border-color:var(--accent);background:var(--surface)}.variant input:focus-visible+.vcard{outline:3px solid var(--s0);outline-offset:2px}.rules summary{cursor:pointer;font-weight:700}.rules ol{gap:.4em;margin:.75em 0 0;padding-left:1.2em;display:grid}.center{text-align:center;justify-items:center;gap:12px;max-width:480px;margin:15vh auto 0;padding:16px;display:grid}.share{flex-wrap:wrap;gap:8px;display:flex}.share input{flex:220px;font-family:ui-monospace,monospace;font-size:.9rem}.seatlist{gap:8px;margin:0;padding:0;list-style:none;display:grid}.seatlist li{background:var(--bg);border-radius:10px;align-items:center;gap:10px;min-height:56px;padding:8px 10px;display:flex}.seatlist .swatch{width:18px;height:18px}.seatlist .who{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.seatlist button{min-height:38px;padding:.3em .8em;font-size:.875rem}.sit{gap:8px;margin-top:14px;display:flex}.actions{justify-items:start;gap:8px;display:grid}.legend ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:flex-start;gap:10px;font-size:.9rem;line-height:1.4;display:flex}.game{grid-template:"players middle coach""players middle info"1fr/220px minmax(0,1fr) 310px;align-items:start;gap:16px;max-width:1400px;margin:0 auto;padding:0 16px 16px;display:grid}.players{grid-area:players;gap:10px;display:grid}.middle{grid-area:middle;gap:12px;min-width:0;display:grid}.info{grid-area:info;gap:12px;display:grid}.coach{grid-area:coach}.player{text-align:left;background:var(--surface);box-shadow:var(--shadow);border:2px solid #0000;border-radius:12px;grid-template-columns:1fr auto;grid-template-areas:"mini mini""name score""meta score""rep rep";place-items:center stretch;gap:2px 8px;min-height:0;padding:10px;display:grid}.player:hover:not(:disabled){background:var(--surface);border-color:var(--line)}.player .mini{grid-area:mini;width:100%;height:auto;margin-bottom:6px}.player .pname{white-space:nowrap;grid-area:name;align-items:center;gap:6px;min-width:0;font-weight:650;display:flex;overflow:hidden}.player .pscore{font-variant-numeric:tabular-nums;grid-area:score;font-size:1.4rem;font-weight:750}.player .pmeta{color:var(--muted);grid-area:meta;font-size:.78rem;font-weight:500}.player .replace{color:var(--muted);grid-area:rep;margin-top:4px;font-size:.8rem;text-decoration:underline}.player.turn{border-color:var(--pc)}.player.shown{box-shadow:0 0 0 2px var(--text) inset, var(--shadow)}.roundbar{color:var(--muted);font-size:.95rem}.roundbar b{color:var(--text)}.market{flex-wrap:wrap;align-items:stretch;gap:8px;display:flex}.mcard{border:2px solid var(--line);background:var(--surface);border-radius:12px;flex:1 1 0;grid-template-rows:1fr auto;place-items:center;gap:6px;min-width:84px;min-height:110px;padding:10px 6px 8px;display:grid}.mcard.selected{border-color:var(--text);background:var(--surface-2)}.mfig{place-items:center;min-height:64px;display:grid}.mlabel{color:var(--muted);font-size:.78rem;font-weight:600}.mrenew{color:var(--muted);margin:-4px 0 0;font-size:.85rem}.townwrap{justify-items:center;gap:6px;display:grid}.viewing{justify-self:start;margin:0;font-weight:600}.town.mytown{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;min-width:260px;max-width:min(560px,100dvh - 330px);height:auto;display:block}.town .town-bg{fill:var(--town)}.town .cell.empty{fill:var(--cell)}.town .cell.fresh{animation:1s ease-out fresh}@keyframes fresh{0%{opacity:.35}}.town .outline{fill:none;stroke:#00000073;stroke-width:.06px;stroke-linecap:round;pointer-events:none}.town .icons,.town .ghost{pointer-events:none}.town text.icon{text-anchor:middle;dominant-baseline:middle;font-size:.52px}.town .ghost rect{opacity:.8;stroke:var(--text);stroke-width:.05px}.town .ghost.invalid rect{fill:var(--muted);opacity:.45;stroke:var(--err);stroke-dasharray:.15 .1}.town .delta{text-anchor:middle;fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:.12px;font:800 .55px system-ui,sans-serif}.piece text.icon{text-anchor:middle;dominant-baseline:middle;font-size:.55px}.status{min-height:1.5em;margin:0}.status .err{color:var(--err);font-weight:600}.status .why{color:var(--muted)}.controls{flex-wrap:wrap;gap:8px;display:flex}.controls button{flex:1 0 auto;font-size:1.15rem}.controls button[data-act=hint],.controls button[data-act=play]{font-size:1rem}.controls button[data-act=play]{flex:2 0 auto}.goals ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.goals li{justify-content:space-between;align-items:flex-start;gap:8px;font-size:.9rem;line-height:1.35;display:flex}.goals li.done b:after{content:" ✓";color:var(--s3)}.goals .gpts{background:var(--surface-2);border-radius:6px;padding:0 6px;font-size:.72rem;font-weight:700;display:inline-block}.goals .gwho{gap:3px;padding-top:3px;display:flex}.myscore table{border-collapse:collapse;width:100%;font-size:.9rem}.myscore td{padding:3px 0}.myscore td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.myscore td .chip{vertical-align:middle;width:20px;height:20px;margin-right:4px;font-size:12px}.myscore tr.neg td{color:var(--muted)}.myscore tr.total td{border-top:1px solid var(--line);padding-top:6px;font-size:1.05rem;font-weight:750}.result{z-index:10;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.result .card{width:min(460px,100%)}.ranking{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.ranking li{background:var(--bg);border-radius:10px;grid-template-columns:auto 1fr auto;grid-template-areas:"sw name pts""sw small pts";align-items:center;column-gap:10px;padding:8px 10px;display:grid}.ranking .swatch{grid-area:sw;width:16px;height:16px}.ranking span{grid-area:name;font-weight:650}.ranking b{font-variant-numeric:tabular-nums;grid-area:pts;font-size:1.4rem}.ranking small{color:var(--muted);grid-area:small}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.coach{border:2px solid var(--s0);gap:10px;padding:14px 16px 0;display:grid;overflow:hidden}.coach p{margin:0}.coach>button{justify-self:start}.coach-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-head .eyebrow{color:var(--s0);margin:0}.coach-bar{background:var(--surface-2);height:4px;margin:4px -16px 0}.coach-bar i{background:var(--s0);height:100%;transition:width .3s;display:block}.coach-hl{outline:3px solid var(--s0);outline-offset:3px;border-radius:10px;animation:1.4s ease-in-out infinite coach-pulse}@keyframes coach-pulse{50%{outline-color:#3d7be040}}@media (prefers-reduced-motion:reduce){.coach-hl,.town .cell.fresh{animation:none}}@media (width<=1100px){.game{grid-template-columns:190px minmax(0,1fr) 270px}}@media (width<=900px){.game,.game.tutorial{padding-bottom:max(16px, env(safe-area-inset-bottom));grid-template:"players""middle""info""coach"/minmax(0,1fr);gap:12px}.players{grid-auto-columns:minmax(120px,1fr);grid-auto-flow:column;padding-bottom:2px;overflow-x:auto}.player{box-shadow:none;padding:8px}.player .mini{display:none}.player .pscore{font-size:1.15rem}.town.mytown{min-width:0;max-width:none}.market{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.mcard{gap:4px;min-width:0;min-height:88px;padding:8px 3px 6px}.mfig{min-height:48px}.mfig svg{max-width:100%;height:auto}.mlabel{text-overflow:ellipsis;max-width:100%;font-size:.62rem;overflow:hidden}.top .eyebrow{display:none}.coach{bottom:max(8px, env(safe-area-inset-bottom));z-index:5;gap:8px;max-height:45dvh;padding:12px 14px 0;font-size:.95rem;position:sticky;overflow-y:auto;box-shadow:0 -4px 24px #0000002e}.coach>button{min-height:40px}}@media (width<=420px){.variants{grid-template-columns:repeat(2,1fr)}}
