:root{--forest:#173e31;--deep:#123328;--ink:#25382e;--muted:#7b8277;--paper:#f5f4ed;--card:#fffef8;--line:#dedfd2;--orange:#c66a37;--gold:#e4c57f;--soft:#e7ebdf;--font:'Pixel Operator',sans-serif;--display:var(--font)}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:20px}button,input,select{font:inherit}button{cursor:pointer}button,select,input{outline-offset:4px}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--orange)}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.5}a{color:var(--forest)}button svg{pointer-events:none}.icon{width:24px;height:24px;flex-shrink:0;vertical-align:middle}.app-shell{display:grid;grid-template-columns:206px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--forest);color:#eef1e3;padding:30px 20px 22px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;width:206px;z-index:30}.brand{display:flex;align-items:center;gap:10px;color:var(--gold);text-decoration:none;padding:0 3px 40px}.brand-mark{height:43px;width:39px;border:1px solid #a9b489;display:grid;place-items:center;font-family:var(--font);font-size:32px;letter-spacing:-4px;padding-right:4px;clip-path:polygon(0 0,100% 0,100% 83%,50% 100%,0 83%)}.brand-word{font-family:var(--display);font-size:20px;font-weight:700;line-height:1.15;letter-spacing:1.4px}.nav-label{font-size:16px;letter-spacing:1.9px;color:#9cab91;margin:0 12px 13px}.nav{display:flex;flex-direction:column;gap:7px}.nav :is(button,a){border:0;text-align:left;background:transparent;display:flex;align-items:center;gap:12px;color:#c9d4c3;padding:13px 13px;border-radius:6px;font-size:20px;font-weight:500;transition:.15s}.nav :is(button,a):hover{background:#ffffff0e;color:white}.nav :is(button,a).active{background:#e4ead7;color:var(--forest);font-weight:700}.nav :is(button,a).active::after{content:'';margin-left:auto;width:5px;height:5px;background:var(--forest);border-radius:50%}.sidebar-bottom{margin-top:auto;padding-top:35px}.coach-card{border-top:1px solid #ffffff20;padding-top:20px;display:flex;align-items:center;gap:10px}.coach-avatar{background:#c2cea5;color:var(--forest);font-family:var(--display);font-weight:700;width:34px;height:38px;display:grid;place-items:center;border-radius:4px}.coach-card strong{font-size:20px;display:block}.coach-card small{font-size:16px;display:block;color:#a9b99f;margin-top:3px}.help-button{border:0;background:none;color:#c0cdb7;font-size:16px;display:flex;gap:8px;align-items:center;padding:18px 0 0}.main-shell{grid-column:2;min-width:0}.topbar{height:76px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.breadcrumb{font-size:16px;letter-spacing:1.5px;color:#909487;font-weight:600}.breadcrumb strong{color:var(--forest);margin-left:10px}.topbar-right{display:flex;align-items:center;gap:19px}.save-indicator{font-size:16px;color:#7d8977;display:flex;align-items:center;gap:6px}.save-dot{width:5px;height:5px;border-radius:50%;background:#63835b}.team-select{border:0;background:transparent;font-weight:700;color:var(--forest);font-size:20px;max-width:190px}.topbar-divider{height:22px;width:1px;background:var(--line)}main{padding:31px 34px 20px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px;gap:18px}.eyebrow{font-size:16px;font-weight:700;letter-spacing:1.8px;color:var(--orange);text-transform:uppercase;margin:0 0 9px}.page-heading h1{font-family:var(--display);font-weight:600;font-size:40px;letter-spacing:-1.4px;margin:0 0 7px;line-height:1.1}.page-heading p{color:var(--muted);margin:0;font-size:20px}.season-pill{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:10px 16px;border-radius:6px;background:#fbfaf4;white-space:nowrap}.season-pill .record{font-family:var(--display);font-size:28px;font-weight:600}.season-pill small{font-size:16px;letter-spacing:1px;display:block;color:var(--muted);margin-top:2px}.season-pill .divider{height:27px;width:1px;background:var(--line)}.season-pill b{font-size:20px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 298px;gap:22px;align-items:start}.card{border:1px solid var(--line);border-radius:9px;background:var(--card);overflow:hidden}.scoreboard{padding:16px 22px;display:flex;justify-content:space-between;align-items:center;gap:10px}.team-score{display:flex;align-items:center;gap:12px;min-width:0}.team-score.away{flex-direction:row-reverse;text-align:right}.team-badge{width:43px;height:46px;display:grid;place-items:center;font-family:var(--display);font-size:20px;font-weight:700;letter-spacing:-.5px;clip-path:polygon(0 0,100% 0,100% 75%,50% 100%,0 75%);background:var(--team-color);color:var(--badge-text,#fff);box-shadow:inset 0 4px var(--team-secondary)}.team-name{font-family:var(--display);font-size:20px;font-weight:700;line-height:1.2}.team-name small{display:block;font-family:var(--font);font-size:16px;font-weight:400;color:var(--muted);margin-top:4px}.score{font-family:var(--display);font-size:48px;font-weight:600;letter-spacing:-1.5px;margin-left:5px}.away .score{margin-left:0;margin-right:5px}.score-clock{text-align:center}.score-clock strong{font:600 20px var(--display);letter-spacing:1px}.score-clock small{display:block;font-size:16px;letter-spacing:1.2px;color:var(--muted);margin-top:5px}.live-chip{font-size:16px;letter-spacing:1.2px;background:#e7ecd9;border-radius:3px;padding:3px 5px;color:#53684b;margin-bottom:5px;display:inline-block}.live-chip::before{content:'';display:inline-block;width:4px;height:4px;background:#6a8757;border-radius:50%;margin:0 5px 1px 0}.field-wrap{background:#48794b;position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}#field{display:block;width:100%;aspect-ratio:1120/480;image-rendering:pixelated}.field-caption{display:flex;justify-content:space-between;align-items:center;padding:11px 17px;font-size:16px;color:#5f715c}.field-caption strong{color:var(--forest);font-size:16px}.field-caption label{display:flex;align-items:center;gap:5px}.field-caption input{accent-color:var(--forest)}.play-status{border-top:1px solid var(--line);padding:14px 18px;background:#f2f3e8;display:flex;gap:10px;align-items:center;min-height:63px}.status-symbol{width:30px;height:30px;border:1px solid #d7dcc9;border-radius:50%;display:grid;place-items:center;flex-shrink:0}.play-status strong{display:block;font-size:20px;margin-bottom:3px}.play-status small{display:block;font-size:16px;color:#7a8370;line-height:1.4}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-head h2{font-family:var(--display);font-size:20px;font-weight:600;margin:0;letter-spacing:-.4px}.text-button{background:none;border:0;padding:0;color:var(--forest);font-size:16px;display:flex;align-items:center;gap:5px;font-weight:700}.play-panel{padding:19px 17px}.panel-eyebrow{display:flex;justify-content:space-between;margin-bottom:8px;font-size:16px;letter-spacing:1.2px;color:var(--muted)}.panel-eyebrow span:last-child{color:var(--orange)}.play-panel h2{font-family:var(--display);font-size:28px;letter-spacing:-.8px;margin:0}.downline{font-size:16px;color:var(--muted);margin-top:5px;margin-bottom:17px}.tabs{display:flex;gap:3px;padding:3px;border-radius:5px;background:#eeefe5;margin-bottom:14px}.tabs button{flex:1;border:0;background:none;padding:7px 0;font-size:16px;color:#7b8272;border-radius:3px}.tabs button.active{background:var(--card);color:var(--forest);box-shadow:0 1px 3px #1a321016;font-weight:700}.play-list{display:flex;flex-direction:column;gap:8px;max-height:244px;overflow:auto;scrollbar-width:thin;padding-right:2px}.play-option{display:grid;grid-template-columns:1fr 83px;gap:6px;padding:10px 10px;background:transparent;border:1px solid var(--line);border-radius:5px;text-align:left;align-items:center;min-height:74px;transition:.12s}.play-option:hover{background:#f1f3e8;border-color:#a5b494}.play-option.selected{border:1.5px solid var(--forest);background:#edf1e3;box-shadow:inset 3px 0 var(--forest);padding-left:11px}.play-option strong{font-size:16px;display:block;line-height:1.3}.play-option small{font-size:16px;color:#89917d;display:block;margin-top:5px}.play-option .type-label{color:var(--orange);font-size:16px;letter-spacing:1px;margin-bottom:5px;font-weight:700}.mini-play{width:83px;height:50px;display:block;border-radius:3px}.call-button,.primary{background:var(--forest);color:#f4f4e9;border:0;border-radius:5px;font-size:16px;font-weight:700;padding:12px 16px;display:inline-flex;justify-content:center;align-items:center;gap:9px}.call-button{width:100%;margin-top:15px;padding:14px;letter-spacing:.4px}.call-button:hover,.primary:hover{background:#24523f}.call-button .icon{width:15px;height:15px}.selection-note{font-size:16px;text-align:center;color:#8d9483;margin:8px 0 0}.secondary{border:1px solid #cdd2c1;background:transparent;border-radius:5px;font-weight:600;font-size:16px;padding:10px 13px;display:inline-flex;gap:7px;align-items:center;justify-content:center}.secondary:hover{background:#e9eddf}.danger{color:#aa4737}.special-teams{display:flex;gap:7px;margin-top:10px}.special-teams button{flex:1;padding:8px 4px;font-size:16px}.below-field{display:grid;grid-template-columns:1.35fr 1fr;gap:18px;margin-top:22px}.compact-card{padding:18px}.drive-log{display:flex;flex-direction:column;gap:0;max-height:178px;overflow:auto}.log-row{display:flex;gap:12px;border-bottom:1px solid #e9eade;padding:10px 0;align-items:center;font-size:16px}.log-row:last-child{border:0}.log-gain{font-family:var(--display);font-size:20px;min-width:30px;color:#52774a;font-weight:600}.log-row p{margin:0;line-height:1.35}.log-row small{color:var(--muted);display:block;font-size:16px;margin-top:3px}.empty-log{display:flex;align-items:center;gap:12px;color:#8b927f;font-size:16px;line-height:1.7;padding:18px 0}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #e5e8d9;font-size:16px;color:var(--muted)}.stat-row:last-child{border-bottom:0}.stat-row strong{color:var(--forest);font-family:var(--display);font-size:20px}.tip{font-size:16px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding:15px 0 0;margin:16px 0 0}.tip strong{color:var(--orange)}.footer{display:flex;justify-content:space-between;gap:12px;color:#959987;font-size:16px;letter-spacing:.25px;padding:24px 0 0}.footer button{font-size:16px;font-weight:400;color:#828b78}.playbook-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.playbook-card .large-diagram{width:100%;height:180px;display:block;background:#315c41}.playbook-card-body{padding:18px}.playbook-card h3{font:600 20px var(--display);margin:7px 0}.playbook-card p{font-size:16px;line-height:1.6;color:var(--muted);min-height:36px}.playbook-card .card-actions{display:flex;gap:8px;margin-top:15px}.playbook-card .card-actions button{flex:1}.badge{font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--orange)}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{padding:20px}.stat-card small{font-size:16px;text-transform:uppercase;letter-spacing:1.1px;color:var(--muted)}.stat-card strong{display:block;font:600 40px var(--display);margin-top:7px;letter-spacing:-1px}.stat-card p{font-size:16px;color:var(--muted);margin:6px 0 0}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;text-align:left}.data-table th{font-size:16px;letter-spacing:1px;font-weight:500;text-transform:uppercase;background:#ecefe3;color:#7c8771;padding:12px 18px}.data-table td{font-size:16px;padding:15px 18px;border-bottom:1px solid #e6e9dd;white-space:nowrap}.data-table tr:last-child td{border:0}.player-name{font-weight:700;font-size:20px}.player-name small{display:block;font-size:16px;color:var(--muted);font-weight:400;margin-top:4px}.position-badge{display:inline-grid;place-items:center;width:31px;height:28px;background:#e7ecdd;color:#52704a;font-size:16px;border-radius:3px;font-weight:700}.rating{display:inline-flex;align-items:center;gap:7px;font-family:var(--display);font-size:20px;font-weight:600}.rating-bar{width:48px;height:4px;background:#e0e5d7;border-radius:4px}.rating-bar span{display:block;background:#729267;height:100%;border-radius:4px}.section-gap{margin-top:28px}.table-team{display:flex;align-items:center;gap:12px}.table-team .team-badge{width:28px;height:31px;font-size:16px}.tag{font-size:16px;padding:4px 7px;border-radius:3px;background:#e6ecdc;color:#59724c}.tag.loss{background:#f4e6dc;color:#a76544}.schedule-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:22px}.schedule-row.current{background:#edf2e4}.row-you{background:#edf2e4}.banner{background:var(--forest);border-radius:8px;color:#edf1df;padding:27px;margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.banner h2{font:600 28px var(--display);margin:0 0 8px}.banner p{font-size:20px;color:#b9c7ad;line-height:1.6;margin:0}.banner .primary{background:#e3c889;color:var(--forest)}.note-box{border-left:3px solid var(--gold);background:#eeeee2;padding:14px 17px;font-size:16px;color:#7b806e;line-height:1.7;margin-top:20px}.front-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.management-card{padding:25px}.management-card h2{font:600 24px var(--display);margin:0 0 9px}.management-card p{font-size:20px;color:var(--muted);line-height:1.7;margin-bottom:20px}.management-card input{padding:10px;border:1px solid var(--line);background:#f9faf3;border-radius:4px;max-width:100%;margin-bottom:12px}.muted{color:var(--muted)}#toast{position:fixed;bottom:26px;left:calc(50% + 103px);transform:translate(-50%,20px);background:var(--deep);color:#f8f8e9;padding:13px 20px;border-radius:7px;font-size:20px;opacity:0;pointer-events:none;z-index:100;max-width:90vw;box-shadow:0 5px 28px #132a2525;transition:.2s}#toast.show{transform:translate(-50%,0);opacity:1}dialog{width:min(900px,94vw);max-height:92vh;border:1px solid #ccd4bd;border-radius:12px;padding:27px;background:var(--paper);color:var(--ink);box-shadow:0 20px 90px #102d3540}dialog::backdrop{background:#122e26b8;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.dialog-head h2{font:600 32px var(--display);margin:0;letter-spacing:-.7px}.icon-button{border:0;background:#e7ebdf;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;font-size:24px}.editor-inputs{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-bottom:16px}.editor-inputs label{display:flex;flex-direction:column;gap:6px;font-size:16px;color:#6d7c61}.editor-inputs input,.editor-inputs select{width:100%;padding:10px;border:1px solid #cdd4bf;background:var(--card);border-radius:4px;font-size:20px;color:var(--ink)}.route-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:13px 0}.route-toolbar small{font-size:16px;margin-right:5px}.route-player{width:34px;height:29px;border:2px solid transparent;border-radius:4px;background:var(--route-color);font-size:16px;font-weight:700;color:#123328}.route-player.active{outline:2px solid var(--forest);outline-offset:2px}.route-preset{border:1px solid #cdd4bf;border-radius:4px;padding:7px 10px;background:none;font-size:16px}.editor-field{width:100%;background:#315b40;border:1px solid #416249;border-radius:6px;display:block;touch-action:none;cursor:crosshair;max-height:40vh}.editor-help{display:flex;justify-content:space-between;gap:10px;font-size:16px;color:var(--muted);margin:10px 0 19px;line-height:1.5}.dialog-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:17px;gap:10px}.dialog-footer-right{display:flex;gap:10px}.help-copy{font-size:20px;line-height:1.8;color:#64745b}.help-copy h3{font:600 20px var(--display);color:var(--forest);margin-bottom:8px}.help-copy a{overflow-wrap:anywhere}.source-list{font-size:16px;line-height:1.7;max-height:220px;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:5px 20px}.loading{display:grid;place-content:center;min-height:100vh;text-align:center;font-family:var(--display);color:var(--forest)}.result-title{color:var(--orange)}.mobile-brand{display:none}
@media(min-width:1550px){main{padding-top:38px}.game-layout{grid-template-columns:minmax(0,1fr) 330px}.play-list{max-height:390px}.play-option{min-height:83px}}
@media(max-width:1200px){.app-shell{grid-template-columns:177px minmax(0,1fr)}.sidebar{width:177px;padding:25px 14px}.brand-word{font-size:20px}.brand{gap:7px}.topbar{padding:0 23px}main{padding:26px 23px}.game-layout{gap:16px;grid-template-columns:minmax(0,1fr) 270px}.scoreboard{padding:15px}.team-score{gap:8px}.team-name{font-size:20px}.team-badge{width:34px;height:39px;font-size:20px}.score{font-size:40px}.score-clock strong{font-size:20px}.play-panel{padding:17px 14px}.play-list{max-height:278px}.below-field{grid-template-columns:1fr}.team-name small{font-size:16px}.below-field .compact-card:last-child{display:none}.playbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#toast{left:calc(50% + 88px)}}
@media(max-width:950px){.app-shell{grid-template-columns:74px minmax(0,1fr)}.sidebar{width:74px;padding:24px 12px}.brand{padding:0 5px 30px}.brand-word,.nav-label,.nav :is(button,a) span,.coach-card>div:last-child,.help-button span{display:none}.nav :is(button,a){padding:14px;justify-content:center}.nav :is(button,a).active::after{display:none}.sidebar-bottom{padding-left:7px}.brand-mark{min-width:34px}.coach-card{padding-top:17px}.help-button{padding-left:6px}.page-heading h1{font-size:32px}.game-layout{grid-template-columns:minmax(0,1fr) 250px}.team-name{font-size:16px}.team-name small{display:none}.team-badge{width:30px;height:33px;font-size:16px}.scoreboard{padding:14px 12px}.score{font-size:32px}.score-clock strong{font-size:20px}.season-pill{padding:9px 10px;gap:10px}.stats-strip{gap:10px}.stat-card{padding:17px}.schedule-layout{grid-template-columns:1fr}.front-grid{grid-template-columns:1fr}#toast{left:calc(50% + 37px)}}
@media(max-width:760px){.app-shell{display:block;padding-bottom:70px}.sidebar{position:fixed;inset:auto 0 0;width:100%;height:65px;padding:6px 10px;background:var(--forest);display:block;border-top:1px solid #83956a;z-index:50}.brand,.nav-label,.sidebar-bottom{display:none}.nav{flex-direction:row;justify-content:space-around;gap:2px;height:100%}.nav :is(button,a){display:flex;flex-direction:column;gap:4px;padding:7px 8px;min-width:53px;border-radius:5px;font-size:16px}.nav :is(button,a) span{display:block;font-size:16px}.nav :is(button,a) .icon{height:18px;width:18px}.topbar{height:60px;padding:0 18px}.breadcrumb{display:none}.mobile-brand{display:flex;align-items:center;gap:7px;font:700 16px var(--display);letter-spacing:1px;color:var(--forest);line-height:1.1}.mobile-brand .brand-mark{height:31px;width:28px;min-width:28px;font-size:24px;border-color:var(--forest)}.save-indicator{display:none}.topbar-right{gap:8px}.team-select{font-size:16px;max-width:160px}.topbar-divider{display:none}main{padding:23px 16px 16px}.page-heading{gap:12px;margin-bottom:20px}.page-heading h1{font-size:32px;letter-spacing:-1.2px}.page-heading p{font-size:16px;line-height:1.6}.eyebrow{font-size:16px;letter-spacing:1.3px}.season-pill{padding:8px 10px;gap:8px}.season-pill .record{font-size:24px}.season-pill small{font-size:16px}.season-pill>div:last-child,.season-pill .divider{display:none}.game-layout{grid-template-columns:1fr;gap:17px}.scoreboard{padding:16px}.team-name{font-size:20px}.team-badge{width:35px;height:39px;font-size:20px}.team-score{gap:10px}.score{font-size:40px}.score-clock strong{font-size:20px}.team-name small{display:block;font-size:16px}#field{aspect-ratio:1120/520}.field-caption{font-size:16px;padding:10px 12px}.field-caption strong{font-size:16px}.play-status{padding:12px}.play-panel{padding:18px}.play-panel h2{font-size:24px}.play-list{display:grid;grid-template-columns:1fr 1fr;max-height:190px;gap:7px}.play-option{grid-template-columns:1fr;position:relative;min-height:81px;padding:10px}.play-option strong{font-size:16px}.play-option small{font-size:16px}.mini-play{position:absolute;right:5px;bottom:6px;width:51px;height:31px;opacity:.6}.play-option.selected{padding-left:10px}.play-option>div{position:relative;z-index:1}.play-option .type-label{font-size:16px}.play-option strong{padding-right:10px}.downline{margin-bottom:12px}.tabs{margin-bottom:11px}.call-button{padding:15px;margin-top:13px}.special-teams button{font-size:16px}.below-field{margin-top:17px;grid-template-columns:1fr}.compact-card{padding:16px}.playbook-grid{grid-template-columns:1fr 1fr;gap:12px}.playbook-card .large-diagram{height:130px}.playbook-card-body{padding:13px}.playbook-card h3{font-size:20px}.playbook-card p{font-size:16px;min-height:48px}.playbook-card .card-actions{flex-direction:column}.stats-strip{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.stat-card strong{font-size:27px}.stat-card small{font-size:16px}.data-table th,.data-table td{padding:12px}.data-table td{font-size:16px}.rating-bar{display:none}.footer{font-size:16px;line-height:1.6}.footer>span{max-width:230px}#toast{left:50%;bottom:83px;width:max-content;max-width:90vw;font-size:16px}.banner{padding:20px;flex-direction:column;align-items:start}.banner h2{font-size:24px}.editor-inputs{grid-template-columns:1fr 1fr;gap:10px}.editor-inputs label:first-child{grid-column:1/-1}.route-toolbar{gap:7px}.route-toolbar small{width:100%;margin-bottom:3px}.editor-field{max-height:37vh;aspect-ratio:800/420}.editor-help{flex-direction:column;gap:3px}.dialog-head h2{font-size:24px}dialog{padding:20px}.dialog-footer{align-items:flex-start}.dialog-footer-right{flex-direction:column}.source-list{grid-template-columns:1fr}.page-heading>.primary{font-size:16px;padding:11px}.section-head h2{font-size:20px}.management-card{padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

@media(max-width:760px){.game-layout>div:first-child{display:contents}.game-layout>.play-panel{order:2}.game-layout .below-field{order:3;margin-top:0}.play-list{max-height:172px}}

/* Personnel and private head-to-head play */
.depth-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.depth-card{padding:20px}.depth-card .section-head{margin-bottom:12px}.depth-card .badge{font-size:16px;white-space:nowrap}.depth-row{display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.depth-row>b,.depth-row b{font:600 20px var(--display)}.depth-row small{display:block;color:var(--muted);font-size:16px;margin-top:3px}.depth-row select{width:100%;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:11px 8px;font-size:16px;color:var(--forest)}.lineup-note{font-size:16px;line-height:1.7;color:var(--muted);margin:12px 0 22px}.defense-intro{font-size:16px;line-height:1.6;color:var(--muted);margin:0 0 13px}.defense-panel .play-option .type-label{color:#49715e}.online-inputs{display:grid;gap:16px;margin:22px 0}.online-inputs label,.online-code-label{display:grid;gap:8px;font-size:16px;font-weight:700;letter-spacing:1px}.online-inputs input,.online-inputs select,.online-code-label input{padding:13px 12px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--ink);width:100%;font-size:20px}.online-code-label{margin:22px 0}.online-code-label input{letter-spacing:3px;text-transform:uppercase}.online-field{display:block;width:100%;aspect-ratio:1120/480;image-rendering:pixelated}.ready-bar{display:flex;justify-content:space-between;gap:10px;border:1px solid var(--line);border-radius:6px;padding:16px;background:#e8ecdd;margin-top:15px;font-size:16px;color:#72816c}.ready-bar b{color:var(--forest);margin-left:5px}.online-subs{margin-top:18px}.online-subs summary{cursor:pointer;font-weight:700;font-size:20px;padding:15px 0}.online-subs .depth-grid{grid-template-columns:1fr;gap:14px}.online-subs .depth-card{padding:16px}.online-subs .lineup-note{margin-bottom:0}.lobby-card{text-align:center;padding:40px 24px;max-width:620px;margin:0 auto}.lobby-card .team-badge{margin:0 auto;width:58px;height:64px;font-size:24px}.lobby-card h2{font-family:var(--display)}.room-code{font:600 48px var(--display);letter-spacing:8px;padding:20px;border:1px dashed #8c9e7f;background:#edf1e3;border-radius:8px;margin:22px auto;max-width:380px}.lobby-card p{font-size:20px;line-height:1.7}.lobby-card .text-button{margin:22px auto}.front-grid .management-card p{line-height:1.7}.online-menu-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}
@media(max-width:1100px){.depth-grid{grid-template-columns:1fr}.depth-row{grid-template-columns:115px minmax(0,1fr)}}
@media(max-width:760px){.depth-card{padding:16px}.depth-row{grid-template-columns:82px minmax(0,1fr);gap:8px}.depth-row select{font-size:16px;padding:12px 7px}.depth-card .badge{display:none}.depth-card .section-head h2{font-size:20px}.room-code{font-size:32px;letter-spacing:5px;padding:20px 10px}.lobby-card{padding:28px 18px}.online-subs{order:4}.ready-bar{order:3;margin:0}.game-layout .online-subs{margin:0}.online-field{aspect-ratio:1120/520}.nav :is(button,a){min-width:50px;padding-left:5px;padding-right:5px}.nav :is(button,a) span{font-size:16px}.online-inputs input,.online-inputs select,.online-code-label input{font-size:20px}.online-subs .depth-row select{font-size:20px}.depth-row select{font-size:20px}.scoreboard{gap:5px}.team-score{gap:6px}}

@media(max-width:430px){.scoreboard{padding:14px 12px;gap:12px}.scoreboard .team-name{display:none}.scoreboard .team-badge{width:31px;height:36px;flex-shrink:0;font-size:16px}.scoreboard .team-score{gap:7px;flex:1}.scoreboard .team-score.away{justify-content:flex-start}.scoreboard .score{font-size:40px;margin:0}.scoreboard .score-clock{flex:0 0 110px}.scoreboard .score-clock strong{font-size:20px;letter-spacing:.4px}.scoreboard .score-clock small{font-size:16px;letter-spacing:.5px}}

/* Box scores, scouting and reads */
.first-read-control{display:grid;gap:7px;margin-top:15px;font-size:16px;font-weight:700;letter-spacing:1px;color:var(--forest)}.first-read-control select,.stats-selector select,.draft-actions select{width:100%;min-width:0;border:1px solid #cbd3bd;background:#f5f6ed;color:var(--forest);padding:11px;border-radius:5px;font-size:20px;font-weight:500;letter-spacing:0}.read-note{font-size:16px;line-height:1.6;color:var(--muted);margin:7px 0 0}.stats-selector{max-width:360px;margin:0 0 20px}.stats-selector label{display:grid;gap:8px;font-size:16px;font-weight:700;letter-spacing:1px}.box-score{margin-top:22px}.box-heading{padding:23px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.box-heading h2{margin:0;font:600 24px var(--display);letter-spacing:-.6px}.box-heading>strong{font:600 24px var(--display);white-space:nowrap}.box-heading .eyebrow{margin-bottom:7px}.team-comparison th:not(:first-child),.team-comparison td:not(:first-child){text-align:right;width:23%;font-variant-numeric:tabular-nums}.box-players{padding:0 22px}.box-players details{border-top:1px solid var(--line);padding:17px 0}.box-players summary{cursor:pointer;font:600 20px var(--display)}.box-category{margin:22px 0}.box-category h3{font:600 20px var(--display);margin:0 0 8px;color:var(--forest)}.box-table th,.box-table td{padding:10px 11px;text-align:right;font-variant-numeric:tabular-nums}.box-table th:first-child,.box-table td:first-child{text-align:left;min-width:150px}.box-table small{display:block;color:var(--muted);font-size:16px;margin-top:3px}.box-empty{font-size:16px;color:var(--muted);margin:12px 0}.box-note{padding:0 22px}.season-stat-body{padding:0 22px}.player-report-link{padding:0;text-align:left;border:0;border-bottom:1px dotted #a0ad91;background:none;font-weight:700;color:var(--forest)}.player-report-link:hover{color:var(--orange)}.player-report{padding:22px}.report-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.report-title h2{font:600 24px var(--display);letter-spacing:-.6px;margin:9px 0 6px}.report-title p{font-size:16px;color:var(--muted);margin:0}.report-overall{font:600 48px var(--display);text-align:center;color:var(--forest)}.report-overall small{display:block;font:700 16px var(--font);letter-spacing:1.5px}.physical-ratings{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);border-radius:6px;background:var(--paper);margin:22px 0}.physical-ratings>div{padding:14px;text-align:center;border-right:1px solid var(--line)}.physical-ratings>div:last-child{border:0}.physical-ratings small{text-transform:uppercase;display:block;font-size:16px;letter-spacing:1px;color:var(--muted);margin-bottom:5px}.physical-ratings strong{font:600 28px var(--display)}.potential-panel,.development-panel{padding:15px 0;border-bottom:1px solid var(--line)}.potential-panel>div:first-child,.development-panel>div{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:20px}.potential-panel span,.development-panel span{font-size:16px;color:var(--muted)}.potential-panel p,.development-panel p{font-size:16px;line-height:1.6;color:var(--muted);margin:9px 0 0}.talent-track{height:5px;background:#e7e9dc;border-radius:5px;overflow:hidden;margin-top:13px}.talent-track i{height:100%;display:block;background:#6b8b62}.attribute-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px;margin:18px 0 0}.attribute-grid>div{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #e6e8da;font-size:16px}.attribute-grid .undiscovered{color:#929887}.attribute-grid .revealed strong{color:var(--forest)}.draft-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}.draft-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.draft-actions label{grid-column:1/-1;display:grid;gap:7px;font-size:16px;letter-spacing:1px;font-weight:700}.contract-card{padding:22px;margin-top:22px}.contract-row{display:flex;justify-content:space-between;gap:25px;align-items:center;padding:17px 0;border-top:1px solid var(--line)}.contract-row p{font-size:16px;color:var(--muted);margin:6px 0}.contract-row small{font-size:16px}.contract-row>div:last-child{display:flex;gap:12px;align-items:center;flex-shrink:0}#help-dialog .player-report{padding:0}.balance-rates{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}.balance-rates>div{padding:14px;background:var(--paper);border-radius:6px}.balance-rates strong{display:block;font:600 24px var(--display);margin:5px 0}.balance-rates small{font-size:16px;color:var(--muted);line-height:1.5}
@media(max-width:1100px){.draft-grid{grid-template-columns:1fr}.contract-row{align-items:flex-start;gap:12px}.contract-row>div:last-child{flex-direction:column}.box-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){.nav :is(button,a){min-width:42px;padding:8px 3px}.nav :is(button,a) span{font-size:16px}.nav{gap:0}.first-read-control select,.stats-selector select,.draft-actions select{font-size:20px}.first-read-control{font-size:16px}.read-note{font-size:16px}.box-heading{padding:18px}.box-heading h2{font-size:24px}.box-heading>strong{font-size:20px}.box-players,.season-stat-body{padding:0 14px}.box-players summary{font-size:20px}.box-table th,.box-table td{padding:10px 8px}.box-table th:first-child,.box-table td:first-child{min-width:120px}.report-title h2{font-size:24px}.player-report{padding:17px}.attribute-grid{gap:0 12px}.contract-card{padding:17px}.contract-row{flex-direction:column}.contract-row>div:last-child{flex-direction:row}.balance-rates{grid-template-columns:1fr}.physical-ratings>div{padding:12px}.box-note{padding:0 14px}.potential-panel>div:first-child{align-items:start;flex-direction:column;gap:5px}}
.field-legend{display:flex;flex-wrap:wrap;gap:9px 15px;padding:12px 18px;background:#edf0e6;border-bottom:1px solid var(--line);font-size:16px;color:#435746}.field-legend span{display:flex;align-items:center;gap:6px}.legend-jersey{width:12px;height:12px;border:1px solid #6f8069;border-radius:2px;display:inline-block}.legend-jersey.light{background:#eee9d8}.legend-line{display:inline-block;width:18px;height:3px}.legend-line.blue{background:#468b9b}.legend-line.gold{background:#b58b25}.legend-line.red{background:#c86448}.legend-zone{width:15px;height:11px;border:1px dashed #4d97a4;background:#a8d7dc60}.defense-read{border:1px solid #ced7c6;border-radius:9px;background:#edf1e6;padding:20px;margin-top:18px}.read-facts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.read-facts>div{display:flex;flex-direction:column;gap:5px}.read-facts small{font-size:16px;letter-spacing:1px;color:#6d7c65}.read-facts strong{font-family:var(--display);font-size:20px}.read-facts span,.hot-target,.read-suggestion{font-size:16px;line-height:1.55}.hot-target{border-top:1px solid #d3ddc8;padding-top:12px;margin:13px 0 0}.read-suggestion{color:#496043;margin:12px 0}.call-explainer{background:#fffef7;border-radius:6px;padding:13px 15px;display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.call-explainer>strong,.call-explainer>small{grid-column:1/-1}.call-explainer>strong{font-size:20px}.call-explainer p{font-size:16px;margin:0;line-height:1.5}.call-explainer small{color:#687962;font-size:16px;line-height:1.5;border-top:1px solid var(--line);padding-top:8px;margin-top:3px}.package-control{padding:13px 0 17px;border-bottom:1px solid var(--line);margin-bottom:14px}.package-control label{display:block;font-size:16px;letter-spacing:1px;font-weight:700;color:#6c7764}.package-control select{display:block;width:100%;margin-top:7px;background:#f8f8f0;border:1px solid var(--line);border-radius:5px;padding:10px 9px;color:var(--ink);font-size:20px;letter-spacing:0;min-height:42px}.package-control p{font-size:16px;line-height:1.5;color:var(--muted);margin:8px 0 0}.package-control small{display:block;font-size:16px;line-height:1.5;color:#50694a;margin-top:7px}.target-warning{font-size:16px;line-height:1.5;padding:10px;border-left:3px solid var(--orange);background:#f6eddc;margin:8px 0 14px}.snap-explanation{font-size:16px;line-height:1.5;margin:9px 0 0;color:#52694d}.trade-entry{padding:23px;display:flex;justify-content:space-between;align-items:center;gap:25px;margin-top:24px}.trade-entry h2{margin:0 0 7px;font:600 24px var(--display)}.trade-entry p{font-size:20px;line-height:1.6;color:var(--muted);margin:0;max-width:620px}.trade-entry .primary{white-space:nowrap}.field-caption label{display:inline-flex;align-items:center;gap:4px}.field-caption input{accent-color:var(--forest)}#trade-desk input[type=checkbox]{width:18px;height:18px;accent-color:var(--forest)}#trade-desk .front-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#trade-desk .data-table{font-size:16px}#trade-desk .data-table td{padding:11px 12px}#trade-desk .card-actions{flex-wrap:wrap}#trade-desk .muted{font-size:16px;line-height:1.6}
@media(max-width:760px){.field-legend{padding:10px 12px;gap:8px 12px;font-size:16px}.defense-read{padding:16px}.read-facts strong{font-size:20px}.call-explainer{grid-template-columns:1fr}.call-explainer>strong,.call-explainer>small{grid-column:1}.field-caption{flex-wrap:wrap;gap:10px}.trade-entry{display:block;padding:19px}.trade-entry .primary{margin-top:15px}#trade-desk .front-grid{grid-template-columns:1fr}.package-control select{font-size:20px}}
.defensive-package-control .package-tradeoff{border-left:2px solid #bac9ac;padding-left:9px;margin-top:10px}.defensive-package-control .package-tradeoff p{color:#4a5d43;margin-top:4px}.package-players{margin-top:12px;font-size:16px;color:#4b6044}.package-players summary{cursor:pointer;font-weight:700;min-height:28px;line-height:28px}.package-players ul{list-style:none;padding:0;margin:5px 0 0}.package-players li{display:flex;gap:8px;padding:4px 0;overflow-wrap:anywhere}.package-players li b{min-width:24px}.depth-row select:disabled{opacity:.65}.special-teams-panel .call-button{margin-top:16px}.special-teams-panel .kick-distance{font:600 40px var(--display);color:var(--forest);margin:18px 0 4px}.special-teams-panel p{line-height:1.6}
@media(max-width:760px){.defensive-package-control select{font-size:20px}}
/* Live coaching clock */
.clock-controls{display:flex;align-items:center;gap:16px;padding:14px 20px;background:#eae5d6;border-top:1px solid #d4cdbb;border-bottom:1px solid #d4cdbb}.play-clock{display:flex;align-items:center;gap:10px}.play-clock span{font-size:16px;letter-spacing:1.2px;max-width:45px}.play-clock strong{font:700 32px var(--font);background:#163d2e;color:#f1d58e;padding:6px 10px;border-radius:4px;font-variant-numeric:tabular-nums}.play-clock strong.urgent{background:#8f352c;color:#fff}.clock-details{display:grid;gap:4px;font-size:16px;flex:1}.clock-details b{font-size:16px;letter-spacing:.6px}.clock-actions{display:flex;gap:8px}.clock-actions .secondary{padding:9px 12px;font-size:16px}.clock-hint{margin:0;padding:7px 20px;font-size:16px;color:#5c665d;background:#f4f0e6}.clock-controls.is-paused .play-clock strong{background:#6e735e}.penalty-call{border-left:3px solid #d8a629;padding:8px;background:#f8edc9;color:#745319;font-size:20px}.penalty-call b{margin-right:6px}.playbook-tools{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}.playbook-tools input{min-width:230px;max-width:100%;padding:12px;border:1px solid #c8c4b7;background:#fbf8ee;border-radius:5px}.playbook-tools small{align-self:center;color:#687468}
@media(max-width:600px){.clock-controls{gap:9px;padding:10px;flex-wrap:wrap}.clock-actions{margin-left:auto}.clock-hint{padding:7px 10px}.clock-details{min-width:120px}.play-clock strong{font-size:24px}}

[hidden]{display:none!important}.call-search-label{display:block;margin:8px 0}.call-search-label input{width:100%;padding:10px;background:#fbf8ee;border:1px solid #c8c4b7;border-radius:4px;font-size:20px}
.stamina-badge{display:inline-flex;align-items:center;gap:6px;font-size:16px;line-height:1.4;color:#4e695c;white-space:nowrap}.stamina-meter{display:inline-block;width:34px;height:6px;background:#d6e0d1;border:1px solid #8ba293;overflow:hidden}.stamina-meter i{display:block;height:100%;background:#4c947b}.stamina-badge.working{color:#81601e}.stamina-badge.working .stamina-meter i{background:#bd942e}.stamina-badge.low{color:#a74f3d}.stamina-badge.low .stamina-meter i{background:#c56752}.depth-row .stamina-badge{display:flex;margin-top:5px;font-size:16px;white-space:normal;gap:4px}.depth-row .stamina-meter{width:23px;flex-shrink:0}.player-name .stamina-badge{margin-top:5px}.package-players .stamina-badge{margin-left:auto;font-size:16px}.legend-stamina{display:inline-block;width:21px;height:6px;border:1px solid #173d30;background:linear-gradient(to right,#90d3bd 70%,#365148 70%)}.stamina-note{font-size:16px;line-height:1.55;padding:10px 12px;border-left:3px solid #b58b25;background:#f6eddc;margin:8px 0 14px}.stamina-note b{display:block}.package-players li{flex-wrap:wrap}

.game-development{margin:0 22px 22px;padding:18px 0 0;border-top:1px solid var(--line)}.development-panel>strong{font-size:20px}.development-team{padding-top:12px}.development-team h4{font:600 20px var(--display);margin:0 0 6px}.development-team ul{list-style:none;margin:0;padding:0}.development-team li{font-size:20px;line-height:1.8;padding:7px 0;overflow-wrap:anywhere}.development-team li small{display:block;font-size:16px;color:var(--muted)}.development-team .badge{margin-left:5px}@media(max-width:760px){.game-development{margin-right:14px;margin-left:14px}}

/* Availability and morale stay in roster/report panels, away from the field. */
.player-condition{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.condition-tag{display:inline-block;border:1px solid #d6dfcf;border-radius:4px;padding:3px 6px;background:#eef1e8;color:#52654b;font-size:16px;line-height:1.45}.condition-tag.is-out,.condition-tag.is-concern{background:#f6ebdf;border-color:#e5c8aa;color:#875127}.player-condition-panel{padding:15px 0;border-bottom:1px solid var(--line)}.player-condition-panel h3{font:600 20px var(--display);margin:0 0 9px}.player-condition-panel p{font-size:16px;line-height:1.6;color:var(--muted);margin:9px 0 0}.team-availability{padding:20px;margin:20px 0;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.team-availability h2{font:600 20px var(--display);margin:0}.team-availability p,.opponent-availability p{font-size:16px;color:var(--muted);line-height:1.6}.team-availability ul,.opponent-availability ul,.game-injuries ul{padding:0;list-style:none;margin:10px 0 0}.team-availability li,.opponent-availability li{font-size:16px;line-height:1.65;padding:4px 0;overflow-wrap:anywhere}.team-availability li span,.opponent-availability li span{display:inline-block;margin-left:8px;color:#875127}.team-availability .secondary{flex-shrink:0}.opponent-availability{padding:14px;background:#f5eee2;border:1px solid #e3d7c4;border-radius:6px;margin:16px 0}.opponent-availability h3{font:600 20px var(--display);margin:0}.opponent-availability p{margin:8px 0 0}.game-injuries{margin:0 22px 22px;padding-top:18px;border-top:1px solid var(--line)}.game-injuries li{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.65;overflow-wrap:anywhere}.game-injuries li span{display:block;color:var(--muted);font-size:16px}.game-injuries li>b{color:#875127;text-align:right}@media(max-width:760px){.team-availability{padding:16px;flex-direction:column}.game-injuries{margin-left:14px;margin-right:14px}.game-injuries li{flex-direction:column;gap:3px}.game-injuries li>b{text-align:left}.condition-tag{font-size:16px}}

.depth-row .availability-note{color:#875127;line-height:1.5;overflow-wrap:anywhere}
