.calculator-shell{--calc-bg:#fff;--calc-key:#f1f5f9;--calc-hover:#e6edf5;--calc-text:#152e43;position:fixed;inset:0;z-index:20;pointer-events:none;color:var(--calc-text)}
.calculator-shell[hidden],.calculator-panel[hidden],.calculator-launcher[hidden]{display:none}
.calculator-launcher,.calculator-panel{pointer-events:auto}
.calculator-launcher{position:fixed;right:22px;bottom:22px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;min-height:46px;padding:10px 17px;background:var(--navy);color:#fff;box-shadow:0 5px 20px #0003;font-weight:600}
.calculator-launcher span{font-size:1.3rem;line-height:1}
#sidebar-calculator{width:100%;min-height:46px}
#sidebar-calculator .calculator-launcher{position:static;width:100%;justify-content:center;min-height:44px;padding:10px 12px;border-color:#55758d;border-radius:9px;background:transparent;color:#d5e6f2;box-shadow:none;font-size:.9rem}
#sidebar-calculator .calculator-launcher:hover{background:#24435c;color:#fff}
@media(max-width:850px){.sidebar-bottom{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 0 0}#sidebar-calculator{max-width:240px;flex:1}.sidebar-bottom #logout{width:auto}}
.calculator-panel{position:fixed;left:12px;top:12px;width:min(330px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;border:1px solid var(--line);border-radius:14px;padding:14px;background:var(--calc-bg);box-shadow:0 12px 45px #0004}
.calculator-header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}
.calculator-grip,.calculator-close{border:0;background:transparent;color:inherit;min-height:38px;border-radius:7px}
.calculator-grip{display:flex;align-items:center;gap:8px;flex:1;padding:6px 4px;font-weight:600;text-align:left;cursor:grab;touch-action:none;user-select:none}
.calculator-grip span{color:var(--muted);font-size:1.3rem}
.calculator-dragging .calculator-grip{cursor:grabbing}
.calculator-close{width:38px;padding:4px;font-size:1.5rem;line-height:1}
.calculator-close:hover{background:var(--calc-hover)}
.calculator-expression-label{font-size:.8rem;color:var(--muted);font-weight:400}
#calculator-expression{margin-top:4px;min-height:42px;text-align:right;direction:ltr;font-size:1rem}
#calculator-result{display:block;width:100%;margin:4px 0 10px;border:0;border-radius:0;padding:5px 0;background:transparent;min-height:48px;text-align:right;direction:ltr;font-size:1.65rem;font-weight:600;font-variant-numeric:tabular-nums;color:inherit}
.calculator-keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
.calculator-keys button{min-width:0;min-height:44px;padding:7px 4px;border:1px solid var(--line);border-radius:8px;background:var(--calc-key);color:inherit;font-size:1.05rem;font-variant-numeric:tabular-nums}
.calculator-keys button:hover{background:var(--calc-hover)}
.calculator-keys .calculator-copy{font-size:.78rem;grid-column:span 2}
.calculator-keys .calculator-equals{background:var(--teal);border-color:var(--teal);color:#fff}
.calculator-keys .calculator-equals:hover{filter:brightness(.93);background:var(--teal)}
.calculator-status{font-size:.75rem;color:var(--muted);line-height:1.45;margin-top:10px;min-height:2.2em;overflow-wrap:anywhere}
.calculator-status.calculator-error{color:var(--danger)}
html[data-theme="night"] .calculator-shell{--calc-bg:#142334;--calc-key:#1b3043;--calc-hover:#28465f;--calc-text:#e2edf6}
@media(max-height:600px){.calculator-panel{padding:10px}.calculator-header{margin-bottom:4px}.calculator-keys{gap:4px}.calculator-keys button{min-height:36px;padding:4px}.calculator-status{min-height:0;margin-top:6px}}
@media(pointer:coarse){.calculator-close,.calculator-grip{min-height:44px}.calculator-close{min-width:44px}.calculator-keys button{min-height:44px}}
