/* The Doctor Teacher — "toy machine" calculator shell. Self-contained, no webfonts. */
:root{
 --shell:#fff7ed; --shell-lip:#fdba74; --shell-deep:#fed7aa;
 --screen:#0f172a; --screen-card:#1e293b; --screen-line:#334155;
 --ink:#f8fafc; --dim:#94a3b8;
 --cy:#38bdf8; --cy-d:#0284c7;
 --mint:#34d399; --mint-d:#059669;
 --coral:#ff5964; --coral-d:#d93843;
 --yellow:#facc15; --yellow-d:#ca8a04;
 --warm:#b3542a;
 --round:-apple-system-rounded,"SF Pro Rounded","Segoe UI Variable Display","Segoe UI",Nunito,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{background:#dbeafe}
body{margin:0;min-height:100vh;padding:22px 12px 60px;font-family:var(--round);color:#334155;
 background:radial-gradient(ellipse at 50% 0%,#e0f2fe 0%,#bfdbfe 55%,#c7b299 55.4%,#a1866a 100%);
 background-attachment:fixed}
main{width:100%;max-width:940px;margin:0 auto;background:var(--shell);border-radius:44px;padding:26px;
 border:4px solid #fff;position:relative;
 box-shadow:0 20px 0 var(--shell-lip),0 34px 48px rgba(30,58,138,.28),
 inset 0 6px 8px rgba(255,255,255,.9),inset 0 -8px 12px var(--shell-deep)}
.screw{position:absolute;width:15px;height:15px;border-radius:50%;background:#cbd5e1;
 box-shadow:inset 0 2px 3px rgba(0,0,0,.4),0 2px 2px #fff}
.screw::after{content:"+";position:absolute;top:50%;left:50%;transform:translate(-50%,-56%);color:#64748b;font-size:13px;font-weight:900}
.s-tl{top:16px;left:16px}.s-tr{top:16px;right:16px}.s-bl{bottom:16px;left:16px}.s-br{bottom:16px;right:16px}
.toyhead{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0 6px 8px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;font-size:1.15rem;font-weight:800;color:var(--coral);text-shadow:0 2px 0 #fff}
.brand img{height:26px}
.solar{display:flex;gap:4px;background:#1e293b;padding:5px 9px;border-radius:10px;box-shadow:inset 0 3px 4px rgba(0,0,0,.6),0 2px 0 #fff}
.solar i{width:12px;height:20px;background:linear-gradient(180deg,#334155,#1e293b);border-radius:3px;border:1px solid #475569;display:block}
.mascots{display:flex;gap:6px;justify-content:center;font-size:1.6rem;line-height:1;margin:0 0 6px;filter:drop-shadow(0 3px 3px rgba(0,0,0,.18))}
.screen{background:var(--screen);border-radius:26px;padding:22px;color:var(--ink);
 border:4px solid #334155;position:relative;overflow:hidden;margin-bottom:18px;
 box-shadow:inset 0 8px 16px rgba(0,0,0,.8),0 4px 0 #fff}
.screen::before{content:"";position:absolute;top:-30%;left:-20%;width:140%;height:60%;pointer-events:none;
 background:linear-gradient(135deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,0) 60%);transform:rotate(-8deg)}
.screentop{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
 border-bottom:2px dashed var(--screen-line);padding-bottom:9px;margin-bottom:15px}
.badge{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.72rem;background:var(--cy-d);color:#fff;
 padding:4px 10px;border-radius:8px;text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.telem{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.7rem;color:var(--mint)}
h1{font-size:1.28rem;font-weight:800;margin:0 0 3px;color:var(--ink);letter-spacing:.01em}
.sub{color:var(--dim);font-size:.85rem;margin:0 0 16px}
h2{font-size:.8rem;font-weight:800;color:var(--yellow);margin:18px 0 7px;text-transform:uppercase;letter-spacing:.11em}
.stepnote{color:var(--dim);font-size:.8rem;margin:0 0 10px}
.slot{background:var(--screen-card);border:2px solid var(--screen-line);border-radius:16px;padding:13px 15px;margin:0 0 11px}
label.f{display:flex;flex-direction:column;gap:5px;font-size:.75rem;color:var(--dim);font-weight:700;
 text-transform:uppercase;letter-spacing:.06em;margin:0 0 11px}
input[type=number],input[type=text],select{width:100%;padding:11px 12px;border-radius:12px;border:2px solid var(--screen-line);
 background:#0f172a;color:#fff;font-family:var(--round);font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums;outline:none}
input:focus,select:focus{border-color:var(--cy);box-shadow:0 0 0 3px rgba(56,189,248,.25)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 13px}
.chips button{padding:11px 15px;border:none;border-radius:15px;background:#334155;color:#cbd5e1;
 font-family:var(--round);font-weight:800;font-size:.85rem;cursor:pointer;
 box-shadow:0 4px 0 #1e293b;transition:transform .1s,box-shadow .1s}
.chips button:active{transform:translateY(4px);box-shadow:0 0 0 #1e293b}
.chips button[aria-pressed=true]{background:var(--cy);color:#0f172a;box-shadow:0 4px 0 var(--cy-d)}
.safety{background:rgba(255,89,100,.13);border:2px solid var(--coral);border-radius:16px;padding:13px 15px;margin:0 0 13px}
.safety>strong{color:#fecaca;display:block;margin-bottom:5px;font-size:.9rem}
.safety label{display:flex;gap:9px;align-items:flex-start;font-size:.84rem;margin:7px 0;cursor:pointer;color:#e2e8f0;font-weight:600}
.safety input{width:19px;height:19px;accent-color:var(--coral);flex:none;margin-top:1px}
.meter{height:17px;background:#0f172a;border:2px solid var(--screen-line);border-radius:999px;padding:2px;margin:7px 0 13px;overflow:hidden}
.meter i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--mint),var(--cy));box-shadow:0 0 10px rgba(56,189,248,.8);transition:width .35s ease}
.readout{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0}
.readout div{flex:1;min-width:104px;background:var(--screen-card);border:2px solid var(--screen-line);
 border-radius:16px;padding:12px;text-align:center}
.readout .big{display:block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.7rem;font-weight:800;color:var(--mint);line-height:1.1}
.readout .lbl{display:block;font-size:.66rem;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-weight:700}
.verdict{background:var(--screen-card);border:2px solid var(--screen-line);border-left:6px solid var(--cy);
 border-radius:16px;padding:14px 16px;margin:13px 0;font-size:.9rem;line-height:1.55;color:#cbd5e1}
.verdict.bad{border-left-color:var(--coral);background:rgba(255,89,100,.1)}
.verdict b{color:var(--ink)}.verdict i{color:var(--yellow);font-style:italic}
.verdict p{margin:0 0 9px}.verdict p:last-child{margin:0}
.phase{background:var(--screen-card);border:2px solid var(--screen-line);border-radius:16px;padding:12px 15px;margin:0 0 10px;font-size:.89rem;color:#cbd5e1;line-height:1.5}
.phase b{color:var(--cy)}
table.r{width:100%;border-collapse:separate;border-spacing:0;margin:11px 0;font-size:.82rem}
table.r th,table.r td{border-bottom:1px solid var(--screen-line);padding:8px 9px;text-align:left;font-variant-numeric:tabular-nums;color:#cbd5e1}
table.r th{background:#0f172a;color:var(--yellow);font-size:.7rem;text-transform:uppercase;letter-spacing:.07em}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin:4px 6px 0}
.actions button{padding:14px 22px;border:none;border-radius:18px;font-family:var(--round);font-weight:800;font-size:.95rem;
 color:#fff;cursor:pointer;background:var(--coral);box-shadow:0 6px 0 var(--coral-d),0 10px 14px rgba(255,89,100,.3);
 transition:transform .1s,box-shadow .1s}
.actions button:active{transform:translateY(6px);box-shadow:0 0 0 var(--coral-d)}
.disclaimer{color:#7c6a58;font-size:.76rem;line-height:1.5;margin:16px 6px 0;padding-top:12px;border-top:2px solid var(--shell-deep)}
.printonly{display:none}
@media (max-width:560px){main{padding:18px;border-radius:32px}.screen{padding:16px;border-radius:20px}.grid2{grid-template-columns:1fr}}
@media print{
 body{background:#fff;padding:0}main{box-shadow:none;border:none;padding:0;border-radius:0}
 .screen{background:#fff;color:#111;border:1px solid #999;box-shadow:none}
 .screen::before,.screw,.solar,.mascots,.actions,.screentop,.chips,.safety{display:none!important}
 h1,.readout .big,.verdict b{color:#111!important}.verdict,.phase,.slot,.readout div{background:#fff;border:1px solid #999;color:#111}
 .readout .lbl,.sub,.stepnote{color:#444!important}h2{color:#111!important}
 table.r th{background:#eee;color:#111}table.r td{color:#111}
 .printonly{display:block}
}
body.dtlocked{overflow:hidden;height:100vh}
body.dtlocked>*:not(#dtGate){pointer-events:none;user-select:none;filter:blur(1px)}
#dtGate{position:fixed;inset:0;z-index:999;display:flex;align-items:center;justify-content:center;padding:18px;
 background:rgba(15,23,42,.72);backdrop-filter:blur(4px)}
#dtGate .gcard{background:var(--shell);border:4px solid #fff;border-radius:34px;max-width:430px;width:100%;padding:26px 24px;
 box-shadow:0 14px 0 var(--shell-lip),0 30px 50px rgba(0,0,0,.4);text-align:center;color:#4a3b2f}
#dtGate img{height:38px;margin-bottom:10px}
#dtGate h3{margin:0 0 6px;font-size:1.15rem;color:var(--warm);font-weight:800}
#dtGate p{margin:0 0 13px;font-size:.87rem;color:#7c6a58;line-height:1.5}
#dtGate .g911{background:#fdecea;color:#b3261e;font-weight:800;font-size:.83rem;border-radius:12px;padding:9px;margin:0 0 13px}
#dtGate input{width:100%;padding:13px;border:2px solid #e2ddd6;border-radius:14px;font-size:1rem;text-align:center;
 letter-spacing:.12em;text-transform:uppercase;font-family:var(--round);font-weight:800;background:#fff;color:#4a3b2f}
#dtGate .gbtn{width:100%;margin-top:11px;padding:14px;border:none;border-radius:16px;background:var(--warm);color:#fff;
 font-size:1rem;font-weight:800;cursor:pointer;font-family:var(--round);box-shadow:0 5px 0 #8a3f1f}
#dtGate .gbtn:active{transform:translateY(5px);box-shadow:0 0 0 #8a3f1f}
#dtGate .gmsg{font-size:.8rem;font-weight:700;color:#b3261e;margin-top:8px;min-height:15px}
#dtGate .gfine{font-size:.75rem;color:#7c6a58;margin-top:11px}
@media print{body.dtlocked>*{display:none!important}}
.daygrid{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 15px}
.daygrid button{width:32px;height:32px;border:2px solid var(--screen-line);background:#0f172a;color:#cbd5e1;
 border-radius:8px;cursor:pointer;font-family:var(--round);font-weight:800;font-size:.8rem;padding:0;font-variant-numeric:tabular-nums}
.daygrid button[data-sel=true]{outline:3px solid var(--cy);outline-offset:1px}
.daygrid button[data-t="3"]{background:var(--mint);color:#0f172a;border-color:var(--mint)}
.daygrid button[data-t="2"]{background:var(--cy);color:#0f172a;border-color:var(--cy)}
.daygrid button[data-t="1"]{background:#1e40af;color:#e2e8f0;border-color:#1e40af}
label.ck{display:flex;gap:10px;align-items:flex-start;background:var(--screen-card);border:2px solid var(--screen-line);
 border-radius:14px;padding:11px 13px;margin:0 0 8px;font-size:.88rem;color:#cbd5e1;cursor:pointer;line-height:1.45}
label.ck input{width:20px;height:20px;accent-color:var(--mint);flex:none;margin-top:1px}
@media print{.daygrid{display:none}label.ck{background:#fff;border:1px solid #999;color:#111}}
