:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f5f7f6;--surface:#fff;--key:#fff;--key-fn:#e7ecea;--key-active:#dfe6e3;--text:#101614;--text-2:#5d6a65;--text-3:#93a09b;--line:#e3e9e6;--accent:#00a86b;--accent-strong:#008f5a;--accent-soft:#d1fae5;--accent-ink:#064e3b;--on-accent:#fff;--danger:#c2410c;--shadow:0 1px 2px #1016140f, 0 1px 1px #1016140a;--key-h:clamp(50px, 8dvh, 66px);--gap:8px;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0e1311;--surface:#161c1a;--key:#1e2623;--key-fn:#161c1a;--key-active:#2a3531;--text:#eef3f1;--text-2:#9fada8;--text-3:#6b7873;--line:#232c29;--accent:#34d399;--accent-strong:#34d399;--accent-soft:#0b3b2c;--accent-ink:#a7f3d0;--on-accent:#03241a;--danger:#fb923c;--shadow:none}}:root[data-accent=blue]{--accent:#3b5bfd;--accent-strong:#2f4be0;--accent-soft:#e0e6ff;--accent-ink:#1e2f99;--on-accent:#fff}:root[data-accent=coral]{--accent:#ff6b4a;--accent-strong:#d9482a;--accent-soft:#ffe4dc;--accent-ink:#8a2a14;--on-accent:#fff}:root[data-accent=violet]{--accent:#a855f7;--accent-strong:#9333ea;--accent-soft:#f3e8ff;--accent-ink:#6b21a8;--on-accent:#fff;--eq-bg:linear-gradient(135deg, #8b5cf6, #ec4899)}@media (prefers-color-scheme:dark){:root[data-accent=blue]{--accent:#7c93ff;--accent-strong:#7c93ff;--accent-soft:#1c2552;--accent-ink:#c7d2fe;--on-accent:#0a1033}:root[data-accent=coral]{--accent:#ff8a6b;--accent-strong:#ff8a6b;--accent-soft:#4a1e12;--accent-ink:#ffd0c2;--on-accent:#3a1005}:root[data-accent=violet]{--accent:#c084fc;--accent-strong:#c084fc;--accent-soft:#3b1a5c;--accent-ink:#e9d5ff;--on-accent:#fff}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);overscroll-behavior:none;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0}.app{height:100dvh;padding:env(safe-area-inset-top) max(14px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));flex-direction:column;max-width:1180px;margin:0 auto;display:flex;position:relative}.history{flex-direction:column;flex:1;min-height:0;display:flex}.panel{flex-direction:column;flex:none;display:flex}@media (width>=760px){.app{padding-top:max(18px, env(safe-area-inset-top));padding-bottom:max(18px, env(safe-area-inset-bottom));padding-left:max(24px, env(safe-area-inset-left));padding-right:max(24px, env(safe-area-inset-right));flex-direction:row;gap:28px}.panel{justify-content:flex-end;width:min(420px,44vw)}:root{--key-h:clamp(54px, 9dvh, 72px);--gap:10px;--line-font:19px}.line-result{font-size:20px}.line-body{min-height:54px}}.history-head{flex:none;justify-content:space-between;align-items:center;height:44px;display:flex;position:relative}.app-title{color:var(--text-2);letter-spacing:.01em;font-size:15px;font-weight:600}.menu-toggle{width:44px;height:44px;color:var(--text-2);border-radius:50%;place-items:center;margin-right:-10px;display:grid}.menu-toggle:active{background:var(--key-active)}.history-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;flex-direction:column-reverse;flex:1;min-height:0;display:flex;overflow:hidden auto}.lines{margin:0;padding:0 0 6px;list-style:none}.day{color:var(--text-3);padding:14px 2px 4px;font-size:12px;font-weight:600}.line{border-bottom:1px solid var(--line);position:relative;overflow:hidden}.line:last-child{border-bottom-color:#0000}.line-del-bg{color:#fff;background:#dc4a2a;justify-content:flex-end;align-items:center;padding-right:16px;font-size:14px;font-weight:600;display:flex;position:absolute;inset:0}.line-body{background:var(--bg);touch-action:pan-y;align-items:center;gap:10px;min-height:48px;padding:4px 2px;transition:transform .18s;display:flex;position:relative}.line-expr{min-width:0;font-size:var(--line-font,17px);color:var(--text-2);scrollbar-width:none;cursor:pointer;flex:1;padding:4px 0;overflow-x:auto}.line-expr::-webkit-scrollbar{display:none}.line-result{color:var(--text);white-space:nowrap;border-radius:10px;flex:none;margin-right:-8px;padding:8px;font-size:18px;font-weight:600;transition:background .15s}.line-result:active{background:var(--accent-soft);color:var(--accent-ink)}.eq-sign{color:var(--text-3);margin-right:6px;font-weight:400}.line-x{width:28px;height:28px;color:var(--text-3);border-radius:50%;flex:none;font-size:18px;line-height:1;display:none}@media (hover:hover) and (pointer:fine){.line-x{opacity:0;transition:opacity .12s;display:block}.line:hover .line-x{opacity:1}.line-x:hover{background:var(--key-active);color:var(--danger)}.line-result:hover,.line .num.tap:hover{background:var(--accent-soft);color:var(--accent-ink)}}.line.fresh .line-body{animation:.32s cubic-bezier(.2,.8,.2,1) rise}.line.leaving{opacity:0;transition:opacity .18s,max-height .18s}.line.leaving .line-body{transition:transform .18s!important;transform:translate(-100%)!important}.empty{text-align:center;max-width:280px;color:var(--text-3);margin:auto;padding:24px 0;font-size:15px;line-height:1.45}.empty p{margin:0 0 6px}.empty-title{color:var(--text-2);font-size:16px;font-weight:600}.expr{white-space:nowrap;display:inline-flex}.row{align-items:center;gap:.26em;min-width:.5em;min-height:1.25em;display:inline-flex}.num{border-radius:.3em;align-items:baseline;margin:0 -.12em;padding:.04em .12em;transition:background .15s,color .15s;display:inline-flex}.num .unit{color:var(--accent-strong);margin-left:.22em;font-size:.72em;font-weight:600}.num.tap{cursor:pointer;color:var(--text);margin:-.1em;padding:.3em .28em}.num.tap:active{background:var(--accent-soft);color:var(--accent-ink)}.num.sel{background:var(--accent-soft);color:var(--accent-ink);margin:0 -.06em;padding:.04em .24em;animation:1.5s ease-in-out infinite pulse}.op,.pct{color:var(--text-2)}.frac{flex-direction:column;align-items:center;margin:.08em .06em;display:inline-flex}.fpart{justify-content:center;padding:0 .22em;font-size:.86em;display:flex}.fbar{background:currentColor;border-radius:1px;align-self:stretch;height:max(1.5px,.055em);margin:.1em 0}.row.slot{border:1.5px dashed var(--text-3);border-radius:.2em;width:.78em;height:.95em;min-height:0}.pg{align-items:stretch;display:inline-flex}.pg-body{align-items:center;gap:.26em;min-width:.3em;display:inline-flex}.paren{border:0 solid var(--text-2);flex:none;width:.34em;min-height:1.1em;margin:.06em .05em}.paren.l{border-left-width:max(1.5px,.07em);border-radius:100% 0 0 100%/50% 0 0 50%}.paren.r{border-right-width:max(1.5px,.07em);border-radius:0 100% 100% 0/0 50% 50% 0}.paren.ghost{border-color:var(--text-3);opacity:.45}.caret{background:var(--accent);border-radius:1px;flex:none;width:2px;height:1.15em;margin:0 -1px;animation:1.1s step-end infinite blink}.input{border-top:1px solid var(--line);flex:none;padding:10px 2px 12px}.input-expr{scrollbar-width:none;cursor:text;justify-content:flex-end;align-items:center;min-height:56px;font-size:30px;display:flex;overflow-x:auto}.input-expr::-webkit-scrollbar{display:none}.input-expr .expr{margin-left:auto;padding:2px 3px}.input-expr.shake{animation:.3s shake}.input-result{justify-content:flex-end;align-items:center;min-height:42px;display:flex}.res{color:var(--accent-strong);white-space:nowrap;font-size:32px;font-weight:650;animation:.2s ease-out pop}.err{color:var(--danger);font-size:17px;animation:.2s ease-out pop}@media (width>=760px){.input{border-top:0;flex-direction:column;flex:1;justify-content:flex-end;padding-bottom:18px;display:flex}.input-expr{min-height:64px;font-size:32px}.res{font-size:38px}}.keypad{gap:var(--gap);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.key{height:var(--key-h);background:var(--key);box-shadow:var(--shadow);border-radius:18px;place-items:center;font-size:24px;font-weight:500;transition:transform 90ms,background .12s,filter .12s;display:grid}.key:active{background:var(--key-active);transform:scale(.93)}.key.fn{background:var(--key-fn);box-shadow:none;color:var(--text-2);font-size:21px}.key.opk{background:var(--key-fn);box-shadow:none;color:var(--accent-strong);font-size:27px}.key.unitk{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent-strong);background:0 0;font-size:18px;font-weight:650}.key.unitk:active{background:var(--accent-soft)}.key.eq{background:var(--eq-bg,var(--accent));color:var(--on-accent);box-shadow:0 6px 16px -6px color-mix(in srgb, var(--accent) 70%, transparent);font-size:30px}.key.eq:active{background:var(--eq-bg,var(--accent));filter:brightness(.92)}.key-frac{flex-direction:column;align-items:center;gap:3px;display:inline-flex}.key-frac span{border:1.6px solid;border-radius:2.5px;width:9px;height:9px}.key-frac i{background:currentColor;border-radius:1px;width:18px;height:1.8px}.menu-backdrop{z-index:9;position:fixed;inset:0}.menu{z-index:10;background:var(--surface);border:1px solid var(--line);transform-origin:100% 0;-webkit-user-select:none;user-select:none;border-radius:18px;width:min(330px,100vw - 28px);padding:6px;animation:.16s ease-out menu-in;position:absolute;top:46px;right:-4px;box-shadow:0 18px 40px -12px #00000047}.menu-row{text-align:left;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:52px;padding:8px 12px;font-size:16px;display:flex}.menu-row+.menu-row{border-top:1px solid var(--line);border-top-left-radius:0;border-top-right-radius:0}.menu-text{flex-direction:column;min-width:0;display:flex}.menu-sub{color:var(--text-2);text-overflow:ellipsis;font-size:13px;overflow:hidden}.menu-actions{gap:8px;display:flex}.menu-btn{background:var(--key-fn);border-radius:10px;flex:none;padding:8px 12px;font-size:14px;font-weight:600}.menu-btn.danger{color:#fff;background:#dc4a2a}.menu-item.danger{color:var(--danger)}.menu-item:disabled{color:var(--text-3);cursor:default}.swatches{gap:10px;display:flex}.swatch{border-radius:50%;width:30px;height:30px;transition:transform .12s,box-shadow .15s}.swatch:active{transform:scale(.9)}.swatch.on{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--text)}.switch{appearance:none;background:var(--key-active);cursor:pointer;border-radius:15px;flex:none;width:50px;height:30px;margin:0;transition:background .18s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .18s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(20px)}.toast{left:50%;top:calc(env(safe-area-inset-top) + 52px);z-index:8;background:var(--text);color:var(--bg);white-space:nowrap;border-radius:14px;align-items:center;gap:14px;padding:10px 10px 10px 16px;font-size:15px;animation:.2s ease-out toast-in;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 10px 28px -10px #0006}.toast button{color:var(--accent);background:color-mix(in srgb, var(--bg) 14%, transparent);border-radius:9px;padding:6px 10px;font-weight:650}.login{-webkit-user-select:text;user-select:text;place-items:center;height:100dvh;padding:24px;display:grid}.login-card{text-align:center;width:min(360px,100%)}.login-icon{border-radius:16px}.login h1{margin:14px 0 6px;font-size:24px}.login p{color:var(--text-2);margin:0 0 16px;font-size:15px;line-height:1.45}.login form{flex-direction:column;display:flex}.login input{font:inherit;border:1.5px solid var(--line);background:var(--surface);height:52px;color:var(--text);border-radius:14px;outline:none;margin-bottom:12px;padding:0 16px;font-size:17px}.login input:focus{border-color:var(--accent)}.login-code{text-align:center;letter-spacing:.3em;font-size:22px!important}.login-primary{background:var(--accent);height:52px;color:var(--on-accent);border-radius:14px;font-size:17px;font-weight:650}.login-primary:disabled{opacity:.6}.login-link{color:var(--text-2);margin-top:14px;padding:8px;font-size:15px}.login-error{color:var(--danger)!important;margin:-4px 0 12px!important}@keyframes blink{50%{opacity:0}}@keyframes pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 28%, transparent)}}@keyframes pop{0%{opacity:0;transform:translateY(5px)}}@keyframes rise{0%{opacity:0;transform:translateY(22px)}}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@keyframes menu-in{0%{opacity:0;transform:scale(.94)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
