:root,[data-theme=dark]{--bg-color:#0f111a;--card-bg:#1a1c23;--display-bg:#13141b;--modal-bg:#1f222e;--text-main:#f8f9fa;--text-muted:#8b92a8;--border-color:#2e3346;--key-num-bg:#272a38;--key-num-hover:#323648;--key-func-bg:#353b50;--key-func-hover:#414863;--key-op-bg:#4f46e5;--key-op-hover:#4338ca;--key-equals-bg:#06b6d4;--key-equals-hover:#0891b2;--key-text:#fff;--shadow-color:#0006}[data-theme=light]{--bg-color:#f1f3f9;--card-bg:#fff;--display-bg:#f8f9fc;--modal-bg:#fff;--text-main:#1f2937;--text-muted:#6b7280;--border-color:#e5e7eb;--key-num-bg:#f3f4f6;--key-num-hover:#e5e7eb;--key-func-bg:#e2e8f0;--key-func-hover:#cbd5e1;--key-op-bg:#6366f1;--key-op-hover:#4f46e5;--key-equals-bg:#0284c7;--key-equals-hover:#0369a1;--key-text:#1f2937;--shadow-color:#00000014}[data-theme=retro]{--bg-color:#2b2e30;--card-bg:#d7d1c5;--display-bg:#9ea98a;--modal-bg:#eae5db;--text-main:#192211;--text-muted:#4a5440;--border-color:#bab3a4;--key-num-bg:#ece8de;--key-num-hover:#ded8cb;--key-func-bg:#c5beaf;--key-func-hover:#b5ad9d;--key-op-bg:#3d4349;--key-op-hover:#2f3439;--key-equals-bg:#d9532f;--key-equals-hover:#be4321;--key-text:#192211;--shadow-color:#00000059}[data-theme=retro] .display-container{border:2px solid #848e72;box-shadow:inset 0 2px 5px #0000004d,0 1px #ffffff80}[data-theme=retro] .main-display,[data-theme=retro] .history-display{letter-spacing:-.02em;font-family:Courier New,Courier,monospace;font-weight:800}[data-theme=retro] .key.op,[data-theme=retro] .key.equals{color:#fff}[data-theme=oled]{--bg-color:#000;--card-bg:#000;--display-bg:#0a0a0a;--modal-bg:#111;--text-main:#fff;--text-muted:#888;--border-color:#222;--key-num-bg:#141414;--key-num-hover:#222;--key-func-bg:#1e1e1e;--key-func-hover:#2c2c2c;--key-op-bg:#2563eb;--key-op-hover:#1d4ed8;--key-equals-bg:#10b981;--key-equals-hover:#059669;--key-text:#fff;--shadow-color:#000000e6}[data-theme=cyberpunk]{--bg-color:#090514;--card-bg:#150d2a;--display-bg:#0d071d;--modal-bg:#1d1238;--text-main:#00f0ff;--text-muted:#c084fc;--border-color:#a855f744;--key-num-bg:#251347;--key-num-hover:#371a69;--key-func-bg:#3b186b;--key-func-hover:#532096;--key-op-bg:#ff007f;--key-op-hover:#d6006b;--key-equals-bg:#ffd600;--key-equals-hover:#e6c000;--key-text:#fff;--shadow-color:#ff007f26}[data-theme=cyberpunk] .key.equals{color:#12052b;font-weight:800}[data-theme=light] .key.op,[data-theme=light] .key.equals{color:#fff}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}body{background-color:var(--bg-color);width:100vw;height:100vh;color:var(--text-main);justify-content:center;align-items:center;padding:16px;transition:background-color .25s;display:flex;overflow:hidden}#app{width:100%;max-width:400px;height:100%;max-height:680px;transition:max-width .25s;display:flex}[data-mode=scientific] #app{max-width:720px;max-height:680px}.calculator-card{background:var(--card-bg);box-shadow:0 12px 32px var(--shadow-color);border-radius:24px;flex-direction:column;gap:14px;width:100%;height:100%;padding:20px;transition:all .25s;display:flex}@media (display-mode:standalone),(display-mode:window-controls-overlay){body{background-color:var(--card-bg);padding:0}#app{max-width:100%!important;max-height:100%!important}.calculator-card{box-shadow:none;border-radius:0;height:100vh;padding:16px}}.calc-header{flex:none;justify-content:space-between;align-items:center;display:flex}.header-actions{gap:4px;display:flex}.app-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:14px;font-weight:600}.icon-button{cursor:pointer;width:34px;height:34px;color:var(--text-muted);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:6px;transition:background-color .15s,color .15s,transform 80ms;display:inline-flex}.icon-button:hover{background:var(--key-num-hover);color:var(--text-main)}.icon-button:active{transform:scale(.92)}.icon-button svg{stroke:currentColor;fill:none;width:18px;height:18px;display:block}.display-container{background:var(--display-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:16px;flex-direction:column;flex:none;justify-content:flex-end;align-items:flex-end;min-height:84px;max-height:120px;padding:14px 18px;transition:background-color .15s,transform 80ms;display:flex;position:relative;overflow:hidden}.display-container:hover{filter:brightness(1.04)}.display-container:active{transform:scale(.99)}.copy-toast{background:var(--key-op-bg);color:#fff;opacity:0;pointer-events:none;z-index:10;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;transition:opacity .2s,transform .2s;position:absolute;top:10px;left:50%;transform:translate(-50%)translateY(-6px);box-shadow:0 4px 12px #0000004d}.copy-toast.visible{opacity:1;transform:translate(-50%)translateY(0)}.display-meta{justify-content:space-between;align-items:center;width:100%;min-height:20px;display:flex}.badges-group{align-items:center;gap:6px;display:flex}.memory-badge{background:var(--key-op-bg);color:#fff;opacity:0;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.2;transition:opacity .2s}.angle-badge{background:var(--key-func-bg);color:var(--text-muted);border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.2;display:none}.paren-badge{background:var(--key-equals-bg);color:#fff;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;line-height:1.2;display:none}.history-display{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;text-align:right;flex:1;font-size:14px;overflow:hidden}.main-display{color:var(--text-main);white-space:nowrap;text-align:right;font-size:38px;font-weight:700;line-height:1.15;transition:font-size .1s;overflow:hidden}.memory-bar{flex:none;grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.mem-btn{appearance:none;background:var(--key-func-bg);color:var(--text-muted);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:8px 4px;font-size:13px;font-weight:600;transition:background-color .15s,color .15s,opacity .15s;display:flex}.mem-btn:hover:not(:disabled){background-color:var(--key-func-hover);color:var(--text-main)}.mem-btn:disabled{opacity:.35;cursor:not-allowed}.keypads-wrapper{flex-direction:row;flex:1;gap:10px;min-height:0;display:flex}.scientific-keypad{flex:1;grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(4,1fr);gap:10px;min-height:0;display:none}[data-mode=scientific] .scientific-keypad{display:grid}.keypad{flex:1;grid-template-rows:repeat(5,1fr);grid-template-columns:repeat(4,1fr);gap:10px;min-height:0;display:grid}.key{appearance:none;cursor:pointer;border:none;border-radius:16px;outline:none;justify-content:center;align-items:center;height:100%;min-height:40px;font-size:clamp(16px,2.5vh,22px);font-weight:600;transition:transform 80ms,background-color .15s,filter .15s;display:flex}.key.sci{background-color:var(--key-func-bg);color:var(--text-main);font-size:clamp(13px,2vh,16px)}.key.sci:hover{background-color:var(--key-func-hover)}.key.sci.angle-btn{color:var(--key-equals-bg);font-weight:700}@media (width<=580px) and (orientation:portrait){[data-mode=scientific] #app{max-height:100vh}[data-mode=scientific] .calculator-card{gap:8px;padding:12px}[data-mode=scientific] .display-container{min-height:64px;max-height:80px;padding:10px 14px}[data-mode=scientific] .main-display{font-size:26px}[data-mode=scientific] .memory-bar{gap:4px}[data-mode=scientific] .mem-btn{padding:4px;font-size:11px}[data-mode=scientific] .keypads-wrapper{flex-direction:column;gap:6px}[data-mode=scientific] .scientific-keypad,[data-mode=scientific] .keypad{gap:6px}[data-mode=scientific] .key{border-radius:10px;min-height:32px;font-size:14px}}@media (orientation:landscape) and (height<=520px){body{padding:4px}#app{max-width:100%!important;max-height:100%!important}.calculator-card{border-radius:16px;gap:6px;padding:8px 12px}.calc-header{display:none}.display-container{min-height:44px;max-height:52px;padding:6px 12px}.main-display{font-size:22px}.history-display{min-height:14px;font-size:11px}.memory-bar{gap:6px}.mem-btn{border-radius:6px;padding:3px 6px;font-size:11px}.keypads-wrapper{gap:8px;flex-direction:row!important}.scientific-keypad{gap:6px;display:grid!important}.angle-badge{display:inline-block!important}.keypad{gap:6px}.key{border-radius:8px;min-height:28px;font-size:13px}}.key:active{transform:scale(.94)}.key:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.key.num{background-color:var(--key-num-bg);color:var(--text-main)}.key.num:hover{background-color:var(--key-num-hover)}.key.func{background-color:var(--key-func-bg);color:var(--text-main)}.key.func:hover{background-color:var(--key-func-hover)}.key.op{background-color:var(--key-op-bg);color:#fff}.key.op:hover{background-color:var(--key-op-hover)}.key.equals{background-color:var(--key-equals-bg);color:#fff}.key.equals:hover{background-color:var(--key-equals-hover)}.history-dialog{border:1px solid var(--border-color);background:var(--modal-bg);color:var(--text-main);border-radius:20px;width:90%;max-width:360px;max-height:80vh;margin:auto;padding:18px 20px;overflow:hidden;box-shadow:0 16px 40px #00000080}.history-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.history-content{flex-direction:column;gap:12px;height:100%;max-height:calc(80vh - 36px);display:flex}.history-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:8px;display:flex}.history-title-group{align-items:center;gap:8px;display:flex}.history-title-group h3{margin:0;font-size:16px;font-weight:700}.history-header-actions{align-items:center;gap:4px;display:flex}.close-icon-btn{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:14px;font-weight:700;transition:background .15s,color .15s;display:flex}.close-icon-btn:hover{background:var(--key-num-hover);color:var(--text-main)}.history-list{scrollbar-width:thin;scrollbar-color:var(--border-color) transparent;flex-direction:column;gap:8px;max-height:380px;padding-right:4px;display:flex;overflow-y:auto}.history-list::-webkit-scrollbar{width:6px}.history-list::-webkit-scrollbar-track{background:0 0}.history-list::-webkit-scrollbar-thumb{background-color:var(--border-color);border-radius:6px}.history-empty{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:36px 0;font-size:13px;display:flex}.history-item-wrapper{touch-action:pan-y;border-radius:12px;transition:max-height .25s,opacity .25s,margin .25s;position:relative;overflow:hidden}.history-item-wrapper.deleting{opacity:0!important;max-height:0!important;margin:0!important;padding:0!important}.history-item-delete-bg{color:#fff;background:#e78284;border-radius:12px;justify-content:flex-end;align-items:center;padding-right:16px;display:flex;position:absolute;inset:0}.history-item{background:var(--key-num-bg);cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;transition:transform .15s,background-color .15s;display:flex;position:relative}.history-item.swiping{transition:none}.history-item:hover{background:var(--key-num-hover);border-color:var(--border-color)}.history-item-del-btn{width:24px;height:24px;color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;margin-right:8px;transition:background-color .15s,color .15s,opacity .15s;display:inline-flex}.history-item-del-btn:hover{opacity:1;color:#e78284;background:#e7828433}.history-item-body{flex-direction:column;flex:1;align-items:flex-end;min-width:0;display:flex}.history-item-eq{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:13px;overflow:hidden}.history-item-res{color:var(--text-main);font-size:20px;font-weight:700}.about-dialog{border:1px solid var(--border-color);background:var(--modal-bg);color:var(--text-main);border-radius:20px;width:90%;max-width:320px;margin:auto;padding:24px;box-shadow:0 16px 40px #00000080}.about-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}.about-content{-webkit-user-select:text;user-select:text;flex-direction:column;gap:14px;display:flex}.about-header{flex-direction:column;gap:4px;display:flex}.about-badge{background:var(--key-op-bg);color:#fff;text-transform:uppercase;border-radius:12px;align-self:flex-start;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.about-header h2{font-size:18px;font-weight:700}.about-desc{color:var(--text-muted);font-size:13px;line-height:1.4}.about-divider{border:none;border-top:1px solid var(--border-color);margin:2px 0}.about-details{flex-direction:column;gap:8px;font-size:13px;display:flex}.about-row{justify-content:space-between;align-items:center;display:flex}.about-row .label{color:var(--text-muted)}.about-row .value{font-weight:600}.about-row .link{color:var(--key-equals-bg);text-decoration:none}.about-row .link:hover{text-decoration:underline}.close-btn{background:var(--key-op-bg);color:#fff;cursor:pointer;border:none;border-radius:12px;margin-top:8px;padding:10px;font-size:14px;font-weight:600;transition:background .15s}.close-btn:hover{background:var(--key-op-hover)}@media (hover:none){.key:active{filter:brightness(1.2)}}@media (shape:round),(width<=360px) and (height<=460px){body{padding:0;overflow:hidden}#app{width:100vw;max-width:100vw;height:100vh;max-height:100vh}.calculator-card{box-shadow:none;border:none;border-radius:50%;justify-content:space-between;gap:4px;padding:26px 14px 22px}.app-title{display:none}.header-actions{justify-content:center;gap:4px;width:100%}.icon-button{width:26px;height:26px;padding:3px}.icon-button svg{width:14px;height:14px}.display-container{border-radius:10px;min-height:44px;max-height:54px;padding:4px 10px}.main-display{font-size:22px;line-height:1.1}.memory-bar{display:none}.keypad{gap:3px}.key{border-radius:8px;min-height:28px;font-size:13px}}
