:root{--ink:#242644;--muted:#85899e;--purple:#7958e9;--purple-dark:#6343d4;--mint:#21c7b8;--pink:#f480a9;--gold:#ffd360;--paper:#f7f8fc;--panel:#fff;--line:#eaeaf2;--shadow:0 10px 30px rgba(40,37,98,.055);font-family:ui-rounded,'Nunito','Avenir Next','Segoe UI',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #b0a0ff;outline-offset:2px}h1,h2,h3,p{margin:0}h1{font-size:clamp(18px,2vw,24px);font-weight:950;letter-spacing:-.6px}h2{font-size:15px;letter-spacing:-.2px;font-weight:900}.app-shell{height:100vh;height:100dvh;max-width:2000px;margin:auto;display:grid;grid-template-rows:64px minmax(0,1fr);overflow:hidden;padding:0 17px 14px}.topbar{display:flex;align-items:center;gap:13px;min-height:0}.brand{display:flex;align-items:center;gap:9px;color:var(--ink);text-decoration:none;flex:none}.brand-logo{width:43px;height:43px;border-radius:14px;background:var(--purple);color:#fff;font-weight:1000;font-size:27px;display:grid;place-items:center;position:relative;box-shadow:0 5px 12px #7958e92e}.brand-logo span{position:absolute;bottom:0;right:-4px;background:var(--gold);font-size:10px;color:#74531a;border-radius:50%;width:18px;height:18px;display:grid;place-items:center}.brand strong{display:block;letter-spacing:1.5px;font-weight:1000;font-size:13px}.brand small{font-weight:900;letter-spacing:1.5px;color:var(--purple);font-size:12px}.header-info{display:flex;align-items:center;gap:15px;margin-left:auto}.saved-dot{color:#439b8c;font-size:11px}.version,.help-link{font-size:11px;color:var(--muted)}.version{border:1px solid var(--line);padding:6px 9px;border-radius:9px}.help-link{background:none;border:0;text-decoration:underline}.mobile-menu{display:none!important}.body-shell{min-height:0;min-width:0;display:grid;grid-template-columns:205px minmax(0,1fr);gap:14px}.sidebar{min-height:0;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:19px;padding:13px 10px;display:flex;flex-direction:column;gap:6px}.side-head{padding:5px 8px 12px;display:flex;align-items:center;justify-content:space-between;letter-spacing:2px;font-size:10px;color:var(--muted)}.collapse-nav{border:0;background:#f1effc;color:var(--purple);width:27px;height:27px;border-radius:8px;font-size:17px;font-weight:900}.step{width:100%;display:flex;align-items:center;gap:11px;border:0;border-radius:12px;background:transparent;color:#6f7090;padding:10px 10px;min-height:51px;text-align:left;font-weight:850}.step:hover{background:#f7f4ff;color:var(--purple)}.step.active{background:var(--purple);color:#fff;box-shadow:0 5px 12px #7958e91c}.step.done:not(.active){color:#278f82}.step-icon{font-size:22px;width:27px;text-align:center;flex:none;line-height:1}.step-label{flex:1}.step-num{font-size:10px;opacity:.65}.side-spacer{flex:1}.sidebar-bottom{font-size:11px;color:var(--muted);padding:12px 9px 6px;line-height:1.6}.sidebar-bottom span{color:#9fa1b3}.app-shell.nav-collapsed .body-shell{grid-template-columns:65px minmax(0,1fr)}.nav-collapsed .sidebar{padding:12px 6px}.nav-collapsed .side-head strong,.nav-collapsed .step-label,.nav-collapsed .step-num,.nav-collapsed .sidebar-bottom{display:none}.nav-collapsed .side-head{justify-content:center;padding:5px 0 10px}.nav-collapsed .collapse-nav{transform:rotate(180deg)}.nav-collapsed .step{justify-content:center;padding:8px}.work-area{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 66px;gap:9px}#view{min-width:0;min-height:0;display:flex;flex-direction:column;gap:12px;overflow:hidden}.workspace-head{min-height:51px;display:flex;justify-content:space-between;align-items:center;gap:10px}.workspace-head>div:first-child{display:flex;flex-direction:column;gap:2px}.kicker{font-size:10px;font-weight:950;color:var(--purple);letter-spacing:1.3px}.top-actions,.footer-actions{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;min-height:38px;white-space:nowrap;border-radius:10px;padding:8px 13px;border:1px solid transparent;font-size:12px;font-weight:850;line-height:1.1;transition:filter .12s}.btn:hover:not(:disabled){filter:brightness(.96)}.btn.primary{background:var(--purple);color:white;box-shadow:0 4px 0 #5938ba,0 6px 12px #7958e927}.btn.primary:active{box-shadow:none;transform:translateY(3px)}.btn.soft{background:#f1effc;color:#6249ba;border-color:#ece7ff}.btn.outline{background:#fff;color:var(--purple);border-color:#ded9f6}.btn.danger{background:#fff4f6;color:#c84e74;border-color:#ffd8e2}.btn.large{min-height:50px;font-size:15px}.btn.block{width:100%}.btn.icon{border:1px solid var(--line);padding:8px}.panel{border:1px solid #ecebf4;background:var(--panel);border-radius:20px;box-shadow:var(--shadow);padding:16px;min-width:0;min-height:0;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.pill{font-size:10px;font-weight:900;padding:6px 10px;background:#f1edff;color:var(--purple);border-radius:99px;white-space:nowrap}.pill.light,.pill.pale{background:#f1f9f9;color:#278f82}.field{display:flex;flex-direction:column;gap:6px;min-width:0;color:#5b607a;font-size:11px;font-weight:850}.field>input,.field>select,select,input[type='text'],input[type='number']{width:100%;height:41px;border:1px solid #dedeee;border-radius:10px;padding:8px 12px;background:#fff;color:var(--ink);font-size:13px}.checkline{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:12px;font-weight:800;color:#5b607a}.checkline input{width:17px;height:17px;accent-color:var(--purple)}.layout-pane{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:12px}.layout-primary{display:flex;flex-direction:column;gap:16px}.layout-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.layout-choice{border:2px solid #edebf7;background:#fcfbff;border-radius:17px;padding:13px 8px;display:flex;align-items:center;flex-direction:column;gap:8px;color:var(--ink);min-height:135px;transition:border-color .12s,background .12s}.layout-choice:hover{border-color:#b5a7f6}.layout-choice.picked{border-color:var(--purple);background:#f5f1ff;box-shadow:0 3px 13px #7958e916}.layout-choice strong{font-size:16px}.layout-choice small{font-size:11px;color:var(--muted)}.layout-pattern{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px;width:65px;height:65px}.layout-pattern i{background:#ddd5ff;border-radius:2px}.layout-pattern i.highlight{background:#9ce8dc}.layout-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:end}.layout-fields .field:first-child{grid-column:1 / -1}.layout-preview,.card-preview-panel{display:flex;flex-direction:column;gap:10px}.card-stage{flex:1;min-height:0;min-width:0;display:grid;place-items:center;overflow:hidden}.subtle-caption{font-size:11px;color:var(--muted);text-align:center;flex:none}.card-preview{--side:clamp(140px,min(calc(100dvh - 330px), 40vw),540px);width:min(100%,var(--side));max-height:100%;aspect-ratio:1/1.16;border-radius:16px;background:#fff;box-shadow:0 10px 30px #3d377824;border:1px solid #e5e1f0;padding:12px;display:flex;flex-direction:column;gap:8px;color:#242644;overflow:hidden}.card-heading{text-align:center;display:grid;grid-template-columns:1fr auto;align-content:center;align-items:center;gap:0 5px;flex:none;min-height:62px}.card-brand{grid-column:1/3;font-size:9px;font-weight:950;letter-spacing:2.3px;color:var(--purple)}.card-heading strong{grid-column:1/3;font-size:clamp(16px,2.2vw,26px);line-height:1.1;font-weight:1000;color:#3a286e;letter-spacing:1.5px}.card-subtitle{grid-column:1;font-size:11px;text-align:left;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;color:#75718d}.card-id{grid-column:2;color:#8a80bb;font-size:11px;font-weight:900}.bingo-grid{width:100%;aspect-ratio:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;background:#e1deef;padding:3px;border-radius:7px;min-height:0;flex:0 1 auto}.bingo-grid.n-3{grid-template-columns:repeat(3,minmax(0,1fr))}.bingo-grid.n-4{grid-template-columns:repeat(4,minmax(0,1fr))}.bingo-grid.n-5{grid-template-columns:repeat(5,minmax(0,1fr))}.bingo-cell{min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:3px 2px;overflow:hidden;background:#f7f5ff;border-radius:2px;color:#343057;font-size:clamp(7px,.83vw,11px);font-weight:750;line-height:1.13;overflow-wrap:anywhere}.bingo-cell.free{background:#bcefe3;color:#106b62;font-weight:1000}.bingo-cell.matched{background:#bcf1de;outline:2px solid #2abf9e;outline-offset:-2px}.bingo-cell.unmarked{background:#ffe7bb;outline:2px solid #f2b64d;outline-offset:-2px}.card-preview.verified{width:min(100%,300px)}.card-preview.verified .card-heading{min-height:50px}.card-preview.verified .bingo-cell{font-size:9px}.question-panel{flex:1;display:flex;flex-direction:column;gap:10px;padding:12px}.question-toolbar{display:flex;gap:7px;align-items:end;flex-wrap:wrap;flex:none}.question-toolbar .btn{min-height:38px;padding:7px 10px}.pack-picker{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);font-weight:850}.pack-picker select{width:min(260px,29vw);min-height:38px;height:38px;font-size:12px}.toolbar-spacer{flex:1}.bank-health{flex:none;display:grid;grid-template-columns:auto minmax(65px,160px) minmax(80px,1fr);gap:11px;align-items:center;font-size:11px;color:var(--muted)}.meter-rail{height:8px;border-radius:9px;background:#eee9fa;overflow:hidden}.meter-rail>div{height:100%;border-radius:9px;background:var(--mint)}.validation{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.validation.valid{color:#138874}.validation.invalid{color:#cb6a4b}.bank-table-wrap{flex:1;min-height:0;overflow:auto;border:1px solid var(--line);border-radius:12px;scrollbar-width:thin}.bank-table{border-spacing:0;width:100%;table-layout:fixed;font-size:12px}.bank-table thead{position:sticky;top:0;z-index:1;background:#f3f0fe}.bank-table th{padding:10px 8px;color:#655a94;text-align:left;font-size:11px}.bank-table td{border-top:1px solid #eeeef5;padding:4px 6px;vertical-align:middle}.bank-table tr:nth-child(even){background:#fbfaff}.bank-table tr:hover td{background:#f8f6ff}.bank-table input{width:100%;min-width:0;height:33px;padding:7px 9px;border:1px solid transparent;background:transparent;border-radius:7px;text-overflow:ellipsis;font-size:12px}.bank-table input:focus{background:#fff;border-color:#bcb0f3;text-overflow:clip}.row-no{text-align:center;color:#9c9bae;font-size:10px}.remove-row{width:28px;height:28px;border:0;background:#fff0f4;color:#c75579;border-radius:8px;font-size:20px;line-height:1}.cards-pane{flex:1;min-height:0;display:grid;grid-template-columns:minmax(230px,.55fr) minmax(0,1fr);gap:12px}.card-controls{display:flex;flex-direction:column;gap:16px}.print-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.summary-box{background:#f7f5fe;padding:15px;border-radius:14px;display:flex;flex-direction:column;gap:6px;color:#837ca6;font-size:11px}.summary-box strong{font-size:18px;color:#43326e}.card-help,.warning-note{color:var(--muted);font-size:12px;line-height:1.5}.warning-note{color:#aa7542;background:#fff5dd;padding:10px;border-radius:10px}.preview-nav{display:flex;align-items:center;justify-content:center;gap:10px;flex:none}.call-panel{flex:1;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:12px;gap:8px}.game-screen{min-height:0;min-width:0;display:flex;flex-direction:column;justify-content:space-between;border-radius:18px;background:radial-gradient(ellipse at 50% 18%,#f5f0ff,#ece7ff 85%);border:1px solid #e6defe;padding:18px 22px;gap:8px}.caller-top,.game-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#8f81c4;font-size:12px;font-weight:800}.call-kicker{color:#7958e9;letter-spacing:2px;font-size:10px}.call-counter{font-size:12px;color:#8f81c4;margin-left:15px;letter-spacing:0;font-weight:850}.prompt-box{min-height:0;flex:1;display:grid;place-items:center;text-align:center;padding:12px;overflow:auto}.prompt{font-weight:1000;font-size:clamp(21px,3.5vw,49px);max-width:950px;overflow-wrap:anywhere;line-height:1.2}.prompt.empty{color:#9a8aba}.answer-wrap{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;text-align:center;color:#9b90b5;font-size:12px}.answer-wrap.shown{background:#dbf9f1;border-radius:13px;color:#117a6b;padding:8px}.answer-wrap strong{font-size:clamp(18px,2vw,30px)}.answer-wrap span{overflow-wrap:anywhere}.game-controls{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:10px}.game-controls .btn{min-width:0;font-size:13px;white-space:normal}.progress-track{height:7px}.progress-element{appearance:none;width:100%;height:100%;border:0;border-radius:9px;overflow:hidden;background:#e4dafd}.progress-element::-webkit-progress-bar{background:#e4dafd}.progress-element::-webkit-progress-value{background:var(--mint)}.progress-element::-moz-progress-bar{background:var(--mint)}.game-meta{font-size:10px}.call-settings{display:flex;flex-direction:column;gap:8px;min-height:0}.inline-settings{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inline-settings .field{width:170px}.inline-settings .field>select{height:36px}.inline-settings .btn{min-height:36px}.history-list{max-height:115px;overflow:auto;background:#faf8ff;border-radius:10px;padding:9px}.history-row{display:grid;grid-template-columns:25px 1fr 1fr;gap:10px;padding:5px 0;border-bottom:1px solid #e7e2f5;font-size:11px}.history-row b{color:var(--purple)}.history-row small{color:#278f82}.actionbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 15px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow);min-height:0}.footer-note{font-size:12px;color:var(--muted)}.footer-note.ready{color:#178a78}.footer-note.warn{color:#ba7852}.next-btn{min-width:205px;min-height:44px;font-size:13px}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;opacity:0}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#22184899;backdrop-filter:blur(4px);padding:14px}.modal{background:#fff;border-radius:22px;max-width:740px;width:min(100%,740px);max-height:92dvh;display:flex;flex-direction:column;padding:18px;overflow:auto;gap:12px;box-shadow:0 30px 90px #21173e55}.modal-heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.modal-heading h2{font-size:19px}.modal textarea{min-height:190px;width:100%;padding:12px;border:1px solid #d7d1eb;border-radius:12px;resize:vertical}.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}.winner-form{display:grid;grid-template-columns:minmax(0,1fr) 135px;align-items:end;gap:10px}.winner-preview{display:grid;place-items:center;max-height:440px;overflow:hidden}.winner-status{font-size:12px;padding:10px;border-radius:10px;text-align:center}.winner-status.success{background:#dffaf0;color:#148773}.winner-status.warning{background:#fff0d2;color:#96672b}.win-records{font-size:12px;color:#797591}.muted,.small{font-size:12px;color:var(--muted)}#toast{position:fixed;z-index:110;bottom:19px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;transition:.2s;background:#363053;color:#fff;border-radius:12px;padding:12px 20px;box-shadow:0 14px 40px #0003;font-size:12px;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#print-root{display:none}
@media(max-width:960px){.body-shell{grid-template-columns:66px minmax(0,1fr);gap:8px}.sidebar{padding:10px 6px}.side-head{justify-content:center;padding:4px 0}.side-head strong,.step-label,.step-num,.sidebar-bottom{display:none}.step{justify-content:center;padding:6px}.app-shell.nav-collapsed .body-shell{grid-template-columns:66px minmax(0,1fr)}.app-shell{padding:0 10px 10px}.question-toolbar{gap:5px}.bank-health{grid-template-columns:1fr 110px}.validation{grid-column:1/-1}.card-preview{--side:clamp(120px,min(calc(100dvh - 315px),42vw),500px)}}
@media(max-width:680px){.app-shell{grid-template-rows:56px minmax(0,1fr);padding:0 7px 7px}.topbar{gap:6px}.brand-logo{width:34px;height:34px;border-radius:11px;font-size:22px}.brand strong{font-size:10px}.brand small{font-size:10px}.saved-dot,.version{display:none}.mobile-menu{display:inline-flex!important}.body-shell,.app-shell.nav-collapsed .body-shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;z-index:40;top:55px;left:6px;width:205px;bottom:10px;box-shadow:0 24px 50px #3332;transform:translateX(-110%);transition:transform .2s}.app-shell.nav-open .sidebar{transform:translateX(0)}.sidebar .side-head strong,.sidebar .step-label,.sidebar .step-num,.sidebar .sidebar-bottom{display:initial}.sidebar .step{justify-content:flex-start}.sidebar .side-head{justify-content:space-between}.app-shell.nav-collapsed .sidebar{width:205px}.app-shell.nav-collapsed .sidebar .step-label,.app-shell.nav-collapsed .sidebar .step-num{display:initial}.app-shell.nav-collapsed .sidebar .step{justify-content:flex-start}.app-shell.nav-collapsed .sidebar .side-head strong{display:initial}.work-area{grid-template-rows:minmax(0,1fr) 59px;gap:6px}#view{gap:7px}.workspace-head{min-height:43px}.workspace-head h1{font-size:17px}.top-actions .btn{min-height:32px;padding:6px;font-size:10px}.actionbar{padding:7px;gap:6px;border-radius:12px}.footer-note{font-size:10px}.next-btn{min-width:138px;font-size:11px;min-height:39px}.layout-pane{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr)}.layout-preview{display:none}.panel{padding:11px;border-radius:15px}.layout-primary{gap:10px}.layout-choice{min-height:97px;padding:7px;gap:4px}.layout-pattern{height:39px;width:39px;gap:2px}.layout-choice strong{font-size:12px}.layout-choice small{font-size:9px}.layout-fields{gap:9px}.field>input,.field>select{height:37px;font-size:12px}.question-panel{padding:7px;gap:6px}.question-toolbar{flex-wrap:wrap;gap:4px}.question-toolbar .btn{min-height:30px;font-size:10px;padding:6px}.pack-picker{width:100%;gap:7px}.pack-picker select{flex:1;max-width:none;width:100%;height:31px;min-height:31px}.bank-health{font-size:9px;gap:5px;grid-template-columns:1fr 70px}.bank-table{min-width:510px}.bank-table input{font-size:11px;padding:5px}.bank-table th{font-size:10px}.cards-pane{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:6px}.card-controls{padding:8px 10px;gap:7px}.card-controls .panel-head{display:none}.card-controls .summary-box,.card-controls .card-help{display:none}.print-fields{grid-template-columns:1fr 1fr}.print-fields .field{gap:2px}.print-fields .field select{height:32px}.card-controls .btn.large{min-height:35px;font-size:11px}.card-preview-panel{padding:8px;gap:4px}.card-preview{--side:min(calc(100dvh - 345px),min(80vw,390px));padding:7px;gap:5px;max-height:100%}.card-heading{min-height:43px}.card-brand{font-size:7px}.card-heading strong{font-size:16px}.card-subtitle,.card-id{font-size:9px}.bingo-cell{font-size:clamp(7px,2vw,10px)}.preview-nav .btn{min-height:30px}.call-panel{padding:6px;gap:5px}.game-screen{padding:10px;gap:5px}.prompt{font-size:clamp(17px,5.5vw,30px)}.answer-wrap{min-height:40px}.answer-wrap strong{font-size:16px}.game-controls .btn{font-size:11px;min-height:40px;padding:6px}.inline-settings{gap:5px}.inline-settings .field{width:calc(50% - 4px)}.inline-settings .field select{height:32px}.inline-settings .checkline{font-size:11px}.inline-settings .btn{min-height:32px}.call-panel .prompt-box{padding:7px}.history-list{max-height:62px}}
@media(max-height:680px){.app-shell{grid-template-rows:50px minmax(0,1fr)}.work-area{grid-template-rows:minmax(0,1fr) 55px}.workspace-head{min-height:37px}.layout-choice{min-height:88px}.layout-pattern{width:37px;height:37px}.layout-primary{gap:8px}.card-preview{--side:min(calc(100dvh - 275px),42vw)}.game-screen{padding:9px;gap:4px}.answer-wrap{min-height:34px}.prompt-box{padding:7px}.call-panel .game-controls .btn{min-height:36px}.call-settings .inline-settings .field>select{height:33px}}
.game-screen:fullscreen{border:0;border-radius:0;min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 50% 15%,#f8f5ff,#e8ddff);padding:5vh 6vw;display:flex;flex-direction:column;justify-content:space-around;overflow:hidden}.game-screen:fullscreen .prompt{font-size:clamp(32px,5.3vw,82px)}.game-screen:fullscreen .answer-wrap strong{font-size:clamp(24px,3vw,45px)}.game-screen:fullscreen .game-controls .btn{min-height:62px;font-size:17px}
@media print{@page{size:A4 portrait;margin:9mm}html,body{background:white!important;color:black!important;margin:0!important;padding:0!important;overflow:visible!important}.app-shell,#modal-root,#toast{display:none!important}#print-root{display:block!important;width:100%!important}.print-sheet{height:268mm;break-after:page;page-break-after:always;display:grid;align-content:start;justify-content:center;gap:5mm;padding:1mm 0;box-sizing:border-box}.print-sheet:last-child{break-after:auto;page-break-after:auto}.print-sheet.layout-1{grid-template-columns:180mm;justify-items:center;align-content:center}.print-sheet.layout-2{grid-template-columns:110mm;justify-items:center;align-content:space-around}.print-sheet.layout-4{grid-template-columns:repeat(2,91mm);grid-template-rows:repeat(2,max-content);gap:7mm 7mm;align-content:center}.paper-card{width:100%;min-width:0;break-inside:avoid;page-break-inside:avoid;color:#242644!important;background:#fff!important;border:1px solid #c8c2d8;padding:2.5mm;border-radius:1.5mm;box-sizing:border-box}.paper-title{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2mm;padding-bottom:2mm}.paper-title-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.paper-title-text span{font-size:6pt;letter-spacing:2px;font-weight:900;color:#7958e9}.paper-title-text strong{font-size:17pt;font-weight:1000;color:#3a286e;line-height:1.1}.paper-title-text small{font-size:8pt;color:#67647d;overflow-wrap:anywhere}.paper-id{font-size:8pt;font-weight:900;color:#7958e9}.paper-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.65mm;padding:.65mm;background:#dad6e3;border:1px solid #bcb6c9;aspect-ratio:1}.paper-grid.n-3{grid-template-columns:repeat(3,minmax(0,1fr))}.paper-grid.n-4{grid-template-columns:repeat(4,minmax(0,1fr))}.paper-grid.n-5{grid-template-columns:repeat(5,minmax(0,1fr))}.paper-cell{min-width:0;min-height:0;background:white;color:#222!important;display:flex;align-items:center;justify-content:center;text-align:center;font-family:Arial,'DejaVu Sans',sans-serif;font-size:10pt;line-height:1.15;font-weight:600;padding:1mm .35mm;overflow-wrap:anywhere;hyphens:auto;overflow:hidden}.paper-cell.free{background:#e3e3e3!important;font-weight:900}.paper-footer{text-align:center;font-size:7pt;color:#757080;margin-top:1mm}.print-sheet.layout-2 .paper-cell{font-size:7.8pt}.print-sheet.layout-4 .paper-cell{font-size:6.2pt;padding:.3mm}.print-sheet.layout-4 .paper-title-text strong{font-size:11pt}.print-sheet.layout-4 .paper-title-text small{font-size:6.5pt}.print-sheet.layout-4 .paper-id{font-size:7pt}.print-sheet.layout-4 .paper-card{padding:1.5mm}.paper-card.colour .paper-cell.free{background:#bcefe3!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media(max-width:680px){.actionbar .footer-note{display:none}.actionbar .footer-actions{width:100%;justify-content:flex-end}.actionbar .footer-actions .btn{flex:1;min-width:0}.actionbar .footer-actions .next-btn{flex:1.35}.actionbar{justify-content:flex-end}}

.layout-pattern.n-3{grid-template-columns:repeat(3,1fr)}.layout-pattern.n-4{grid-template-columns:repeat(4,1fr)}.layout-pattern.n-5{grid-template-columns:repeat(5,1fr)}.meter-progress{width:100%;height:8px;border:0;border-radius:9px;appearance:none;background:#eee9fa;overflow:hidden}.meter-progress::-webkit-progress-bar{background:#eee9fa;border-radius:9px}.meter-progress::-webkit-progress-value{background:var(--mint);border-radius:9px}.meter-progress::-moz-progress-bar{background:var(--mint);border-radius:9px}.winner-status.success::before{content:'★  BINGO!  ★';display:block;font-weight:1000;font-size:24px;color:#8a5fe9;letter-spacing:.06em;animation:bingo-pop .35s ease-out both}@keyframes bingo-pop{from{transform:scale(.85);opacity:.6}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.winner-status.success::before{animation:none}}.not-found{max-width:520px;margin:15vh auto;padding:30px;background:white;border:1px solid var(--line);border-radius:18px;display:grid;gap:18px}.not-found a{text-decoration:none}

/* v1.2.0: prepared game packs, matched card identifiers and print-ahead actions */
.game-id{display:inline-flex;align-items:center;justify-content:center;background:#f0ebff;color:#6947d0;border:1px solid #d9cdff;padding:7px 10px;border-radius:10px;letter-spacing:.07em;font-weight:950;font-size:12px;white-space:nowrap}
.game-id.big{font-size:21px;letter-spacing:.12em;margin:4px 0 6px}
.prepared-summary{background:#f0fff9;border:1px solid #b9e5d9;padding:9px;border-radius:12px;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:#227f72;font-size:11px;font-weight:750}
.pack-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.pack-actions .btn{min-width:0;white-space:normal;padding:8px 5px;line-height:1.18}
.ready-dialog{background:#f9f7ff;border:1px solid #e4dcfa;border-radius:16px;padding:16px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.ready-dialog strong{font-size:17px}.ready-dialog p{font-size:12px;color:#67647d}
.ready-actions{justify-content:stretch}.ready-actions .btn{flex:1 1 auto}
.card-id{display:flex;flex-direction:column;align-items:center;gap:1px}.card-game-id{color:#7958e9;font-size:8px;font-weight:900;letter-spacing:.04em}
.caller-top .call-kicker{color:#6746ce;font-weight:900}
.layout-choice:disabled{opacity:.82;cursor:not-allowed}.bank-table input[readonly],.layout-fields input[readonly]{background:#f7f5fd;color:#6f6b83;cursor:default}
@media(max-width:960px){.pack-actions{grid-template-columns:1fr 1fr}.pack-actions .btn{font-size:10px;min-height:33px}.prepared-summary{font-size:10px;padding:6px}.game-id{font-size:10px;padding:5px}}
@media(max-width:680px){.pack-actions .btn{min-height:31px;padding:6px 4px}.prepared-summary{gap:4px}.ready-actions{flex-direction:column}.ready-actions .btn{width:100%}}
@media print{
 .paper-id{display:flex;flex-direction:column;align-items:flex-end;gap:1mm}
 .paper-id small{font-size:7pt;white-space:nowrap;color:#7958e9;font-weight:900;letter-spacing:.025em}
 .print-sheet.layout-4 .paper-id small{font-size:5.7pt}
 .teacher-sheet{break-after:page;page-break-after:always;box-sizing:border-box;height:267mm;color:#242644;background:#fff;padding:5mm 3mm;display:flex;flex-direction:column;gap:7mm}
 .teacher-sheet:last-child{break-after:auto;page-break-after:auto}
 .teacher-sheet header{border-bottom:2px solid #7958e9;padding-bottom:4mm}
 .teacher-sheet header>span{font:900 9pt Arial,sans-serif;letter-spacing:.8pt;color:#6e4de2}
 .teacher-sheet header h1{font:900 18pt Arial,sans-serif;margin:2mm 0}
 .teacher-sheet header div{font:9pt Arial,sans-serif;color:#575275}
 .teacher-sheet table{width:100%;border-collapse:collapse;table-layout:fixed;font:8.1pt/1.28 Arial,'DejaVu Sans',sans-serif}
 .teacher-sheet th{background:#eee9ff;text-align:left;font-weight:900;padding:2.5mm}
 .teacher-sheet td{padding:2.3mm;vertical-align:top;border-bottom:1px solid #dedae9;overflow-wrap:anywhere;word-break:normal}
 .teacher-sheet td:nth-child(1),.teacher-sheet th:nth-child(1){width:6%}
 .teacher-sheet td:nth-child(2),.teacher-sheet th:nth-child(2){width:23%}
 .teacher-sheet td:nth-child(3),.teacher-sheet th:nth-child(3){width:36%}
 .teacher-sheet td:nth-child(4),.teacher-sheet th:nth-child(4){width:35%}
 .teacher-sheet footer{margin-top:auto;border-top:1px solid #dedae9;padding-top:3mm;color:#67647d;font:8pt Arial,sans-serif}
}
.winner-pack-code{font-size:12px;color:#6b6685;background:#f6f2ff;padding:10px 13px;border-radius:10px;margin:0 0 12px}.winner-pack-code strong{color:var(--purple);letter-spacing:.07em}

/* v1.2.1 — printed grid works even when 'Background graphics' is off. */
@media print {
  .paper-grid {
    --grid-lines:#596674;
    width:100%!important;
    aspect-ratio:1 / 1!important;
    padding:0!important;
    gap:0!important;
    display:grid!important;
    grid-template-rows:repeat(var(--grid-size),minmax(0,1fr))!important;
    border:0.45mm solid var(--grid-lines)!important;
    background:#fff!important;
    box-sizing:border-box!important;
  }
  .paper-grid.n-3{--grid-size:3;grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .paper-grid.n-4{--grid-size:4;grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .paper-grid.n-5{--grid-size:5;grid-template-columns:repeat(5,minmax(0,1fr))!important}
  .paper-cell {
    box-sizing:border-box!important;
    border-right:0.28mm solid var(--grid-lines)!important;
    border-bottom:0.28mm solid var(--grid-lines)!important;
    background:#fff!important;
    color:#111!important;
    min-width:0!important;
    min-height:0!important;
  }
  .paper-grid .paper-cell:nth-child(3n){border-right-width:0}
  .paper-grid.n-4 .paper-cell:nth-child(3n),
  .paper-grid.n-5 .paper-cell:nth-child(3n){border-right-width:0.28mm}
  .paper-grid.n-4 .paper-cell:nth-child(4n),
  .paper-grid.n-5 .paper-cell:nth-child(5n){border-right-width:0}
  .paper-grid.n-3 .paper-cell:nth-last-child(-n+3),
  .paper-grid.n-4 .paper-cell:nth-last-child(-n+4),
  .paper-grid.n-5 .paper-cell:nth-last-child(-n+5){border-bottom-width:0}
  .paper-cell.free {background:#d9eee8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .paper-card.bw .paper-cell.free {background:#efefef!important}
}
/* v1.2.2 Auto Play: compact, projector-accessible transport + timing settings */
.auto-strip{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;flex-wrap:wrap;padding:4px 0}
.auto-strip .btn{min-height:34px;font-size:12px;padding:7px 12px;box-shadow:none}
.auto-strip .auto-on{background:#e9dcff;color:#5b35b5;border:1px solid #9478ed}
.auto-status{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:#685e85;font-size:12px;min-width:130px}
.auto-status b{font-size:15px;color:#6942d1;min-width:24px;font-variant-numeric:tabular-nums}
.auto-settings .field{width:126px;flex:0 1 126px}
.auto-settings .checkline{margin:0;white-space:nowrap;min-height:36px}
.auto-settings{gap:7px 10px}
.auto-settings .btn{margin-left:auto}
.game-screen:fullscreen .auto-strip .btn{min-height:48px;font-size:16px;padding:10px 18px}
.game-screen:fullscreen .auto-status{font-size:16px}
.game-screen:fullscreen .auto-status b{font-size:23px}
@media(max-width:800px){.auto-settings .field{flex:1 1 115px;width:auto}.auto-settings .checkline{flex:0 0 auto}.auto-strip .btn{font-size:11px}.auto-status{font-size:11px;min-width:90px}}
@media(max-width:420px){.auto-strip{gap:4px;justify-content:space-between}.auto-strip .btn{padding:6px 8px;min-height:32px}.auto-status{font-size:10px;min-width:0}.auto-status b{font-size:12px}.game-screen{padding:10px}.auto-settings .field{flex:1 1 100px}}
@media(max-width:680px){
.call-workspace-head .top-actions [data-action="save-pack"],
.call-workspace-head .top-actions [data-action="open-winner"]{display:none}
.call-workspace-head{align-items:center}
.call-workspace-head h1{white-space:nowrap;font-size:clamp(16px,5vw,21px)}
.call-workspace-head .call-counter{display:inline-block;margin-left:6px;font-size:11px}
.call-workspace-head .top-actions .btn{padding:6px 9px;min-height:33px}
}
.caller-fullscreen{display:none;border:1px solid #d2c7f2;background:#fff;color:#6d49d1;border-radius:8px;min-width:30px;min-height:30px;cursor:pointer;font-size:19px}
@media(max-width:350px){.call-workspace-head .top-actions [data-action="fullscreen"]{display:none}.caller-fullscreen{display:inline-flex;align-items:center;justify-content:center}.caller-top{gap:6px}.call-kicker{letter-spacing:1px}}
/* v1.2.3 — fullscreen bingo checking and audible sound controls */
.caller-top{flex-wrap:wrap;justify-content:space-between;align-items:center}
.caller-top .call-kicker{min-width:0;flex:1 1 130px}
.caller-count{white-space:nowrap}
.caller-tools{display:flex;align-items:center;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.caller-tool,.caller-tools .caller-fullscreen{min-height:32px;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid #cfc4f1;border-radius:9px;padding:5px 9px;background:#fff;color:#6842ba;font:inherit;font-size:11px;font-weight:850;cursor:pointer;white-space:nowrap}
.caller-tool:focus-visible,.caller-fullscreen:focus-visible{outline:3px solid #21c7b8;outline-offset:2px}
.caller-check{background:#754fe6;border-color:#754fe6;color:#fff}
.caller-test{font-size:10px}
.sound-status{font-size:11px;color:#696282;font-weight:750;white-space:nowrap}
.sound-test{min-height:32px!important;font-size:11px!important}
#fullscreen-modal-root{position:absolute;inset:0;z-index:3000;pointer-events:none}
#fullscreen-modal-root .modal-backdrop{pointer-events:auto;position:fixed;inset:0;z-index:3001;display:grid;place-items:center;overflow:auto}
#fullscreen-modal-root .modal{width:min(94vw,760px);max-height:min(88dvh,850px);overflow:auto}
.game-screen:fullscreen .caller-top{align-self:stretch;min-height:42px;gap:12px}
.game-screen:fullscreen .caller-tool,.game-screen:fullscreen .caller-tools .caller-fullscreen{min-height:42px;padding:8px 13px;font-size:14px}
.game-screen:fullscreen .caller-tools .caller-fullscreen{display:inline-flex}
.game-screen:fullscreen .caller-test{font-size:13px}
.game-screen:fullscreen .call-kicker{font-size:13px;letter-spacing:1px}
.game-screen:fullscreen .caller-count{font-size:14px}
@media(max-width:720px){.caller-top{gap:4px}.caller-top .call-kicker{flex-basis:110px;letter-spacing:.5px;font-size:9px}.caller-count{font-size:10px}.caller-tools{gap:4px}.caller-tool{padding:4px 6px;font-size:10px;min-height:30px}.caller-test{font-size:9px}.caller-tools .caller-fullscreen{padding:4px 6px;min-width:30px}.sound-status{font-size:10px}}
@media(max-width:350px){.caller-top .caller-count{display:none}.caller-check{font-size:9px}.caller-tools .caller-fullscreen{display:inline-flex}}
@media print{#fullscreen-modal-root{display:none!important}}

/* v1.2.4: original game music, compact DJ controls, and opt-in card text fitting. */
.music-settings{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;border:1px solid #ddd5f8;border-radius:12px;background:#f9f7ff;min-width:0}
.music-heading{font-size:11px;color:#6149a3;font-weight:950;white-space:nowrap}
.music-settings select{height:35px;flex:1 1 180px;max-width:340px;min-width:115px;border:1px solid #ddd9ec;border-radius:9px;padding:5px 9px;background:#fff;color:#242644;font-weight:700;font-size:11px}
.music-settings>.btn{min-height:35px;padding:7px 11px;font-size:11px}
.music-settings .music-active{background:#e4ddff;color:#4a2caa}
.music-volume{display:flex;align-items:center;gap:6px;flex:1 1 140px;max-width:245px;white-space:nowrap;font-size:11px;font-weight:800;color:#625b83}
.music-volume input{accent-color:#7958e9;flex:1;width:65px;min-width:50px;cursor:pointer;height:24px;padding:0}
.music-volume output{font-variant-numeric:tabular-nums;min-width:32px;text-align:right;font-size:11px}
.fit-switch{align-self:center}
.card-preview.fit-text .bingo-cell>span,.paper-card.fit-text .paper-cell>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-width:0;display:block;overflow-wrap:normal;word-break:normal;hyphens:none;line-height:1.18}
.music-fullscreen-track{display:none;min-width:90px;max-width:170px;height:34px;background:#fff;color:#403576;border:1px solid #d7cfee;border-radius:9px;font-size:11px;font-weight:800;padding:3px 5px}
.game-screen:fullscreen .music-fullscreen-track{display:inline-block}
.caller-tools .caller-music{background:#ebe5ff;color:#6342bd;border:1px solid #d6c8ff}
.game-screen:fullscreen .caller-music{font-weight:900}
@media(max-width:900px){.music-settings{gap:6px}.music-settings select{flex:1 1 130px}.music-volume{flex:1 1 120px}.layout-fields{gap:9px}}
@media(max-width:500px){.music-heading{display:none}.music-settings select{min-width:100px;flex:1 1 140px}.music-volume{flex:1 1 100%;max-width:none}.music-settings{padding:6px 8px}.caller-tools{gap:3px}.caller-tools .caller-music{padding:4px 6px}.game-screen:fullscreen .music-fullscreen-track{max-width:110px;font-size:9px}}
@media(max-width:360px){.caller-tools .caller-music{font-size:0}.caller-tools .caller-music:before{content:'♫';font-size:14px}.game-screen:fullscreen .music-fullscreen-track{max-width:86px}}
@media print{
 .paper-card.fit-text .paper-cell>span{white-space:nowrap!important;text-overflow:clip!important;max-width:100%;font-weight:600;letter-spacing:-.04px}
 .paper-card .paper-cell>span{max-width:100%}
}
@media(max-width:680px){
 .app-shell{grid-template-columns:minmax(0,1fr)}
 .topbar,.body-shell,.work-area,#view,.workspace-head{min-width:0;width:100%}
 .workspace-head{overflow:hidden}
 .call-workspace-head .top-actions{flex-shrink:0}
}
/* Prevent automatic focus-scroll from horizontally shifting the single-screen shell. */
.app-shell{overflow:clip}
@media(max-width:680px){.work-area{grid-template-columns:minmax(0,1fr)}#view{min-width:0;max-width:100%}.call-panel,.game-screen,.call-settings{min-width:0;max-width:100%}}
/* Keep the caller fully visible on the smallest screens; only secondary controls scroll. */
@media(max-width:420px){
 .call-panel{grid-template-rows:minmax(205px,0.95fr) minmax(0,1.05fr)}
 .game-screen{overflow:hidden;gap:3px;padding:7px}
 .call-settings{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;gap:4px}
 .call-settings .music-settings{flex:none;margin-top:3px}
 .prompt-box{min-height:22px}
 .answer-wrap{min-height:23px}
 .game-controls .btn{min-height:32px;padding:4px 3px}
 .game-meta{font-size:10px}
 .call-settings .inline-settings{flex:none}
}

/* v1.2.5 — projector-first caller. Secondary controls live in a fullscreen-safe pop-out. */
.app-shell.calling-mode .body-shell{grid-template-columns:65px minmax(0,1fr)}
.app-shell.calling-mode .sidebar{padding:12px 6px}
.app-shell.calling-mode .sidebar .side-head strong,
.app-shell.calling-mode .sidebar .step-label,
.app-shell.calling-mode .sidebar .step-num,
.app-shell.calling-mode .sidebar .sidebar-bottom{display:none}
.app-shell.calling-mode .sidebar .side-head{justify-content:center;padding:5px 0 10px}
.app-shell.calling-mode .sidebar .step{justify-content:center;padding:8px}
.app-shell.calling-mode .work-area{grid-template-rows:minmax(0,1fr)}
.app-shell.calling-mode #actionbar{display:none}
.app-shell.calling-mode #view{gap:0;min-height:0}
.app-shell.calling-mode .call-panel{flex:1;display:flex;min-height:0;padding:7px;gap:0}
.app-shell.calling-mode .game-screen{flex:1;min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) minmax(36px,auto) auto 7px auto;gap:11px;padding:20px 24px;position:relative;justify-content:stretch;overflow:hidden}
.app-shell.calling-mode .caller-top{display:flex;gap:14px;flex-wrap:nowrap;align-items:center;min-height:40px;z-index:0}
.app-shell.calling-mode .caller-identity{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0;flex:1}
.app-shell.calling-mode .call-kicker{font-size:12px;letter-spacing:1.15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-shell.calling-mode .caller-count{color:#755cb5;font-weight:950;font-size:14px}
.app-shell.calling-mode .caller-tools{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:8px}
.app-shell.calling-mode .caller-tool{min-height:38px;padding:8px 12px;font-size:12px;border-radius:10px}
.app-shell.calling-mode .caller-settings-button{background:#fff;color:#6648b8}
.app-shell.calling-mode .caller-expand{background:#fff;color:#6648b8}
.app-shell.calling-mode .auto-strip{justify-content:center;flex-wrap:nowrap;gap:12px;padding:0;min-height:36px}
.app-shell.calling-mode .auto-strip .btn{min-height:36px;white-space:nowrap;font-size:12px}
.app-shell.calling-mode .auto-status{justify-content:flex-start;min-width:0;font-size:12px}
.app-shell.calling-mode .prompt-box{min-height:0;width:100%;height:100%;padding:10px 18px;overflow:hidden;display:grid;place-items:center;align-self:stretch}
.app-shell.calling-mode .prompt{font-size:clamp(24px,4.4vw,82px);font-weight:950;line-height:1.14;max-width:none;width:100%;white-space:normal;overflow-wrap:break-word;word-break:normal;text-align:center}
.app-shell.calling-mode .answer-wrap{min-height:36px;max-height:min(22vh,146px);gap:3px;margin:0;overflow:auto;padding:4px 9px}
.app-shell.calling-mode .answer-wrap strong{font-size:clamp(17px,2.2vw,31px)}
.app-shell.calling-mode .answer-wrap span{font-size:clamp(11px,1.15vw,15px)}
.app-shell.calling-mode .game-controls{grid-template-columns:1fr 1fr 1.5fr;gap:12px}
.app-shell.calling-mode .game-controls .btn{min-height:52px;font-size:clamp(13px,1.1vw,17px)}
.app-shell.calling-mode .progress-track{height:7px;margin:0}
.app-shell.calling-mode .game-meta{font-size:11px;min-height:14px}
.app-shell.calling-mode .caller-settings-layer[hidden]{display:none!important}
.app-shell.calling-mode .caller-settings-layer{position:absolute;inset:0;z-index:15;display:flex;justify-content:flex-end;align-items:stretch;min-height:0}
.app-shell.calling-mode .caller-settings-backdrop{position:absolute;inset:0;z-index:0;background:rgba(30,24,70,.24);border:0;border-radius:inherit;cursor:default}
.app-shell.calling-mode .caller-settings-drawer{position:relative;z-index:1;flex:0 1 395px;max-width:100%;min-height:0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;background:#fff;border-left:1px solid #e0d8f6;box-shadow:-8px 0 28px rgba(32,23,88,.12);padding:15px 17px;display:flex;flex-direction:column;gap:13px;color:var(--ink)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;gap:8px;position:sticky;top:-15px;background:#fff;z-index:2;padding:4px 0 10px;border-bottom:1px solid var(--line)}
.drawer-head h2{font-size:17px}
.drawer-close{width:34px;height:34px;border-radius:10px;background:#f1edff;border:0;color:#6646c1;font-size:16px;font-weight:900}
.drawer-section{display:flex;flex-direction:column;gap:11px;padding:0 0 13px;border-bottom:1px solid var(--line)}
.drawer-section>strong{font-size:12px;color:#6849b9}
.drawer-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px}
.drawer-section .field{font-size:11px;min-width:0}
.drawer-section select{width:100%;min-width:0;height:38px!important}
.drawer-section .checkline{white-space:normal;font-size:12px}
.drawer-audio-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.drawer-audio-row>.btn{flex:none}
.drawer-sound-status{font-size:11px;color:var(--muted)}
.drawer-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.drawer-actions .btn{white-space:normal;min-height:39px;font-size:11px}
.drawer-history{max-height:185px;overflow-y:auto}
.drawer-section .music-volume{flex:1;max-width:none;min-width:0;font-size:11px}
.drawer-section .music-volume input{min-width:55px}
.game-screen:fullscreen{display:grid!important;grid-template-rows:auto auto minmax(0,1fr) minmax(46px,auto) auto 7px auto!important;gap:clamp(8px,1.5vh,18px)!important;padding:clamp(14px,3.5vh,42px) clamp(16px,4vw,72px)!important;justify-content:stretch!important;min-height:100dvh!important;position:relative}
.game-screen:fullscreen .prompt{max-width:none!important;font-size:clamp(24px,5.6vw,110px)}
.game-screen:fullscreen .prompt-box{min-height:0!important;padding:10px 22px!important}
.game-screen:fullscreen .caller-tool{min-height:44px!important;font-size:clamp(12px,1.1vw,16px)!important;padding:8px 14px!important}
.game-screen:fullscreen .game-controls .btn{min-height:clamp(52px,7vh,80px)!important;font-size:clamp(14px,1.5vw,20px)!important}
.game-screen:fullscreen .auto-strip{min-height:44px!important}
.game-screen:fullscreen .answer-wrap strong{font-size:clamp(18px,3vw,41px)}
.game-screen:fullscreen .caller-settings-drawer{flex-basis:430px}
@media(max-width:760px){
 .app-shell.calling-mode .body-shell{grid-template-columns:minmax(0,1fr)}
 .app-shell.calling-mode .sidebar{display:none}
 .app-shell.calling-mode .game-screen{padding:12px;gap:7px;grid-template-rows:auto auto minmax(0,1fr) minmax(28px,auto) auto 6px auto}
 .app-shell.calling-mode .call-kicker{font-size:9px;letter-spacing:.3px}
 .app-shell.calling-mode .caller-count{font-size:11px}
 .app-shell.calling-mode .caller-tool{min-height:33px;padding:5px 7px;font-size:10px}
 .app-shell.calling-mode .caller-tools{gap:4px}
 .app-shell.calling-mode .caller-expand span{display:none}
 .app-shell.calling-mode .auto-strip{gap:6px}
 .app-shell.calling-mode .auto-strip .btn{min-height:33px;padding:5px 9px;font-size:11px}
 .app-shell.calling-mode .auto-status{font-size:10px}
 .app-shell.calling-mode .game-controls{gap:5px}
 .app-shell.calling-mode .game-controls .btn{min-height:42px;padding:7px 4px;font-size:12px}
 .app-shell.calling-mode .prompt-box{padding:3px 5px}
 .app-shell.calling-mode .prompt{font-size:clamp(18px,5.5vw,42px)}
 .app-shell.calling-mode .answer-wrap{min-height:28px;max-height:14vh;padding:4px}
 .app-shell.calling-mode .answer-wrap span{font-size:11px}
 .app-shell.calling-mode .caller-settings-drawer{flex-basis:min(95%,380px);padding:13px}
}
@media(max-width:380px){
 .app-shell.calling-mode .caller-top{flex-wrap:wrap;gap:4px}
 .app-shell.calling-mode .caller-identity{flex:1 0 100%;justify-content:space-between}
 .app-shell.calling-mode .caller-tools{width:100%;justify-content:space-between}
 .app-shell.calling-mode .caller-tools .caller-tool{flex:1}
 .app-shell.calling-mode .auto-strip .btn{font-size:10px;padding:4px 6px}
 .app-shell.calling-mode .prompt{font-size:22px}
}
@media(max-height:610px){
 .app-shell.calling-mode .game-screen{gap:5px;padding:8px 12px}
 .app-shell.calling-mode .auto-strip{min-height:28px}
 .app-shell.calling-mode .game-controls .btn{min-height:36px}
 .app-shell.calling-mode .answer-wrap{min-height:24px}
}
@media print{.caller-settings-layer{display:none!important}}
.app-shell.calling-mode .sidebar .side-head{display:none}
/* Shorter brand strip during a classroom call. */
.app-shell.calling-mode{grid-template-rows:50px minmax(0,1fr)}
.app-shell.calling-mode .brand-logo{width:35px;height:35px;border-radius:11px;font-size:22px}
.app-shell.calling-mode .brand-logo span{width:15px;height:15px;font-size:9px}
.app-shell.calling-mode .header-info #save-indicator{display:none}
@media(max-width:680px){.app-shell.calling-mode .mobile-menu{display:inline-flex!important}}

/* v1.2.6 — multi-line card labels, never breaking a chemical term inside a word. */
.card-preview .bingo-cell,.paper-card .paper-cell{
 overflow-wrap:normal;
 word-break:normal;
 hyphens:none;
}
.card-preview .bingo-cell>span,.card-preview.fit-text .bingo-cell>span,
.paper-card .paper-cell>span,.paper-card.fit-text .paper-cell>span{
 display:block;
 width:100%;
 min-width:0;
 max-width:100%;
 white-space:normal!important;
 overflow-wrap:normal!important;
 word-break:normal!important;
 hyphens:none!important;
 overflow:visible;
 text-overflow:clip;
 line-height:1.15;
 text-align:center;
}
.card-preview .cell-word,.paper-card .cell-word{
 display:inline-block;
 white-space:nowrap!important;
 overflow-wrap:normal!important;
 word-break:keep-all!important;
 hyphens:none!important;
}
@media print {
 .paper-card.fit-text .paper-cell>span,
 .paper-card .paper-cell>span{
  white-space:normal!important;
  text-overflow:clip!important;
  overflow:visible!important;
  line-height:1.15!important;
 }
 .paper-cell {overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
}

/* Integration-only navigation back to the original Chemisode Tools homepage. */
.tools-home-link{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:12px;font-weight:800;text-decoration:none;color:#6c4fd8;background:#f2edff;border:1px solid #dfd5fa;border-radius:9px;padding:9px 12px;flex:none}
.tools-home-link:hover,.tools-home-link:focus-visible{background:#e8defe;outline-offset:3px}
@media(max-width:560px){.tools-home-link{padding:7px 8px;font-size:11px}.header-info .saved-dot{display:none}}
