:root{--pink: #E0306F;--blue: #2E5EAA;--navy: #14233F;--soft: #E6EDFA;--grey: #DDE5F2;--line: #d3dcee;--ink: #14233F;--muted: #5d6b86;--bg: #f5f7fc;--ok: #1E7B34;--warn: #b4540a;--radius: 14px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 DM Sans,system-ui,sans-serif}h1,h2,h3{font-family:Bricolage Grotesque,DM Sans,sans-serif;line-height:1.15;margin:0 0 .6rem}h1{font-size:1.9rem;font-weight:800;margin-top:.6rem}h2{font-size:1.25rem;font-weight:800}h3{font-size:1.05rem;font-weight:700;margin-top:1rem}a{color:var(--blue)}.app{max-width:860px;margin:0 auto;padding:0 14px 40px}.top{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff;margin:0 -14px 16px;padding:10px 14px 6px}.top .brand{display:flex;flex-direction:column;text-decoration:none;color:#fff;font-family:Bricolage Grotesque,sans-serif;font-weight:800;letter-spacing:.06em;line-height:1.1}.top .brand small{color:var(--pink);letter-spacing:.3em;font-size:.62rem;margin-top:2px}.top nav{display:flex;gap:4px;overflow-x:auto;margin:8px -4px 0;padding-bottom:4px}.top nav a{color:#c9d4ee;text-decoration:none;padding:6px 12px;border-radius:999px;white-space:nowrap;font-weight:500}.top nav a.active{background:var(--pink);color:#fff}.foot{text-align:center;margin-top:28px;font-size:.85rem}.foot a{color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin:0 0 14px}.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}.error{color:#b00020;background:#fdecee;border-radius:8px;padding:8px 10px;margin:.5rem 0}.ok{color:var(--ok);margin:.4rem 0}.warn-text{color:var(--warn);background:#fff4e6;border-radius:8px;padding:8px 10px}.btn{font:inherit;font-weight:700;border:2px solid var(--navy);background:#fff;color:var(--navy);border-radius:10px;padding:8px 14px;cursor:pointer}.btn.primary{background:var(--pink);border-color:var(--pink);color:#fff}.btn.danger{background:#b00020;border-color:#b00020;color:#fff}.btn.ghost{border-color:transparent;color:var(--muted)}.btn.small{padding:3px 10px;font-size:.85rem;margin-left:8px}.btn:disabled{opacity:.5;cursor:not-allowed}.form{display:flex;flex-direction:column;gap:10px;margin-top:8px}.form.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}label{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.9rem}label.check,.check{flex-direction:row;align-items:center;gap:8px;font-weight:500}input,select,textarea{font:inherit;padding:9px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);width:100%}input[type=checkbox]{width:auto}input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);outline-offset:1px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.inline input{width:90px}.inline select{width:auto}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:7px 8px;text-align:center;border-bottom:1px solid var(--grey)}th{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.left{text-align:left}.standings tr.playoff td:first-child{box-shadow:inset 4px 0 0 var(--pink)}.standings tr.mine{background:var(--soft);font-weight:700}.standings .pts{font-weight:800}.champion{background:var(--pink);color:#fff;font-family:Bricolage Grotesque,sans-serif;font-weight:800;border-radius:var(--radius);padding:12px 16px;margin-bottom:14px;font-size:1.2rem}.round{margin-top:14px;padding-top:6px;border-top:1px solid var(--grey)}.round.current{background:var(--soft);border-radius:10px;padding:8px;border-top:0}.round h3{margin-top:0}.time{color:var(--muted);font-weight:500;font-size:.9rem;margin-left:6px}.matches,.my-matches,.plain{list-style:none;margin:0;padding:0}.match{padding:8px 0;border-bottom:1px solid var(--grey)}.match-teams{font-weight:700}.match-teams .vs{font-weight:400;color:var(--muted);margin:0 6px;font-size:.85rem}.match-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.88rem;color:var(--muted)}.match .score{font-weight:800;color:var(--ink)}.me{color:var(--pink)}.match.conflict,.result-row.conflict{background:#fff4e6}.badge{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--grey);color:var(--navy);margin-left:6px}.badge.warn{background:#ffd9a8;color:#7a3a00}.my-match{padding:12px 0;border-bottom:1px solid var(--grey)}.report{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-top:8px}.report label{flex:1 1 110px}.report .dash{padding-bottom:12px;font-weight:800}.pick{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}.pick p{width:100%;margin:0}.cat{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}.cat-dot{width:12px;height:12px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px #0000001f}.cat-label{font-weight:700;font-size:.8rem;letter-spacing:.08em}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.chip{font:inherit;border:1.5px solid var(--line);background:#fff;border-radius:999px;padding:5px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}.gren-list{list-style:none;padding:0;margin:0;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.gren-list li{display:flex;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--grey)}.gren-list li:last-child{border-bottom:0}.gren-list a{text-decoration:none;color:var(--ink);font-weight:700;display:inline-flex;gap:8px;align-items:center}.back{display:inline-block;margin-top:8px}.expandable{border-bottom:1px solid var(--grey)}.expand-head{width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;background:none;border:0;font:inherit;font-weight:700;padding:12px 2px;cursor:pointer;text-align:left;color:var(--ink)}.expand-body{padding:0 2px 14px}.rule-text p{margin:0 0 .7rem;white-space:pre-wrap}.rule-text h3{font-size:1rem;margin:1.1rem 0 .3rem;color:var(--blue)}.history-card .champ{margin:0 0 .4rem}.cat-group h3{margin:.8rem 0 .3rem}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:4px 12px}.results .result-row{padding:10px 6px;border-bottom:1px solid var(--grey)}.pins{margin-top:12px;max-width:360px}.pins .pin{font-family:ui-monospace,monospace;font-size:1.3rem;font-weight:800;letter-spacing:.15em;text-align:right}@media (max-width: 520px){.form.grid2{grid-template-columns:1fr}h1{font-size:1.6rem}}.signs{display:grid;gap:14px}.sign-frame{width:100%;max-width:794px;margin:0 auto;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 2px 10px #14233f14}.sign-inner{transform-origin:top left}.countdown{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:2.6rem;letter-spacing:.02em;color:var(--pink);margin:.2rem 0 .6rem;font-variant-numeric:tabular-nums}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.reg-table td,.reg-table th{text-align:left;font-size:.85rem;vertical-align:top}.reg-row.out{opacity:.55}.reg-row.slot td:first-child{box-shadow:inset 4px 0 0 var(--pink)}.hint{color:var(--warn);font-size:.8rem}.players{font-size:1.15rem;font-weight:700;margin:0 0 .6rem}.bio{margin:0 0 1rem;padding:.7rem 1rem;border-left:4px solid var(--pink);background:#fff;border-radius:0 12px 12px 0;font-style:italic}.team-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.team-list li{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.team-name{font-weight:800;font-size:1.1rem;text-decoration:none;color:var(--ink)}.bio-short{font-style:italic;color:var(--muted);margin-top:4px}.team-edit{padding:10px 0;border-bottom:1px solid var(--grey);display:grid;gap:6px}.team-edit input{width:100%}.match-teams a{color:inherit}.match-teams a.me{color:var(--pink)}.standings td a{color:inherit;text-decoration:none;font-weight:600}.champ-name{font-weight:800}.history-card .small a{color:inherit}.year-list{list-style:none;margin:.3rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.88rem;color:var(--muted)}.player-history+.player-history{border-top:1px solid var(--grey);margin-top:.8rem;padding-top:.2rem}.player-history h3{margin-top:.6rem}.hero{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:14px 10px 8px;margin:0 0 6px}.hero-logo{display:block;width:100%;max-width:440px;height:auto;margin:0 auto}.odds td,.odds th{vertical-align:top}.odds .pts{font-size:1.1rem}.event-date{margin:-.2rem 0 1rem;font-size:1.05rem}
