:root{--green:#104b37;--deep:#0b3728;--sage:#dfe9d9;--gold:#d8a64b;--paper:#fbfaf6;--ink:#152e24;--border:#d4e0d7}*{box-sizing:border-box}body{font:16px/1.45 system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:linear-gradient(135deg,#eef2e6,var(--paper));color:var(--ink);margin:0}button,input,select{font:inherit}button,a.btn{cursor:pointer;border-radius:13px;border:0;padding:13px 18px;font-weight:750;text-align:center;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:4px solid var(--gold);outline-offset:3px}.primary{background:var(--green);color:white}.primary:hover{background:#17664b}.muted{background:#e9eee7;color:var(--green)}.warn{background:#fff0eb;color:#9b2b1c}.gold{background:#e5b75d;color:#2f250f}.wrap{max-width:1400px;margin:auto;padding:18px}.top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}.brand{color:var(--green);display:flex;align-items:center;gap:12px}.mark{font-size:36px;color:#b58729}.brand b{font-size:clamp(20px,3vw,32px);font-family:Georgia,serif;letter-spacing:.07em}.brand small{display:block;letter-spacing:.2em;font-size:10px}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.layout{display:grid;grid-template-columns:minmax(300px,390px) 1fr;gap:18px;align-items:start}.stack{display:grid;gap:16px}.panel{background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 8px 25px #102f2012;padding:20px}.panel h2{margin:0 0 12px;font-size:21px}.panel h3{margin:10px 0}.help{color:#52665a;font-size:14px}.big-btn{width:100%;font-size:23px;min-height:75px;margin:8px 0}.control-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{display:flex;justify-content:space-between;gap:10px;font-size:17px;padding:9px 0;border-bottom:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field{display:flex;flex-direction:column;gap:5px;font-weight:650}.field input,.field select{width:100%;border:1px solid #a7bdae;border-radius:10px;padding:12px;background:#fff;min-height:48px}.full{grid-column:1/-1}.panel button:disabled{opacity:.4;cursor:not-allowed}.ball{width:min(70vw,240px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 27% 23%,#fff7d7,#e7b750 49%,#ab7629 90%);box-shadow:inset -12px -15px 20px #5f471c30,0 8px 22px #0002;border:8px solid white;display:grid;place-content:center;text-align:center;margin:12px auto}.ball .letter{font-size:40px;line-height:1;color:#523a15;font-weight:800}.ball .value{font-size:96px;line-height:1.1;font-weight:900;color:#183c2d}.pills{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid #bdccbf;background:#eef4e9;border-radius:100px;padding:7px 12px;font-weight:700}.board{display:grid;grid-template-columns:repeat(15,1fr);gap:5px}.number{aspect-ratio:1;display:grid;place-items:center;background:#eff2eb;border-radius:7px;font-weight:750;font-size:clamp(12px,1.7vw,20px);border:1px solid #d5ded3}.number.playable{background:#d5e6d7;border-color:#81a891}.number.called{background:#18583d;color:white;border-color:#18583d}.number.last{background:#e9b95d;color:#312205;box-shadow:0 0 0 3px #c59337}.subhead{font-weight:750;color:var(--green);margin:0 0 10px}.winner{padding:12px;background:#fff4d9;border:2px solid #e1bd76;border-radius:12px;margin:8px 0;font-weight:700}.match{padding:9px 12px;border-radius:10px;background:#eef3ed;margin:6px 0;display:flex;justify-content:space-between;gap:12px}.match strong{color:var(--green)}.scroll-list{max-height:250px;overflow:auto}.info{padding:12px;border-radius:10px;background:#edf4eb;color:#234d37;margin:12px 0}.footer{margin:25px 0;text-align:center;font-style:italic;color:#38614b}.tv-shell{min-height:100vh;background:#f9f8f1;color:var(--deep);padding:clamp(16px,3vw,45px)}.tv-head{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--gold);gap:20px;padding-bottom:12px}.tv-head .brand b{font-size:clamp(30px,4vw,70px)}.tv-head .tv-count{font-size:clamp(19px,2.3vw,32px);font-weight:800}.tv-grid{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:clamp(12px,2vw,32px);margin-top:25px;align-items:start}.tv-card{background:white;padding:clamp(14px,2vw,28px);border-radius:20px;border:2px solid #d9e1d7;min-height:230px}.tv-card h2{font-size:clamp(20px,2.3vw,34px);margin:0 0 12px}.tv-shell .ball{width:min(20vw,360px)}.tv-shell .ball .letter{font-size:clamp(35px,5vw,68px)}.tv-shell .ball .value{font-size:clamp(85px,10vw,155px)}.tv-shell .board{margin-top:25px;gap:7px}.tv-shell .number{font-size:clamp(14px,2vw,28px)}.tv-shell .winner{font-size:clamp(17px,2vw,28px)}.tv-shell .match{font-size:clamp(16px,1.5vw,25px)}.title-line{font-family:Georgia,serif;color:var(--green);font-size:27px;margin:0 0 12px}.card-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.card-tools>*{min-width:0}.cards-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:15px;margin-top:18px}.paper-card{background:white;border:3px solid var(--green);border-radius:14px;padding:16px;break-inside:avoid}.paper-head{text-align:center}.paper-head .id{font-weight:800;color:var(--green);font-size:20px}.paper-head .card-heading{font-size:27px;font-family:Georgia,serif;font-weight:900;color:var(--green);margin:5px}.paper-head .print-title{font-weight:700;margin:0 0 10px}.bingo-grid{display:grid;grid-template-columns:repeat(5,1fr);border:2px solid var(--green)}.bingo-grid div{border:1px solid #245a42;min-height:60px;display:grid;place-items:center;font-weight:850;font-size:27px;background:white}.bingo-grid .heading{background:#577e62;color:#fff;font-size:35px}.bingo-grid .free{background:#dce7dc;color:var(--green);font-size:12px}.bingo-grid .hit{background:#f9e4ae}.paper-card .name{text-align:center;margin-top:13px;min-height:25px;font-weight:650}.card-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.card-actions button{padding:9px 12px}.paper-foot{text-align:center;color:var(--green);font-style:italic;margin-top:15px}.print-only{display:none}.notice{background:#fff5d8;border-radius:12px;padding:12px;margin-bottom:15px}.hidden{display:none!important}@media(max-width:920px){.layout,.tv-grid{grid-template-columns:1fr}.board{grid-template-columns:repeat(10,1fr)}.tv-shell .board{grid-template-columns:repeat(15,1fr)}.tv-shell .ball{width:220px}.card-tools{grid-template-columns:1fr}.wrap{padding:12px}}@media(max-width:650px){.top{display:block}.toolbar{margin-top:12px}.toolbar a{flex:1}.board{grid-template-columns:repeat(10,1fr)}.form-grid{grid-template-columns:1fr}.tv-shell .board{grid-template-columns:repeat(10,1fr)}.tv-head{flex-wrap:wrap}.tv-shell .ball{width:190px}}@page{size:A4 portrait;margin:9mm}@media print{body{background:white!important}.no-print,.top,.card-tools,.footer,.notice,.card-actions{display:none!important}.print-only{display:block}.wrap{padding:0;max-width:none}.cards-list{display:block;margin:0}.paper-card{border:3px solid var(--green);border-radius:12px;width:190mm;height:274mm;padding:9mm;page-break-after:always;break-after:page;display:flex;flex-direction:column;justify-content:center;margin:0 auto}.paper-card:last-child{page-break-after:auto;break-after:auto}.paper-head .id{font-size:25px}.paper-head .card-heading{font-size:44px}.paper-head .print-title{font-size:23px;margin-bottom:15mm}.bingo-grid div{height:35mm;font-size:37px}.bingo-grid .heading{height:23mm;font-size:50px}.bingo-grid .free{font-size:20px}.paper-card .name{font-size:20px;margin-top:15mm}.paper-foot{font-size:23px}}
