:root{--bg:#13151c;--panel:#1d2029;--line:#343949;--text:#ece8dc;--muted:#9ea3b5;--gold:#e0b253;--red:#ff8a80;--green:#74d6a5;--card:#f6f1e4;--ink:#1b1b1f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.45 system-ui,sans-serif}main{flex-direction:column;gap:14px;max-width:980px;margin:0 auto;padding:16px 16px 48px;display:flex}header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}h1{margin:0 auto 0 0;font-size:1.15rem}h2,h3{margin:0 0 8px}button{font:inherit;color:var(--ink);background:var(--gold);cursor:pointer;border:0;border-radius:8px;padding:8px 14px}button:disabled{opacity:.4;cursor:default}button.quiet{color:var(--muted);border:1px solid var(--line);background:0 0}input,select{font:inherit;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px 8px}.panel,.table,.gauge{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}.panel{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.gauge{color:var(--muted);flex-wrap:wrap;gap:6px 18px;display:flex}.gauge strong{color:var(--gold)}.choices{flex-wrap:wrap;gap:10px;display:flex}.choices button{text-align:start;flex-direction:column;align-items:flex-start;max-width:300px;display:flex}.table{flex-direction:column;gap:14px;display:flex}.seat h3{color:var(--muted);font-size:.95rem}.row,.hand,.trick{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.hand{margin-top:10px}.stack{flex-direction:column-reverse;gap:3px;display:flex}.card{background:var(--card);min-width:44px;height:58px;color:var(--ink);border:2px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0 6px;font-size:1.05rem;font-weight:700;display:inline-flex}button.card{border-color:var(--gold);box-shadow:0 0 0 2px #e0b25355}.card.red{color:#c62828}.card.back{background:repeating-linear-gradient(45deg,#44507a,#44507a 4px,#2c3452 4px 8px);height:16px}.card.empty{border:1px dashed var(--line);background:0 0}.middle{border-block:1px solid var(--line);padding:10px 0}.middle p{margin:4px 0}.played{color:var(--muted);flex-direction:column;align-items:center;gap:2px;display:flex}.muted{color:var(--muted)}.powers{color:var(--muted);margin:6px 0 0;padding-inline-start:18px;font-size:.92rem}.vows{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.vows h3{flex-basis:100%}.vow{text-align:start;background:var(--card);border-top:6px solid var(--gold);flex-direction:column;align-items:flex-start;gap:4px;width:220px;display:flex}.vow.tenue{border-top-color:#c9a227}.vow.garde{border-top-color:#a9542f}.vow.plis{border-top-color:#2f8f8a}.vow.honneurs{border-top-color:#7b4fa8}.vow.temps{border-top-color:#3c4fa0}.vow .odds,.vow-live{font-weight:700}.held{color:var(--green)}.broken{color:var(--red)}.review .big{color:var(--gold);margin:0;font-size:1.4rem}.laid{color:var(--muted);margin:0;padding-inline-start:18px}@media (width<=520px){.vow{width:100%}.card{min-width:38px;height:50px}}.layers{border:1px solid var(--line,#ccc);border-radius:6px;gap:.4rem;margin:0 0 1rem;padding:.6rem .8rem;display:grid}.layers label{grid-template-columns:auto auto 1fr;align-items:baseline;gap:.5rem;display:grid}.layers span,.vow .net{opacity:.75;font-size:.9em}.rules{gap:4px;margin:0;padding-inline-start:22px;display:grid}.rules-box{display:block}.rules-box summary{cursor:pointer;color:var(--gold)}.rules-box .rules{margin-top:8px}.vow-rule{color:var(--gold);flex-basis:100%;margin:0}.vow .why,.explain .why{opacity:.75;font-size:.88em}.explain{gap:4px;margin:0;padding-inline-start:18px;display:grid}.tester-switch{color:var(--muted);align-items:center;gap:6px;font-size:.92rem;display:flex}.tester{color:#c5d8ec;background:#16202c;border:2px dashed #6fa8dc;border-radius:10px;flex-basis:100%;align-self:stretch;padding:8px 12px 10px;font-size:.92rem}.tester-tag{letter-spacing:.06em;text-transform:uppercase;color:#6fa8dc;margin:0 0 6px;font-size:.75rem;font-weight:700}.tester p{margin:4px 0}.tester-line{flex-wrap:wrap;gap:4px 18px;display:flex}.tester .layers{margin:6px 0}.odds-table{border-collapse:collapse;width:100%}.odds-table th,.odds-table td{text-align:start;border-bottom:1px solid #2a3a4e;padding:3px 8px 3px 0}.odds-table tr.declared td{font-weight:700}.yours{display:block}.yours summary{cursor:pointer;color:var(--gold)}.yours h3{margin:12px 0 6px;font-size:1rem}.deck{border-collapse:collapse;width:100%}.deck th,.deck td{text-align:start;border-bottom:1px solid var(--line);vertical-align:top;padding:4px 8px 4px 0}.deck td:first-child{border-inline-start:4px solid var(--line);padding-inline-start:8px}.deck .tenue td:first-child{border-inline-start-color:#c9a227}.deck .garde td:first-child{border-inline-start-color:#a9542f}.deck .plis td:first-child{border-inline-start-color:#2f8f8a}.deck .honneurs td:first-child{border-inline-start-color:#7b4fa8}.deck .temps td:first-child{border-inline-start-color:#3c4fa0}.story{margin:0;font-style:italic}.table.four .middle4{border-block:1px solid var(--line);grid-template-columns:minmax(80px,1fr) 3fr minmax(80px,1fr);align-items:center;gap:10px;padding:10px 0;display:grid}.seat4{color:var(--muted);border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px;display:flex}.seat4.north{align-self:center}.seat4.turn{border-color:var(--gold);color:var(--text)}.centre p{margin:4px 0}.dealt{gap:6px;display:grid}.dealt-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.dealt-row small{min-width:140px}.dealt-row .card{min-width:34px;height:44px;font-size:.9rem}
