:root{--green:#123d2b;--gold:#e8b841;--ink:#12271d;--line:#dce5df;--muted:#6d7a73;--bg:#f2f6f4}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px Arial,sans-serif}button,.button{border:0;border-radius:9px;background:var(--green);color:#fff;padding:10px 14px;font-weight:700;cursor:pointer;text-decoration:none}input,select{width:100%;border:1px solid #bdcbc3;border-radius:8px;padding:10px;background:#fff;font:inherit}label{display:grid;gap:6px;font-size:14px;font-weight:700}header{height:74px;background:#0f3023;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 24px}.brand{display:flex;align-items:center;gap:10px}.brand>b,.logo{display:grid;place-items:center;width:42px;height:46px;border-radius:12px;background:var(--gold);color:var(--green);font-size:22px;font-weight:900}.brand h1{margin:0;font-size:20px}.brand small{color:#b7cabf}.user{display:flex;align-items:center;gap:12px}.user button{background:#ffffff18}.login{min-height:100vh;display:grid;place-items:center;padding:20px}.card{width:min(420px,100%);display:grid;gap:16px;padding:32px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 20px 60px #183a2b18}.card .logo{margin:auto}.card h1,.card p{text-align:center;margin:0}.card p{color:var(--muted)}.card a{text-align:center;color:var(--green)}#loginError{color:#b22;text-align:center}nav{height:54px;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:4px;padding:0 24px;overflow:auto}nav button{border-radius:0;background:transparent;color:var(--muted);white-space:nowrap}nav button.active{color:var(--green);border-bottom:3px solid var(--gold)}#app,.content{max-width:1500px;margin:auto;padding:20px}.grid{display:grid;gap:14px}.cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.toolbar h2{margin:0}.player{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px}.avatar{width:42px;height:42px;object-fit:cover;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:900}.player h3{margin:0;font-size:16px}.player p{margin:4px 0 0;color:var(--muted);font-size:13px}.actions{display:flex;gap:6px}.actions button{padding:7px 10px}.danger{background:#a93636!important}.match h3{margin:0}.result{display:inline-block;background:var(--green);color:#fff;border-radius:8px;padding:5px 9px;margin:0 8px}.match p{color:var(--muted)}dialog{width:min(700px,calc(100% - 24px));border:0;border-radius:18px;padding:24px;box-shadow:0 25px 80px #0006}dialog::backdrop{background:#07140db8}.close{float:right;background:transparent;color:#333;font-size:24px;padding:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.wide{grid-column:1/-1}.permissions{display:grid;gap:7px}.permission{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;border-bottom:1px solid var(--line);padding:8px}.permission input{width:auto}.public-page header{position:sticky;top:0}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px}.notice{padding:12px;border-radius:10px;background:#fff6d9;color:#735600}.loading{text-align:center;color:var(--muted)}
@media(max-width:650px){header{padding:0 14px}.user span{display:none}nav{padding:0 8px}#app,.content{padding:12px}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.toolbar{align-items:flex-start}.table{font-size:14px}}
.match-layout{display:grid;grid-template-columns:minmax(420px,520px) minmax(390px,1fr);gap:24px;align-items:start;justify-content:center}
.pitch-wrap{width:100%;position:sticky;top:0}
.pitch{position:relative;width:min(100%,520px);aspect-ratio:2/3;margin:0 auto;overflow:hidden;border:3px solid #fff;border-radius:12px;background:repeating-linear-gradient(0deg,#3b9a5e 0,#3b9a5e 11.11%,#348f57 11.11%,#348f57 22.22%);box-shadow:0 8px 25px #123d2b30,inset 0 0 0 2px #ffffffcc}
.pitch>div{position:absolute;pointer-events:none;z-index:1;border-color:#ffffffe6}
.halfway{left:0;right:0;top:50%;border-top:2px solid}
.centre-circle{width:24%;aspect-ratio:1;left:38%;top:50%;transform:translateY(-50%);border:2px solid;border-radius:50%}
.centre-spot,.penalty-spot{width:6px;height:6px;border-radius:50%;background:#ffffffe6}
.centre-spot{left:calc(50% - 3px);top:calc(50% - 3px)}
.penalty-area{left:18%;width:64%;height:16%;border:2px solid}
.goal-area{left:35%;width:30%;height:7%;border:2px solid}
.penalty-area.top,.goal-area.top{top:-2px}.penalty-area.bottom,.goal-area.bottom{bottom:-2px}
.penalty-spot{left:calc(50% - 3px)}.penalty-spot.top{top:11%}.penalty-spot.bottom{bottom:11%}
.penalty-arc{left:40%;width:20%;height:6%;border:2px solid;border-radius:50%}.penalty-arc.top{top:13%;border-top-color:transparent;border-left-color:transparent;border-right-color:transparent}.penalty-arc.bottom{bottom:13%;border-bottom-color:transparent;border-left-color:transparent;border-right-color:transparent}
.goal{left:39%;width:22%;height:2.5%;border:2px solid}.goal.top{top:-2px;transform:translateY(-100%)}.goal.bottom{bottom:-2px;transform:translateY(100%)}
.pitch-player{position:absolute!important;z-index:3!important;transform:translate(-50%,-50%);touch-action:none;border:3px solid var(--gold);border-radius:50%;width:68px;height:68px;padding:4px;background:var(--green);box-shadow:0 3px 8px #0005;font-size:12px}
.roster{display:grid;gap:10px;max-height:780px;overflow:auto;padding-right:4px}
.match-player{display:block;border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.player-select{display:flex;justify-content:space-between;align-items:center;gap:10px}.player-select label{display:block}.player-select input{width:auto}
.stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}.stat{display:grid;font-size:11px}.stepper{display:grid;grid-template-columns:28px minmax(34px,1fr) 28px}.stepper button{padding:5px;border-radius:5px}.stepper input{width:100%;padding:5px;min-width:0;text-align:center;border-radius:0}
.lineup-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.lineup-heading h3,.lineup-heading p{margin-bottom:6px}.secondary{background:#e3ebe6;color:var(--green)}.pitch-wrap{position:sticky;top:0}.pitch-wrap .pitch{position:relative}.exit-fullscreen{display:none}.pitch-wrap:fullscreen{display:grid;place-items:center;background:#092319;padding:18px}.pitch-wrap:fullscreen .pitch{width:min(92vw,calc(92vh * .6667));height:min(92vh,138vw);aspect-ratio:2/3}.pitch-wrap:fullscreen .exit-fullscreen{display:block;position:fixed;right:18px;top:18px;z-index:10;background:#fff;color:var(--green)}
@media(min-width:801px){dialog{width:min(1180px,calc(100% - 24px));max-height:94vh}}
@media(max-width:800px){.match-layout{grid-template-columns:1fr}.pitch{position:relative;width:min(100%,460px);min-height:0}.roster{max-height:none;overflow:visible}.stats-grid{grid-template-columns:repeat(2,1fr)}.pitch-player{width:58px;height:58px;font-size:11px}}
.finance-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.finance-summary .panel{display:grid;gap:8px}.finance-summary strong{font-size:25px}.finance-summary small{color:var(--muted)}.table-wrap{overflow:auto}.positive{color:#167342;font-weight:700}.negative{color:#b22;font-weight:700}.compact{padding:5px 9px}
@media(max-width:800px){.finance-summary{grid-template-columns:1fr 1fr}.lineup-heading{align-items:flex-start;flex-direction:column}}
@media print{header,nav,.toolbar .actions,dialog,button{display:none!important}body{background:#fff}#app{max-width:none;padding:0}.panel{box-shadow:none}.finance-summary{grid-template-columns:repeat(4,1fr)}}
