
:root{
  --green:#173f2d;--green2:#285c43;--green3:#eef2e9;--brick:#8e3f2e;--brick2:#b26c52;
  --cream:#f7f1df;--paper:#fbf8ef;--ink:#202621;--muted:#6e746c;--line:#b8b7a8;--red:#b62f29;
  --gold:#d4bb75;--shadow:0 5px 18px rgba(34,45,38,.12);--cell:54px;--row:64px;
}
*{box-sizing:border-box}
html,body{margin:0;max-width:100%;overflow-x:hidden;background:#e8e7df;color:var(--ink);font-family:"Liberation Sans",Arial,Helvetica,sans-serif}
body{overscroll-behavior-x:none;touch-action:pan-y pinch-zoom}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.app{width:100%;max-width:1480px;margin:0 auto;background:var(--paper);min-height:100vh;overflow:hidden}
.app-header{position:relative;background:linear-gradient(135deg,#143d2b,#1d5038 55%,#133726);color:#fff;padding:10px 14px 0;box-shadow:var(--shadow);overflow:hidden}
.app-header:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.5px),radial-gradient(circle at 75% 60%,#fff 0 1px,transparent 1.5px);background-size:26px 26px,33px 33px}
.header-row{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:78px}
.brand{text-align:center;line-height:1.05;flex:1}
.brand-kicker{font-size:11px;letter-spacing:.22em;color:#e9dfbd;font-weight:800}
.brand-title{font-size:25px;font-weight:900;letter-spacing:.08em;text-shadow:0 1px 0 rgba(0,0,0,.25)}
.brand-title input{width:56px;border:0;border-bottom:1px solid rgba(255,255,255,.7);background:transparent;color:#fff;text-align:center;font-weight:900;padding:0 2px}
.brand-sub{font-size:9px;letter-spacing:.18em;color:#ddd3b5;margin-top:5px}
.header-actions{display:flex;gap:6px;align-items:center}
.icon-btn,.compact-btn{border:1px solid rgba(255,255,255,.32);background:rgba(255,255,255,.08);color:inherit;border-radius:9px;min-height:34px;padding:6px 10px;font-weight:800}
.icon-btn{width:38px;padding:5px}
.brick-strip{position:relative;z-index:3;height:13px;margin:0 -14px;background-color:var(--brick);background-image:linear-gradient(90deg,rgba(255,255,255,.26) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px);background-size:38px 13px,38px 7px;border-top:1px solid rgba(255,255,255,.35);box-shadow:inset 0 2px rgba(0,0,0,.15)}
.ivy{position:absolute;z-index:1;top:-6px;width:190px;height:86px;opacity:.9;filter:drop-shadow(0 3px 2px rgba(0,0,0,.25))}
.ivy-left{left:-20px;background:radial-gradient(ellipse at 18% 25%,#39794a 0 8%,transparent 9%),radial-gradient(ellipse at 45% 17%,#286a3b 0 10%,transparent 11%),radial-gradient(ellipse at 72% 31%,#438552 0 9%,transparent 10%),radial-gradient(ellipse at 92% 12%,#2d743e 0 8%,transparent 9%)}
.ivy-right{right:-20px;transform:scaleX(-1);background:radial-gradient(ellipse at 18% 25%,#39794a 0 8%,transparent 9%),radial-gradient(ellipse at 45% 17%,#286a3b 0 10%,transparent 11%),radial-gradient(ellipse at 72% 31%,#438552 0 9%,transparent 10%),radial-gradient(ellipse at 92% 12%,#2d743e 0 8%,transparent 9%)}
.tabs{display:flex;background:#f4efe2;border-bottom:1px solid #c7c3b8;position:sticky;top:0;z-index:20;height:35px}
.tab{flex:0 1 130px;border:0;background:transparent;color:#5a5b55;font-weight:900;font-size:12px;padding:0 14px;position:relative}
.tab.active{color:var(--green)}
.tab.active:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:var(--brick)}
.count-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;border-radius:10px;background:#e6e2d7;font-size:10px;margin-left:4px}
main{padding:8px}
.tab-panel{display:none}.tab-panel.active{display:block}
.card{background:var(--paper);border:1px solid #c6c2b6;border-radius:8px;box-shadow:0 2px 8px rgba(50,50,40,.06);overflow:hidden}
.game-meta{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:8px;padding:8px 10px;margin-bottom:7px}
label{display:flex;flex-direction:column;gap:4px;color:#5b6059;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
input,select,textarea{border:1px solid #c8c4b7;border-radius:6px;background:#fffdf8;color:var(--ink);padding:8px 9px;min-height:34px;font-size:13px;text-transform:none;letter-spacing:0}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(23,63,45,.2);border-color:var(--green)}
.line-score-layout{display:grid;grid-template-columns:minmax(820px,1fr) 220px;margin-bottom:8px}
.scroll-x{overflow-x:auto;overflow-y:hidden;max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.line-score-table{border-collapse:collapse;width:100%;min-width:820px;table-layout:fixed}
.line-score-table th,.line-score-table td{border:1px solid #adb2a5;text-align:center;height:38px;font-size:12px}
.line-score-table thead th{background:var(--green);color:#fff;font-size:10px}
.line-team-cell{width:250px;text-align:left!important;padding:3px 6px!important}
.team-select-wrap{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:6px}
.team-select-wrap img{width:32px;height:32px;object-fit:contain}
.team-select-wrap select{width:100%;min-height:30px;padding:4px 25px 4px 6px;font-weight:800}
.game-notes{border-left:1px solid #b9b3a7;display:flex;flex-direction:column}
.section-red-title{background:var(--red);color:#fff;font-weight:900;font-size:11px;padding:10px;text-align:center}
.game-notes textarea{border:0;border-radius:0;min-height:115px;resize:vertical;background:#fffaf0}
.team-block{margin-bottom:9px}
.team-title-row{height:42px;background:linear-gradient(90deg,var(--green),#214d38);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 9px}
.team-title-left{display:flex;align-items:center;gap:8px;font-weight:900;font-size:15px}
.team-logo{width:30px;height:30px;object-fit:contain;background:#fff;border-radius:6px;padding:2px}
.hide-team-btn{color:#fff;border-color:rgba(255,255,255,.28)}
.team-block.collapsed .team-scroll,.team-block.collapsed .pitch-standings-wrap{display:none}
.score-grid{border-collapse:collapse;min-width:1150px;width:100%;table-layout:fixed}
.score-grid th,.score-grid td{border:1px solid #c3c1b6}
.score-grid thead th{height:27px;background:#e9eddf;color:#39453d;font-size:9px;text-transform:uppercase}
.score-grid th.ord{width:34px}.score-grid th.player{width:245px}.score-grid th.pos{width:52px}
.score-grid th.inning{width:var(--cell)}.score-grid th.stat{width:54px}
.score-grid tbody tr{height:var(--row)}
.score-grid tbody td{height:var(--row);background:#fffdf8;text-align:center;position:relative}
.order-cell{font-size:18px;font-weight:900}
.player-cell{padding:3px 5px;cursor:pointer;overflow:hidden}
.player-main{font-weight:900;font-size:12px;line-height:1.05;text-align:center}
.player-subs{font-weight:800;font-size:9px;color:#6f726d;line-height:1.05;margin-top:3px;text-align:center}
.player-cell.subs-2 .player-main{font-size:11px}.player-cell.subs-3 .player-main{font-size:10px}.player-cell.subs-3 .player-subs{font-size:8px}
.pos-cell{font-weight:900;font-size:12px;cursor:pointer}
.play-cell{padding:0!important;cursor:pointer;overflow:hidden}
.play-entry{position:absolute;inset:0;display:grid;place-items:center}
.play-entry svg{position:absolute;inset:3px;width:calc(100% - 6px);height:calc(100% - 6px)}
.play-code{position:absolute;right:4px;bottom:3px;font-size:12px;font-weight:950;z-index:2;line-height:1}
.play-code.medium{font-size:10px}.play-code.small{font-size:8px}
.play-entry.out .play-code,.standalone-out{color:var(--red)}
.standalone-out{font-size:22px;font-weight:950;line-height:1}
.rbi-code{position:absolute;right:3px;top:3px;font-size:8px;font-weight:950;z-index:2}
.pa-count{position:absolute;left:2px;top:2px;font-size:7px;color:#6c6e68;font-weight:900;z-index:2}
.event-marker{position:absolute;left:0;right:0;bottom:0;height:11px;background:#111;color:#fff;font-size:8px;display:grid;place-items:center;font-weight:950;letter-spacing:.08em;z-index:4}
.play-cell.third-out{box-shadow:inset 0 -4px 0 var(--red)}
.pitch-standings-wrap{display:grid;grid-template-columns:minmax(520px,1.25fr) minmax(390px,.75fr);border-top:1px solid #b9b7ac}
.pitch-mini{min-width:520px;overflow-x:auto}
.pitch-table{border-collapse:collapse;width:100%;table-layout:fixed}
.pitch-table th,.pitch-table td{border:1px solid #c5c3b8;height:32px;text-align:center;font-size:10px}
.pitch-table th{background:#e7ebdf;font-size:9px;text-transform:uppercase}
.pitch-table .pitch-name{width:260px;text-align:left;padding-left:8px}
.pitch-input{width:100%;height:30px;border:0;border-radius:0;background:transparent;padding:4px 5px;font-size:11px;text-align:center}
.pitch-name .pitch-input{text-align:left}
.standings-card{border-left:1px solid #bbb7a8;min-height:176px}
.standings-head{height:32px;background:var(--red);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 8px;font-weight:900;font-size:10px}
.refresh-btn{border:1px solid rgba(255,255,255,.7);color:#fff;background:transparent;border-radius:6px;padding:2px 7px;font-weight:900}
.standings-table{width:100%;border-collapse:collapse}
.standings-table th,.standings-table td{font-size:9px;border:1px solid #d0cdc2;height:24px;text-align:center}
.standings-table th:first-child,.standings-table td:first-child{text-align:left;padding-left:6px}
.standings-selected{background:#eef1d9!important;color:#1f2a22!important;font-weight:950;border-left:4px solid #b5963b}
.standings-foot{font-size:8px;color:#76756e;text-align:center;padding:5px}
.panel-title-row{display:flex;justify-content:space-between;align-items:center;padding:12px 8px}
.panel-title-row h2{margin:0}.panel-title-row p{margin:3px 0 0;color:var(--muted);font-size:12px}
.history-list{display:grid;gap:8px}
.history-card{border:1px solid #c7c3b8;background:#fff;border-radius:9px;padding:10px;display:grid;grid-template-columns:1fr auto;gap:8px}
.history-score{font-size:22px;font-weight:950;color:var(--green)}
.history-actions{display:flex;gap:5px}
.primary-btn{background:var(--green);color:#fff;border:0;border-radius:8px;padding:9px 15px;font-weight:950}
.danger-outline{border-color:#b95a54!important;color:#a73a34!important;background:#fff!important}
.drawer,.modal{position:fixed;inset:0;background:rgba(10,20,14,.48);z-index:100;display:grid;place-items:center;padding:14px}
.hidden{display:none!important}
.drawer-card{width:min(380px,94vw);background:#fff;border-radius:14px;padding:10px;display:grid;gap:7px}
.drawer-card button,.import-label{border:1px solid #c4c0b5;background:#fff;border-radius:8px;padding:11px;font-weight:850;text-align:center}
.import-label input{display:none}
.modal-card{width:min(720px,96vw);max-height:90vh;overflow:auto;background:#f9f5e8;border-radius:16px;border:1px solid #b9b3a7;box-shadow:0 12px 40px rgba(0,0,0,.25);padding:12px}
.modal-head{display:flex;justify-content:space-between;gap:8px;align-items:center;border-bottom:1px solid #c8c4b8;padding-bottom:8px}
.modal-head strong{font-size:16px}.modal-head span{display:block;color:#74776f;font-size:10px;margin-top:2px}
.close-x{border:0;background:transparent;font-size:24px}
.situation-row{display:flex;justify-content:space-between;gap:8px;background:var(--green);color:#fff;border-radius:8px;padding:9px;margin-top:9px;font-weight:900;font-size:11px}
.editor-label{font-size:9px;font-weight:900;color:#676a64;margin:10px 0 5px}
.quick-plays{display:flex;gap:5px;flex-wrap:wrap}
.quick-plays button{min-width:54px;border:1px solid #c1bdb1;background:#fff;border-radius:7px;padding:7px;font-weight:950}
.quick-plays button.out{color:var(--red)}
.editor-grid{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));gap:8px;margin-top:10px}
.check-row{flex-direction:row;align-items:center;gap:7px;background:#fff;border:1px solid #c6c1b5;border-radius:7px;padding:8px;min-height:54px}
.check-row input{width:18px;min-height:18px}
.editor-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:10px;flex-wrap:wrap}
.player-fields{display:grid;grid-template-columns:2fr .7fr 1fr;gap:8px;margin-top:10px}
.subs-title-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0 7px}
.sub-row{display:grid;grid-template-columns:.8fr 2fr .6fr .9fr .7fr 34px;gap:6px;margin-bottom:6px;align-items:end}
.sub-row button{height:34px;border:1px solid #d1a4a1;background:#fff;color:#a83a34;border-radius:7px}
.summary-shell{display:grid;gap:9px}
.summary-final{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;padding:14px}
.summary-team{display:flex;align-items:center;gap:8px;font-weight:950}.summary-team.right{justify-content:flex-end;text-align:right}
.summary-team img{width:46px;height:46px;object-fit:contain}
.summary-score{font-size:28px;font-weight:950}.summary-score span{color:var(--green);margin:0 8px}
.summary-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.summary-card{border:1px solid #c6c2b7;background:#fff;border-radius:8px;overflow:hidden}
.summary-card h3{margin:0;background:#ebe8de;padding:8px 10px;font-size:11px;text-transform:uppercase}
.summary-card .body{padding:9px;font-size:11px}
.summary-table{width:100%;border-collapse:collapse}.summary-table th,.summary-table td{border-bottom:1px solid #e3e0d7;padding:5px;font-size:10px;text-align:center}.summary-table th:first-child,.summary-table td:first-child{text-align:left}
.focus-mode .game-meta,.focus-mode .line-score-layout,.focus-mode .pitch-standings-wrap{display:none}
.focus-mode .tabs{position:static}
.focus-banner{display:none;background:var(--green);color:#fff;padding:7px;text-align:center;font-size:11px;font-weight:900}
.focus-mode .focus-banner{display:block}
body.dark{--paper:#202621;--cream:#262f29;--ink:#f3f1e8;--muted:#b8beb7;--line:#596159;--green3:#334038;background:#141916}
body.dark .card,body.dark .score-grid tbody td,body.dark .history-card,body.dark .summary-card,body.dark input,body.dark select,body.dark textarea,body.dark .modal-card,body.dark .drawer-card,body.dark .quick-plays button{background:#222a25;color:#f3f1e8;border-color:#596159}
body.dark .game-notes textarea{background:#222a25}
body.dark .score-grid thead th,body.dark .pitch-table th,body.dark .summary-card h3{background:#303a33;color:#f5f1df}
body.dark .tabs{background:#1c241f;border-color:#4c554d}
body.dark .tab{color:#c7cdc7}body.dark .tab.active{color:#fff1c9}
body.dark .player-subs,body.dark .standings-foot{color:#bac0b8}
body.dark .standings-table td,body.dark .standings-table th{border-color:#555f57}
body.dark .standings-selected{background:#dfe9b8!important;color:#172018!important}
body.classic{--green:#273f53;--green2:#38566e;--brick:#9a4b43;--paper:#fbfaf6;--cream:#f2f1eb;--gold:#d2c8ad}
body.classic .ivy{display:none}
body.classic .brick-strip{background:#dfe3e6}
body.classic .app-header{background:linear-gradient(135deg,#263d52,#344e65)}
@media(max-width:780px){
  .header-row{min-height:70px}.brand-title{font-size:19px}.brand-sub{display:none}
  .header-actions .compact-btn{font-size:10px;padding:5px 7px}.header-actions .icon-btn:nth-of-type(2),.header-actions .icon-btn:nth-of-type(3){display:none}
  .game-meta{grid-template-columns:1fr 1fr}.line-score-layout{grid-template-columns:1fr}.game-notes{border-left:0;border-top:1px solid #bbb7ad}
  .game-notes textarea{min-height:70px}.pitch-standings-wrap{grid-template-columns:1fr}.standings-card{border-left:0;border-top:1px solid #b9b7ac}
  .summary-grid-2{grid-template-columns:1fr}.player-fields{grid-template-columns:1fr 90px 110px}.sub-row{grid-template-columns:90px 1fr 70px 80px 70px 32px}
  .editor-grid{grid-template-columns:1fr 1fr}.modal-card{width:97vw}
}
@media(max-width:480px){
  main{padding:5px}.game-meta{grid-template-columns:1fr 1fr;gap:5px}.theme-label{display:none}
  .tab{font-size:10px;padding:0 7px}.brand-kicker{font-size:9px}.brand-title{font-size:17px}
  .header-actions{gap:3px}.icon-btn{width:32px}.header-actions .icon-btn:nth-last-child(2){display:none}
  .editor-grid{grid-template-columns:1fr 1fr}.situation-row{font-size:9px}.player-fields{grid-template-columns:1fr 70px 95px}
}
@media print{
  .app-header,.tabs,.header-actions,.hide-team-btn,.refresh-btn,.drawer,.modal,.editor-actions{display:none!important}
  body{background:#fff}.app{max-width:none}.card{box-shadow:none}.scroll-x{overflow:visible}.score-grid,.line-score-table{min-width:0}
}

/* v5 mobile split: pitching scrolls independently; standings always fits entirely */
@media (max-width: 780px){
  .pitch-standings-wrap{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
  }
  .pitch-mini{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
  }
  .pitch-mini .pitch-table{
    width:620px !important;
    min-width:620px !important;
    max-width:none !important;
    table-layout:fixed !important;
  }
  .standings-card{
    display:block !important;
    box-sizing:border-box !important;
    width:calc(100% - 20px) !important;
    max-width:360px !important;
    min-width:0 !important;
    margin:8px auto 0 !important;
    border-left:1px solid #bbb7a8 !important;
    border-top:1px solid #bbb7a8 !important;
    overflow:hidden !important;
  }
  .standings-head{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    height:28px !important;
    padding:0 6px !important;
    font-size:8px !important;
  }
  .refresh-btn{
    padding:1px 5px !important;
    font-size:9px !important;
    min-width:26px !important;
  }
  .standings-table{
    box-sizing:border-box !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
  }
  .standings-table th,
  .standings-table td{
    box-sizing:border-box !important;
    height:22px !important;
    padding:1px 2px !important;
    font-size:7px !important;
    line-height:1.05 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  .standings-table th:nth-child(1),.standings-table td:nth-child(1){width:58% !important;text-align:left !important;padding-left:5px !important}
  .standings-table th:nth-child(2),.standings-table td:nth-child(2){width:10% !important}
  .standings-table th:nth-child(3),.standings-table td:nth-child(3){width:10% !important}
  .standings-table th:nth-child(4),.standings-table td:nth-child(4){width:13% !important}
  .standings-table th:nth-child(5),.standings-table td:nth-child(5){width:9% !important}
  .standings-foot{
    width:100% !important;
    padding:3px 2px !important;
    font-size:6.5px !important;
    line-height:1.15 !important;
    white-space:normal !important;
  }
}

@media (max-width: 390px){
  .standings-card{width:calc(100% - 16px) !important;max-width:344px !important}
  .standings-table th,.standings-table td{font-size:6.5px !important}
}
