/* Shared production pages. Scoped components, separate from legacy page styles. */
html{min-height:100%;background:#071e2b}
body.fp-public{margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;background:#071e2b;color:#142e40;font:14px Arial,Helvetica,sans-serif;--line:#d3e1eb;--muted:#587086;--green:#6af02e}
body.fp-public #app{flex:1;min-width:0;padding-top:98px}
body.fp-public .public-header{position:fixed;top:0;left:0;right:0;z-index:100}
body.fp-public .public-footer{flex:none;box-sizing:border-box;min-height:60px;background:#071e2b;color:#bfd0da;border-top:1px solid #314955;padding:0 20px}
@media(max-width:900px){body.fp-public #app{padding-top:80px}}
#app *{box-sizing:border-box}#app button,#app input,#app select{font:inherit}#app button,#app a,#app summary{touch-action:manipulation}#app button{cursor:pointer;border:0;border-radius:6px;background:var(--green);color:#102d1a;padding:11px 16px;font-weight:700}#app button.secondary{background:#eaf2f8;color:#244e70;border:1px solid var(--line)}#app button:disabled{opacity:.5;cursor:not-allowed}#app a{color:inherit;text-decoration:none}#app h1,#app h2,#app h3,#app p{margin:0}#app h1{font-size:27px;letter-spacing:-.5px}#app h2{font-size:17px}#app small{font-size:12px}#app input,#app select{min-width:0;max-width:100%;border:1px solid #c8dbe9;background:#f7fafc;border-radius:6px;padding:10px;color:#173147}#app label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700}#app input[type=number]{appearance:textfield}#app input::-webkit-inner-spin-button{appearance:none}#app :focus-visible{outline:3px solid #2e87ce;outline-offset:3px}#app [hidden]{display:none!important}#app nav{display:flex;flex-wrap:wrap;gap:10px}#app nav button{background:transparent;color:#587086;border-radius:0;padding:8px;border-bottom:2px solid transparent}#app nav button.active{color:#142e40;border-color:var(--green)}#app main{max-width:1200px;width:calc(100% - 32px);margin:28px auto;background:#eff4f7;border:1px solid #cedde6;border-radius:11px;padding:24px}#app .notice{background:#fff4d8;border:1px solid #edd8a4;border-radius:6px;padding:12px 15px;font-size:12px;line-height:1.6;margin:14px 0}#app .filters,#app .toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:white;border:1px solid var(--line);border-radius:7px;padding:14px;margin:16px 0}#app .filters label:first-child{flex:2}#app .filters label{flex:1;min-width:125px}#app .toolbar label{min-width:110px}#app .title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:24px 0}#app .eyebrow{color:#398027;text-transform:uppercase;font-size:11px;font-weight:700;margin-bottom:8px}#app .subtitle{color:var(--muted);margin-top:8px;font-size:13px}#app .state{text-align:right;font-size:12px;color:var(--muted);line-height:1.8}#app .badge{display:inline-block;padding:4px 8px;border-radius:5px;font-size:11px;background:#fff0d4;color:#865f09}#app .badge.open,#app .badge.complete{background:#e1f3db;color:#247a22}#app .badge.closed{background:#fbe5e5;color:#a22d2d}#app .metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}#app .metrics.five{grid-template-columns:repeat(5,minmax(0,1fr))}#app .metric{background:#081f2c;color:white;display:flex;align-items:center;gap:14px;padding:22px 16px;border-radius:6px}#app .metric svg{width:26px;height:26px;stroke:var(--green);flex:none}#app .metric small{display:block;color:#bdd0db;font-size:11px}#app .metric strong{display:block;font-size:23px;margin-top:7px}#app .panel{background:white;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin:12px 0}#app .panel-head,#app summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#f3f7fa;border-bottom:1px solid var(--line)}#app summary{cursor:pointer;list-style:none}#app summary::after{content:'⌄'}#app summary strong{margin-right:auto}#app .progress-area{min-width:200px;font-size:11px;color:var(--muted)}#app progress{width:100%;height:7px;display:block;margin-top:8px;accent-color:#4fc225}#app .entry-tools{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;gap:10px}#app .entry-tools button{font-size:11px;padding:7px 10px}#app .grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px;overflow:auto;scrollbar-width:none;overscroll-behavior:contain;align-content:start}#app .grid::-webkit-scrollbar,#app .table-scroll::-webkit-scrollbar{display:none}#app .fixture{border:1px solid var(--line);border-radius:6px;overflow:hidden;min-width:0}#app .fixture-head{background:#ebf2f6;display:flex;justify-content:space-between;gap:8px;font-size:10px;color:#4b6377;padding:7px 9px;min-height:31px}#app .fixture-head time{text-align:right}#app .match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;min-height:86px;padding:10px 5px}#app .club{text-align:center;min-width:0;font-size:11px;font-weight:700}#app .crest{display:grid;place-items:center;margin:0 auto 5px;width:30px;height:30px;font-size:14px;border-radius:50%;background:#edf3f7;color:#496b80}#app .crest img{width:100%;height:100%;object-fit:contain}#app .club-name{overflow-wrap:anywhere}#app .scores{display:flex;align-items:center;gap:5px}#app .scores input{width:34px;height:40px;padding:2px;text-align:center;font-size:17px;background:#eef4f7}#app .more{font-size:12px;color:#446784;text-align:center;padding:8px}#app .submitbar{border-top:1px solid var(--line);background:#f0f5f8;padding:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}#app .submitbar p{font-size:12px;color:var(--muted);margin-top:6px}#app .submitbar>div:last-child{text-align:right}#app .shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}#app .shortcut{background:white;border:1px solid var(--line);border-radius:6px;padding:18px}#app .shortcut small{display:block;color:var(--muted);margin-top:6px}#app .totals{display:grid;grid-template-columns:repeat(4,1fr);background:#edf3f7;margin:14px;border-radius:6px}#app .totals div{text-align:center;padding:14px;font-size:12px}#app .totals strong{display:block;margin-top:8px}#app .table-scroll{overflow:auto;scrollbar-width:none;max-height:440px}#app table{width:100%;border-collapse:collapse;font-size:12px}#app th,#app td{padding:12px;border-bottom:1px solid #dfE8ef;text-align:left}#app thead{background:#eaf2f7}#app th{position:sticky;top:0;background:#eaf2f7}#app td.clubcell{vertical-align:middle}#app .clubcell .club{display:flex;align-items:center;gap:9px;text-align:left;font-size:12px;font-weight:400}#app .clubcell .crest{margin:0;flex:none;width:24px;height:24px}#app .empty{padding:40px 24px;text-align:center;color:var(--muted);line-height:1.8}#app .validation{padding:12px;color:#267824;font-weight:700}#app .validation.error{color:#a22d2d}@media(max-width:950px){#app .metrics.five{grid-template-columns:repeat(3,1fr)}#app .metric strong{font-size:19px}#app .metric{padding:16px 10px;gap:8px}#app .grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){#app main{padding:14px}#app .metrics,#app .metrics.five{grid-template-columns:1fr 1fr}#app .grid{grid-template-columns:1fr}#app .title,#app .panel-head,#app .submitbar{align-items:stretch;flex-direction:column}#app .state,#app .submitbar>div:last-child{text-align:left}#app .shortcuts{grid-template-columns:1fr}#app .progress-area{min-width:0;width:100%}#app summary{flex-wrap:wrap}#app .totals{grid-template-columns:1fr 1fr}#app .fixture-head{font-size:11px}}

#app main{box-sizing:border-box}

#app .clubcell .club-name{min-width:0}
#app td{vertical-align:middle}
#app tbody tr:nth-child(even){background:#f6f9fc}

/* Shared visual details; reduced-motion preference disables the gentle pulse. */
#app .metric-icon{display:grid;place-items:center;flex:none;width:40px;height:40px;border-radius:10px;background:#173d45;color:#6af02e}
#app .metric-icon svg{width:25px;height:25px}
#app .prediction-status{display:inline-flex;align-items:center;gap:9px;font-weight:700;padding:6px 10px}
#app .status-dot{width:9px;height:9px;flex:none;border-radius:50%;background:currentColor}
#app .prediction-status.open .status-dot{color:#32b52b;box-shadow:0 0 0 3px #32b52b20,0 0 9px #32b52b90}
#app .prediction-status.closed .status-dot{color:#e14c4c;box-shadow:0 0 0 3px #e14c4c20,0 0 9px #e14c4c90}
#app .prediction-status.soon{color:#946313;background:#fff0d4}
#app .prediction-status.unavailable{color:#587086;background:#e4ebf0}
#app .fixture-head{background:#dfeef3;color:#244b60;font-weight:600;border-bottom:1px solid #c0d9e3;box-shadow:inset 0 1px #96b7c5}
#app .panel-head{background:#e6f0f5;border-bottom-color:#c7dce7}
#app .position-badge{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:8px;font-weight:700;background:#f0f2f4;color:#65717b;border:1px solid #e1e5e9}
#app .rank-top .position-badge,#app .rank-top .points-badge{color:#55745a;background:#eef4ed;border:1px solid #dce7da}
#app .rank-bottom .position-badge,#app .rank-bottom .points-badge{color:#986969;background:#f8eeee;border:1px solid #eddede}
#app .points-badge{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 4px;aspect-ratio:1;border:1px solid #e1e5e9;border-radius:50%;background:#f0f2f4;color:#65717b;font-weight:700;font-variant-numeric:tabular-nums}
#app .scroll-hint{padding:10px 12px;border-top:1px solid #cbdde7;background:#eaf3f8;color:#365d75;font-size:12px;text-align:center;min-height:36px}
#app .more:not(:empty){border-top:1px solid #cbdde7;background:#eaf3f8;color:#365d75;font-weight:600}
#app progress{appearance:none;border:0;border-radius:6px;overflow:hidden;background:#d6e3eb}
#app progress::-webkit-progress-bar{background:#d6e3eb;border-radius:6px}
#app progress::-webkit-progress-value{background:#52b939;border-radius:6px}
#app progress::-moz-progress-bar{background:#52b939;border-radius:6px}

/* The common PublicShell owns the viewport background. */
body.fp-public{position:relative;isolation:isolate}


#app .prediction-status.open .status-dot,#app .prediction-status.closed .status-dot{animation:public-status-pulse 2.4s ease-in-out infinite}
@keyframes public-status-pulse{0%,100%{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 15%,transparent),0 0 10px currentColor}50%{opacity:.25;box-shadow:0 0 0 0 transparent,0 0 0 transparent}}
@media(prefers-reduced-motion:reduce){#app .prediction-status .status-dot{animation:none}}
#app .shortcut{display:flex;align-items:center;gap:14px}
#app .shortcut-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border-radius:9px;background:#edf4f5;color:#357282}
#app .shortcut-icon svg{width:24px;height:24px}
#app th.score-cell,#app td.score-cell{text-align:right;padding-inline:12px;white-space:nowrap}

#app th.points-cell,#app td.points-cell{text-align:right;padding-inline:12px;white-space:nowrap}

body.fp-public .public-background::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#071e2b 0%,rgba(7,30,43,.85) 10%,transparent 38%);pointer-events:none}
