body:has(.cabinet-viewport){overflow-y:auto!important;height:auto!important;min-height:100dvh;padding-bottom:32px;background:#091422}
.cabinet-viewport{position:relative;width:min(100%,960px);margin:16px auto 0;overflow:hidden;border:1px solid #31536b;border-radius:18px;box-shadow:0 16px 70px #0008;background:#0a1828}
.cabinet-viewport canvas{position:relative!important;display:block!important;margin:0!important;max-width:100%;}
.cabinet-console{position:relative;z-index:2;max-width:960px;margin:0 auto;padding:20px;background:#10243a;border:1px solid #31536b;border-radius:0 0 18px 18px;font:16px/1.55 system-ui,sans-serif;color:#ecf5ff;}
.cabinet-prompt{font-size:18px;font-weight:650;line-height:1.5}.cabinet-progress{color:#b8d5eb;margin-top:8px}.cabinet-feedback{color:#ffdd8a;min-height:26px;margin:12px 0}.cabinet-controls,.cabinet-levels{display:flex;flex-wrap:wrap;gap:8px}
.cabinet-console button{min-height:48px;padding:10px 16px;background:#1b3f5a;color:#fff;border:1px solid #5e92b3;border-radius:10px;font:600 16px/1.25 system-ui;cursor:pointer;touch-action:manipulation;}
.cabinet-console button:focus-visible,.cabinet-console summary:focus-visible{outline:3px solid #ffd17b;outline-offset:4px}.cabinet-console button:hover{background:#2b5774}.cabinet-console button:disabled{opacity:.6;cursor:wait}.cabinet-next{margin:12px 0;background:#186648!important}.cabinet-console [hidden]{display:none!important}.cabinet-console details{margin:16px 0}.cabinet-console summary{cursor:pointer;color:#b9e1ff}.cabinet-screen-text{white-space:pre-wrap;font:16px/1.6 system-ui;color:#ecf5ff;padding:12px;background:#081523;border-radius:10px}.cabinet-levels{padding-top:12px;border-top:1px solid #34516b;align-items:center}.cabinet-levels span{width:100%;color:#b8d5eb;font-size:14px}
@media(max-width:600px){.cabinet-viewport{border-radius:10px;margin-top:10px}.cabinet-console{padding:16px 12px}.cabinet-controls button{flex:1 1 110px}.cabinet-prompt{font-size:18px}}

body:has(.cabinet-viewport) .nt-chrome-dock{display:none!important;}

/* Expedition scenes publish their own deck; the Support/Challenge switch belongs to the skill run. */
.cabinet-console.cabinet-expedition-mode .cabinet-levels { display: none; }
.cabinet-console.cabinet-expedition-mode .cabinet-next { display: none; }
.cabinet-controls .cabinet-expedition-entry {
  background: linear-gradient(135deg, #ffd76a, #ffb347);
  color: #1b1200;
  font-weight: 800;
}

/* Construct the part after constructing its percent bar. Native controls keep
   the mathematical action available without precise pointer or canvas text. */
.percent-construction{margin:18px 0;padding:20px;border:2px solid #8fd6a0;border-radius:14px;background:#122f29;scroll-margin:20px}
.percent-construction label{display:block;font-size:20px;font-weight:750;color:#fff}
.percent-construction label span{font-size:16px;font-weight:400;color:#d3ecdf}
.percent-construction p{font-size:16px;line-height:1.55;margin:10px 0}
.percent-amount-row{display:flex;flex-wrap:wrap;gap:10px}
.percent-amount-row input{min-width:0;flex:1 1 150px;width:100%;max-width:260px;font:600 22px/1.5 system-ui;padding:10px 14px;border:2px solid #7ac496;border-radius:10px;background:#071b13;color:#fff;min-height:50px}
.percent-amount-row input:focus-visible{outline:3px solid #ffd17b;outline-offset:4px}
.percent-amount-row input[aria-invalid=true]{border-color:#ffcb77}
.percent-amount-status{color:#ffdf98;min-height:1.5em}
@media(max-width:600px){.percent-construction{padding:16px 12px}.percent-amount-row input{max-width:none}.percent-amount-row button{flex:1 1 160px}}
