:root{--bg: #14161b;--surface: #1c1f26;--surface-raised: #262b35;--key: #2c313c;--key-fn: #383f4c;--accent: #ff9f0a;--accent-dim: rgba(255, 159, 10, .16);--text: #f2f4f8;--text-dim: #8b93a3;--line: rgba(255, 255, 255, .1);--radius: 14px;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.app{display:flex;flex-direction:column;gap:14px;height:100dvh;max-width:520px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom));-webkit-user-select:none;user-select:none}.readout{display:flex;align-items:stretch;gap:8px;flex:none}.equation{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;display:flex;align-items:center;min-height:84px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.equation::-webkit-scrollbar{display:none}.equation__track{display:flex;align-items:center;gap:6px;margin-left:auto;white-space:nowrap;font-size:22px}.equation__placeholder{color:var(--text-dim);font-size:15px}.equation__op,.equation__paren{color:var(--accent);padding:0 2px}.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:#ffffff12;border:1px solid var(--line);border-radius:10px}.pill--active{background:var(--accent-dim);border-color:#ff9f0a8c}.pill__unit{font-size:12px;color:var(--text-dim)}.readout__equals{display:flex;align-items:center;color:var(--text-dim);font-size:20px}.result{flex:none;width:104px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 6px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.result__mixed{font-size:26px;font-weight:600;line-height:1.1}.result__decimal,.result__empty{font-size:12px;color:var(--text-dim)}.result__empty{font-size:24px}.result__error{font-size:12px;color:#ff6b6b;text-align:center}.mixed{display:inline-flex;align-items:center;gap:.28em}.fraction{display:inline-flex;flex-direction:column;align-items:center;font-size:.58em;line-height:1.05}.fraction__bar{align-self:stretch;height:1px;margin:1px 0;background:currentColor}.entry{display:flex;align-items:center;gap:14px;flex:none}.modes{display:flex;flex-direction:column;gap:6px;flex:none}.mode{width:58px;padding:7px 0;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--text-dim);background:var(--key);border:1px solid var(--line);border-radius:9px}.mode--active{color:#14161b;background:var(--accent);border-color:transparent}.fields{display:flex;align-items:flex-end;gap:10px;flex:1;min-width:0}.field-group{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.field-group--decimal{flex:1}.fields__pair{display:flex;align-items:center;gap:4px}.fields__slash{font-size:26px;color:var(--text-dim)}.field{position:relative;display:flex;align-items:center;justify-content:center;min-width:52px;height:56px;padding:0 10px;font-size:28px;background:var(--surface);border:2px solid transparent;border-radius:10px}.field--wide{min-width:72px;width:100%}.field--empty .field__value{color:var(--text-dim)}.field--focused{border-color:var(--accent);background:var(--surface-raised)}.field:disabled{cursor:default}.field__caret{width:2px;height:28px;margin-left:3px;background:var(--accent);animation:blink 1.1s step-end infinite}@keyframes blink{50%{opacity:0}}.field__label{font-size:11px;color:var(--text-dim);letter-spacing:.04em}.entry__unit{align-self:center;font-size:15px;color:var(--text-dim)}.keypad{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:1fr;gap:9px}.key{display:flex;align-items:center;justify-content:center;font-size:clamp(20px,6vw,28px);background:var(--key);border-radius:var(--radius);transition:transform .08s ease,filter .08s ease}.key--fn{background:var(--key-fn);font-size:clamp(17px,5vw,22px);color:var(--text-dim)}.key--op{background:var(--accent-dim);color:var(--accent);font-weight:600}.key--equals{background:var(--accent);color:#14161b}.key:active{transform:scale(.96);filter:brightness(1.35)}@media(prefers-reduced-motion:reduce){.key,.field__caret{transition:none;animation:none}}
