@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#f5f4fb;--bg-soft:#efedf8;--bg-panel:#fff;--border:#e3e0f1;--text:#1e1b3a;--text-muted:#625e86;--accent:#5b4fe0;--accent-strong:#4338ca;--accent-soft:#eceaff;--accent-contrast:#fff;--topbar-bg:#fff;--topbar-text:#1e1b3a;--key-bg:#fff;--key-bg-hover:#f4f2ff;--key-op-bg:#eceaff;--key-accent-bg:#5b4fe0;--danger:#e5484d;--graph-bg:#fcfcff;--grid-minor:#cfcbe6;--grid-major:#e8e6f5;--axis:#3a3566;--shadow:0 6px 20px #1e1b3a14, 0 1px 3px #1e1b3a0f;--shadow-sm:0 1px 2px #1e1b3a0f;--radius:10px;--radius-lg:14px;--topbar-h:56px;--font:"Plus Jakarta Sans Variable", "Plus Jakarta Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--c1:#5b4fe0;--c2:#f2545b;--c3:#0fa38f;--c4:#f59e0b;--c5:#d946ef;--c6:#0ea5e9;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px}#app{flex-direction:column;height:100dvh;min-height:520px;display:flex}.seo-content{background:var(--bg-panel);border-top:1px solid var(--border);color:var(--text);line-height:1.6}.seo-inner{max-width:820px;margin:0 auto;padding:40px 20px 56px}.seo-content h1{letter-spacing:-.01em;margin:0 0 12px;font-size:28px;line-height:1.25}.seo-content h2{margin:32px 0 10px;font-size:19px}.seo-lead{color:var(--text);margin:0;font-size:16.5px}.seo-table{overflow-x:auto}.seo-figure{margin:0}.seo-figure img{border:1px solid var(--border);border-radius:var(--radius);background:#fcfcff;width:100%;max-width:640px;height:auto;display:block}.seo-figure figcaption{color:var(--text-muted);margin-top:8px;font-size:13px}.seo-content ol,.seo-content ul{margin:0;padding-left:22px}.seo-content li{margin:6px 0}.seo-content a{color:var(--accent-strong);font-weight:600}.seo-content table{border-collapse:collapse;width:100%;font-size:14px}.seo-content th,.seo-content td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}.seo-content th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.seo-content code{color:var(--accent-strong);background:var(--accent-soft);border-radius:6px;padding:2px 8px;font-family:inherit;font-weight:600}.seo-content details{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin:8px 0;padding:0 14px}.seo-content summary{cursor:pointer;padding:12px 0;font-weight:600}.seo-content details p{color:var(--text-muted);margin:0 0 12px}.seo-note{color:var(--text-muted);margin-top:32px;font-size:12.5px}.seo-crumbs{color:var(--text-muted);margin-bottom:14px;font-size:13px}.seo-crumbs a{font-weight:600}.seo-content tbody th{width:38%;color:var(--text);text-transform:none;letter-spacing:0;font-size:14px;font-weight:600}.seo-links li{margin:8px 0}@media (display-mode:standalone){.seo-content{display:none}}.site-footer{background:var(--text);color:#ffffffc7;font-size:14px;line-height:1.6}.site-footer-inner{max-width:820px;margin:0 auto;padding:28px 20px 32px}.site-footer p{margin:0}.site-footer-nav{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;gap:8px 18px;margin-bottom:18px;padding-bottom:18px;display:flex}.site-footer-nav a{color:#ffffffd9;font-weight:600;text-decoration:none}.site-footer-nav a:hover{color:#ffd166;text-decoration:underline}.site-footer strong{color:#fff;font-weight:700}.site-footer a{color:#fff;text-underline-offset:3px;overflow-wrap:anywhere;font-weight:700;-webkit-text-decoration:underline #ffd166cc;text-decoration:underline #ffd166cc}.site-footer a:hover{color:#ffd166}.site-footer a:focus-visible{outline-offset:2px;border-radius:2px;outline:2px solid #ffd166}.site-footer-meta{color:#ffffff8c;font-size:12.5px;margin-top:10px!important}@media (width<=640px){.seo-inner{padding:28px 16px 40px}.seo-content h1{font-size:23px}}button{font:inherit;cursor:pointer}.topbar{height:var(--topbar-h);background:var(--topbar-bg);color:var(--topbar-text);border-bottom:1px solid var(--border);z-index:20;flex:none;align-items:center;gap:16px;padding:0 14px;display:flex;position:relative}.brand{letter-spacing:-.01em;white-space:nowrap;color:var(--text);align-items:center;gap:9px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.brand-mark{flex:none;width:30px;height:30px;display:block}.calc-tabs{background:var(--bg-soft);scrollbar-width:none;border-radius:999px;align-items:center;gap:2px;min-width:0;padding:4px;display:flex;overflow-x:auto}.calc-tabs::-webkit-scrollbar{display:none}.calc-tab{height:34px;color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 14px;font-size:13.5px;font-weight:600;text-decoration:none;transition:color .15s;display:flex}.calc-tab svg{flex:none;width:17px;height:17px}.calc-tab:hover{color:var(--text)}.calc-tab[aria-current=page]{color:var(--accent-strong);background:var(--bg-panel);box-shadow:var(--shadow-sm), 0 0 0 1px var(--border)}.calc-tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar .storage-slot{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.calc-host{flex:1;min-height:0;position:relative}.boot{text-align:center;background:var(--graph-bg);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex;position:absolute;inset:0}.boot-title{letter-spacing:-.01em;color:var(--text);margin:0;font-size:32px;font-weight:700;line-height:1.2}.boot-sub{color:var(--text-muted);margin:0;font-size:14px}.install-slot{align-items:center;margin-left:auto;display:flex;position:relative}.install-slot+.storage-slot{margin-left:0}.install-btn{border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:700;display:inline-flex}.install-btn:hover{background:#dedaff}.install-btn[hidden]{display:none}.install-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.install-help{background:var(--bg-panel);width:min(320px,100vw - 16px);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:70;padding:14px 16px;font-size:13.5px;line-height:1.45;position:absolute;top:calc(100% + 10px);right:0}.install-help[hidden]{display:none}.install-help ol{margin:8px 0 12px;padding-left:20px}.install-help li{margin:4px 0}.install-ico{vertical-align:-4px;color:var(--accent-strong);display:inline-flex}.install-help-close{background:var(--accent);width:100%;color:var(--accent-contrast);border:none;border-radius:999px;padding:8px;font-weight:700}.tab-short{display:none}@media (width<=1000px){.brand-name{display:none}.calc-tab{padding:0 11px}}@media (width<=820px){:root{--topbar-h:104px}.topbar{flex-wrap:wrap;gap:0 10px;height:auto;padding:0 10px 8px}.brand{order:0;height:52px}.install-slot{order:2;height:52px;margin-left:0}.install-help{top:calc(var(--topbar-h) + 6px);width:auto;position:fixed;left:8px;right:8px}.topbar .storage-slot{flex:1 1 0;order:1;height:52px;margin-left:0}.calc-tabs{flex:100%;order:3;overflow:visible}.calc-tab{flex:1;justify-content:center;padding:0 4px}}@media (width<=640px){.calc-tab{gap:5px;height:34px;font-size:12.5px}.calc-tab svg{width:15px;height:15px}.tab-long{display:none}.tab-short{display:inline}.install-lbl{display:none}.install-btn{padding:8px 9px}}@media (width<=430px){.calc-tab svg{display:none}}@media (width<=640px) and (pointer:coarse){input,textarea,select{font-size:16px}}.pl-storage{align-items:center;gap:8px;min-width:0;display:flex;position:relative}.pl-title{width:180px;min-width:0;color:var(--topbar-text);border-radius:var(--radius);font:inherit;text-overflow:ellipsis;background:0 0;border:1px solid #0000;padding:6px 10px;font-weight:600}.pl-title:hover{border-color:var(--border)}.pl-title:focus{outline:2px solid var(--accent);background:var(--bg-soft)}.pl-dirty{color:#9a5c00;white-space:nowrap;font-size:12px;font-weight:600}.pl-btn{color:var(--topbar-text);border:1px solid var(--border);white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.pl-btn:hover{background:var(--bg-soft)}.pl-btn:focus-visible,.pl-act:focus-visible,.pl-open:focus-visible,.pl-icon:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pl-btn.pl-primary{background:linear-gradient(135deg, #6d5ef5, var(--accent-strong));color:var(--accent-contrast);border-color:#0000;box-shadow:0 2px 8px #5b4fe059}.pl-btn.pl-primary:hover{filter:brightness(1.1)}.pl-ico{display:inline-flex}.pl-panel{background:var(--bg-panel);width:380px;max-height:min(70vh,520px);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:60;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;top:calc(100% + 10px);right:0}.pl-panel[hidden]{display:none}.pl-search{border:1px solid var(--border);border-radius:var(--radius);width:100%;font:inherit;background:var(--bg);color:var(--text);padding:7px 10px}.pl-search:focus{outline:2px solid var(--accent);border-color:#0000}.pl-list{flex:1;min-height:60px;margin:0;padding:0;list-style:none;overflow-y:auto}.pl-empty{color:var(--text-muted);text-align:center;padding:18px 8px}.pl-row{border-radius:var(--radius);align-items:center;gap:2px;display:flex}.pl-row:hover,.pl-row.current{background:var(--bg-soft)}.pl-open{text-align:left;min-width:0;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:6px;display:flex}.pl-thumb{background:var(--bg-soft);border:1px solid var(--border);width:56px;height:40px;color:var(--text-muted);border-radius:4px;flex:none;justify-content:center;align-items:center;font-weight:600;display:flex;overflow:hidden}.pl-thumb img{object-fit:cover;width:100%;height:100%}.pl-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.pl-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.pl-sub{color:var(--text-muted);font-size:12px}.pl-badge{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:0 6px;font-size:11px;font-weight:600;display:inline-block}.pl-icon{width:28px;height:28px;color:var(--text-muted);background:0 0;border:0;border-radius:4px;flex:none;font-size:16px}.pl-icon:hover{background:var(--key-bg-hover);color:var(--text)}.pl-icon.pl-danger:hover{color:var(--danger)}.pl-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:6px;padding-top:8px;display:flex}.pl-act{background:var(--key-bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:5px 10px;font-size:13px}.pl-act:hover{background:var(--key-bg-hover)}.pl-toast{background:var(--text);color:#fff;max-width:min(90vw,560px);box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:100;overflow-wrap:anywhere;border-radius:999px;padding:9px 16px;transition:opacity .18s,transform .18s;position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px)}.pl-toast.show{opacity:1;transform:translate(-50%)}.pl-toast[data-kind=error]{background:var(--danger)}@media (width<=820px){.pl-storage{flex:1}.pl-title{flex:1;width:auto}}@media (width<=640px){.pl-lbl{display:none}.pl-btn{padding:8px 9px}.pl-dirty{font-size:0}.pl-dirty:before{content:"•";font-size:18px;line-height:1}.pl-storage{position:static}.pl-panel{top:calc(var(--topbar-h) + 6px);width:auto;position:fixed;left:8px;right:8px}}.gr-root{--gr-panel-w:370px;--gr-panel-h:45%;background:var(--bg);display:flex;position:absolute;inset:0;overflow:hidden}.gr-panel{width:var(--gr-panel-w);background:var(--bg);border-right:1px solid var(--border);flex-direction:column;flex:none;min-width:0;display:flex;position:relative}.gr-collapsed .gr-panel,.gr-collapsed .gr-handle{display:none}.gr-panel-header{flex:none;align-items:center;gap:4px;height:46px;padding:0 10px 0 16px;display:flex}.gr-panel-title{letter-spacing:.02em;color:var(--text);margin-right:auto;font-size:13px;font-weight:700}.gr-icon-btn{width:32px;height:32px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:999px;font-size:20px;line-height:1}.gr-icon-btn:hover{background:var(--bg-panel);border-color:var(--border);color:var(--accent-strong)}.gr-handle{z-index:5;cursor:col-resize;touch-action:none;flex:none;width:6px;margin-left:-3px;margin-right:-3px;position:relative}.gr-handle:hover,.gr-handle.dragging,.gr-handle:focus-visible{background:#5b4fe059;outline:none}.gr-graph{background:var(--graph-bg);flex:1;min-width:0;min-height:0;position:relative;overflow:hidden}.gr-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.gr-overlay{touch-action:none;cursor:grab}.gr-zoom-buttons{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:3;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:14px;right:14px}.gr-zoom-btn{border-radius:var(--radius);width:34px;height:34px;color:var(--text);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.gr-zoom-btn:hover{background:var(--accent-soft);color:var(--accent-strong)}.gr-expand{z-index:3;border:1px solid var(--border);background:var(--bg-panel);height:36px;color:var(--text);box-shadow:var(--shadow);border-radius:999px;padding:0 14px;font-size:20px;line-height:1;position:absolute;top:14px;left:14px}.gr-expand[hidden]{display:none}.gr-list-wrap{flex:1;min-height:0;overflow:hidden auto}.gr-rows{flex-direction:column;gap:8px;min-height:100%;padding:2px 12px 80px;display:flex}.gr-row{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);min-height:54px;box-shadow:var(--shadow-sm);align-items:flex-start;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}.gr-row.gr-active{border-color:var(--row-color,var(--accent));box-shadow:0 0 0 3px color-mix(in srgb, var(--row-color,var(--accent)) 18%, transparent)}.gr-gutter{flex:none;justify-content:center;align-self:stretch;align-items:center;width:44px;display:flex}.gr-num{display:none}.gr-toggle{border:2px solid var(--border);background:var(--bg-soft);border-radius:7px;width:22px;height:22px;padding:0;position:relative}.gr-row.gr-graphable .gr-toggle{border-color:var(--row-color);background:var(--row-color)}.gr-row.gr-graphable .gr-toggle:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:5px;height:10px;position:absolute;top:2px;left:6px;transform:rotate(45deg)}.gr-row.gr-graphable.gr-hidden .gr-toggle{background:0 0}.gr-row.gr-graphable.gr-hidden .gr-toggle:after{display:none}.gr-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gr-body{flex:1;min-width:0;padding:6px 30px 6px 0}.gr-line{align-items:center;gap:8px;min-height:40px;display:flex;position:relative}.gr-placeholder{color:var(--text-muted);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;font-size:16px;display:none;position:absolute;top:50%;left:2px;right:0;overflow:hidden;transform:translateY(-50%)}.gr-row.gr-empty .gr-placeholder{display:block}math-field.gr-mf{min-width:0;color:var(--text);--text-font-family:var(--font);--caret-color:var(--accent);--selection-background-color:var(--accent-soft);background:0 0;border:none;outline:none;flex:1;padding:2px 0;font-size:20px;display:block}math-field.gr-mf:focus,math-field.gr-mf:focus-within{outline:none}math-field.gr-mf::part(virtual-keyboard-toggle),math-field.gr-mf::part(menu-toggle){display:none}.gr-row.gr-hidden math-field.gr-mf{opacity:.55}.gr-fb{text-align:right;max-width:45%;color:var(--accent-strong);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex:none;padding:2px 10px;font-size:15px;font-weight:600;overflow:hidden}.gr-fb:not(:empty){background:var(--accent-soft)}.gr-fb-error{color:var(--danger)}.gr-fb-error:not(:empty){background:#fdecec}.gr-warn{cursor:help;font-size:15px}.gr-del{width:24px;height:24px;color:var(--text-muted);opacity:0;background:0 0;border:none;border-radius:999px;padding:0;font-size:18px;line-height:1;position:absolute;top:6px;right:6px}.gr-row:hover .gr-del,.gr-del:focus-visible{opacity:1}.gr-del:hover{color:var(--danger);background:#fdecec}@media (hover:none){.gr-del{opacity:.6}}.gr-hint{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;padding:2px 0 4px;font-size:12px;display:flex}.gr-hint[hidden],.gr-slider[hidden]{display:none}.gr-hint-btn{border:1px dashed var(--accent);background:var(--accent-soft);min-width:28px;color:var(--accent-strong);border-radius:999px;padding:2px 10px;font-style:italic;font-weight:600}.gr-hint-btn:hover{background:var(--accent);color:var(--accent-contrast);border-style:solid}.gr-slider{padding:2px 0}.gr-slider-top{align-items:center;gap:8px;display:flex}.gr-slider-bottom{align-items:center;gap:8px;margin-top:2px;display:flex}.gr-range{min-width:0;accent-color:var(--row-color,var(--accent));flex:1}.gr-num-in{width:52px;color:var(--text-muted);font:inherit;text-align:center;background:0 0;border:1px solid #0000;border-radius:6px;padding:2px 4px;font-size:12px}.gr-num-in:hover,.gr-num-in:focus{border-color:var(--border);background:var(--bg);color:var(--text);outline:none}.gr-step-in{width:44px}.gr-step-lbl{color:var(--text-muted);font-size:11px}.gr-play{border:1px solid var(--border);background:var(--bg-soft);width:30px;height:24px;color:var(--accent-strong);border-radius:999px;padding:0;font-size:10px;line-height:1}.gr-play:hover{background:var(--accent-soft)}.gr-play.gr-playing{border-color:var(--row-color,var(--accent));background:var(--accent-soft)}.gr-outer{flex-direction:column;display:flex;position:absolute;inset:0}.gr-outer>.gr-root{flex:1;min-height:0;position:relative;inset:auto}.gr-keypad{background:var(--bg-soft);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none;flex:none}.gr-kp-bar{background:var(--bg-panel);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:6px 12px;display:flex}.gr-kp-tabs{background:var(--bg-soft);border-radius:999px;flex:none;gap:2px;padding:3px;display:flex}.gr-kp-tab{color:var(--text-muted);background:0 0;border:none;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600}.gr-kp-tab:hover{color:var(--text)}.gr-kp-tab.on{background:var(--bg-panel);color:var(--accent-strong);box-shadow:var(--shadow-sm), 0 0 0 1px var(--border)}.gr-kp-tip{min-width:0;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12px;overflow:hidden}.gr-kp-hide{border:1px solid var(--border);background:var(--key-bg);color:var(--text);border-radius:999px;flex:none;margin-left:auto;padding:5px 12px;font-size:13px;font-weight:600}.gr-kp-hide:hover{background:var(--key-bg-hover)}.gr-kp-closed .gr-kp-body{display:none}.gr-kp-closed .gr-kp-tip{visibility:hidden}.gr-kp-body{max-height:42vh;padding:10px 12px 12px;overflow-y:auto}.gr-kp-pane[hidden]{display:none}.gr-kp-groups{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:16px;display:flex}.gr-kp-group{flex:200px;min-width:0;max-width:360px}.gr-kp-navgroup{flex:0 150px}.gr-kp-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0 0 6px 2px;font-size:10.5px;font-weight:700}.gr-kp-grid{grid-template-columns:repeat(var(--cols,3), minmax(0, 1fr));gap:6px;display:grid}.gr-key{border:1px solid var(--border);background:var(--key-bg);height:40px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:12px;padding:0 2px;font-size:16px;font-weight:500;transition:background .12s,border-color .12s,transform 60ms;overflow:hidden;box-shadow:0 1px #1e1b3a0d}.gr-key:hover{background:var(--key-bg-hover);border-color:#cfcaf0}.gr-key:active{transform:translateY(1px)scale(.98)}.gr-key.num{font-weight:600}.gr-key.op{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000;font-weight:700}.gr-key.ctl{color:var(--text);background:#e9e7f3;border-color:#0000}.gr-key.accent{background:linear-gradient(135deg, #6d5ef5, var(--accent-strong));color:var(--accent-contrast);border-color:#0000;font-size:14px;font-weight:700}.gr-key.link{color:var(--accent-strong);border-style:dashed;font-size:13px;font-weight:700}.gr-ex-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.gr-ex{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--key-bg);color:var(--text);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.gr-ex:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.gr-ex-name{font-size:13px;font-weight:700}.gr-ex-math{max-width:100%;color:var(--accent-strong);font-size:15px;overflow:hidden}.gr-ex-hint{color:var(--text-muted);font-size:12px}@media (width<=699px){.gr-root{flex-direction:column-reverse}.gr-panel{width:100%;height:var(--gr-panel-h);border-right:none;border-top:1px solid var(--border)}.gr-handle{cursor:row-resize;width:100%;height:10px;margin:-5px 0}.gr-graph{flex:1}.gr-collapsed .gr-panel{display:none}.gr-root{--gr-panel-h:42%}.gr-outer:has(.gr-keypad:not(.gr-kp-closed)) .gr-root{--gr-panel-h:60%}.gr-zoom-buttons{top:10px;right:10px}.gr-rows{gap:6px;padding:2px 8px 60px}.gr-kp-tip{display:none}.gr-kp-bar{gap:4px;padding:5px 6px}.gr-kp-tabs{scrollbar-width:none;gap:0;min-width:0;overflow-x:auto}.gr-kp-tab{white-space:nowrap;padding:6px 10px;font-size:12.5px}.gr-kp-hide{padding:6px 11px;font-size:14px}.gr-kp-hide .kp-long{display:none}.gr-kp-body{max-height:min(46vh, max(150px, calc(100vh - var(--topbar-h) - 300px)));padding:6px 6px 8px}@supports (height:100dvh){.gr-kp-body{max-height:min(46dvh, max(150px, calc(100dvh - var(--topbar-h) - 300px)))}}.gr-kp-groups{grid-template-columns:1fr 1fr;gap:6px;display:grid}.gr-kp-group{min-width:0;max-width:none}.gr-kp-wide,.gr-kp-navgroup{grid-column:1/-1}.gr-kp-navgroup{background:var(--bg-soft);border-top:1px solid var(--border);margin:0 -6px -8px;padding:6px 6px 8px;position:sticky;bottom:-8px}.gr-kp-navgroup .gr-kp-heading{display:none}.gr-kp-grid{grid-template-columns:repeat(var(--phone-cols,var(--cols,3)), minmax(0, 1fr))}.gr-kp-heading{letter-spacing:.05em;white-space:nowrap;text-overflow:ellipsis;margin:0 0 3px 2px;font-size:9.5px;overflow:hidden}.gr-kp-grid{gap:4px}.gr-key{border-radius:10px;height:38px;font-size:15px}.gr-ex-grid{grid-template-columns:1fr 1fr;gap:6px}.gr-ex{padding:7px 9px}.gr-ex-math{font-size:13px}.gr-del{opacity:.6;width:32px;height:32px;top:4px;right:4px}.gr-panel-header{height:40px}}.ex-toggle{border:1px solid var(--border);background:var(--bg-panel);height:34px;color:var(--accent-strong);white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.ex-toggle:hover{background:var(--accent-soft)}.ex-toggle[aria-expanded=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.ex-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ex-panel{min-height:0;padding:12px 14px;overflow-y:auto}.ex-panel[hidden]{display:none}.ex-intro{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin:0 0 10px 2px;font-size:12px;font-weight:700}.ex-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.ex-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-panel);min-width:0;color:var(--text);box-shadow:var(--shadow-sm);flex-direction:column;align-items:flex-start;gap:4px;padding:10px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.ex-card:hover{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.ex-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ex-name{font-size:13px;font-weight:700}.ex-math{max-width:100%;color:var(--accent-strong);font-size:15px;overflow:hidden}.ex-hint{color:var(--text-muted);font-size:12px;line-height:1.35}@media (width<=720px){.ex-panel{padding:8px 10px}.ex-intro{margin-bottom:6px;font-size:10.5px}.ex-grid{scroll-snap-type:x proximity;scrollbar-width:thin;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.ex-card{scroll-snap-align:start;flex:0 0 158px;padding:8px 10px}.ex-math{font-size:14px}.ex-hint{font-size:11.5px}.ex-toggle{padding:0 10px}.ex-toggle-lbl{display:none}}.calc{background:var(--bg);flex-direction:column;height:100%;min-height:0;display:flex}.calc-history{flex-direction:column;flex:1 1 0;gap:2px;width:100%;max-width:900px;min-height:60px;margin:0 auto;padding:8px 12px;display:flex;overflow-y:auto}.calc>.ex-panel{flex:1 1 0;width:100%;max-width:900px;margin:0 auto}.calc-history[hidden]{display:none}.calc-history:before{content:"";flex:auto}.calc-history-row{border-radius:var(--radius);text-align:left;color:var(--text-muted);background:0 0;border:0;flex:none;justify-content:space-between;align-items:baseline;gap:16px;padding:8px 12px;font-size:17px;display:flex}.calc-history-row:hover{background:var(--bg-panel);color:var(--text)}.calc-history-expr{min-width:0;overflow-x:auto}.calc-history-result{white-space:nowrap;text-align:right;color:var(--accent-strong);font-size:19px;font-weight:700}.calc-input-wrap{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius-lg);width:calc(100% - 24px);max-width:900px;box-shadow:var(--shadow);flex:none;margin:0 auto;padding:10px 16px}.calc-input-row{align-items:center;gap:16px;max-width:900px;margin:0 auto;display:flex}.calc-input{min-width:0;color:var(--text);--caret-color:var(--accent);--selection-background-color:var(--accent-soft);background:0 0;border:0;outline:none;flex:auto;padding:4px 0;font-size:26px}.calc-input::part(virtual-keyboard-toggle),.calc-input::part(menu-toggle){display:none}.calc-input:focus-within{outline:none}.calc-preview{color:var(--accent-strong);white-space:nowrap;flex:none;font-size:20px;font-weight:700}.calc-preview:not(:empty){background:var(--accent-soft);border-radius:999px;padding:3px 12px}.calc-error{max-width:900px;color:var(--danger);margin:0 auto;font-size:13px}.calc-error:not(:empty){padding-top:4px}.calc-keypad-wrap{flex:none;justify-content:center;height:min(52%,420px);min-height:280px;padding:10px;display:flex}.calc-keypad{gap:12px;width:100%;max-width:900px;min-height:0;display:flex}.calc-panel{grid-template-columns:repeat(var(--cols), minmax(0, 1fr));grid-auto-rows:minmax(44px,1fr);gap:6px;min-width:0;display:grid}.calc-panel-fn{flex:5 1 0}.calc-panel-num{flex:4 1 0}.calc-key{border:1px solid var(--border);background:var(--key-bg);min-height:44px;color:var(--text);touch-action:manipulation;-webkit-user-select:none;user-select:none;border-radius:14px;padding:0;font-size:18px;font-weight:500;transition:background .12s,transform 60ms;box-shadow:0 1px #1e1b3a0d}.calc-key:hover{background:var(--key-bg-hover)}.calc-key:active{transform:translateY(1px)scale(.98)}.calc-key sup,.calc-key sub{font-size:.65em;line-height:0}.calc-key-op{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000;font-weight:700}.calc-key-op:hover{background:#dedaff}.calc-key-fn{font-size:16px}.calc-key-toggle{background:#e9e7f3;border-color:#0000;font-size:14px;font-weight:700}.calc-key-toggle.is-active{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.calc-key.is-alt{color:var(--accent)}.calc-key-accent{background:linear-gradient(135deg, #6d5ef5, var(--accent-strong));color:var(--accent-contrast);border-color:#0000;font-size:22px;font-weight:700;box-shadow:0 3px 10px #5b4fe059}.calc-key-accent:hover{filter:brightness(1.08)}.calc-key:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.calc-four-function .calc-keypad{max-width:420px}.calc-four-function .calc-keypad-wrap{height:min(60%,460px)}@media (width<=720px){.calc-keypad-wrap{flex:auto;height:auto;min-height:0;padding:6px}.calc-keypad{flex-direction:column;gap:6px;max-width:none}.calc-panel-fn{flex:4 1 0}.calc-panel-num{flex:5 1 0}.calc-key{font-size:16px}.calc-history,.calc>.ex-panel{min-height:80px}.calc-ex-open .calc-keypad-wrap{display:none}.calc-ex-open>.ex-panel .ex-grid{grid-template-columns:1fr 1fr;display:grid;overflow:visible}.calc-ex-open>.ex-panel .ex-card,.calc-keypad-wrap{flex:none}.calc-panel{--row:clamp(34px, calc((100vh - 336px) / 9), 52px);grid-auto-rows:var(--row)}@supports (height:100dvh){.calc-panel{--row:clamp(34px, calc((100dvh - 336px) / 9), 52px)}}.calc-key{min-height:0}}.mx-root{background:var(--bg);color:var(--text);grid-template-columns:minmax(260px,360px) 1fr;display:grid;position:absolute;inset:0}.mx-side{border-right:1px solid var(--border);background:var(--bg-soft);min-height:0;padding:12px;overflow-y:auto}.mx-side-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.mx-title{margin:0;font-size:15px;font-weight:600}.mx-add{background:var(--accent);color:var(--accent-contrast);border-radius:var(--radius);border:0;padding:6px 12px}.mx-add:disabled{opacity:.5;cursor:not-allowed}.mx-list{flex-direction:column;gap:10px;display:flex}.mx-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:10px}.mx-card-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.mx-name{min-width:1.2em;font-size:18px;font-style:italic;font-weight:700}.mx-dims{flex-wrap:wrap;flex:1;gap:10px;display:flex}.mx-stepper{color:var(--text-muted);align-items:center;gap:4px;font-size:12px;display:flex}.mx-step{background:var(--key-op-bg);border:1px solid var(--border);width:22px;height:22px;color:var(--text);border-radius:4px;padding:0;line-height:1}.mx-step:hover:not(:disabled){background:var(--key-bg-hover)}.mx-step:disabled{opacity:.4;cursor:not-allowed}.mx-step-value{text-align:center;min-width:1.4em;color:var(--text);font-weight:600}.mx-del,.mx-del-item{color:var(--text-muted);background:0 0;border:0;border-radius:4px;padding:2px 6px;font-size:18px;line-height:1}.mx-del:hover,.mx-del-item:hover{color:var(--danger);background:var(--bg-soft)}.mx-grid{gap:4px;display:grid}.mx-cell{text-align:center;width:100%;min-width:0;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:6px 4px}.mx-cell:focus,.mx-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.mx-cell.mx-invalid{border-color:var(--danger);color:var(--danger)}.mx-main{flex-direction:column;min-width:0;min-height:0;display:flex}.mx-history{flex:1;min-height:0;padding:12px 16px;overflow:auto}.mx-empty{color:var(--text-muted)}.mx-item{border-bottom:1px solid var(--grid-minor);padding:8px 0}.mx-item-head{color:var(--text-muted);justify-content:space-between;align-items:center;font-family:ui-monospace,Consolas,monospace;display:flex}.mx-result{text-align:right;padding:6px 0 2px;font-size:18px;overflow-x:auto}.mx-result.mx-clickable{cursor:pointer;border-radius:var(--radius)}.mx-result.mx-clickable:hover{background:var(--bg-soft)}.mx-result.mx-error{color:var(--danger);font-size:14px}.mx-approx{color:var(--text-muted);margin-left:10px;font-size:13px}.mx-save{border-radius:var(--radius);background:var(--accent);color:var(--accent-contrast);border:0;margin:4px 0 0 auto;padding:6px 12px;display:block}.mx-bracket{text-align:center;gap:4px 16px;padding:6px 14px;display:inline-grid;position:relative}.mx-bracket:before,.mx-bracket:after{content:"";border:2px solid;width:7px;position:absolute;top:0;bottom:0}.mx-bracket:before{border-right:0;left:0}.mx-bracket:after{border-left:0;right:0}.mx-cell-out{font-variant-numeric:tabular-nums}.mx-input-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:8px 16px;display:flex}.mx-main>.ex-panel{flex:1}.mx-history[hidden]{display:none}.mx-input{width:100%;min-width:0;font:inherit;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);flex:1;padding:10px 12px;font-family:ui-monospace,Consolas,monospace;font-size:16px}.mx-keypad{background:var(--bg-soft);grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;padding:8px 16px 12px;display:grid}.mx-key{background:var(--key-bg);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:9px 4px}.mx-key:hover{background:var(--key-bg-hover)}.mx-key-mat{font-style:italic;font-weight:700}.mx-key-op{background:var(--key-op-bg)}.mx-key-enter{background:var(--key-accent-bg);color:var(--accent-contrast);border-color:var(--key-accent-bg);grid-column:span 2}@media (width<=720px){.mx-root{grid-template-rows:minmax(0,40%) minmax(0,60%);grid-template-columns:1fr}.mx-side{border-right:0;border-bottom:1px solid var(--border)}}
