:root{color-scheme:light;--bg: #f5f6f8;--surface: #ffffff;--surface-2: #f0f2f5;--border: #e0e3e9;--text: #14181f;--text-muted: #666f7d;--accent: #2f5fe0;--accent-hover: #2650c4;--accent-soft: #e8eeff;--accent-2: #8f5cf0;--on-accent: #ffffff;--danger: #c9372c;--danger-soft: #fdeceb;--success: #1e7a4b;--success-soft: #e6f4ec;--warning-soft: #fdf3e0;--warning-text: #8a5a12;--line: #c3cad6;--radius: 10px;--shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px rgba(16, 24, 40, .05);--shadow-modal: 0 12px 40px rgba(16, 24, 40, .18);--scrim: rgba(10, 14, 20, .45);--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #101317;--surface: #181c22;--surface-2: #1f242c;--border: #2b323b;--text: #e8eaee;--text-muted: #98a2b1;--accent: #6b93ff;--accent-hover: #85a6ff;--accent-soft: #1c2740;--accent-2: #a884ff;--on-accent: #0d1016;--danger: #ff8a80;--danger-soft: #35201f;--success: #6ede9f;--success-soft: #163023;--warning-soft: #33291a;--warning-text: #e5be7c;--line: #3c4553;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .3);--shadow-modal: 0 12px 40px rgba(0, 0, 0, .5);--scrim: rgba(4, 6, 10, .65)}}:root[data-theme=dark]{color-scheme:dark;--bg: #101317;--surface: #181c22;--surface-2: #1f242c;--border: #2b323b;--text: #e8eaee;--text-muted: #98a2b1;--accent: #6b93ff;--accent-hover: #85a6ff;--accent-soft: #1c2740;--accent-2: #a884ff;--on-accent: #0d1016;--danger: #ff8a80;--danger-soft: #35201f;--success: #6ede9f;--success-soft: #163023;--warning-soft: #33291a;--warning-text: #e5be7c;--line: #3c4553;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .3);--shadow-modal: 0 12px 40px rgba(0, 0, 0, .5);--scrim: rgba(4, 6, 10, .65)}*{box-sizing:border-box}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.75rem}h2{font-size:1.25rem;margin-top:0}h3{font-size:1rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{background:var(--surface-2);padding:.1em .35em;border-radius:4px;font-size:.9em}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:1.75rem 1.25rem 4rem}.page{display:flex;flex-direction:column;gap:1.5rem}.page.narrow{max-width:720px;margin:0 auto}.page-head,.detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1.5rem;align-items:start}.detail-main{display:flex;flex-direction:column;gap:2rem;min-width:0}@media (max-width: 900px){.detail-layout{grid-template-columns:1fr}}.navbar{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.navbar-inner{max-width:1240px;margin:0 auto;padding:.75rem 1.25rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:650;color:var(--text);font-size:1.02rem}.brand:hover{text-decoration:none}.brand-mark{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,var(--accent),var(--accent-2))}.navbar-links{display:flex;gap:1rem;margin-right:auto}.navbar-links a{color:var(--text-muted);font-size:.92rem;padding:.35rem 0;border-bottom:2px solid transparent}.navbar-links a:hover{color:var(--text);text-decoration:none}.navbar-links a.active{color:var(--text);border-bottom-color:var(--accent)}.navbar-account{display:flex;align-items:center;gap:.6rem}.display-settings{display:flex;align-items:center;gap:.4rem}.display-settings select{width:auto;padding:.3rem 1.4rem .3rem .5rem;font-size:.82rem;background:transparent;border-color:var(--border);color:var(--text-muted);cursor:pointer}.display-settings select:hover{color:var(--text)}@media (max-width: 720px){.display-settings{order:3}}.who{display:flex;flex-direction:column;line-height:1.2;font-size:.88rem;text-align:right}.roles{color:var(--text-muted);font-size:.72rem;text-transform:lowercase}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:8px;padding:.5rem .9rem;font:inherit;font-size:.9rem;font-weight:550;cursor:pointer;background:var(--surface-2);color:var(--text);transition:background .12s ease,border-color .12s ease;white-space:nowrap}.btn:hover:not(:disabled){background:var(--border);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--on-accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--accent-soft);color:var(--accent);border-color:transparent}.btn-ghost{background:transparent;border-color:var(--border);color:var(--text)}.btn-danger{background:transparent;border-color:var(--border);color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-small{padding:.35rem .7rem;font-size:.83rem}.btn-tiny{padding:.2rem .5rem;font-size:.75rem;border-radius:6px}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;box-shadow:var(--shadow)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1rem}.tournament-card{display:flex;flex-direction:column;gap:.5rem;color:inherit}.tournament-card:hover{border-color:var(--accent);text-decoration:none}.tournament-card h2{font-size:1.05rem;margin:0}.card-top,.card-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.card-foot{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.82rem}.game-title{margin:0;color:var(--text-muted);font-size:.85rem}.excerpt{margin:0;color:var(--text-muted);font-size:.88rem;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.description{margin:0;max-width:70ch;line-height:1.65;color:var(--text-muted);white-space:pre-line}.chip{display:inline-block;padding:.15rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.01em;text-transform:capitalize;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}.chip-registration_open,.chip-ready{background:var(--accent-soft);color:var(--accent)}.chip-in_progress{background:var(--warning-soft);color:var(--warning-text)}.chip-completed,.chip-played{background:var(--success-soft);color:var(--success)}.chip-cancelled{background:var(--danger-soft);color:var(--danger)}.badges{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem}.tag{margin-left:.4rem;font-size:.68rem;padding:.08rem .4rem;border-radius:4px;background:var(--accent-soft);color:var(--accent);text-transform:uppercase;letter-spacing:.03em}.tag-muted{background:var(--surface-2);color:var(--text-muted)}.field{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;color:var(--text-muted)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media (max-width: 600px){.field-row{grid-template-columns:1fr}}input,select,textarea{font:inherit;font-size:.92rem;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.5rem .65rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:var(--accent)}textarea{resize:vertical}.checkbox{display:flex;align-items:center;gap:.5rem;font-size:.88rem}.checkbox input{width:auto}.form{display:flex;flex-direction:column;gap:1rem}.form-actions{display:flex;justify-content:flex-end;gap:.6rem}.filters{display:flex;gap:.75rem;flex-wrap:wrap}.filters input[type=search]{flex:1 1 240px}.filters select{flex:0 0 180px}.form-error,.form-notice{margin:0;padding:.6rem .8rem;border-radius:8px;font-size:.88rem}.form-error{background:var(--danger-soft);color:var(--danger)}.form-notice{background:var(--success-soft);color:var(--success)}.hint{margin:0;font-size:.82rem;color:var(--text-muted)}.muted{color:var(--text-muted)}.small{font-size:.8rem}.strong{font-weight:650}.auth-page{display:flex;justify-content:center;padding-top:2rem}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:.9rem}.auth-alt{margin:0;text-align:center;font-size:.88rem;color:var(--text-muted)}.loading,.empty-state{padding:3rem 1rem;text-align:center;color:var(--text-muted)}.empty-state h2{color:var(--text)}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;font-size:.88rem;color:var(--text-muted)}.detail-actions{display:flex;gap:.5rem;flex-wrap:wrap}.champion-banner{display:flex;align-items:center;gap:.9rem;padding:.9rem 1.1rem;border-radius:var(--radius);background:var(--success-soft);border:1px solid transparent}.champion-banner .trophy{font-size:1.6rem}.champion-banner div{display:flex;flex-direction:column}.champion-banner strong{font-size:1.15rem}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.75rem}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.panel-head h3{margin:0}.participant-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;max-height:420px;overflow-y:auto}.participant-list li{display:flex;align-items:center;gap:.6rem;padding:.45rem 0;border-bottom:1px solid var(--border);font-size:.9rem}.participant-list li:last-child{border-bottom:none}.participant-seed{flex:0 0 1.6rem;text-align:center;font-size:.75rem;color:var(--text-muted);background:var(--surface-2);border-radius:5px;padding:.1rem 0}.participant-name{flex:1;min-width:0}.add-participant{display:grid;grid-template-columns:1fr 76px auto;gap:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:1rem}.group-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.table-scroll{overflow-x:auto}.standings{width:100%;border-collapse:collapse;font-size:.85rem;margin-bottom:.9rem}.standings th{text-align:left;font-weight:600;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:.3rem .4rem;border-bottom:1px solid var(--border)}.standings td{padding:.4rem;border-bottom:1px solid var(--border)}.standings tr:last-child td{border-bottom:none}.standings .num{text-align:right;font-variant-numeric:tabular-nums}.standings tr.qualified td{background:var(--success-soft)}.qualified-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-left:.4rem;vertical-align:middle}.group-fixtures{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.6rem}.match-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.4rem .5rem;display:flex;flex-direction:column;gap:.15rem;font-size:.85rem}.match-card.status-completed,.match-card.status-bye{border-color:var(--border)}.match-card.status-ready{border-color:var(--accent)}.match-side{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.15rem 0;min-width:0}.match-side.is-winner .match-name{font-weight:650}.match-side.is-winner .match-score{font-weight:700;color:var(--success)}.match-side.is-empty{color:var(--text-muted);font-style:italic}.match-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seed{color:var(--text-muted);font-size:.72rem;margin-left:.3rem;font-style:normal;font-weight:400}.match-score{font-variant-numeric:tabular-nums;color:var(--text-muted);flex:0 0 auto}.match-foot{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin-top:.15rem;padding-top:.25rem;border-top:1px solid var(--border)}.bracket-scroll{overflow-x:auto;padding-bottom:.75rem}.bracket-headers{position:relative;height:1.6rem;margin-bottom:.4rem}.bracket-header{position:absolute;top:0;font-size:.75rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);text-align:center}.bracket-canvas{position:relative}.bracket-lines{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.bracket-lines polyline{stroke:var(--line);stroke-width:1.5}.bracket-match{position:absolute;justify-content:center}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:50}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);padding:1.25rem;width:100%;max-width:420px;box-shadow:var(--shadow-modal)}.modal h3{margin:0}.modal-sub{margin:.15rem 0 1rem;color:var(--text-muted);font-size:.88rem}.modal form{display:flex;flex-direction:column;gap:.9rem}.score-row{display:grid;grid-template-columns:1fr auto 1fr;gap:.5rem;align-items:end}.score-row label{display:flex;flex-direction:column;gap:.3rem;font-size:.8rem;color:var(--text-muted);min-width:0}.score-row label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.score-sep{padding-bottom:.55rem;color:var(--text-muted)}.modal-actions{display:flex;justify-content:flex-end;gap:.6rem}.modal-wide{max-width:560px;max-height:88vh;overflow-y:auto}.team-logo{display:inline-flex;align-items:center;justify-content:center;border-radius:7px;object-fit:cover;flex:0 0 auto;background:var(--surface-2)}.team-logo-fallback{color:#fff;font-weight:700;letter-spacing:.02em;line-height:1}.team-tag{display:inline-block;margin-left:.4rem;padding:.05rem .35rem;border-radius:4px;background:var(--surface-2);color:var(--text-muted);font-size:.7rem;font-weight:700;letter-spacing:.04em;vertical-align:middle}.team-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem;max-height:460px;overflow-y:auto}.team-row{width:100%;display:flex;align-items:center;gap:.6rem;padding:.45rem .5rem;border:1px solid transparent;border-radius:8px;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer}.team-row:hover{background:var(--surface-2);border-color:var(--border)}.team-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.team-row-name{font-size:.9rem;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.roster-dot.is-ready{background:var(--success)}.roster-dot.is-short{background:var(--warning-text)}.team-dialog-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.5rem}.team-dialog-head>div{flex:1;min-width:0}.team-dialog-head h3{margin:0}.team-dialog-head .modal-sub{display:flex;align-items:center;gap:.5rem;margin:.2rem 0 0}.dialog-section{padding-top:.9rem;margin-top:.9rem;border-top:1px solid var(--border)}.dialog-section h4{margin:0 0 .6rem;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.roster li{display:flex;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border);font-size:.88rem}.roster li:last-child{border-bottom:none}.roster-name{flex:1;min-width:0}.roster-actions{display:flex;gap:.35rem;flex:0 0 auto}.invite-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:.5rem}@media (max-width: 520px){.invite-form{grid-template-columns:1fr}}.pending-invites{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.pending-invites li{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.85rem;padding:.3rem .5rem;border-radius:6px;background:var(--surface-2)}.logo-row{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.logo-row input[type=file]{flex:1;min-width:180px;border:none;padding:0;font-size:.82rem;background:transparent}.settings-row{display:flex;gap:.5rem;flex-wrap:wrap}.badge{display:inline-block;margin-left:.35rem;min-width:1.05rem;padding:0 .3rem;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:.68rem;font-weight:700;line-height:1.05rem;text-align:center;vertical-align:middle}.invitation-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.invitation-card{display:flex;align-items:center;gap:.9rem}.invitation-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.invitation-note{margin:.3rem 0 0;font-size:.85rem;color:var(--text-muted);font-style:italic}.invitation-actions{display:flex;gap:.4rem;flex:0 0 auto}@media (max-width: 520px){.invitation-card{flex-wrap:wrap}.invitation-actions{width:100%}}
