/* Calculatified v7 */
:root{--bg:#000;--bg2:#08090b;--card:#0e0f12;--card2:#15171c;--line:#262931;--line2:#343843;--text:#f5f7fa;--muted:#a3a9b6;--accent:#3b82f6;--accent2:#60a5fa;--accent-ink:#fff;--soft:rgba(59,130,246,.12);--good:#34d399;--bad:#f87171;--warn:#fbbf24;--shadow:0 1px 0 rgba(255,255,255,.03),0 10px 30px rgba(0,0,0,.35);
--c0:#3b82f6;--c1:#f59e0b;--c2:#10b981;--c3:#ec4899;--c4:#8b5cf6;--c5:#94a3b8;--r:14px;--maxw:1120px;color-scheme:dark}
:root[data-theme="light"]{--bg:#fff;--bg2:#f6f8fb;--card:#fff;--card2:#f3f6fa;--line:#e2e8f0;--line2:#cbd5e1;--text:#0b0f17;--muted:#4b5563;--accent:#2563eb;--accent2:#1d4ed8;--soft:rgba(37,99,235,.08);--good:#059669;--bad:#dc2626;--warn:#b45309;--shadow:0 1px 2px rgba(15,23,42,.06),0 8px 24px rgba(15,23,42,.06);--c0:#2563eb;--c1:#d97706;--c2:#059669;--c3:#db2777;--c4:#7c3aed;--c5:#64748b;color-scheme:light}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,Inter,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent2);text-decoration:none}a:hover{text-decoration:underline}
:root[data-theme="light"] a{color:var(--accent)}
img,svg{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.hidden{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header */
.top{position:sticky;top:0;z-index:30;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
@supports not (background:color-mix(in srgb,red 50%,blue)){.top{background:var(--bg)}}
.bar{display:flex;align-items:center;gap:12px;height:62px}
.brand{display:flex;align-items:center;gap:9px;color:var(--text)!important;text-decoration:none!important;flex:none}
.logo{width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-weight:900;font-size:17px;letter-spacing:-.5px;box-shadow:0 4px 14px rgba(59,130,246,.35)}
.word{font-weight:850;font-size:21px;letter-spacing:-.6px}.word b{color:var(--accent2);font-weight:850}
:root[data-theme="light"] .word b{color:var(--accent)}
.search{position:relative;flex:1;max-width:460px;margin:0 auto}
.search input{width:100%;height:40px;border-radius:999px;border:1px solid var(--line2);background:var(--card);padding:0 14px 0 38px;outline:none;transition:border-color .15s,box-shadow .15s}
.search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.search svg{position:absolute;left:13px;top:11px;width:18px;height:18px;opacity:.6;pointer-events:none}
.sres{position:absolute;left:0;right:0;top:46px;background:var(--card);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;max-height:70vh;overflow-y:auto;z-index:40}
.sres a{display:block;padding:10px 14px;color:var(--text)!important;border-bottom:1px solid var(--line);text-decoration:none!important}
.sres a:last-child{border-bottom:0}
.sres a:hover,.sres a.on{background:var(--soft)}
.sres small{display:block;color:var(--muted);font-size:13px;line-height:1.35}
.sres .none{padding:12px 14px;color:var(--muted)}
.tools{display:flex;gap:8px;flex:none}
.ibtn{height:38px;min-width:38px;border-radius:999px;border:1px solid var(--line2);background:var(--card);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0 12px;font-size:14px;font-weight:650;white-space:nowrap}
.ibtn:hover{border-color:var(--accent)}
.ibtn svg{width:18px;height:18px}
.ibtn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.cats{display:flex;flex-wrap:wrap;gap:6px 6px;padding:0 0 10px;justify-content:center}
.cats a{font-size:14px;font-weight:650;color:var(--muted)!important;padding:5px 12px;border-radius:999px;border:1px solid transparent;text-decoration:none!important}
.cats a:hover{color:var(--text)!important;border-color:var(--line2)}
.cats a.on{color:var(--text)!important;background:var(--soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
@media (max-width:760px){
  .bar{height:56px;gap:8px}.word{font-size:19px}
  .search{position:static;flex:none;margin:0 0 0 auto;max-width:none}
  .search input{display:none}.search.open input{display:block;position:absolute;left:12px;right:12px;top:8px;width:auto;z-index:41;height:40px}
  .search .sbtn{display:inline-grid!important}
  .search svg.si{display:none}.search.open svg.si{display:block;left:25px;top:19px;z-index:42}
  .sres{left:12px;right:12px;top:54px}
  .install-txt{display:none}
  .cats{gap:4px;padding-bottom:8px}.cats a{font-size:13px;padding:4px 9px}
  .ibtn{padding:0 10px}
}

.search .sbtn{display:none}
.search .sbtn svg{position:static;opacity:1;width:18px;height:18px}

/* page */
main{padding:18px 0 40px}
.crumbs{font-size:13px;color:var(--muted);margin:2px 0 10px}
.crumbs a{color:var(--muted)!important}.crumbs span{margin:0 6px;opacity:.6}
h1{font-size:clamp(28px,4.6vw,42px);line-height:1.1;letter-spacing:-.9px;margin:0 0 8px;font-weight:850}
.lede{color:var(--muted);font-size:17px;margin:0 0 18px;max-width:760px}
h2{font-size:24px;letter-spacing:-.4px;line-height:1.2;margin:34px 0 10px}
h3{font-size:18px;margin:22px 0 8px}

/* calculator */
.calc{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}
@media (min-width:960px){.calc{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.calc .out{position:sticky;top:132px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.in{padding:18px}
.fields{display:grid;grid-template-columns:1fr 1fr;gap:12px 12px}
.fld{margin:0;min-width:0}
.fld.wide,.fld.seg,.fld.check{grid-column:1/-1}
.lay-trio .fields{grid-template-columns:repeat(3,1fr)}
.lay-trio .fld.seg,.lay-trio .fld.check,.lay-trio .fld.wide{grid-column:1/-1}
.lay-pairs .fields{grid-template-columns:1fr 1fr}
.lay-timesheet .fields{grid-template-columns:repeat(3,1fr)}
.fld>label,.fld legend{display:block;font-size:13.5px;font-weight:650;color:var(--muted);margin:0 0 5px;line-height:1.3}
.fld legend{padding:0}
fieldset.fld{border:0;padding:0}
.inp{position:relative;display:flex;align-items:center;background:var(--bg2);border:1px solid var(--line2);border-radius:11px;transition:border-color .15s,box-shadow .15s}
.inp:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--soft)}
.inp input,.inp select,.inp textarea{flex:1;min-width:0;width:100%;border:0;background:transparent;outline:none;height:44px;padding:0 12px;font-size:16.5px;font-variant-numeric:tabular-nums}
.inp textarea{height:auto;padding:10px 12px;resize:vertical;line-height:1.5;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px}
.inp select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 12px center}
.inp select option{background:var(--card);color:var(--text)}
.inp i{font-style:normal;color:var(--muted);font-size:15px;padding:0 0 0 12px;white-space:nowrap}
.inp i.post{padding:0 12px 0 0}
.inp.has-pre input{padding-left:5px}
.inp input[type=date],.inp input[type=time]{min-height:44px}
.hint{display:block;color:var(--muted);font-size:12.5px;margin-top:4px;line-height:1.35}
.segs{display:flex;flex-wrap:wrap;gap:6px;background:var(--bg2);border:1px solid var(--line2);border-radius:12px;padding:4px}
.segs label{flex:1 1 auto;position:relative;cursor:pointer}
.segs input{position:absolute;opacity:0;pointer-events:none}
.segs span{display:block;text-align:center;padding:8px 10px;border-radius:9px;font-size:14px;font-weight:650;color:var(--muted);white-space:nowrap}
.segs input:checked+span{background:var(--accent);color:#fff}
.segs input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.fld.check label{display:flex;gap:10px;align-items:center;cursor:pointer;font-size:15px;color:var(--text);font-weight:550;margin:2px 0}
.fld.check input{width:20px;height:20px;accent-color:var(--accent)}
.acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.btn{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 15px;border-radius:999px;border:1px solid var(--line2);background:var(--card2);cursor:pointer;font-size:14.5px;font-weight:650;color:var(--text)}
.btn:hover{border-color:var(--accent)}
.btn.main{background:var(--accent);border-color:var(--accent);color:#fff}
.btn svg{width:16px;height:16px}
.btn.ghost{background:transparent}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:650;font-size:14px;opacity:0;transition:.2s;pointer-events:none;z-index:60}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* results */
.out{padding:18px;min-height:140px}
.out-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px}
.out-h b{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.live{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px}
.live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--good);box-shadow:0 0 0 3px color-mix(in srgb,var(--good) 25%,transparent)}
.res-mains{display:grid;gap:10px;grid-template-columns:1fr}
.res-mains.multi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.res-main{background:linear-gradient(180deg,var(--soft),transparent 140%);border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;padding:14px 16px;min-width:0}
.res-main .lbl{font-size:13.5px;color:var(--muted);font-weight:650}
.res-main .val{font-size:clamp(26px,3.4vw,36px);font-weight:850;letter-spacing:-.7px;line-height:1.15;margin-top:2px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.res-main .val.long{font-size:clamp(19px,2.3vw,24px);letter-spacing:-.2px}
.res-main .sub{font-size:14px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}
.res-rows{margin:14px 0 0;display:grid;grid-template-columns:1fr}
.res-rows div{display:flex;justify-content:space-between;gap:16px;padding:9px 2px;border-bottom:1px solid var(--line)}
.res-rows div:last-child{border-bottom:0}
.res-rows dt{color:var(--muted);font-size:14.5px}
.res-rows dd{margin:0;text-align:right;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;min-width:0}
.res-rows small{color:var(--muted);font-weight:500}
.res-note{font-size:14px;color:var(--muted);background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:12px 0 0}
.res-err{border:1px solid color-mix(in srgb,var(--bad) 50%,var(--line));background:color-mix(in srgb,var(--bad) 10%,transparent);color:var(--text);border-radius:12px;padding:14px 16px;font-weight:550}
.good{color:var(--good)}.bad{color:var(--bad)}.warn{color:var(--warn)}
.fx{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:var(--bg2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;white-space:normal;overflow-wrap:anywhere;display:inline}
.mathout{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82em;letter-spacing:0}
.steps{margin:16px 0 0;border:1px solid var(--line);border-radius:12px;background:var(--bg2)}
.steps summary{cursor:pointer;padding:11px 14px;font-weight:750;list-style:none;display:flex;align-items:center;gap:8px}
.steps summary::-webkit-details-marker{display:none}
.steps summary:before{content:"";width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(-45deg);transition:.15s;margin-right:2px}
.steps[open] summary:before{transform:rotate(45deg)}
.steps ol{margin:0;padding:0 16px 14px 36px}
.steps li{margin:6px 0;line-height:1.6}
.res-chart{margin:14px 0 0}
.chart-title{font-size:13.5px;color:var(--muted);font-weight:650;margin:0 0 4px}
svg.xy{width:100%;height:auto;display:block}
svg.xy .grid{stroke:var(--line);stroke-width:1}
svg.xy .ax{fill:var(--muted);font-size:11px}
svg.xy .ln{fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
svg.xy .dash{stroke-dasharray:6 5}
svg.xy .area{opacity:.28}
svg .f0,.legend .f0{fill:var(--c0);background:var(--c0)}svg .f1,.legend .f1{fill:var(--c1);background:var(--c1)}svg .f2,.legend .f2{fill:var(--c2);background:var(--c2)}svg .f3,.legend .f3{fill:var(--c3);background:var(--c3)}svg .f4,.legend .f4{fill:var(--c4);background:var(--c4)}svg .f5,.legend .f5{fill:var(--c5);background:var(--c5)}
svg .sk0{stroke:var(--c0)}svg .sk1{stroke:var(--c1)}svg .sk2{stroke:var(--c2)}svg .sk3{stroke:var(--c3)}svg .sk4{stroke:var(--c4)}svg .sk5{stroke:var(--c5)}
.pie{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center}
.pie svg{width:150px;height:150px}
.pie circle{fill:none}
@media (max-width:420px){.pie{grid-template-columns:1fr;justify-items:center}}
.legend{list-style:none;margin:0;padding:0;font-size:14px}
.legend li{display:grid;grid-template-columns:12px 1fr auto auto;gap:8px;align-items:center;padding:4px 0}
.legend i{width:12px;height:12px;border-radius:3px;display:block}
.legend b{font-variant-numeric:tabular-nums}.legend em{font-style:normal;color:var(--muted);font-size:13px;min-width:46px;text-align:right}
.legend.row{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:6px}
.legend.row li{display:flex;gap:6px}
.res-table{margin:16px 0 0}
.res-table h3{font-size:15px;margin:0 0 8px}
.tscroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.res-table table{width:100%;border-collapse:collapse;font-size:14px;font-variant-numeric:tabular-nums}
.res-table th{background:var(--bg2);text-align:right;font-weight:700;color:var(--muted);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;padding:9px 12px;white-space:nowrap}
.res-table td{text-align:right;padding:8px 12px;border-top:1px solid var(--line);white-space:nowrap}
.res-table th:first-child,.res-table td:first-child{text-align:left}
.res-table tr.more{display:none}.res-table.all tr.more{display:table-row}
.show-all{margin-top:10px}
.shape{display:flex;justify-content:center;margin:12px 0 0}
.shape svg{width:100%;max-width:300px;height:auto}
.shape polygon,.shape circle{fill:var(--soft);stroke:var(--accent);stroke-width:2}
.shape .ra{fill:none;stroke:var(--muted);stroke-width:1.5}
.shape .dim{stroke:var(--muted);stroke-dasharray:4 4}
.shape text{fill:var(--text);font-size:13px;font-weight:650}
.gauge{position:relative;margin:16px 4px 4px}
.gbar{display:flex;height:10px;border-radius:999px;overflow:hidden}
.gbar i{display:block}.gbar i:nth-child(1){background:var(--c5)}.gbar i:nth-child(2){background:var(--c2)}.gbar i:nth-child(3){background:var(--c1)}.gbar i:nth-child(4){background:var(--bad)}
.gauge>b{position:absolute;top:-5px;width:4px;height:20px;border-radius:3px;background:var(--text);transform:translateX(-2px);box-shadow:0 0 0 2px var(--bg)}
.glab{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin-top:6px}
.glab span:nth-child(2){margin-left:-6%}.glab span:nth-child(3){margin-left:-12%}
.frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;line-height:1.05;font-size:.8em}
.frac span:first-child{border-bottom:2px solid currentColor;padding:0 4px 2px}.frac span:last-child{padding-top:2px}
table.matrix{border-collapse:collapse;display:inline-table;margin:4px 0;font-size:16px;border-left:2px solid var(--text);border-right:2px solid var(--text);border-radius:4px}
table.matrix td{padding:4px 10px;text-align:center;font-variant-numeric:tabular-nums;font-weight:650}
.bignum{margin:12px 0 0}.bignum code{display:block;word-break:break-all;font-size:13px;background:var(--bg2);border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:6px;max-height:220px;overflow:auto}
.small-list{font-size:20px;line-height:1.5;letter-spacing:0}

/* ads */
.ad{margin:22px 0;text-align:center;min-height:100px}
.ad-lbl{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
html.ads-off .ad{display:none}

/* article */
.article{max-width:820px}
.article p,.article li{color:color-mix(in srgb,var(--text) 88%,var(--muted))}
.article code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:var(--card2);border:1px solid var(--line);border-radius:7px;padding:2px 7px;overflow-wrap:anywhere}
.article p>code:only-child{display:block;padding:12px 14px;font-size:15px;text-align:center}
.article table{border-collapse:collapse;width:100%;margin:10px 0;font-size:15px}
.article th,.article td{border:1px solid var(--line);padding:8px 10px;text-align:left}
.article th{background:var(--card2)}
.article ol.how{counter-reset:s;list-style:none;padding:0}
.article ol.how li{counter-increment:s;position:relative;padding:4px 0 4px 40px;margin:6px 0}
.article ol.how li:before{content:counter(s);position:absolute;left:0;top:3px;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--accent2);font-weight:800;display:grid;place-items:center;font-size:14px}
.faq details{border:1px solid var(--line);border-radius:12px;margin:8px 0;background:var(--card)}
.faq summary{cursor:pointer;padding:13px 16px;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";font-size:20px;line-height:1;color:var(--muted)}
.faq details[open] summary:after{content:"−"}
.faq details>div{padding:0 16px 12px}
.faq details>div p:first-child{margin-top:0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;color:var(--text)!important;text-decoration:none!important;transition:border-color .15s,transform .15s}
.tile:hover{border-color:var(--accent);transform:translateY(-1px)}
.tile b{display:block;font-size:16px;letter-spacing:-.2px}
.tile span{display:block;color:var(--muted);font-size:14px;line-height:1.45;margin-top:3px}
.updated{color:var(--muted);font-size:13px;margin-top:26px}

/* home */
.hero{text-align:center;padding:34px 0 10px}
.hero h1{font-size:clamp(34px,6.4vw,62px);letter-spacing:-1.6px;margin:0 auto 12px;max-width:880px}
.hero h1 em{font-style:normal;color:var(--accent2)}
:root[data-theme="light"] .hero h1 em{color:var(--accent)}
.hero p{color:var(--muted);font-size:18px;max-width:640px;margin:0 auto 22px}
.hero .search{max-width:620px}
.hero .search input{height:54px;font-size:17px;padding-left:46px;display:block!important;position:static!important}
.hero .search svg.si{left:17px;top:18px;display:block!important}
.hero .sres{top:60px;text-align:left}
.stats{display:flex;justify-content:center;gap:10px 22px;flex-wrap:wrap;margin:18px 0 6px;color:var(--muted);font-size:14px}
.stats b{color:var(--text)}
.catbox{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px}
.catbox h2{margin:0 0 6px;font-size:19px;display:flex;justify-content:space-between;align-items:baseline}
.catbox h2 a{color:var(--text)!important}.catbox h2 small{font-size:13px;color:var(--muted);font-weight:600}
.catbox ul{list-style:none;padding:0;margin:0;columns:1}
.catbox li a{display:block;padding:5px 0;color:var(--muted)!important;font-size:15px;border-bottom:1px solid var(--line);text-decoration:none!important}
.catbox li:last-child a{border-bottom:0}
.catbox li a:hover{color:var(--accent2)!important}
.cats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;margin-top:14px}
.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.why div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}
.why b{display:block;margin-bottom:4px}
.why span{color:var(--muted);font-size:14.5px}
.prose{max-width:760px}

/* footer */
footer{border-top:1px solid var(--line);padding:22px 0 30px;text-align:center;color:var(--muted);font-size:14px}
footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;margin-bottom:8px}
footer nav a{color:var(--muted)!important}
footer nav a:hover{color:var(--text)!important}
footer p{margin:4px 0}

/* scientific widget */
.sci{max-width:560px}
.sci .disp{background:var(--bg2);border:1px solid var(--line2);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.sci .disp input{width:100%;border:0;background:transparent;outline:none;font:500 20px/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text);text-align:right;padding:0}
.sci .disp .res{text-align:right;font-size:34px;font-weight:850;letter-spacing:-.5px;min-height:44px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.sci .disp .res.err{font-size:15px;color:var(--bad);font-weight:600;padding-top:10px}
.sci .disp .alt{text-align:right;color:var(--muted);font-size:14px;min-height:20px}
.sci .modes{display:flex;justify-content:space-between;align-items:center;margin:0 0 6px;font-size:12px;color:var(--muted)}
.sci .modes b{color:var(--accent2)}
.keys{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.keys button{height:48px;border-radius:11px;border:1px solid var(--line);background:var(--card2);cursor:pointer;font-size:16px;font-weight:650;color:var(--text);touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.keys button:hover{border-color:var(--line2);filter:brightness(1.12)}
.keys button:active{transform:scale(.97)}
.keys .num{background:var(--card);font-size:19px}
.keys .op{color:var(--accent2);font-size:20px}
:root[data-theme="light"] .keys .op{color:var(--accent)}
.keys .eq{background:var(--accent);border-color:var(--accent);color:#fff;font-size:22px}
.keys .fn{font-size:14px}
.keys .clr{color:var(--bad)}
.keys .on{background:var(--accent);color:#fff;border-color:var(--accent)}
.hist{margin-top:14px}
.hist h3{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px}
.hist ul{list-style:none;padding:0;margin:0;max-height:240px;overflow:auto}
.hist li{display:flex;justify-content:space-between;gap:12px;padding:7px 4px;border-bottom:1px solid var(--line);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14px}
.hist li:hover{background:var(--soft)}
.hist li b{font-family:system-ui,sans-serif}
.hist .empty{color:var(--muted);cursor:default;font-family:inherit}
@media (min-width:960px){.sci-wrap{display:grid;grid-template-columns:minmax(0,560px) minmax(0,1fr);gap:18px;align-items:start}}

/* graphing widget */
.gwrap{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
@media (min-width:960px){.gwrap{grid-template-columns:330px minmax(0,1fr)}}
.gfn{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.gfn .dot{width:14px;height:14px;border-radius:50%;flex:none}
.gfn .inp{flex:1}
.gfn .inp input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:15px;height:40px}
.gfn .inp i{font-size:14px}
.gfn button{width:32px;height:32px;border-radius:50%;border:1px solid var(--line2);background:var(--card2);cursor:pointer;flex:none}
.gcanvas{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg2);touch-action:none}
.gcanvas canvas{display:block;width:100%;height:440px;cursor:crosshair}
@media (max-width:600px){.gcanvas canvas{height:340px}}
.gtip{position:absolute;pointer-events:none;background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:4px 8px;font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;box-shadow:var(--shadow)}
.gctl{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:6px}
.gctl button{width:36px;height:36px;border-radius:10px;border:1px solid var(--line2);background:var(--card);cursor:pointer;font-size:18px;font-weight:700}
.ganal{font-size:14.5px}
.ganal h3{font-size:15px;margin:14px 0 6px}
.ganal ul{margin:0;padding-left:18px}
.ganal li{margin:3px 0;font-variant-numeric:tabular-nums}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 10px}
.chips button{border:1px solid var(--line2);background:var(--card2);border-radius:999px;padding:4px 10px;font-size:13px;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.chips button:hover{border-color:var(--accent)}

/* install sheet */
.sheet{position:fixed;inset:auto 12px 12px 12px;max-width:420px;margin:0 auto;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:16px 18px;box-shadow:0 20px 50px rgba(0,0,0,.45);z-index:70}
.sheet h3{margin:0 0 6px}
.sheet p{margin:6px 0;color:var(--muted);font-size:15px}
.sheet .x{position:absolute;right:10px;top:8px;border:0;background:none;font-size:22px;cursor:pointer;color:var(--muted)}

/* print */
@media print{
  .top,footer,.ad,.acts,.faq,.related,.no-print,.hist,.gctl{display:none!important}
  body{background:#fff;color:#000;font-size:12pt}
  .card{box-shadow:none;border-color:#ccc}
  .calc{grid-template-columns:1fr 1fr}
  .steps{break-inside:avoid}
  .res-table tr.more{display:table-row}
  a{color:#000}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media (max-width:600px){
  .in{padding:14px}
  .fields,.lay-trio .fields,.lay-pairs .fields,.lay-timesheet .fields{grid-template-columns:1fr;gap:10px}
  .fld:not(.wide):not(.seg):not(.check){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:0 10px}
  .fld:not(.wide):not(.seg):not(.check)>label{margin:0}
  .fld:not(.wide):not(.seg):not(.check) .hint{grid-column:1/-1}
  .inp input,.inp select{height:42px}
  .out{padding:14px}
  .res-main{padding:12px 14px}
}
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--card);border-top:1px solid var(--line2);box-shadow:0 -8px 24px rgba(0,0,0,.35);padding:10px 16px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:12px;transform:translateY(110%);transition:transform .2s}
.mbar.show{transform:none}
.mbar span{color:var(--muted);font-size:13px;line-height:1.2}
.mbar b{display:block;color:var(--text);font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.mbar button{flex:none}
@media (min-width:960px){.mbar{display:none}}

/* home flip-book */
.book-tabs,.book-foot{display:none}
.book-tabs .short{display:none}
html.js .home{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
html.js .home .top{flex:none}
html.js .home .cats{display:none}
html.js .home main{flex:1;display:flex;min-height:0;padding:10px 0 12px}
html.js .home main>.wrap{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}
html.js .home .hero{padding:12px 0 14px}
html.js .home .hero h1{font-size:clamp(28px,4.4vw,46px);margin-bottom:6px}
html.js .home .hero p{font-size:16px;margin-bottom:14px}
html.js .home .hero .search input{height:48px}
html.js .home .hero .search svg.si{top:15px}
html.js .home .hero .sres{top:54px}
html.js .book{flex:1;min-height:300px;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
html.js .book-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:14px 16px;border-bottom:1px solid var(--line)}
.book-tabs button{border:0;background:var(--card2);color:var(--text);border-radius:999px;padding:8px 15px;font-weight:700;font-size:14.5px;cursor:pointer;display:inline-flex;gap:7px;align-items:center}
.book-tabs button small{font-size:12px;color:var(--muted);font-weight:700}
.book-tabs button:hover{filter:brightness(1.15)}
.book-tabs button.on{background:var(--accent);color:#fff}.book-tabs button.on small{color:rgba(255,255,255,.8)}
html.js .book-body{flex:1;min-height:0;position:relative;overflow:auto;padding:16px}
html.js .book.ready .book-body{overflow:hidden}
html.js .book.ready .book-page{display:none}
html.js .book-page{display:grid;margin-bottom:12px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;align-content:start}
html.js .book.ready .book-page.on{display:grid;margin-bottom:0;animation:flip .28s ease}
html.js .book-page.back{animation-name:flipb}
@keyframes flip{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes flipb{from{opacity:0;transform:translateX(-26px)}to{opacity:1;transform:none}}
html.js .book-page .tile{height:92px;overflow:hidden;background:var(--soft);border-color:transparent;padding:12px 15px}
html.js .book-page .tile:hover{border-color:var(--accent)}
html.js .book-page .tile span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px}
html.js .book.ready .book-page .tile.off{display:none}
html.js .book-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-top:1px solid var(--line)}
.book-btn{height:42px;min-width:46px;border-radius:999px;border:0;background:var(--card2);color:var(--text);font-weight:750;font-size:16px;cursor:pointer;padding:0 16px}
.book-btn:disabled{opacity:.35;cursor:default}
.book-btn.next{background:var(--soft);color:var(--accent2)}
:root[data-theme="light"] .book-btn.next{color:var(--accent)}
#bkCount{font-weight:750;color:var(--muted);font-variant-numeric:tabular-nums}
html.js .home footer{padding:8px 0 10px;font-size:12.5px}
html.js .home footer nav{margin-bottom:2px;gap:4px 14px}
html.js .home footer p{margin:0}
@media (max-width:760px){
  html.js .home .hero{padding:4px 0 10px}
  html.js .home .hero h1{font-size:22px;letter-spacing:-.5px}
  html.js .home .hero p{display:none}
  html.js .home .hero .search input{height:44px;font-size:16px}
  html.js .home .hero .search svg.si{top:13px}
  html.js .book{border-radius:18px}
  html.js .book-tabs{padding:10px;gap:6px}
  html.js .book-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  .book-tabs button{padding:7px 2px;font-size:12.5px;justify-content:center}
  .book-tabs button small,.book-tabs .long{display:none}
  .book-tabs .short{display:inline}
  html.js .book-body{padding:10px}
  html.js .book-page{grid-template-columns:1fr;gap:8px}
  html.js .book-page .tile{height:66px;padding:9px 13px}
  html.js .book-page .tile b{font-size:15px}
  html.js .book-page .tile span{-webkit-line-clamp:1}
}
html.js .book-page .tile b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.js .book-page .tile{height:84px}
@media (max-height:820px) and (min-width:761px){html.js .home .hero p{display:none}html.js .home .hero{padding:8px 0 12px}html.js .home .hero h1{font-size:34px}html.js .book-tabs{padding:10px 14px}html.js .book-body{padding:12px 14px}html.js .book-page{gap:10px}}
@media (max-width:760px){html.js .book-page .tile{height:60px;padding:8px 13px}html.js .book-page .tile span{margin-top:1px}html.js .book-foot{padding:8px 10px}.book-btn{height:38px}html.js .home footer nav{gap:2px 12px}}

footer p.copy{margin:6px 0 0;text-align:center;font-weight:600}
html.js .book-tabs{flex-wrap:nowrap}
@media (min-width:761px){html.js .book-tabs{justify-content:space-between}.book-tabs button{flex:1 1 auto;justify-content:center}}
@media (max-width:760px){html.js .book-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}html.js .book-tabs button{flex:0 0 calc(25% - 5px)}}
@media (max-width:760px){html.js .home .hero h1{white-space:nowrap;max-width:none;letter-spacing:-.02em;font-size:min(26px,calc((100vw - 34px) / 19))}}
