:root{
  --green:#173f2a;--green2:#24583a;--green3:#2f6d46;--cream:#f3ead0;--paper:#fbf5e7;
  --ink:#1f241d;--muted:#6f7569;--line:#d9cfb5;--gold:#c9a55a;--danger:#a53d34;--amber:#c9892e;
  --shadow:0 14px 34px rgba(25,42,28,.14);--r:18px;
}
*{box-sizing:border-box}html{background:#e8e0c7}body{margin:0;font-family:Georgia,"Times New Roman",serif;color:var(--ink);background:
linear-gradient(rgba(23,63,42,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(23,63,42,.025) 1px,transparent 1px),#e8e0c7;background-size:24px 24px;min-height:100vh}
button,input,select{font:inherit}.hidden{display:none!important}.app{max-width:1280px;margin:auto;min-height:100vh}.screen{padding:16px}
.topbar{background:var(--green);color:var(--cream);padding:12px 16px;border-bottom:5px solid var(--gold);display:flex;gap:12px;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:20}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px;border:3px solid var(--cream);border-radius:50%;display:grid;place-items:center;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:27px;box-shadow:inset 0 0 0 3px var(--green)}
.brand h1{margin:0;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;letter-spacing:1px;font-size:30px}.brand small{display:block;text-transform:uppercase;letter-spacing:1.8px;opacity:.8;font-size:10px}
.top-actions{display:flex;gap:8px;align-items:center}.top-actions button{border:1px solid rgba(243,234,208,.5);background:transparent;color:var(--cream);padding:9px 12px;border-radius:999px;cursor:pointer}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.paper{background:linear-gradient(0deg,rgba(80,67,34,.025),rgba(80,67,34,.025)),var(--paper)}
.kicker{text-transform:uppercase;letter-spacing:1.6px;font-size:11px;font-weight:700;color:var(--green2)}.title{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;letter-spacing:.7px;margin:4px 0 6px}.muted{color:var(--muted)}
.hero{background:var(--green);color:var(--cream);border:0;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -40px -65px auto;width:170px;height:170px;border:2px solid rgba(243,234,208,.12);border-radius:50%}.hero .kicker{color:#ead8a6}.hero-grid{display:grid;grid-template-columns:1fr;gap:14px}.hero h2{font-size:36px}.countdown{border:1px solid rgba(243,234,208,.35);border-radius:14px;padding:12px;background:rgba(255,255,255,.05)}.countdown strong{display:block;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:30px;letter-spacing:1px}.countdown.urgent{background:#7d281f}.countdown.soon{background:#7c5a18}
.status-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:700;background:#efe6cc;border:1px solid var(--line)}.chip.good{background:#dcebd8;color:#235330;border-color:#b9d2b3}.chip.warn{background:#f4e2b9;color:#6f4d10;border-color:#dfc384}.chip.bad{background:#edd3ce;color:#7a2d27;border-color:#d5aaa4}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.stat{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fffaf0}.stat strong{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:28px;color:var(--green)}.stat span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--muted)}
.big-action{width:100%;border:0;background:var(--gold);color:#16231a;padding:15px 18px;border-radius:14px;font-weight:800;font-size:18px;cursor:pointer;box-shadow:inset 0 -3px 0 rgba(0,0,0,.15)}.secondary{border:1px solid var(--green2);background:transparent;color:var(--green);padding:11px 14px;border-radius:12px;font-weight:700;cursor:pointer}.danger{border-color:#c07a72;color:#8a302a}.small{padding:7px 10px;font-size:12px}.btnrow{display:flex;gap:9px;flex-wrap:wrap}
.bottom-nav{position:sticky;bottom:0;background:rgba(243,234,208,.96);backdrop-filter:blur(9px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);z-index:18}.bottom-nav button{border:0;background:transparent;padding:12px 6px;font-weight:700;color:#6c6d64;cursor:pointer}.bottom-nav button.active{color:var(--green);background:#e1dac2}
.section-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.section-head h3{margin:2px 0;font-size:24px}.match-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fffaf0;margin-bottom:9px}.prediction-sheet{display:grid;gap:9px}.prediction-sheet .match-card{margin-bottom:0}.prediction-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin-bottom:10px}.prediction-heading .round-label{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:22px;color:var(--green)}.prediction-submit{margin-top:12px}.locked-note{border:1px solid #b9d2b3;background:#e3eedf;color:#295738;border-radius:12px;padding:10px;font-size:13px;margin-top:10px}.match-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto minmax(0,1fr);gap:5px;align-items:center}.team{font-weight:800;line-height:1.15;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team.away{text-align:right}.scorectl{display:grid;grid-template-columns:30px 36px 30px;gap:2px;align-items:center}.scorectl button,.minctl button{width:30px;height:38px;border:1px solid #a9ad9f;background:#f6f1e4;border-radius:8px;font-size:20px;font-weight:800;cursor:pointer}.scorebox{width:36px;height:38px;border:2px solid var(--green);border-radius:8px;display:grid;place-items:center;font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:22px;background:white}.scorebox.blank{color:#a3a296}.versus{font-size:10px;color:var(--muted);text-align:center;margin:0 1px;text-transform:uppercase;font-weight:700}.minute-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px dashed #a79a77;border-radius:14px;padding:12px;margin:14px 0;background:#f4ecd7}.minctl{display:grid;grid-template-columns:42px 62px 42px;gap:6px}.minval{height:42px;border:2px solid var(--green);border-radius:9px;background:white;display:grid;place-items:center;font-family:Impact,sans-serif;font-size:22px}.review-grid{display:grid;gap:8px}.review-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px;background:#fffaf0}table{border-collapse:collapse;width:100%;min-width:650px}th,td{padding:10px 9px;border-bottom:1px solid #e7dfca;text-align:left;font-size:13px}th{background:var(--green);color:var(--cream);position:sticky;top:0}tbody tr.me{background:#e4eddd;font-weight:700}.tabs{display:flex;gap:7px;overflow:auto;padding-bottom:8px}.tabs button{white-space:nowrap;border:1px solid var(--line);background:#f5eedb;border-radius:999px;padding:9px 12px;cursor:pointer}.tabs button.active{background:var(--green);color:var(--cream);border-color:var(--green)}
.login-wrap{max-width:460px;margin:9vh auto;padding:18px}.login-card{background:var(--paper);border-radius:22px;border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.login-top{background:var(--green);color:var(--cream);padding:26px;text-align:center;border-bottom:5px solid var(--gold)}.login-top .brand-mark{margin:0 auto 10px}.login-body{padding:22px}.field{display:grid;gap:6px;margin-bottom:12px;font-weight:700}.field input,.field select{width:100%;padding:12px 13px;border:1px solid #bdb49b;border-radius:11px;background:#fffdf7;font-size:16px}.hint{background:#efe6cc;border-radius:12px;padding:10px;font-size:12px;color:#615b4e;margin-top:12px}
.admin-layout{display:grid;gap:14px}.admin-hero{display:grid;gap:12px}.metrics{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.metric{background:#fffaf0;border:1px solid var(--line);border-radius:12px;padding:10px}.metric strong{display:block;font-size:24px;color:var(--green)}.league-panels{display:grid;grid-template-columns:1fr;gap:12px}.league-panel{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fffaf0}.league-panel h4{margin:0;background:var(--green);color:var(--cream);padding:11px 12px}.player-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px 10px;border-bottom:1px solid #e4dcc5}.player-row:last-child{border-bottom:0}.player-row .name{min-width:0}.player-row small{display:block;color:var(--muted);font-size:11px}.switch{display:inline-flex;align-items:center;gap:6px;font-size:12px}.switch input{width:18px;height:18px}.admin-fixture{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.admin-fixture input{padding:10px;border:1px solid #bdb49b;border-radius:10px;background:#fffdf7}.result-entry{display:grid;grid-template-columns:minmax(0,1fr) 54px 18px 54px minmax(0,1fr);gap:8px;align-items:center;padding:10px;border-bottom:1px dashed var(--line)}.result-entry input{width:54px;padding:9px;text-align:center;border:1px solid #aaa089;border-radius:9px}.result-entry .away{text-align:right}.result-entry.removed{opacity:.45;text-decoration:line-through}.remove-line{display:flex;gap:7px;align-items:center;font-size:12px;margin-top:5px}.money{background:#e8dfc6;border:1px dashed #a8935f;border-radius:12px;padding:10px;margin-top:8px}.money strong{font-size:22px;color:var(--green)}
.week-results{display:grid;grid-template-columns:1fr;gap:10px}.result-card{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fffaf0}.result-card h4{margin:0 0 8px;color:var(--green)}.podium{display:grid;gap:6px}.podium div{display:flex;justify-content:space-between;border-bottom:1px dashed #d6ccb1;padding:5px 0}.round-ranking{margin-top:12px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fffdf7}.round-rank-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:9px;align-items:center;padding:10px;border-bottom:1px solid #e8dfc8}.round-rank-row:last-child{border-bottom:0}.round-rank-row.me{background:#e4eddd}.round-pos{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:var(--cream);font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:16px}.round-person{min-width:0}.round-person b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.round-person small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.round-points{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:24px;color:var(--green);text-align:right;white-space:nowrap}.award-mini{font-size:11px;margin-left:5px}.weekly-league-title{display:flex;justify-content:space-between;gap:10px;align-items:end;margin-bottom:8px}.weekly-league-title h3{margin:2px 0}.weekly-league-title .muted{text-align:right;font-size:12px}.poster-preview{position:relative;overflow:hidden;background:#16452c;color:#f4e8c5;border:7px solid #d7c394;padding:18px;border-radius:3px;box-shadow:var(--shadow);font-family:Georgia,serif;background-image:radial-gradient(rgba(244,232,197,.08) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.07),rgba(0,0,0,.07));background-size:7px 7px,100% 100%}.poster-preview:before{content:"";position:absolute;inset:7px;border:1px solid rgba(244,232,197,.35);pointer-events:none}.poster-preview h2{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;font-size:54px;line-height:.9;text-align:center;margin:4px 0 2px;letter-spacing:2px;text-shadow:3px 3px 0 #3d241b}.poster-preview .poster-week{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;text-align:center;font-size:28px;letter-spacing:1px}.poster-preview .sub{text-align:center;letter-spacing:2px;font-size:11px}.poster-ribbon{margin:10px auto 0;max-width:90%;background:#8a3a2d;color:#f5e8c4;text-align:center;padding:7px 10px;font-weight:700;letter-spacing:1px}.poster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}.poster-box{background:#efe2bd;color:#173722;border:2px solid #d8c89e;padding:10px;min-width:0}.poster-box h4{font-family:Impact,Haettenschweiler,"Arial Narrow Bold",sans-serif;margin:0 0 8px;color:#17452d;font-size:18px;line-height:1;text-transform:uppercase}.poster-box .award{padding:6px 0;border-bottom:1px solid #b9a980}.poster-box .award:last-child{border-bottom:0}.poster-box .award-label{display:block;color:#8a3a2d;text-transform:uppercase;font-size:10px;letter-spacing:1px;font-weight:700}.poster-match{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;padding:4px 0;border-bottom:1px solid #b9a980}.poster-match span:last-child{text-align:right}@media(max-width:680px){.poster-grid{grid-template-columns:1fr}}
.modal{position:fixed;inset:0;background:rgba(20,28,22,.62);z-index:50;display:grid;place-items:center;padding:14px}.modal-card{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--paper);border-radius:18px;padding:16px;border:2px solid var(--green);box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px;flex-wrap:wrap}
.notice{border-left:5px solid var(--gold);padding:11px 12px;background:#f4ecd7;border-radius:10px;margin-bottom:12px}.notice.bad{border-left-color:var(--danger);background:#efdad6}.notice.good{border-left-color:var(--green2);background:#ddebd9}.audit{font-size:12px;background:#f1e9d3;padding:8px;border-radius:9px;margin-top:6px}.nav-desktop{display:none}.manage-grid{display:grid;grid-template-columns:1fr;gap:10px}.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline input,.inline select{padding:9px;border:1px solid #bdb49b;border-radius:9px;background:#fffdf7}
@media(min-width:760px){.match-line{gap:8px}.scorectl{grid-template-columns:40px 46px 40px;gap:4px}.scorectl button,.minctl button{width:40px;height:42px;font-size:22px}.scorebox{width:46px;height:42px;font-size:24px}.screen{padding:24px}.hero-grid{grid-template-columns:1.4fr .6fr;align-items:center}.stats{grid-template-columns:repeat(5,1fr)}.league-panels{grid-template-columns:repeat(3,1fr)}.admin-hero{grid-template-columns:1.4fr .6fr;align-items:center}.metrics{grid-template-columns:repeat(4,1fr)}.week-results{grid-template-columns:repeat(3,1fr)}.poster-grid{grid-template-columns:repeat(3,1fr)}.manage-grid{grid-template-columns:1fr 1fr}.bottom-nav{max-width:640px;margin:auto;border:1px solid var(--line);border-radius:16px 16px 0 0}.admin-layout{grid-template-columns:1fr}.topbar{padding:14px 24px}}
@media(min-width:1050px){.admin-layout.two{grid-template-columns:1.15fr .85fr}.admin-layout.two>section{min-width:0}.topbar{position:static}.screen{padding:26px 32px}}

/* v0.7 responsive pass: one file for phone + desktop */
html,body{max-width:100%;overflow-x:hidden}
img,svg{max-width:100%}
.card,.hero,.league-panel,.result-card,.table-wrap,.prediction-sheet,.admin-layout,.admin-layout>*{min-width:0}
.table-wrap{-webkit-overflow-scrolling:touch}
button{touch-action:manipulation}

@media(max-width:759px){
  .app{width:100%;max-width:none}
  .screen{padding:12px}
  .topbar{padding:9px 10px;border-bottom-width:4px;gap:8px}
  .brand{gap:8px;min-width:0}.brand-mark{width:38px;height:38px;font-size:22px;border-width:2px}.brand h1{font-size:23px}.brand small{font-size:8px;letter-spacing:1.2px}
  .top-actions{gap:5px}.top-actions button{padding:7px 9px;font-size:12px;white-space:nowrap}
  .card{padding:13px;border-radius:15px;margin-bottom:11px}
  .hero h2{font-size:31px}.hero-grid{gap:10px}.countdown{padding:10px}.countdown strong{font-size:28px}
  .section-head{flex-wrap:wrap;align-items:center}.section-head h3{font-size:22px}
  .prediction-heading{align-items:flex-start}.prediction-heading .round-label{font-size:21px}
  .match-card{padding:9px 8px}
  .match-line{grid-template-columns:minmax(44px,1fr) auto 16px auto minmax(44px,1fr);gap:3px}
  .team{font-size:13px;letter-spacing:-.15px}
  .scorectl{grid-template-columns:27px 32px 27px;gap:2px}
  .scorectl button{width:27px;height:36px;font-size:19px;border-radius:7px;padding:0}
  .scorebox{width:32px;height:36px;font-size:20px;border-radius:7px}
  .versus{font-size:9px;margin:0}
  .minute-card{padding:10px;gap:8px}.minute-card>div:first-child{min-width:0}.minctl{grid-template-columns:38px 54px 38px;gap:4px}.minctl button{width:38px;height:40px}.minval{height:40px;font-size:21px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stat{padding:10px}.stat strong{font-size:25px}.stat span{font-size:10px}
  .round-rank-row{grid-template-columns:34px minmax(0,1fr) auto;padding:9px 8px;gap:7px}.round-pos{width:28px;height:28px;font-size:15px}.round-points{font-size:21px}.round-person b{font-size:14px}.round-person small{font-size:10px;line-height:1.35;white-space:normal}
  .weekly-league-title{align-items:flex-start;flex-wrap:wrap}.weekly-league-title .muted{text-align:left}
  .bottom-nav{position:sticky;bottom:0;padding-bottom:max(0px,env(safe-area-inset-bottom));box-shadow:0 -6px 18px rgba(30,45,32,.08)}.bottom-nav button{min-height:48px;font-size:14px}
  .table-wrap table{min-width:620px}.tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}
  .admin-fixture{grid-template-columns:1fr 1fr;gap:6px}.admin-fixture input{min-width:0;padding:9px 8px}
  .player-row{grid-template-columns:minmax(0,1fr) auto;gap:7px}.player-row>.chip{grid-column:1/-1;justify-self:start;margin-top:-2px}.player-row .secondary.name{width:100%;overflow:hidden;text-overflow:ellipsis}
  .result-entry{grid-template-columns:minmax(55px,1fr) 42px 12px 42px minmax(55px,1fr);gap:5px;padding:9px 5px;font-size:12px}.result-entry input{width:42px;padding:8px 3px}.result-entry .away{min-width:0;overflow:hidden;text-overflow:ellipsis}.remove-line{font-size:10px;line-height:1.2}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric strong{font-size:22px}
  .manage-grid{grid-template-columns:1fr}.inline{align-items:stretch}.inline input,.inline select{min-width:0;flex:1 1 150px}
  .modal{padding:8px}.modal-card{max-height:94vh;padding:12px;border-radius:14px}.modal-actions{justify-content:stretch}.modal-actions .big-action,.modal-actions .secondary{flex:1 1 auto}
  .poster-preview{padding:11px;border-width:4px}.poster-preview h2{font-size:42px}.poster-preview .poster-week{font-size:22px}.poster-ribbon{max-width:100%;font-size:11px}.poster-box h4{font-size:16px}.poster-match{font-size:12px;gap:5px}
}

@media(max-width:430px){
  .top-actions #whoBtn{display:none}
  .screen{padding:9px}
  .card{padding:11px}
  .match-line{grid-template-columns:minmax(38px,1fr) auto 12px auto minmax(38px,1fr);gap:2px}
  .team{font-size:12px}
  .scorectl{grid-template-columns:24px 29px 24px;gap:1px}
  .scorectl button{width:24px;height:34px;font-size:17px}
  .scorebox{width:29px;height:34px;font-size:19px}
  .versus{font-size:8px}
  .minute-card{align-items:flex-start;flex-direction:column}.minctl{align-self:stretch;grid-template-columns:42px 1fr 42px}.minctl button{width:42px}.minval{width:100%}
  .prediction-heading{display:block}.prediction-heading #inlineEntryStatus{margin-top:7px}
  .status-row{gap:6px}.chip{padding:6px 8px;font-size:11px}
  .result-entry{font-size:11px}
}

@media(min-width:760px) and (max-width:1049px){
  .screen{padding:20px}
  .league-panels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .week-results{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(min-width:1050px){
  .app{max-width:1360px}
  #playerArea .screen{max-width:1180px;margin:0 auto}
  #adminArea .screen{max-width:1320px;margin:0 auto}
  .player-row .secondary.name{min-height:48px}
}

