:root{--lcd-top: #C3DCBC;--lcd-mid: #B6CFB1;--lcd-bottom: #A1B89E;--lcd-shadow: #5A6B58;--lcd-dark: #102020;--lcd-dim: rgb(120, 140, 105);--lcd-error: #7a1a1a;--body-top: #646464;--body-bottom: #585858;--status-bg: #646464;--btn-outline: #232323;--btn-top: #656565;--btn-mid: #565656;--btn-bottom: #414141;--btn-text: #F2F2F2;--gold-top: #E1DD70;--gold-mid: #D4D160;--gold-bottom: #A39E38;--gold-text: #3A3A22;--yellow-label: #D4D160;--active-border: rgb(212, 209, 96);--condensed: "Arial Narrow", "Segoe UI", system-ui, sans-serif;--lcd-font: "Consolas", "SF Mono", "DejaVu Sans Mono", monospace}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#2b2b2b}#app{width:100%;min-width:260px}.calc-shell{width:100%;height:100vh;height:100dvh;min-height:560px}.calc-root{width:100%;height:100%;display:grid;grid-template-rows:clamp(26px,3dvh,40px) clamp(86px,18dvh,200px) minmax(0,1fr);font-family:"Segoe UI",var(--condensed),sans-serif;user-select:none}.ribbon{display:flex;align-items:center;justify-content:center;background:var(--status-bg);color:#eee;font-size:clamp(11px,1.5dvh,15px);letter-spacing:2px}.lcd{container-type:inline-size;display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);column-gap:clamp(4px,1vw,16px);padding:clamp(5px,1dvh,12px) clamp(8px,1.5vw,24px);background:linear-gradient(to bottom,var(--lcd-top),var(--lcd-mid) 55%,var(--lcd-bottom));border-bottom:2px solid var(--lcd-shadow);color:var(--lcd-dark);font-family:var(--lcd-font);font-weight:700}.lcd-indicators{grid-column:1 / -1;display:flex;gap:clamp(4px,1vw,18px);align-items:center}.lcd-indicator{min-width:2.5em;font-size:clamp(10px,1.5dvh,15px);line-height:1.2;color:var(--lcd-dim)}.lcd-indicator.on{color:var(--lcd-dark)}.lcd-varname{grid-column:1;grid-row:2;align-items:center;font-size:clamp(14px,2.8dvh,24px);white-space:nowrap}.lcd-value{grid-column:2;grid-row:2;min-width:0;display:flex;align-items:center;justify-content:flex-end;font-size:min(clamp(20px,5dvh,64px),calc(100cqw * var(--value-scale, .2)));white-space:nowrap}.lcd-value.error{color:var(--lcd-error)}.keypad{min-width:0;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(9,minmax(11px,.35fr) minmax(35px,1fr));column-gap:clamp(4px,.8vw,14px);padding:0 clamp(4px,.8vw,14px) clamp(4px,.8dvh,10px);background:linear-gradient(to bottom,var(--body-top),var(--body-bottom))}.key-2ndlabel{min-width:0;display:flex;align-items:center;justify-content:center;font-family:var(--condensed);font-size:clamp(8px,min(2.75vw,1.8dvh),17px);font-weight:700;color:var(--yellow-label);pointer-events:none;line-height:1;white-space:nowrap}.key-2ndlabel-action{padding:0;border:0;background:transparent;cursor:pointer;pointer-events:auto;touch-action:manipulation}.key-2ndlabel-action:focus-visible{outline:2px solid #fff;outline-offset:-2px}.key{min-width:0;min-height:0;border-radius:clamp(5px,1dvh,12px);border:1px solid var(--btn-outline);background:linear-gradient(to bottom,var(--btn-top),var(--btn-mid) 50%,var(--btn-bottom));cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;margin:0;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #00000047;color:var(--btn-text);font-family:var(--condensed);font-size:clamp(14px,min(4vw,3.5dvh),28px);font-weight:700;line-height:1;touch-action:manipulation}.key:focus{outline:none}.key:focus-visible{outline:3px solid #fff;outline-offset:-4px}.key .label{pointer-events:none}.key.small{font-size:clamp(12px,min(3.5vw,3dvh),24px)}.key.gold{background:linear-gradient(to bottom,var(--gold-top),var(--gold-mid) 50%,var(--gold-bottom));color:var(--gold-text)}.key.pressed{background:linear-gradient(to bottom,var(--btn-bottom),var(--btn-mid) 60%);transform:translateY(1px)}.key.gold.pressed{background:linear-gradient(to bottom,var(--gold-bottom),var(--gold-mid) 60%)}.key.active-2nd{outline:2px solid var(--active-border);outline-offset:-3px}.key.active-2nd:focus-visible{outline:3px solid #fff;outline-offset:-4px}.help-dialog{max-width:min(540px,calc(100vw - 24px));max-height:85dvh;overflow:auto;background:#f6f4ee;color:#202722;border:0;border-radius:16px;padding:clamp(18px,5vw,28px);font:16px/1.5 system-ui}.help-dialog::backdrop{background:#000a}.help-dialog h1{font-size:24px;margin-top:0}.help-dialog h2{font-size:18px}.help-dialog button{padding:10px 24px;border:0;background:#254c3c;color:#fff;border-radius:8px;cursor:pointer}
