:root{color-scheme:light;--garden-canvas: #f9f7f4;--garden-ink: #165760;--garden-ink-strong: #142629;--garden-ink-muted: #576965;--garden-action: #ef2e64;--garden-action-hover: #d8194e;--garden-pink: #f59aab;--garden-blush: #fcb1c5;--garden-aqua: #9fd5ca;--garden-turquoise: #31a19f;--garden-green: #6f8f5b;--garden-olive: #9aa866;--garden-gold: #d99228;--garden-champagne: #e1d4ae;--garden-surface: #ffffff;--garden-surface-blush: #fff3f5;--garden-surface-aqua: #eef8f5;--garden-border: #e7ddc6;--garden-border-strong: #cfae6e;--garden-shadow: 0 10px 24px -12px rgba(20, 38, 41, .28);--garden-shadow-soft: 0 4px 14px -8px rgba(20, 38, 41, .22);--garden-radius-sm: 10px;--garden-radius-md: 16px;--garden-radius-lg: 22px;--garden-radius-hero: 28px;--garden-font-display: Georgia, "Iowan Old Style", "Palatino Linotype", serif;--garden-font-body: -apple-system, "Segoe UI", "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--garden-canvas);color:var(--garden-ink-strong);font-family:var(--garden-font-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--garden-font-display);color:var(--garden-ink-strong);font-weight:600}a{color:var(--garden-ink)}.page{max-width:1100px;margin:0 auto;padding:24px}.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% -10%,var(--garden-surface-aqua),var(--garden-canvas) 55%)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:var(--garden-turquoise);font-weight:700;margin:0 0 4px}.card{background:var(--garden-surface);border:1px solid var(--garden-border);border-radius:var(--garden-radius-lg);padding:22px;margin-bottom:16px;box-shadow:var(--garden-shadow-soft)}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 800px){.grid-2{grid-template-columns:1fr}}h1{font-size:1.5rem;margin:0 0 8px}h2{font-size:1.15rem;margin-top:0}label{display:block;margin-bottom:12px;font-size:.88rem;color:var(--garden-ink-muted)}input,select{display:block;width:100%;margin-top:4px;padding:10px 12px;border-radius:var(--garden-radius-sm);border:1px solid var(--garden-border);background:var(--garden-canvas);color:var(--garden-ink-strong);font-size:.95rem;font-family:inherit}input:focus,select:focus{outline:2px solid var(--garden-turquoise);outline-offset:1px}.inline-checkbox{display:inline-flex;align-items:center;gap:6px;width:auto}.inline-checkbox input{width:auto}button{padding:10px 16px;border-radius:999px;border:1px solid transparent;background:var(--garden-action);color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;font-family:inherit;transition:transform .12s ease,background .12s ease,opacity .12s ease}button:hover:not(:disabled){background:var(--garden-action-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.secondary{background:transparent;color:var(--garden-ink);border-color:var(--garden-border-strong)}button.secondary:hover:not(:disabled){background:var(--garden-surface-aqua)}.tab-row{display:flex;gap:8px;margin-bottom:16px}.tab{background:transparent;color:var(--garden-ink-muted);border:1px solid var(--garden-border);flex:1;border-radius:999px}.tab.active{background:var(--garden-ink);color:#fff;border-color:var(--garden-ink)}.button-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}.error-text{color:var(--garden-action);font-size:.85rem}.info-text{color:var(--garden-turquoise);font-size:.85rem}.muted{color:var(--garden-ink-muted);font-size:.85rem}.seat-table{width:100%;border-collapse:collapse;margin:12px 0}.seat-table th,.seat-table td{text-align:left;padding:8px;border-bottom:1px solid var(--garden-border)}.seat-table th{color:var(--garden-ink-muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.badge{background:var(--garden-turquoise);color:#fff;padding:2px 10px;border-radius:999px;font-size:.72rem;margin-left:8px;font-weight:700}.callout{background:var(--garden-surface-blush);border:1px solid var(--garden-pink);border-radius:var(--garden-radius-md);padding:14px;margin-top:12px}.log-list{max-height:160px;overflow-y:auto;font-family:ui-monospace,SF Mono,monospace;font-size:.76rem;padding-left:18px;color:var(--garden-ink-muted)}.table-page{min-height:100vh;background:var(--garden-canvas);display:flex;flex-direction:column}.table-topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 16px}.table-wordmark{font-family:var(--garden-font-display);font-size:1.2rem;margin:0;color:var(--garden-ink-strong)}.connection-pill{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--garden-surface-aqua);color:var(--garden-ink)}.connection-pill.warn{background:var(--garden-blush);color:var(--garden-action-hover)}.connection-dot{width:8px;height:8px;border-radius:50%;background:var(--garden-turquoise)}.connection-pill.warn .connection-dot{background:var(--garden-action);animation:pulse-dot 1.1s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.status-line{margin:0 16px 10px;padding:10px 14px;background:var(--garden-surface);border:1px solid var(--garden-border);border-radius:var(--garden-radius-md);font-size:.92rem;color:var(--garden-ink);box-shadow:var(--garden-shadow-soft)}.toast{position:fixed;left:50%;bottom:100px;transform:translate(-50%);background:var(--garden-ink-strong);color:#fff;padding:10px 18px;border-radius:var(--garden-radius-md);font-size:.85rem;max-width:min(90vw,520px);box-shadow:var(--garden-shadow);z-index:50;animation:toast-in .18s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.table-surface{position:relative;flex:1;margin:0 12px 12px;border-radius:var(--garden-radius-hero);background:linear-gradient(160deg,var(--garden-turquoise) 0%,#268582 55%,#1f6f6d 100%);border:10px solid var(--garden-champagne);display:grid;grid-template-areas:". north ." "west center east" ". south .";grid-template-columns:minmax(64px,1fr) minmax(0,2.6fr) minmax(64px,1fr);grid-template-rows:auto 1fr auto;gap:8px;padding:10px;min-height:460px;overflow:hidden}.seat-pod{background:#f9f7f4f0;border-radius:var(--garden-radius-md);padding:8px 12px;display:flex;flex-direction:column;gap:4px;min-width:0;box-shadow:var(--garden-shadow-soft);border:2px solid transparent}.seat-pod.active-turn{border-color:var(--garden-action)}.seat-pod.dead{opacity:.55}.seat-pod-north{grid-area:north;justify-self:center}.seat-pod-south{grid-area:south;justify-self:center;width:min(100%,640px)}.seat-pod-west{grid-area:west;align-self:center}.seat-pod-east{grid-area:east;align-self:center;max-width:110px}.seat-pod-west{max-width:110px}.seat-pod-header{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.seat-name{font-weight:700;font-size:.85rem;color:var(--garden-ink-strong)}.seat-wind{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--garden-ink-muted);background:var(--garden-surface-aqua);padding:1px 7px;border-radius:999px}.seat-turn-flag{font-size:.66rem;font-weight:700;color:#fff;background:var(--garden-action);padding:1px 8px;border-radius:999px}.seat-meta{font-size:.72rem;color:var(--garden-ink-muted)}.seat-melds{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px;max-width:100%}.seat-melds>div{flex-wrap:wrap;max-width:100%}.seat-tile-count{display:flex;gap:3px;flex-wrap:wrap;margin-top:2px}.opp-tile-back{width:14px;height:20px;border-radius:3px;background:linear-gradient(160deg,var(--garden-champagne),#cbb078);border:1px solid var(--garden-border-strong)}.table-center{grid-area:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:0;padding:6px}.table-center-meta{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;color:#f9f7f4e6;font-size:.76rem}.discard-pool{background:#1426292e;border:1px dashed rgba(249,247,244,.55);border-radius:var(--garden-radius-md);padding:10px;min-height:96px;width:100%;max-width:420px;display:flex;flex-wrap:wrap;gap:4px;align-content:flex-start;justify-content:center}.discard-pool-empty{color:#f9f7f4bf;font-size:.8rem;margin:auto}.claim-window{background:var(--garden-surface);border:2px solid var(--garden-action);border-radius:var(--garden-radius-md);padding:12px;width:100%;max-width:420px;box-shadow:var(--garden-shadow)}.claim-window h3{margin:0 0 4px;font-size:.95rem}.rack-panel{margin:0 12px 12px;background:var(--garden-surface);border:1px solid var(--garden-border);border-radius:var(--garden-radius-lg);padding:14px;box-shadow:var(--garden-shadow-soft)}.rack-panel-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.rack-row{display:flex;gap:6px;flex-wrap:wrap;min-height:76px}.rack-row.melds-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--garden-border)}.action-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--garden-border)}.end-state{margin:auto;text-align:center;padding:40px 24px;max-width:520px}.end-state h2{font-size:1.4rem}.tile-face-button{background:none;border:none;padding:0;border-radius:var(--garden-radius-sm);cursor:pointer;transition:transform .12s ease}.tile-face-button:disabled{cursor:default;opacity:1}.tile-face-button.selectable:hover:not(:disabled){transform:translateY(-4px)}.tile-face-button.selected{transform:translateY(-8px)}.tile-face{width:40px;height:56px;border-radius:6px;background:linear-gradient(160deg,#fffdf8,#f3ead4);border:1px solid var(--garden-border-strong);box-shadow:0 2px 0 var(--garden-border-strong),var(--garden-shadow-soft);display:flex;align-items:center;justify-content:center}.tile-face.small{width:26px;height:36px;border-radius:4px}.tile-face.selected{border-color:var(--garden-action);box-shadow:0 0 0 2px var(--garden-action),var(--garden-shadow-soft)}@media (max-width: 480px){.table-surface{grid-template-columns:minmax(44px,1fr) minmax(0,2.6fr) minmax(44px,1fr);min-height:380px}.seat-pod{padding:6px 8px}.tile-face{width:34px;height:48px}}#root{min-height:100vh}
