:root{
--bg:#fff;--fg:#000;--muted:#555;--border:#000;--btn:#fff;--btnH:#eee;--eq:#000;--eqFg:#fff;color-scheme:light}
[data-theme="dark"]{
--bg:#000;--fg:#fff;--muted:#aaa;--border:#fff;--btn:#000;--btnH:#222;--eq:#fff;--eqFg:#000;color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html{font-size:16px}
body{margin:0;min-height:100dvh;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--fg);line-height:1.4}
button{
font-family:Arial,Helvetica,sans-serif;font-size:inherit;color:inherit;cursor:pointer;
border:1px solid var(--border);background:var(--btn);padding:.4rem .7rem}
button:hover{background:var(--btnH)}
button:disabled{opacity:.4;cursor:not-allowed}
button:focus-visible{outline:2px solid var(--fg);outline-offset:2px}
.top{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid var(--border)}
.top strong{font-size:1rem;font-weight:bold}
.tr{display:flex;gap:.4rem}
.tr button{font-size:.85rem}
main{padding:1.25rem 1rem 2rem}
.wrap{max-width:380px;margin:0 auto}
.tabs{display:flex;gap:.4rem;margin-bottom:.75rem;flex-wrap:wrap}
.tabs button{font-size:.85rem}
.tab.on{background:var(--fg);color:var(--bg)}
.calc{border:1px solid var(--border)}
.disp{padding:1rem;min-height:90px;border-bottom:1px solid var(--border);text-align:right;word-break:break-all}
.expr{font-size:.85rem;color:var(--muted);min-height:1.2em;margin-bottom:.25rem}
.val{font-size:1.75rem;font-weight:bold}
.disp.oops .val{font-size:1rem}
.err{font-size:.8rem;margin-top:.25rem;color:var(--muted)}
.pad{padding:.5rem}
.sci{display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}
.sci[hidden]{display:none}
.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:.35rem}
.btn{min-height:48px;font-size:1rem;padding:.35rem;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.sci .btn{min-height:36px;font-size:.75rem}
.eq{background:var(--eq);color:var(--eqFg);font-weight:bold}
.eq:hover{background:var(--eq);opacity:.85}
.hint{margin:.75rem 0 0;font-size:.75rem;color:var(--muted);text-align:center}
.hist{margin-top:1.25rem;border:1px solid var(--border);padding:.75rem}
.hist[hidden]{display:none}
.hh{display:flex;justify-content:space-between;align-items:center;margin-bottom:.35rem;font-weight:bold;font-size:.9rem}
.hh button{font-size:.8rem;font-weight:normal}
.hn{margin:0 0 .6rem;font-size:.75rem;color:var(--muted)}
.hl{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem;max-height:280px;overflow-y:auto}
.hi{display:grid;grid-template-columns:1fr auto;gap:.15rem .5rem;padding:.45rem;border:1px solid var(--border)}
.he,.hr{text-align:left;border:none;background:none;padding:0;font-size:.85rem;word-break:break-all}
.he{color:var(--muted);font-size:.8rem}
.hr{font-weight:bold;grid-column:1}
.he:hover,.hr:hover{text-decoration:underline;background:none}
.hd{grid-column:2;grid-row:1 / span 2;align-self:center;min-width:28px;padding:.2rem .4rem;font-size:1rem;line-height:1}
.hemp{margin:.75rem 0 0;text-align:center;font-size:.85rem;color:var(--muted)}
.hemp[hidden]{display:none}
@media (max-width:400px){
.sci .btn{font-size:.68rem;min-height:32px}
.btn{min-height:44px}
}
