:root{color-scheme:light;--bg:#e9eeea;--panel:#f3f6ed;--bar:#d7e0da;--ink:#192e2a;--muted:#596c66;--line:#bcc9c2;--accent:#007b68;--key:#d9e1db;--number:#f8faf7;--lime:#b0cb50;--gold:#876000;--shadow:0 12px 50px #192e2a12;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,textarea,select{font:inherit;color:inherit}button,select{cursor:pointer}button{border:1px solid transparent;border-radius:8px;padding:9px 13px;background:transparent;color:var(--accent);font-weight:600}button:hover{background:var(--bar)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}h1{font-size:27px;letter-spacing:2px;margin:0;font-weight:800}h2{font-size:20px;margin:0}a{color:var(--accent)}.instrument{max-width:1120px;margin:0 auto;min-height:100dvh;box-shadow:var(--shadow)}header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;gap:12px}.header-actions{display:flex;gap:6px}.header-actions button{font-weight:500;color:var(--ink)}.mode-bar{background:var(--bar);padding:13px 25px;display:flex;align-items:center;gap:16px}.mode-bar select{border:0;background:transparent;padding:8px 0;font-size:15px}.mode-bar #mode{margin-right:auto;max-width:65%;font-weight:600;letter-spacing:.4px}.mode-bar #angle{color:var(--accent)}.runtime-bar{display:flex;gap:8px;align-items:center;padding:5px 25px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--line)}#status{flex:1}.runtime-bar button{padding:5px 8px}main{background:var(--panel)}.workspace{padding:22px 28px}.edit-actions{display:flex;justify-content:flex-end;border-bottom:1px solid var(--line);margin-bottom:16px;padding-bottom:8px}.edit-actions button{min-width:70px}label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--muted);margin-bottom:12px}input,textarea,select{border:1px solid var(--line);border-radius:7px;background:var(--number);padding:10px 12px;min-width:0;width:100%;color:var(--ink)}textarea{resize:vertical;line-height:1.7}select{padding-right:24px}#expression{font-size:24px;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;min-height:94px;padding:12px 0;font-family:"Cambria Math",Cambria,serif}.expression-preview{overflow-x:auto;min-height:12px}.form-row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:8px}.form-row label{flex:1;min-width:115px;margin:0}.form-row button{background:var(--bar);color:var(--accent);min-height:42px}.form-row>input{flex:1;min-width:110px;width:auto}.form-row.ranges label{min-width:85px}.check{flex-direction:row;align-items:center;padding:10px 0}.check input{width:auto}.hint{font-size:12px;color:var(--muted);line-height:1.7;white-space:pre-wrap}.code,pre{font-family:Consolas,"SFMono-Regular",monospace;font-size:14px}pre{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;padding:15px;background:var(--bg);border-radius:6px;max-height:500px;overflow:auto}pre:empty{display:none}.answer-panel{padding:10px 28px 20px;border-top:1px solid var(--line)}.answer-toolbar{display:flex;gap:14px;align-items:center}.answer-toolbar #exact-toggle{margin-right:auto;color:var(--ink)}#answer{min-height:95px;display:flex;align-items:center;justify-content:flex-end;padding:20px 0;font-family:"Cambria Math",Cambria,serif;font-size:30px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere;overflow-x:auto}.empty{font:15px system-ui;color:var(--muted)}.error{color:#a73825;font:15px system-ui}math{font-family:"Cambria Math",Cambria,serif;font-size:1em}#answer math{flex-shrink:0;max-width:100%}.answer-panel #note:empty{display:none}.keypad-workspace{background:var(--bg);padding-top:14px}.keypad{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}.key{background:var(--key);border:1px solid var(--line);border-radius:10px;min-height:55px;padding:12px 4px 7px;font-size:22px;color:var(--ink);position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:4px}.key small{font-size:10px;line-height:1;color:var(--gold);font-weight:400;min-height:10px}.key.number{background:var(--number);font-size:27px}.key.primary{background:var(--accent);color:white}.key.shift{background:#795700;color:white}.key.shift.active{background:#b2820c}.key.clear{background:var(--lime)}.key:hover{filter:brightness(.97);background:var(--bar)}.key.primary:hover{background:#006553}.key.wide{grid-column:span 2}.matrix-grid{display:grid;gap:8px;margin:20px 0;overflow-x:auto}.matrix-grid input{min-width:60px;text-align:center}.plot{margin:18px 0;background:var(--number);border:1px solid var(--line);border-radius:8px;overflow:hidden}.plot:empty{display:none}.plot svg{display:block;width:100%;height:auto;max-height:520px}.scroll-table{max-height:280px;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;border-bottom:1px solid var(--line);padding:9px 12px}th{position:sticky;top:0;background:var(--bg)}.list-row{display:flex;gap:8px;align-items:center;border-bottom:1px solid var(--line);padding:10px 0}.list-row .content{flex:1;min-width:0;overflow-wrap:anywhere}.list-row code{font-size:14px}.list-row button{flex-shrink:0}footer{padding:20px 28px;font-size:11px;color:var(--muted);display:flex;gap:5px;flex-wrap:wrap}#offline-status{margin-left:auto}dialog{max-width:720px;width:calc(100% - 32px);max-height:85dvh;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--ink);padding:22px;box-shadow:var(--shadow)}dialog::backdrop{background:#192e2a70}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}#dialog-body{overflow-wrap:anywhere}.catalog-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:10px}.catalog-tabs button{white-space:nowrap;font-size:12px}.catalog-tabs button.active{background:var(--bar)}.catalog-entry{display:flex;align-items:center;border-bottom:1px solid var(--line)}.catalog-entry button:first-child{flex:1;text-align:left;font-family:Consolas,monospace;font-weight:400}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);padding:13px 20px;background:var(--ink);color:var(--panel);border-radius:8px;max-width:90vw;z-index:10;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:900px){body{padding:22px}.instrument{border-radius:14px;overflow:hidden;min-height:calc(100dvh - 44px)}.keypad{grid-template-columns:repeat(6,minmax(0,1fr))}.key{min-height:64px}.workspace[data-mode="scientific"]{padding-bottom:12px}#expression{font-size:28px}}
@media(max-width:600px){:root{font-size:14px}header{padding:15px 16px}h1{font-size:23px}.header-actions{gap:0}.header-actions button{padding:8px;font-size:12px}.mode-bar{padding:10px 16px;gap:10px}.mode-bar select{font-size:12px}.mode-bar button{padding:5px;font-size:11px}.runtime-bar{padding:5px 16px}.workspace{padding:18px 16px}.answer-panel{padding:10px 16px 15px}#expression{font-size:21px}#answer{font-size:27px;min-height:110px}.keypad{gap:6px}.key{font-size:19px;min-height:55px;border-radius:8px}.key.number{font-size:24px}.key small{font-size:8px}.keypad-workspace{padding:12px 10px 20px}.form-row{gap:8px}.form-row label{min-width:100px}.form-row.ranges label{min-width:calc(50% - 8px)}.answer-toolbar{gap:2px}.answer-toolbar button{font-size:12px}footer{padding:18px 16px}.matrix-grid{gap:4px}.matrix-grid input{padding:8px 3px}.list-row{flex-wrap:wrap}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#202b27;--panel:#17251f;--bar:#304139;--ink:#e2eee6;--muted:#a4b8ab;--line:#4b6052;--accent:#76d6b7;--key:#304038;--number:#26382f;--lime:#a2bb50;--gold:#dbc174}[data-theme="dark"] .key.primary{background:#076c58}[data-theme="dark"] .key.clear{color:#142419}[data-theme="dark"] .error{color:#ffab95}[data-theme="dark"] .key:hover{background:var(--bar)}
header{flex-wrap:wrap}.header-actions{margin-left:auto}.preferences{display:flex;gap:8px}.preferences select{width:auto;font-size:12px;background:transparent;padding:7px 20px 7px 8px}.preferences select#language{min-width:86px}
@media(max-width:600px){.preferences{width:100%;justify-content:flex-end;border-top:1px solid var(--line);padding-top:8px}.preferences select{padding:4px 20px 4px 8px}header{row-gap:10px}}
