:root{--bg: #0f1419;--surface: #1a2230;--surface-2: #232d3f;--border: #2e3a4f;--text: #e7ecf3;--text-muted: #9aa7bd;--accent: #4f8cff;--accent-strong: #2f6fe0;--danger: #ff6b6b;--success: #4cd07d;--radius: 10px;--max-width: 880px}*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}.app{min-height:100vh}.app__header{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);background:var(--surface)}.app__brand h1{margin:0;font-size:1.4rem}.app__tagline{color:var(--text-muted);font-size:.85rem}.app__actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.app__user{display:flex;gap:8px;align-items:center;font-size:.9rem;color:var(--text-muted)}.app__main{max-width:var(--max-width);margin:0 auto;padding:24px 20px 60px}.btn{cursor:pointer;border:none;border-radius:var(--radius);padding:8px 14px;font-size:.9rem;background:var(--accent);color:#fff;transition:background .15s ease}.btn:hover:not(:disabled){background:var(--accent-strong)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--ghost{background:transparent;border:1px solid var(--border);color:var(--text)}.btn--icon{display:inline-flex;align-items:center;justify-content:center;padding:6px;line-height:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:6px}select,input[type=number]{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:8px 10px;font-size:1rem}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.badge--open{background:#4cd07d26;color:var(--success)}.badge--locked{background:#9aa7bd26;color:var(--text-muted)}.badge--played{background:#6366f126;color:var(--accent)}.match-tile{max-height:1500px;transition:opacity .26s ease,transform .26s ease,max-height .36s ease-out}.match-tile--leaving{opacity:0;transform:translateY(-16px);max-height:0;overflow:hidden;pointer-events:none}@media (prefers-reduced-motion: reduce){.match-tile{transition:none}}.match-list__sentinel{display:flex;justify-content:center;padding:8px 0 16px}.error{color:var(--danger);font-size:.85rem}.muted{color:var(--text-muted);font-size:.85rem}@media (max-width: 520px){.app__header{flex-wrap:nowrap;gap:10px;padding:10px 14px}.app__brand h1{font-size:1.15rem}.app__tagline{display:none}.app__user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:50vw}.app__main{padding:16px 14px 48px}}.match-card__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.match-card{position:relative}.match-card>.badge{position:absolute;top:16px;right:16px}.match-card--admin>.badge{right:48px}.match-card__reset{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--danger);cursor:pointer;line-height:0;transition:background .15s ease,border-color .15s ease}.match-card__reset:hover:not(:disabled){background:#ff5c5c1f;border-color:var(--danger)}.match-card__reset:disabled{opacity:.5;cursor:default}.link-button{display:inline;padding:0;border:none;background:none;color:var(--accent);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer}.link-button:hover:not(:disabled){text-decoration:none}.link-button:disabled{opacity:.6;cursor:default}.link-button--danger{color:var(--danger)}.match-card__teams{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:0 0 12px;text-transform:uppercase;font-weight:700;text-align:center}.match-card__teams>:first-child{justify-self:end}.match-card__teams>:last-child{justify-self:start}.match-card__vs{color:var(--text-muted);font-weight:700}.match-card__meta{margin:0 0 10px;padding-right:64px;text-align:left}.match-list__upcoming h3{margin:0 0 12px}.tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.tabs__tab{cursor:pointer;border:none;background:transparent;color:var(--text-muted);padding:10px 16px;font-size:.95rem;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease,border-color .15s ease}.tabs__tab:hover{color:var(--text)}.tabs__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.collapsible{margin-top:8px}.collapsible__toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px}.collapsible__content{margin-top:12px}.score-input__row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px}.score-input__row>input[type=number]:first-child{justify-self:end}.score-input__row>input[type=number]:last-child{justify-self:start}.score-input__team{font-weight:600}.score-input__sep{font-weight:700}.score-input input[type=number]{width:56px;text-align:center}.others-list,.suggestions__list{list-style:none;margin:8px 0;padding:0}.others-list li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border)}.others-list__pred{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.others-list__note{font-size:.85rem;text-align:right;white-space:pre-wrap}.badge--admin{background:#5b8cff2e;color:var(--accent, #5b8cff);margin-left:6px}.match-card__admin{margin-top:12px}.admin-predictions__table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.9rem}.admin-predictions__table th,.admin-predictions__table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}.admin-predictions__table thead th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.admin-predictions__table tbody th{font-weight:600;white-space:nowrap}.admin-predictions__score{white-space:nowrap}.admin-predictions__note{white-space:pre-wrap}.note-input{display:flex;flex-direction:column;gap:4px;margin-top:10px}.note-input__textarea{width:100%;resize:vertical;min-height:64px;font:inherit;padding:8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg);color:var(--text);box-sizing:border-box}.note-input__counter{align-self:flex-end;font-size:.8rem}.match-card__save{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}.match-card__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.match-card__footer .completion{margin:8px 0 8px auto;text-align:right}.match-card__safe{display:inline-flex;align-items:center;gap:6px;margin-top:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.match-card__safe input{cursor:pointer}.suggestions{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.suggestions__actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.suggestions__tabs{display:flex;gap:6px;margin-bottom:10px}.suggestions__tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--bg);color:var(--text-muted);padding:4px 12px;border-radius:999px;font:inherit;font-size:.85rem;cursor:pointer}.suggestions__tab--active{background:var(--accent, var(--text));color:var(--bg);border-color:transparent;font-weight:600}.suggestions__item{margin-bottom:10px}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:.3em 0}.markdown ul,.markdown ol{margin:.3em 0;padding-left:1.2em}.suggestions__title{font-weight:700}.lang-switcher select{margin-left:4px}.login__lang{display:flex;justify-content:flex-end;margin-bottom:8px}.banner{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:var(--max-width);margin:12px auto 0;padding:12px 16px;border-radius:var(--radius)}.banner--warn{background:#ff6b6b1f;border:1px solid rgba(255,107,107,.4);color:var(--danger)}.completion{margin:8px 0 12px;font-size:.9rem}.completion--done{color:var(--success)}.completion--missing{color:var(--text)}.team{display:inline-flex;align-items:center;gap:6px}.team__flag{font-size:1.1em;line-height:1}.match-card__teams .team strong{text-wrap:balance}@media (max-width: 480px){.match-card__teams{gap:4px}.score-input input[type=number]{width:52px}}
