.tournament-shell{padding-top:28px;padding-bottom:60px}.tb-empty{text-align:center;padding:60px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.tb-empty h2{margin:0 0 8px;font-size:1.25rem}.tb-empty p{margin:0;color:var(--muted-foreground)}.tb-tabs{display:flex;gap:8px;margin-bottom:16px}.tb-tab,.tb-tool{background:var(--muted);border:1px solid var(--border);color:var(--foreground-dim);border-radius:var(--radius);padding:7px 14px;font:inherit;font-size:.875rem;font-weight:600;cursor:pointer}.tb-tab:hover,.tb-tool:hover{color:var(--foreground);border-color:#3f3f46}.tb-tab.active{color:var(--foreground);border-color:var(--primary);background:#ec48991f}.tb-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 20px}.tb-title{display:flex;align-items:center;gap:12px}.tb-title h2{margin:0;font-size:1.25rem}.tb-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--muted);color:var(--muted-foreground)}.tb-status.live{background:#ef444426;color:#f87171}.tb-dot{width:7px;height:7px;border-radius:50%;background:currentColor;animation:tb-pulse 1.4s ease-in-out infinite}@keyframes tb-pulse{50%{opacity:.3}}.tb-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0}.tb-facts div{display:flex;gap:6px;font-size:.875rem}.tb-facts dt{color:var(--muted-foreground)}.tb-facts dd{margin:0;font-weight:600}.tb-age{margin-left:auto;font-size:.8rem;color:var(--muted-foreground)}.tb-podium{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:14px}.tb-podium-spot{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--card);border:1px solid var(--border);border-left:3px solid var(--medal);border-radius:var(--radius-lg)}.tb-podium-spot.gold{--medal: #fbbf24}.tb-podium-spot.silver{--medal: #c0c0c0}.tb-podium-spot.bronze{--medal: #cd7f32}.tb-podium-spot img{width:40px;height:40px;border-radius:6px;image-rendering:pixelated}.tb-podium-spot div{display:flex;flex-direction:column;min-width:0}.tb-podium-place{font-size:.75rem;font-weight:700;color:var(--medal);text-transform:uppercase}.tb-podium-spot strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tb-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 10px}.tb-hint{margin-right:auto;font-size:.8rem;color:var(--muted-foreground)}.tb-tool{padding:5px 12px;font-size:.8rem}.tb-board{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.tb-scroller{overflow-x:auto;padding:16px 20px 20px;cursor:grab}.tb-scroller.dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.tb-canvas{position:relative}.tb-lines{position:absolute;inset:0;pointer-events:none;overflow:visible}.tb-line{fill:none;stroke:#3f3f46;stroke-width:1.5}.tb-line.done{stroke:#ec48998c}.tb-line.empty{stroke:#27272a;stroke-dasharray:3 4}.tb-section-label{position:absolute;left:0;z-index:2;padding-right:10px;background:var(--card);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.tb-round{position:absolute;height:22px;padding:0 8px;background:var(--muted);border:0;border-radius:5px;color:var(--foreground-dim);font:inherit;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-round:hover{color:var(--foreground)}.tb-round.done{color:var(--muted-foreground)}.tb-folded{position:absolute;display:flex;flex-direction:column;align-items:center;width:30px;padding:10px 0;background:var(--muted);border:1px dashed #3f3f46;border-radius:6px;color:var(--muted-foreground);font:inherit;cursor:pointer}.tb-folded:hover{color:var(--foreground);border-color:var(--primary)}.tb-folded span{display:block;writing-mode:vertical-rl;margin:0 auto;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.tb-match{position:absolute;display:flex;background:#111113;border:1px solid var(--border);border-radius:6px;z-index:1}.tb-match.bye{opacity:.45;border-style:dashed}.tb-match.live{border-color:#ef4444;box-shadow:0 0 0 1px #ef444459,0 0 16px #ef44442e}.tb-match.final{border-color:#fbbf2499}.tb-code{flex:0 0 26px;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--border);font-family:JetBrains Mono,monospace;font-size:.6rem;color:var(--muted-foreground);writing-mode:vertical-rl;transform:rotate(180deg)}.tb-slots{flex:1;min-width:0}.tb-slot{display:flex;align-items:center;gap:6px;height:28px;padding:0 8px;font-size:.8rem;color:var(--foreground-dim)}.tb-slot+.tb-slot{border-top:1px solid var(--border)}.tb-avatar{flex:0 0 16px;width:16px;height:16px;border-radius:3px;image-rendering:pixelated;background:var(--muted)}.tb-seed{flex:0 0 auto;min-width:14px;font-size:.65rem;color:var(--muted-foreground);text-align:right}.tb-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none}a.tb-name:hover{text-decoration:underline}.tb-mark{flex:0 0 auto;font-size:.65rem;font-weight:800}.tb-slot.win{color:var(--foreground);font-weight:700;background:linear-gradient(90deg,rgba(236,72,153,.14),transparent 70%)}.tb-slot.win .tb-mark{color:#4ade80}.tb-slot.lose{opacity:.55}.tb-slot.lose .tb-mark{color:#f87171}.tb-slot.empty .tb-name,.tb-slot.pending .tb-name{font-style:italic;color:var(--muted-foreground)}.tb-slot.empty .tb-name{letter-spacing:.08em}.tb-live,.tb-next,.tb-final-label{position:absolute;top:-9px;right:8px;display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:4px;font-size:.6rem;font-weight:800;letter-spacing:.06em}.tb-live{background:#ef4444;color:#fff}.tb-live .tb-dot{width:5px;height:5px}.tb-next{background:var(--muted);color:var(--primary-blue);border:1px solid var(--border)}.tb-final-label{right:auto;left:34px;top:-20px;background:none;padding:0;color:#fbbf24;font-size:.7rem;text-transform:uppercase}.tb-match.final.live .tb-final-label{color:#fbbf24}@media(max-width:640px){.tb-header{padding:14px}.tb-age{margin-left:0}.tb-hint{width:100%}.tb-scroller{padding:12px}}
