:root{color:#1f2933;background:#f5f1e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}@media (width>=900px){body{zoom:.8}}button,select,input,textarea{font:inherit}button{cursor:pointer;border:0}.app-shell{background:linear-gradient(135deg,#0f766e1f,#0000 34%),linear-gradient(315deg,#ea580c1f,#0000 30%),#f8f4ea;min-height:100vh;padding:20px}.setup-screen{place-items:center;display:grid}.setup-panel{background:#fffdf7fa;border:2px solid #eadfcb;border-radius:8px;gap:16px;width:min(100%,880px);max-width:880px;padding:28px;display:grid;box-shadow:0 28px 70px #243b532e}.setup-lead{color:#3b4a54;margin:0;font-size:1.08rem;font-weight:700;line-height:1.45}.course-pill{color:#065f46;background:#ecfdf5;border:2px solid #a7f3d0;border-radius:999px;align-self:start;width:fit-content;padding:8px 14px;font-weight:900}.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.setup-grid label,.teacher-key{color:#243b53;gap:6px;font-size:.86rem;font-weight:900;display:grid}.mode-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.mode-buttons button{color:#243b53;background:#fffdf7;border:2px solid #d8cdb9;border-radius:8px;gap:5px;min-height:76px;padding:14px;font-weight:900;display:grid}.mode-buttons button.active{color:#fff;background:#0f766e;border-color:#0f766e}.mode-buttons small{opacity:.84;font-size:.78rem;font-weight:800}.teacher-key{max-width:360px}.activity-bar{background:#fffdf7f5;border:2px solid #eadfcb;border-radius:8px;grid-template-columns:auto minmax(180px,1.1fr) minmax(170px,1fr) minmax(150px,.75fr) minmax(220px,.9fr);align-items:end;gap:10px;margin:0 0 12px;padding:12px;display:grid}.activity-bar label{color:#243b53;gap:5px;font-size:.78rem;font-weight:900;display:grid}.activity-bar select,.activity-bar input{width:100%;min-width:0}.inline-key{max-width:none}.mode-buttons.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.mode-buttons.compact button{min-height:58px;padding:9px 10px}.inline-error{grid-column:1/-1;padding:8px 10px}.setup-error{color:#991b1b;background:#fef2f2;border:2px solid #fecaca;border-radius:8px;margin:0;padding:10px 12px;font-weight:900}.start-action{justify-self:start;min-width:230px}.play-layout{background:#000;grid-template-columns:312px minmax(0,1fr);gap:0;padding:0;display:grid}.main-stage{background:linear-gradient(135deg,#0f766e1a,#0000 34%),linear-gradient(315deg,#ea580c1a,#0000 30%),#f8f4ea;min-height:100vh;padding:18px 8px 14px 14px}.score-rail{background:#000;min-height:100vh;padding:10px 12px 10px 6px}.topbar{justify-content:space-between;align-items:center;gap:18px;max-width:none;margin:0 0 12px;display:flex}.eyebrow,.panel-kicker{color:#0f766e;letter-spacing:0;text-transform:uppercase;margin:0 0 4px;font-size:.76rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{color:#102a43;margin-bottom:0;font-size:clamp(2.4rem,4.5vw,4rem);line-height:.95}h1 span{filter:drop-shadow(0 3px #0f766e29);margin-right:8px;display:inline-block}h2{color:#12343b;margin-bottom:10px;font-size:1.45rem}h3{margin-bottom:10px;font-size:1rem}.controls{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.controls select{min-width:110px}.controls label,.answer-form label,.reflection-grid label{color:#3b4a54;gap:6px;font-size:.82rem;font-weight:800;display:grid}select,input,textarea{color:#172b4d;background:#fffdf7;border:2px solid #d8cdb9;border-radius:8px;outline:none;padding:11px 12px}select:focus,input:focus,textarea:focus{border-color:#0f766e;box-shadow:0 0 0 3px #0f766e26}.controls button,.secondary-action{color:#fff;background:#243b53;border-radius:8px;min-height:44px;padding:10px 14px;font-weight:800}.status-strip{grid-template-columns:repeat(7,minmax(96px,1fr));gap:10px;max-width:none;margin:0 0 12px;display:grid}.status-strip div{background:#fffdf7;border:2px solid #eadfcb;border-radius:8px;padding:12px;position:relative;overflow:hidden}.status-strip div:after{content:"";background:#0f766e1a;border-radius:999px;width:42px;height:42px;position:absolute;top:-18px;right:-12px}.status-strip span{color:#6b7280;text-transform:uppercase;font-size:.78rem;font-weight:800;display:block}.status-strip strong{color:#b45309;font-size:1.35rem;display:block}.game-grid{grid-template-columns:.9fr 1.2fr .95fr;gap:12px;max-width:none;margin:0;display:grid}.panel{background:#fffdf7f2;border:2px solid #eadfcb;border-radius:8px;padding:14px;box-shadow:0 18px 38px #243b531f}.customer-panel{background:#fff8ea}.customer-card-top{align-items:center;gap:12px;margin-bottom:12px;display:flex}.customer-card-top h2{margin-bottom:6px}.customer-avatar{background:#e0f2fe;border:3px solid #7dd3fc;border-radius:50%;flex:0 0 72px;justify-content:center;align-items:center;width:72px;height:72px;font-size:2.6rem;display:flex;position:relative;box-shadow:0 8px 16px #0c4a6e24}.customer-avatar.bearded:after{content:"";opacity:.88;background:#4b2f25;border-radius:0 0 18px 18px;width:24px;height:9px;position:absolute;bottom:13px;left:50%;transform:translate(-50%)}.quote{color:#fff;background:#0f766e;border-radius:8px;padding:13px;font-size:1rem;font-weight:750;line-height:1.35}.badge{color:#fff;background:#f97316;border-radius:999px;margin-bottom:16px;padding:7px 11px;font-size:.82rem;font-weight:900;display:inline-flex}.receipt{border-top:2px dashed #d8cdb9;padding-top:14px}.receipt-row{border-bottom:1px solid #eadfcb;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;display:flex}.receipt-row span,.invoice-item span{align-items:center;gap:7px;display:inline-flex}.product-icon{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;flex:0 0 30px;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.1rem;display:inline-flex}.suspicious{color:#991b1b;background:#fee2e2;border:2px solid #fca5a5;border-radius:8px;margin-top:14px;padding:12px;font-weight:800}.expression{color:#fef3c7;text-align:center;word-break:break-word;background:#102a43;border-radius:8px;margin:12px 0 16px;padding:18px;font-size:clamp(1.7rem,3vw,2.45rem);font-weight:900;line-height:1.2}.expression:before{content:"🧠 "}.answer-form{gap:12px;display:grid}.answer-form input{font-size:1.2rem;font-weight:800}.invoice-form{gap:0}.invoice-paper{background:repeating-linear-gradient(0deg,#0f172a09 0 1px,#0000 1px 28px),#fffdf5;border:2px solid #d7c7a8;border-radius:8px;padding:14px;position:relative;box-shadow:inset 0 0 0 1px #fff,0 10px 22px #4533191a}.invoice-paper:before,.invoice-paper:after{content:"";pointer-events:none;background:radial-gradient(circle,#0000 0 5px,#d7c7a8 5px 6px,#0000 7px) 0 0/18px 12px;height:12px;position:absolute;left:12px;right:12px}.invoice-paper:before{top:-7px}.invoice-paper:after{bottom:-7px}.invoice-top{border-bottom:2px dashed #ccb891;justify-content:space-between;align-items:start;gap:14px;padding-bottom:10px;display:flex}.invoice-kicker{color:#0f766e;text-transform:uppercase;margin-bottom:2px;font-size:.72rem;font-weight:900}.invoice-top h3{color:#102a43;margin-bottom:0;font-size:1.2rem}.invoice-top h3:before{content:"🧾 "}.folio-box{color:#991b1b;text-align:center;border:2px solid #ef4444;border-radius:8px;min-width:84px;padding:6px 8px}.folio-box:before{content:"✅";margin-bottom:2px;font-size:1rem;line-height:1;display:block}.folio-box span{text-transform:uppercase;font-size:.68rem;font-weight:900;display:block}.folio-box strong{font-size:1.1rem}.invoice-meta{color:#4b5563;grid-template-columns:1fr auto auto;gap:5px;padding:10px 0;font-size:.78rem;font-weight:800;display:grid}.invoice-items{border-top:2px dashed #ccb891;border-bottom:2px dashed #ccb891;margin-bottom:10px;padding:8px 0}.invoice-item,.invoice-line,.readonly-line{grid-template-columns:minmax(110px,1fr) minmax(150px,.85fr);align-items:center;gap:10px;display:grid}.invoice-item{color:#263238;padding:5px 0;font-size:.9rem}.invoice-line{color:#263238;margin-top:8px;font-size:.86rem;font-weight:900}.invoice-line input{box-shadow:none;background:#fff;border:0;border-bottom:3px solid #243b53;border-radius:0;padding:8px 4px}.invoice-line input:focus{border-color:#0f766e;box-shadow:0 3px #0f766e2e}.readonly-line{color:#92400e;background:#f8ecd8;border-radius:8px;margin-top:10px;padding:9px 10px;font-weight:900}.readonly-line strong{text-align:right}.stamp-action{text-transform:uppercase;background:#0f766e;border:3px solid #0b5d56;margin-top:14px;box-shadow:0 4px #084843}.stamp-action:before{content:"✅ "}.stamp-action:active{transform:translateY(3px);box-shadow:0 1px #084843}.primary-action{color:#fff;background:#0f766e;border-radius:8px;min-height:48px;padding:12px 16px;font-size:1.05rem;font-weight:900}.feedback{color:#0c4a6e;background:#e0f2fe;border:2px solid #7dd3fc;border-radius:8px;margin-top:14px;padding:12px}.feedback strong:before{content:"💡 "}.invoice-feedback{margin-top:14px}.feedback p{margin:8px 0 0}.with-hint{color:#78350f;background:#fef3c7;border-color:#f59e0b}.register-panel h2{color:#b45309}.cash-summary{color:#7c2d12;background:#fff7ed;border:2px solid #fed7aa;border-radius:8px;gap:6px;margin:14px 0;padding:14px;display:grid}.cash-summary:before{content:"💰";font-size:2rem;line-height:1}.cash-summary span{text-transform:uppercase;font-size:.78rem;font-weight:900}.cash-summary strong{color:#b45309;font-size:2rem;line-height:1}.cash-summary p{margin-bottom:0}.secondary-action{width:100%}.change-help,.missions,.score-log,.grade-card{background:#fff7ed;border:2px solid #fed7aa;border-radius:8px;margin-top:14px;padding:14px}.grade-card{background:#ecfdf5;border-color:#5eead4;gap:6px;margin-top:0;display:grid}.grade-card span{color:#0f766e;text-transform:uppercase;font-size:.78rem;font-weight:950}.grade-card strong{color:#064e3b;font-size:3.2rem;line-height:1}.grade-card p{color:#115e59;margin:0;font-size:.82rem;font-weight:800}.change-total{color:#fff;background:#0f766e;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:10px;display:flex}.change-equation{grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin:12px 0;display:grid}.change-equation strong{color:#fff;text-align:center;background:#0f766e;border-radius:8px;padding:10px 8px}.change-equation span{color:#7c2d12;font-size:1.3rem;font-weight:950}.change-equation input{text-align:center;background:#fff;border:2px solid #d8cdb9;border-radius:8px;width:100%;min-width:0;padding:10px 8px;font-weight:900}.hint-check{color:#0c4a6e;background:#e0f2fe;border:2px solid #7dd3fc;border-radius:8px;margin-top:10px;padding:10px;font-weight:850}.hint-check.ok{color:#14532d;background:#dcfce7;border-color:#86efac}.hint-check.wrong{color:#991b1b;background:#fee2e2;border-color:#fca5a5}.change-breakdown{border-top:2px dashed #fed7aa;margin-top:12px;padding-top:10px}.change-breakdown h4{color:#7c2d12;margin:0 0 8px;font-size:.9rem}.change-total:before{content:"🪙";margin-right:8px;font-size:1.3rem}.change-total span{text-transform:uppercase;font-size:.78rem;font-weight:900}.change-total strong{font-size:1.2rem}.change-chip{color:#064e3b;background:#d1fae5;border:2px solid #6ee7b7;border-radius:8px;justify-content:space-between;align-items:center;margin-top:8px;padding:9px 10px;display:flex}.change-chip span,.change-chip strong{font-weight:900}.score-rail .score-log{background:#e7fff5;border-color:#5eead4;min-height:78px;margin-top:10px}.change-help p,.missions p,.score-log p{margin-bottom:7px}.missions p{align-items:flex-start;gap:8px;line-height:1.35;display:flex}.missions p span{flex:none}.score-log{background:#eefcf8;border-color:#99f6e4}.log-row{border-radius:8px;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:10px;display:flex}.log-row span,.log-row strong{font-size:.78rem}.log-row.correct{color:#14532d;background:#dcfce7}.log-row.correct:before{content:"✅"}.log-row.missed{color:#991b1b;background:#fee2e2}.log-row.missed:before{content:"✕";font-weight:950}.log-row.pending{color:#64748b;background:#f8fafc}.log-row.pending:before{content:"•";font-weight:950}.finish-screen{justify-content:center;align-items:center;display:flex}.final-panel{background:#fffdf7;border:2px solid #eadfcb;border-radius:8px;width:100%;max-width:960px;padding:24px;box-shadow:0 18px 38px #243b5329}.final-score{color:#0f766e;font-size:clamp(2rem,6vw,5rem);font-weight:950}.final-grade{color:#064e3b;background:#ecfdf5;border:2px solid #5eead4;border-radius:8px;margin:8px 0 12px;padding:10px 16px;font-size:1.25rem;font-weight:950;display:inline-block}.save-status{color:#1e3a8a;background:#eff6ff;border:2px solid #bfdbfe;border-radius:8px;margin:8px 0 12px;padding:12px 14px;font-weight:900}.practice-finish{color:#14532d;background:#dcfce7;border:2px solid #86efac;border-radius:8px;margin:18px 0;padding:18px;font-size:1.2rem;font-weight:900}.stars{color:#f59e0b;margin-bottom:18px;font-size:2.8rem}.reflection-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.self-check{background:#ecfdf5;border:2px solid #a7f3d0;border-radius:8px;gap:8px;margin:16px 0;padding:14px;display:grid}.self-check label{align-items:center;gap:8px;font-weight:750;display:flex}@media (width<=1060px){.play-layout{grid-template-columns:1fr}.score-rail{min-height:0;padding:10px 12px 0}.main-stage{min-height:auto;padding:12px}.game-grid{grid-template-columns:1fr 1fr}.activity-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.register-panel{grid-column:1/-1}.status-strip{grid-template-columns:repeat(3,1fr)}}@media (width<=720px){.app-shell{padding:12px}.play-layout{padding:0}.topbar{flex-direction:column;align-items:stretch}.controls{justify-content:stretch}.controls label,.controls button{flex:150px}.status-strip,.game-grid,.reflection-grid,.activity-bar,.setup-grid,.mode-buttons{grid-template-columns:1fr}.setup-panel{padding:18px}.register-panel{grid-column:auto}.change-equation{grid-template-columns:1fr}.change-equation span{text-align:center}}
