: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}.readout__actions{display:flex;flex-direction:column;gap:6px;flex:none}.readout__action{position:relative;flex:1;display:flex;align-items:center;justify-content:center;width:44px;color:var(--text-dim);background:var(--key);border:1px solid var(--line);border-radius:10px;transition:transform .08s ease,filter .08s ease}.readout__action:active:not(:disabled){transform:scale(.96);filter:brightness(1.35)}.readout__action:disabled{opacity:.4;cursor:default}.readout__count{position:absolute;top:-5px;right:-5px;min-width:18px;padding:1px 5px;font-size:11px;font-weight:700;line-height:16px;text-align:center;color:#14161b;background:var(--accent);border-radius:9px}.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)}.modal{margin:max(24px,env(safe-area-inset-top)) auto auto;width:min(440px,calc(100vw - 28px));max-height:calc(100dvh - 48px);padding:0;color:var(--text);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 18px 50px #00000080;overflow:hidden}.modal::backdrop{background:#08090ca8}.modal__body{display:flex;flex-direction:column;gap:14px;max-height:calc(100dvh - 50px);padding:16px;outline:none}.modal__actions{display:flex;justify-content:flex-end;gap:8px}.button{padding:10px 16px;font-size:15px;font-weight:600;background:var(--key-fn);border-radius:10px}.button--primary{color:#14161b;background:var(--accent)}.button:disabled{opacity:.4;cursor:default}.icon-button{flex:none;display:flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--text-dim);border-radius:10px}.icon-button:active{background:var(--key)}.button:focus-visible,.icon-button:focus-visible,.readout__action:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon-button--danger{color:#ff6b6b}.text-input{width:100%;min-width:0;padding:11px 12px;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:2px solid transparent;border-radius:10px;outline:none}.text-input::placeholder{color:var(--text-dim)}.text-input:focus{border-color:var(--accent)}.text-input--invalid,.text-input--invalid:focus{border-color:#ff6b6b}.save{display:flex;flex-direction:column;gap:14px}.save__value{display:flex;flex-direction:column;align-items:center;gap:2px}.save__mixed{font-size:34px;font-weight:600}.save__decimal{font-size:13px;color:var(--text-dim)}.saved__header{display:flex;align-items:center;justify-content:space-between;flex:none}.saved__title{font-size:18px;font-weight:700}.saved__empty{padding:18px 8px 22px;font-size:14px;line-height:1.45;text-align:center;color:var(--text-dim)}.saved__list{display:flex;flex-direction:column;gap:8px;min-height:0;margin:0 -4px;padding:0 4px;overflow-y:auto;list-style:none}.saved-item{display:flex;align-items:center;gap:2px;flex:none;padding:8px 6px 8px 12px;background:var(--surface-raised);border:1px solid var(--line);border-radius:12px}.saved-item--editing{padding:10px;border-color:#ff9f0a8c}.saved-item__main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;cursor:pointer}.checkbox__input{position:absolute;opacity:0;pointer-events:none}.checkbox{flex:none;display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:transparent;border:2px solid var(--text-dim);border-radius:7px}.checkbox__input:checked+.checkbox{color:#14161b;background:var(--accent);border-color:var(--accent)}.checkbox__input:focus-visible+.checkbox{outline:2px solid var(--accent);outline-offset:2px}.saved-item__text{display:flex;flex-direction:column;gap:2px;min-width:0}.saved-item__label{font-size:13px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saved-item__label--empty{font-style:italic;opacity:.7}.saved-item__value{display:flex;align-items:center;gap:8px;font-size:22px;font-weight:600}.saved-item__decimal{font-size:12px;font-weight:400;color:var(--text-dim)}.saved-item--checked .saved-item__text{opacity:.45}.saved-item--checked .saved-item__label{text-decoration:line-through}.saved-edit{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.saved-edit__row{display:flex;gap:8px}.saved-edit__value{flex:1}@media(prefers-reduced-motion:reduce){.key,.readout__action,.field__caret{transition:none;animation:none}}
