:root{color-scheme:dark;--bg: #0c1210;--panel: #15201b;--panel-2: #1a2922;--text: #eef5f0;--muted: #8fa89a;--accent: #5dce8d;--accent-dim: rgba(93, 206, 141, .14);--danger: #e57373;--line: rgba(255, 255, 255, .08);--warn: #ffd54f;--fs-ui: .82rem;--fs-ui-sm: .78rem;--fs-ui-xs: .72rem;--lh-ui: 1.35;--control-h: 2.15rem;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(900px 420px at 8% -5%,#234433 0%,transparent 55%),linear-gradient(180deg,#0e1613,var(--bg) 45%)}a{color:inherit}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.5rem;padding:.9rem 1.75rem;border-bottom:1px solid var(--line);background:#080e0cd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:20}.brand{font-family:IBM Plex Sans Condensed,Segoe UI,sans-serif;font-size:1.35rem;font-weight:700;letter-spacing:.03em;text-decoration:none;color:var(--text);white-space:nowrap}.nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1;min-width:0;justify-content:center}.nav a{text-decoration:none;color:var(--muted);padding:.45rem .85rem;border-radius:8px;font-weight:500;white-space:nowrap}.nav a:hover{color:var(--text);background:#ffffff0a}.nav a.active{color:var(--accent);background:var(--accent-dim)}.topbar-user{display:flex;align-items:center;gap:.75rem;min-width:0;flex-shrink:0}.user-chip{color:var(--muted);font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.content{width:min(1180px,calc(100% - 2.5rem));margin:1.5rem auto 3rem;flex:1}.panel{background:color-mix(in srgb,var(--panel) 92%,black);border:1px solid var(--line);border-radius:14px;padding:1.35rem 1.5rem}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.1rem}.page-head h1{margin:0;font-size:1.7rem;font-weight:650}.page-title-meta{margin-left:.75rem;font-size:.95rem;font-weight:500;white-space:nowrap}.page-head p{margin:.35rem 0 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{width:min(420px,100%);border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--panel) 94%,black);box-shadow:0 18px 48px #00000073;padding:1.1rem 1.2rem 1.25rem}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.modal-head h2{margin:0;font-size:1.15rem;font-weight:650}.modal-head button{padding:.3rem .55rem;line-height:1}.modal-form{display:flex;flex-direction:column;gap:.85rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.35rem}.match-tabs{display:flex;gap:.25rem;margin:0 0 1.1rem;padding:.2rem;border:1px solid var(--line);border-radius:12px;background:#0000001f;width:fit-content;max-width:100%}.back-link{margin:0 0 .55rem;font-size:.86rem}.match-detail-head{margin-bottom:.65rem}.match-detail-top{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem}.match-detail-top h1{margin:0;font-size:1.25rem;font-weight:650;line-height:1.2}.match-detail-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem .5rem;margin-top:.38rem;min-height:1.35rem}.match-detail-meta .status-badge{margin:0;position:static;top:auto;font-size:var(--fs-ui-xs);padding:.16rem .48rem;line-height:1.25}.match-detail-stats{color:var(--muted);font-size:var(--fs-ui-sm);line-height:var(--lh-ui);font-variant-numeric:tabular-nums}.match-detail-action{flex-shrink:0;padding:.32rem .6rem;font-size:var(--fs-ui-sm);line-height:1.2;white-space:nowrap}.match-roster-actions{margin:0 0 .7rem}.match-roster-actions button{width:100%;font-size:var(--fs-ui);padding:.45rem .65rem}.match-add-bar{display:grid;grid-template-columns:4.75rem minmax(0,1fr) auto;gap:.5rem;margin-bottom:.7rem;align-items:end}.match-add-bar.with-team{grid-template-columns:4.75rem minmax(0,1fr) 4.25rem auto}.match-add-bar .field{margin:0;font-size:var(--fs-ui-xs);gap:.2rem}.match-add-bar .field input,.match-add-bar .field select{min-height:var(--control-h);font-size:var(--fs-ui-sm);padding:.38rem .45rem}.match-add-bar button{min-height:var(--control-h);font-size:var(--fs-ui-sm);white-space:nowrap}.match-tabs button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);padding:.45rem .95rem;border-radius:9px;font:inherit;font-size:.92rem;font-weight:550;cursor:pointer}.match-tabs button:hover:not(:disabled):not(.active){color:var(--text);background:#ffffff0a}.match-tabs button.active{color:var(--text);background:color-mix(in srgb,var(--panel) 70%,white 8%);box-shadow:0 0 0 1px var(--line)}.match-tabs button:disabled{opacity:.45;cursor:not-allowed}.filters{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem;margin-bottom:1rem;align-items:end}.filters.compact{grid-template-columns:1fr 1fr 1fr auto}.match-meta-fields{display:flex;flex-wrap:nowrap;gap:.65rem;margin-bottom:1rem;align-items:center}.match-meta-fields input{min-width:0;min-height:var(--control-h);font-size:var(--fs-ui-sm);line-height:1.25;padding:.38rem .5rem;background:color-mix(in srgb,var(--panel-2) 80%,black);color:var(--text)}.match-meta-fields input[type=datetime-local]{width:12.75rem;max-width:12.75rem;flex:0 0 12.75rem;font-size:var(--fs-ui-xs);padding:.32rem .4rem}.match-meta-fields input[type=text]{flex:1 1 0;width:auto;min-width:0}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.86rem;color:var(--muted)}.field input,.field select,input,select,textarea,button{font:inherit;border-radius:8px;border:1px solid var(--line);padding:.55rem .75rem;background:#00000047;color:var(--text)}button,.btn{background:var(--accent);color:#062012;font-weight:600;border:none;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button:disabled{opacity:.5;cursor:not-allowed}.btn.ghost,button.ghost,.linkish{background:transparent;color:var(--muted);border:1px solid var(--line)}.btn.danger,button.danger{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 45%,transparent)}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table.data{width:100%;border-collapse:collapse;font-size:.95rem}table.data th,table.data td{padding:.7rem .85rem;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}table.data th{color:var(--muted);font-weight:550;background:#0003}button.th-sort{display:inline-flex;align-items:center;gap:.35rem;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;cursor:pointer;white-space:nowrap}button.th-sort:hover,button.th-sort.active{color:var(--text)}button.th-sort .th-sort-marker{opacity:.35;font-size:.75em}button.th-sort.active .th-sort-marker,button.th-sort:hover .th-sort-marker{opacity:.9}table.data tbody tr{cursor:pointer}table.data tbody tr:hover{background:#ffffff08}table.data a{color:var(--accent);text-decoration:none;font-weight:600}.muted{color:var(--muted)}.error{color:var(--danger)}.warn{color:var(--warn)}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:1rem 0}.stats div{background:#00000038;border:1px solid var(--line);border-radius:10px;padding:1rem;text-align:center}.stats strong{display:block;font-size:1.6rem}.stats span{color:var(--muted);font-size:.85rem}.kv{display:grid;grid-template-columns:160px 1fr;gap:.45rem 1rem;max-width:420px}.kv dt{color:var(--muted)}.kv dd{margin:0}.grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.85rem 1rem}.form-grid .full{grid-column:1 / -1}.form-actions{display:flex;gap:.6rem;margin-top:.5rem}.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--text)}.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem}.pitch-teams-grid{--pitch-slot-w: 6.5rem;--pitch-slot-h: 5.4rem;--pitch-row-gap: .4rem;--pitch-pad-x: .5rem;--pitch-pad-y: .65rem;--pitch-card-pad: .85rem;--pitch-inner-w: calc( 3 * var(--pitch-slot-w) + 2 * var(--pitch-row-gap) + 2 * var(--pitch-pad-x) );--pitch-card-w: calc(var(--pitch-inner-w) + 2 * var(--pitch-card-pad));display:grid;grid-template-columns:repeat(2,var(--pitch-card-w));gap:1rem;align-items:start}.pitch-teams-grid--cols3{--pitch-slot-w: 5.4rem;--pitch-slot-h: 4.7rem;--pitch-row-gap: .3rem;--pitch-pad-x: .35rem;--pitch-pad-y: .5rem;--pitch-card-pad: .7rem;grid-template-columns:repeat(3,var(--pitch-card-w));gap:.75rem}.pitch-teams-grid--cols3 .pitch-card .pitch{height:22rem}.pitch-teams-grid--cols3 .pitch-card .pitch-row{min-height:5rem}.pitch-teams-grid--cols3 .pitch-card .pitch-slot{padding:.22rem .18rem}.pitch-teams-grid--cols3 .pitch-name{font-size:.7rem}.pitch-teams-grid--cols3 .pitch-role{font-size:.62rem}.pitch-teams-grid--cols3 .pitch-pos{font-size:.64rem}.team-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.85rem}.team-card h3{margin:0 0 .6rem;font-size:1rem}.team-card ul{list-style:none;margin:0;padding:0}.team-card li{display:flex;justify-content:space-between;gap:.5rem;padding:.4rem 0;border-top:1px solid var(--line);font-size:.92rem;align-items:flex-start}.pitch-card{width:var(--pitch-card-w, 22.5rem);max-width:var(--pitch-card-w, 22.5rem);padding:var(--pitch-card-pad, .85rem);box-sizing:border-box}.pitch-card .pitch{width:var(--pitch-inner-w, 100%);max-width:100%;height:26rem;margin-inline:auto;box-sizing:border-box;justify-content:space-evenly;padding:var(--pitch-pad-y, .65rem) var(--pitch-pad-x, .5rem)}.pitch-card .pitch-row{flex-wrap:nowrap;align-items:stretch;justify-content:center;gap:var(--pitch-row-gap, .4rem);min-height:5.75rem}.pitch-card .pitch-slot{width:var(--pitch-slot-w, 6.5rem);min-width:var(--pitch-slot-w, 6.5rem);max-width:var(--pitch-slot-w, 6.5rem);height:var(--pitch-slot-h, 5.4rem);flex:0 0 var(--pitch-slot-w, 6.5rem);padding:.3rem .25rem;gap:0;box-sizing:border-box}.pitch{display:flex;flex-direction:column;gap:.45rem;padding:.65rem .5rem;border-radius:8px;background:linear-gradient(180deg,color-mix(in srgb,#2d6a4f 35%,transparent),color-mix(in srgb,#1b4332 55%,transparent));border:1px solid color-mix(in srgb,#40916c 40%,var(--line))}.pitch-card-head{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;margin-bottom:.65rem;flex-wrap:wrap}.pitch-row{display:flex;justify-content:center;gap:.4rem;flex-wrap:wrap}.pitch-slot{min-width:5.5rem;max-width:7.5rem;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:.2rem;text-align:center;padding:.4rem .3rem;border-radius:6px;background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--line);font-size:.8rem;line-height:1.25;cursor:pointer;font:inherit;color:inherit}.pitch-slot:disabled{cursor:default}.pitch-slot.pitch-selected,.bench-btn.pitch-selected{outline:2px solid #3a8fd4;outline-offset:1px}.bench-btn{display:flex;justify-content:space-between;gap:.5rem;width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:6px;padding:.25rem .35rem;cursor:pointer}.bench-btn:disabled{cursor:default}.bench-btn:hover:not(:disabled){border-color:var(--line);background:color-mix(in srgb,var(--panel) 70%,transparent)}.pitch-slot.fit-exact{border-color:color-mix(in srgb,#3d9a5f 70%,var(--line));background:color-mix(in srgb,#3d9a5f 18%,var(--panel))}.pitch-slot.fit-similar{border-color:color-mix(in srgb,#c9a227 70%,var(--line));background:color-mix(in srgb,#c9a227 16%,var(--panel))}.pitch-slot.fit-mismatch{border-color:color-mix(in srgb,#d45d5d 65%,var(--line));background:color-mix(in srgb,#d45d5d 14%,var(--panel))}.pitch-slot.fit-empty{opacity:.72;border-style:dashed}.pitch-role{display:block;order:1;width:100%;height:1.35em;max-height:1.35em;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.68rem;line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:#1a5f8f;background:color-mix(in srgb,#3a8fd4 22%,transparent);border:1px solid color-mix(in srgb,#3a8fd4 45%,transparent);border-radius:4px;padding:.05rem .3rem;box-sizing:border-box}.pitch-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;order:2;width:100%;height:2.4em;max-height:2.4em;overflow:hidden;font-weight:600;font-size:.78rem;line-height:1.2;word-break:break-word;box-sizing:border-box}.pitch-pos{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;order:3;width:100%;height:1.15em;max-height:1.15em;overflow:hidden;margin-top:auto;font-size:.72rem;font-weight:600;line-height:1.15;box-sizing:border-box}.pitch-slot.fit-exact .pitch-pos{color:#1f7a45}.pitch-slot.fit-similar .pitch-pos{color:#8a6d12}.pitch-slot.fit-mismatch .pitch-pos{color:#b33a3a}.pitch-pos-empty{font-weight:400;color:var(--muted)}.fit-legend{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 .85rem;font-size:.82rem}.fit-chip{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;border:1px solid var(--line);background:var(--panel-2)}.fit-chip.fit-scheme{color:#1a5f8f;border-color:color-mix(in srgb,#3a8fd4 45%,transparent);background:color-mix(in srgb,#3a8fd4 14%,transparent)}.fit-chip.fit-exact{color:#1f7a45;border-color:color-mix(in srgb,#3d9a5f 50%,transparent);background:color-mix(in srgb,#3d9a5f 14%,transparent)}.fit-chip.fit-similar{color:#8a6d12;border-color:color-mix(in srgb,#c9a227 50%,transparent);background:color-mix(in srgb,#c9a227 14%,transparent)}.fit-chip.fit-mismatch{color:#b33a3a;border-color:color-mix(in srgb,#d45d5d 50%,transparent);background:color-mix(in srgb,#d45d5d 12%,transparent)}.fit-chip.fit-bench{color:var(--muted)}.bench{margin-top:.65rem;padding-top:.55rem;border-top:1px dashed var(--line)}.bench-title{font-size:.85rem;font-weight:600;margin-bottom:.35rem;color:var(--muted)}.bench ul{list-style:none;margin:0;padding:0}.bench li{display:flex;justify-content:space-between;gap:.5rem;font-size:.85rem;padding:.25rem 0;border:none}.row-actions{display:flex;gap:.35rem;align-items:center}.row-actions button{padding:.3rem .55rem;font-size:.82rem}.login-panel{width:min(460px,100%);margin:3rem auto}.login-method{margin:1.25rem 0;padding:1rem 1.1rem;border:1px solid var(--line);border-radius:12px;background:#00000026}.login-method h2{margin:0 0 .65rem;font-size:.95rem;font-weight:600}.login-method.muted-box{opacity:.92}.login-steps{margin:0 0 .75rem;padding-left:1.2rem;font-size:.92rem;line-height:1.55}.login-steps li{margin-bottom:.35rem}.login-widget{margin:1.25rem 0;min-height:44px}.lb{list-style:none;margin:0;padding:0}.lb li{display:grid;grid-template-columns:2.5rem 1fr auto;gap:.75rem;padding:.7rem 0;border-top:1px solid var(--line);align-items:center}.rank{color:var(--accent);font-weight:700}.badge{display:inline-block;padding:.15rem .45rem;border-radius:999px;background:var(--accent-dim);color:var(--accent);font-size:.78rem;font-weight:600}.badge.muted{background:#ffffff0f;color:var(--muted)}.status-badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.78rem;font-weight:650;letter-spacing:.01em;vertical-align:middle;line-height:1.2;white-space:nowrap}.status-badge.status-voting{background:#e573732e;color:#ef9a9a}.status-badge.status-locked{background:#ffd54f29;color:#ffe082}.status-badge.status-played{background:var(--accent-dim);color:var(--accent)}.status-badge.status-unknown{background:#ffffff0f;color:var(--muted)}h1 .status-badge{margin-left:.55rem;position:relative;top:-.12em}code{background:#0000004d;padding:.1rem .35rem;border-radius:4px}@media(max-width:900px){.filters,.filters.compact,.form-grid,.grid-2{grid-template-columns:1fr}.filters.compact{grid-template-columns:1fr 1fr;gap:.5rem}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"brand user" "nav nav";align-items:center;gap:.35rem .65rem;padding:.5rem .85rem}.brand{grid-area:brand;font-size:1.05rem;line-height:1.2}.nav{grid-area:nav;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:.15rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav a{padding:.28rem .55rem;font-size:.82rem;flex-shrink:0}.topbar-user{grid-area:user;justify-content:flex-end;gap:.4rem;min-width:0}.user-chip{font-size:.78rem;max-width:none;flex:1;min-width:0;text-align:right}.topbar-user .btn{padding:.28rem .55rem;font-size:.78rem;flex-shrink:0}.content{width:calc(100% - 1rem);margin-top:.65rem;margin-bottom:1.5rem}.panel{padding:.85rem .85rem 1rem;border-radius:12px}.page-head{margin-bottom:.75rem;gap:.55rem;align-items:flex-start}.page-head h1{font-size:1.2rem}.back-link{margin-bottom:.4rem;font-size:.8rem}.match-detail-top h1{font-size:1.08rem}.match-detail-meta{margin-top:.3rem;gap:.3rem .45rem}.match-detail-meta .status-badge{font-size:.68rem;padding:.12rem .42rem}.match-detail-stats{font-size:.74rem}.match-detail-action{padding:.26rem .48rem;font-size:.74rem}.match-meta-fields{gap:.35rem;margin-bottom:.6rem}.match-meta-fields input{font-size:.72rem;padding:.34rem .4rem;min-height:2rem}.match-meta-fields input[type=datetime-local]{width:11.5rem;max-width:11.5rem;flex-basis:11.5rem;font-size:.68rem;padding:.28rem .32rem}.match-tabs{display:flex;width:100%;margin-bottom:.65rem}.match-tabs button{flex:1;padding:.38rem .5rem;font-size:.78rem;line-height:1.25}.match-add-bar{grid-template-columns:4rem minmax(0,1fr);grid-template-areas:"teams player" "add add";gap:.35rem;margin-bottom:.6rem}.match-add-bar.with-team{grid-template-columns:3.6rem minmax(0,1fr) 3.4rem;grid-template-areas:"teams player teampick" "add add add"}.match-add-bar .field:first-of-type{grid-area:teams}.match-add-bar .match-add-player{grid-area:player}.match-add-bar.with-team .match-add-team-pick{grid-area:teampick}.match-add-bar>button{grid-area:add;width:100%}.match-add-bar .field{font-size:.68rem;gap:.12rem}.match-add-bar .field input,.match-add-bar .field select,.match-add-bar>button{font-size:.74rem;padding:.34rem .4rem;min-height:2rem}.match-roster-actions{margin-bottom:.6rem}.match-roster-actions button{font-size:.78rem;padding:.42rem .55rem}.data{font-size:.78rem}.pitch-teams-grid,.pitch-teams-grid--cols3{--pitch-slot-w: 6.5rem;--pitch-slot-h: 5.4rem;--pitch-row-gap: .4rem;--pitch-pad-x: .5rem;--pitch-pad-y: .65rem;--pitch-card-pad: .85rem;grid-template-columns:minmax(0,var(--pitch-card-w));justify-content:center}.pitch-card{width:min(100%,var(--pitch-card-w));max-width:100%}.pitch-teams-grid--cols3 .pitch-card .pitch{height:26rem}}
