@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(./instrument-serif-latin-ext-400-normal-C2je3j2s.woff2)format("woff2"),url(./instrument-serif-latin-ext-400-normal-CFCUzsTy.woff)format("woff");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:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(./instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(./instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff");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}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-vietnamese-wght-normal-D0rl6rjA.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-latin-ext-wght-normal-D9tNdqV9.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:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(./space-grotesk-latin-wght-normal-BhU9QXUp.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}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.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}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA)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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.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{--density-space:1;--density-type:1;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--s1:calc(4px * var(--density-space));--s2:calc(8px * var(--density-space));--s3:calc(12px * var(--density-space));--s4:calc(16px * var(--density-space));--s5:calc(20px * var(--density-space));--s6:calc(24px * var(--density-space));--s8:calc(32px * var(--density-space));--s10:calc(40px * var(--density-space));--s12:calc(48px * var(--density-space));--r-sm:6px;--r-md:10px;--r-lg:14px;--r-full:999px;--t-xs:max(11px, calc(11.5px * var(--density-type)));--t-sm:max(12px, calc(13px * var(--density-type)));--t-base:calc(14.5px * var(--density-type));--t-md:calc(16px * var(--density-type));--t-lg:calc(20px * var(--density-type));--t-xl:calc(26px * var(--density-type));--t-display:calc(34px * var(--density-type));--ease:cubic-bezier(.4, 0, .2, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--dur-fast:.12s;--dur:.18s;--dur-enter:.26s;--dur-exit:.14s;--font-display:"Instrument Serif", "Songti SC", "SimSun", "Noto Serif CJK SC", Georgia, serif;--font:"Geist Variable", system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;--font-num:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, monospace;--focus-ring:0 0 0 3px;--bg:#0b0d12;--surface:#12151d;--surface-2:#171b25;--surface-3:#1d222e;--border:#262c3a;--border-strong:#333b4d;--text:#eef0f4;--text-mid:#b6bdcc;--text-dim:#858d9d;--accent:#5aa9ff;--accent-ink:#04121f;--ok:#45d19a;--warn:#f0b429;--err:#ff7a7a;--grid-line:#ffffff12;--shadow-1:0 1px 2px #0006;--shadow-2:0 4px 16px #00000059;--shadow-3:0 16px 48px #0000008c;--scrim:#05070bb8;--bg-grad:radial-gradient(1200px 600px at 15% -10%, #16203a 0%, transparent 60%);--accent-soft:#5aa9ff1f;--accent-line:#5aa9ff59;--accent-hover:#7cbbff;--warn-soft:#f0b4291a;--warn-line:#f0b42952;--warn-ink:#f7d488;--err-soft:#ff7a7a1a;--err-line:#ff7a7a52;--err-ink:#ffabab;--chrome:var(--surface);--chrome-border:var(--border)}[data-material=frosted]{--chrome:color-mix(in srgb, var(--surface) 72%, transparent);--chrome-border:color-mix(in srgb, var(--border) 70%, transparent)}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){[data-material=frosted] .topbar,[data-material=frosted] .rail{-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%)}[data-material=frosted] .modal{background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none}[data-material=frosted] .scrim{-webkit-backdrop-filter:blur(6px)saturate(140%);backdrop-filter:blur(6px)saturate(140%)}}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){[data-material=frosted]{--chrome:var(--surface);--chrome-border:var(--border)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg-grad), var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);font-size:var(--t-base);padding-left:var(--safe-left);padding-right:var(--safe-right);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;margin:0;line-height:1.6}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{max-width:1480px;padding:var(--s8) var(--s5) var(--s12);margin:0 auto}.topbar{top:var(--safe-top);z-index:30;align-items:center;gap:var(--s4);margin:calc(var(--s2) * -1) calc(var(--s3) * -1) var(--s2);padding:var(--s2) var(--s3);padding-left:max(var(--s3), var(--safe-left));padding-right:max(var(--s3), var(--safe-right));background:var(--chrome);border-radius:var(--r-md);transition:background var(--dur) var(--ease), border-color var(--dur) var(--ease);border:1px solid #0000;display:flex;position:sticky}.brand{align-items:center;gap:var(--s3);min-width:0;display:flex}.brand-glyph{filter:drop-shadow(0 2px 6px color-mix(in srgb, var(--accent) 30%, transparent));flex-shrink:0;margin-top:2px}.brand-text{min-width:0}.brand h1{font-family:var(--font-display);font-size:var(--t-xl);letter-spacing:-.02em;background:linear-gradient(100deg, var(--text) 0%, var(--text) 35%, var(--accent) 78%, var(--accent-hover) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-weight:400;line-height:1.15}.brand-sub{font-size:var(--t-xs);color:var(--text-dim);letter-spacing:.01em;margin:1px 0 0}.topbar-actions{align-items:center;gap:var(--s2);flex-shrink:0;margin-left:auto;display:flex}.control{align-items:center;gap:var(--s2);height:34px;padding:0 var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-mid);cursor:pointer;font:inherit;font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:inline-flex}.control:hover:not(:disabled){background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.control:disabled{opacity:.55;cursor:not-allowed}.control-label{white-space:nowrap}select.control{appearance:none;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 14px) 14px,calc(100% - 10px) 14px;background-repeat:no-repeat;background-size:4px 4px,4px 4px;padding-right:26px}.control-group{align-items:center;gap:var(--s2);height:34px;padding:0 var(--s2) 0 var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);transition:border-color var(--dur-fast) var(--ease);display:inline-flex}.control-group:hover{border-color:var(--border-strong)}.control-group select.control{background-color:#0000;background-position:calc(100% - 8px) 14px,calc(100% - 4px) 14px;border:none;height:32px;padding:0 22px 0 0}.control-group select.control:hover{color:var(--text);background-color:#0000;border:none}.rail{top:var(--s4);z-index:20;width:56px;padding:var(--s2);background:var(--chrome);border:1px solid var(--chrome-border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);transition:width var(--dur) var(--ease), background var(--dur) var(--ease), box-shadow var(--dur) var(--ease);display:none;position:sticky;overflow:hidden}.rail:hover,.rail:focus-within{width:208px;box-shadow:var(--shadow-2)}.rail-inner{gap:var(--s1);flex-direction:column;display:flex}.rail-item{align-items:center;gap:var(--s3);border-radius:var(--r-md);height:38px;color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-sm);text-align:left;white-space:nowrap;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;padding:0 9px;font-weight:500;display:flex}.rail-item:hover{color:var(--text);background:var(--surface-2)}.rail-item[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.rail-icon{flex-shrink:0;place-items:center;width:20px;height:20px;display:grid}.rail-label{opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease)}.rail:hover .rail-label,.rail:focus-within .rail-label{opacity:1;visibility:visible}.tabs{gap:var(--s1);margin:var(--s6) 0;padding-bottom:var(--s1);border-bottom:1px solid var(--border);flex-wrap:wrap;row-gap:0;display:flex}.tab{align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border-radius:var(--r-sm) var(--r-sm) 0 0;color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-sm);white-space:nowrap;transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;border:none;font-weight:500;display:inline-flex;position:relative}.tab:hover{color:var(--text-mid);background:var(--surface-2)}.tab[aria-selected=true]{color:var(--accent)}.tab:after{content:"";background:var(--accent);border-radius:var(--r-full);transform-origin:50%;height:2px;transition:transform var(--dur) var(--ease-out);position:absolute;inset:auto 0 -1px;transform:scaleX(0)}.tab[aria-selected=true]:after{transform:scaleX(1)}.split{gap:var(--s6);grid-template-columns:minmax(0,1fr) minmax(320px,420px);align-items:start;display:grid}.work{min-width:0;container:card/inline-size}@media (width>=1100px){.split>.card{top:var(--s6);max-height:calc(100dvh - var(--s10));flex-direction:column;display:flex;position:sticky}}.shell{gap:var(--s6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=941px){.shell{grid-template-columns:56px minmax(0,1fr)}.rail{display:block}.tabs{display:none}}@media (width<=940px){.split{gap:var(--s6);grid-template-columns:minmax(0,1fr)}.app{padding:var(--s6) var(--s4) var(--s10)}}.split.is-wide{grid-template-columns:minmax(0,1fr)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s6);box-shadow:var(--shadow-1)}.skeleton-row{height:44px;margin-bottom:var(--s4);border-radius:var(--r-md);background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-3) 50%, var(--surface-2) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite skeleton-sweep}.skeleton-row.is-short{width:45%}@keyframes skeleton-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton-row{animation:1.6s ease-in-out infinite alternate value-fade-soft!important}}@container card (width>=620px){.card:has(>.card-results):not(.is-elements){gap:0 var(--s6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.card>.card-main,.card>.card-results{flex-direction:column;min-width:0;display:flex}.card>.card-results>*+*{margin-top:var(--s5)}.card>.card-results>.result{background:0 0;border:none;border-radius:0;margin-top:0;padding:0}.card:has(>.card-results):not(.is-elements){background-image:linear-gradient(to right, transparent calc(50% - .5px), var(--border) calc(50% - .5px), var(--border) calc(50% + .5px), transparent calc(50% + .5px))}}.card.is-elements{display:block}.elt-layout{gap:var(--s5) var(--s6);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}@media (width>=900px){.elt-layout{grid-template-columns:minmax(0,1fr) 340px}}.elt-layout>.ptable-wrap{margin-bottom:0}@media (width>=900px){.elt-layout>.result{top:var(--s4);background:0 0;border:none;margin-top:0;padding:0;position:sticky}}.card+.card{margin-top:var(--s5)}.field{margin-bottom:var(--s4)}.field>label,.field>.field-label{margin-bottom:var(--s2);color:var(--text-mid);font-size:var(--t-sm);font-weight:500;display:block}.seg{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);gap:2px;padding:2px;display:inline-flex}.seg-btn{padding:var(--s2) var(--s4);border-radius:calc(var(--r-sm) - 2px);color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none}.seg-btn:hover{color:var(--text-mid)}.seg-btn.is-on{background:var(--accent-soft);color:var(--accent);font-weight:500}.seg-btn:focus-visible{box-shadow:var(--focus-ring) var(--accent-soft);outline:none}.field input,.field select{width:100%;height:40px;padding:0 var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--t-base);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}.field input:hover:not(:focus),.field select:hover:not(:focus){border-color:var(--border-strong)}.field input:focus,.field select:focus{background:var(--surface);border-color:var(--accent);box-shadow:var(--focus-ring) var(--accent-soft);outline:none}.field input[aria-invalid=true]{border-color:var(--err)}.field input[aria-invalid=true]:focus{box-shadow:var(--focus-ring) var(--err-soft)}.field input::placeholder{color:var(--text-dim);opacity:.75}.field input[inputmode=decimal],.field input[inputmode=numeric]{font-family:var(--font-num);font-variant-numeric:tabular-nums}.field select{appearance:none;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--text-dim) 50%), linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);padding-right:var(--s8);background-position:calc(100% - 18px) 17px,calc(100% - 13px) 17px;background-repeat:no-repeat;background-size:5px 5px,5px 5px}.row{gap:var(--s4);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.row{grid-template-columns:1fr;gap:0}}.row-actions{justify-content:start;align-items:center;gap:var(--s4);grid-template-columns:auto auto}@media (width<=560px){.row-actions{grid-template-columns:auto auto}}.hint{margin-top:var(--s2);color:var(--text-dim);font-size:var(--t-xs);line-height:1.5}.hint.err{color:var(--err-ink)}.hint:has(>.expr-value){align-items:center;gap:6px;display:flex}.expr-value{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--accent);animation:expr-in var(--dur) var(--ease-out) both;font-weight:550}@keyframes expr-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:none}}button.primary{justify-content:center;align-items:center;gap:var(--s2);min-height:40px;padding:0 var(--s5);background:var(--accent);border-radius:var(--r-sm);color:var(--accent-ink);cursor:pointer;font:inherit;font-size:var(--t-base);letter-spacing:-.005em;box-shadow:inset 0 1px 0 #ffffff29, inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, black), 0 1px 2px color-mix(in srgb, var(--accent) 26%, transparent), 0 2px 6px color-mix(in srgb, var(--accent) 18%, transparent);transition:background var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);border:none;font-weight:600;display:inline-flex}button.primary:hover:not(:disabled){background:var(--accent-hover-solid,var(--accent-hover));box-shadow:inset 0 1px 0 #fff3, inset 0 0 0 1px color-mix(in srgb, var(--accent) 60%, black), 0 2px 4px color-mix(in srgb, var(--accent) 30%, transparent), 0 6px 16px color-mix(in srgb, var(--accent) 22%, transparent)}button.primary:active:not(:disabled){box-shadow:inset 0 1px 2px color-mix(in srgb, var(--accent) 55%, black), inset 0 0 0 1px color-mix(in srgb, var(--accent) 70%, black), 0 1px 2px color-mix(in srgb, var(--accent) 20%, transparent);transform:translateY(1px)}button.primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}button.ghost{justify-content:center;align-items:center;gap:var(--s2);min-height:36px;padding:0 var(--s4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-mid);cursor:pointer;font:inherit;font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);display:inline-flex}button.ghost:hover:not(:disabled){background:var(--surface-3,var(--surface-2));border-color:var(--border-strong,var(--accent));color:var(--text)}button.ghost:active:not(:disabled){transform:translateY(1px)}button.ghost:disabled{opacity:.4;cursor:not-allowed}.link-btn{color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-xs);transition:color var(--dur-fast) var(--ease);background:0 0;border:none;align-items:center;gap:3px;padding:0;display:inline-flex}.link-btn:hover{color:var(--text)}.icon-btn{border-radius:var(--r-sm);width:28px;height:28px;color:var(--text-dim);cursor:pointer;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.result{margin-top:var(--s5);padding:var(--s5);background:var(--surface-2);border:1px solid var(--accent-line);border-radius:var(--r-md);animation:rise var(--dur) var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.result-main{animation:.26s both value-fade-soft!important}.result-grid strong,.worked,.msg,.history-item,.expr-value{animation:.22s both value-fade-soft!important}.tab:after{opacity:0;transform:scaleX(1);transition:opacity var(--dur-fast) linear!important}.tab[aria-selected=true]:after{opacity:1}.pcell:hover,.primary:active,.card:hover,.history-item:hover{transform:none}}@keyframes value-fade-soft{0%{opacity:0}to{opacity:1}}.result-main{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:var(--t-display);letter-spacing:-.025em;color:var(--accent);font-weight:650;line-height:1.1}.result-main .unit{margin-left:var(--s2);color:var(--text-dim);font-size:var(--t-md);letter-spacing:0;font-weight:450}.result-note{margin-top:var(--s3);color:var(--text-mid);font-size:var(--t-sm);line-height:1.6}.result-note em{color:var(--text);font-style:normal;font-weight:550}.result-grid{gap:var(--s4);margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.result-grid>div>span{color:var(--text-dim);font-size:var(--t-xs);margin-bottom:2px;display:block}.result-grid>div>strong{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:var(--t-base);letter-spacing:-.01em;font-weight:600}.msg{gap:var(--s3);margin-top:var(--s4);padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-size:var(--t-sm);align-items:flex-start;line-height:1.6;display:flex}.msg>svg{flex-shrink:0;margin-top:3px}.msg.warn{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn-ink)}.msg.err{background:var(--err-soft);border:1px solid var(--err-line);color:var(--err-ink)}.series-table{width:100%;margin-top:var(--s4);border-collapse:collapse;font-variant-numeric:tabular-nums}.series-table th,.series-table td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--border);font-size:var(--t-sm);text-align:left}.series-table thead th{color:var(--text-dim);font-size:var(--t-xs);border-bottom-color:var(--border-strong);font-weight:500}.series-table tbody th{width:3.5em;color:var(--text-dim);font-weight:500}.series-table tbody tr:last-child th,.series-table tbody tr:last-child td{border-bottom:none}.series-table tbody tr:hover{background:var(--surface-3)}.history-head{justify-content:space-between;align-items:center;gap:var(--s3);margin-bottom:var(--s4);display:flex}.history-head h2{align-items:center;gap:var(--s2);font-size:var(--t-base);letter-spacing:-.01em;margin:0;font-weight:600;display:flex}.head-actions{align-items:center;gap:var(--s4);display:flex}.export-wrap{position:relative}.export-menu{z-index:30;min-width:210px;padding:var(--s1);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:rise var(--dur-fast) var(--ease);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0}.export-menu button{align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font:inherit;font-size:var(--t-sm);text-align:left;white-space:nowrap;transition:background var(--dur-fast) var(--ease);background:0 0;border:none;display:flex}.export-menu button:hover{background:var(--accent-soft);color:var(--accent)}.search{margin-bottom:var(--s3);position:relative}.notice{justify-content:space-between;align-items:baseline;gap:var(--s3);margin-bottom:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);font-size:var(--t-sm);color:var(--text-mid);display:flex}.notice-ok{border-color:var(--ok)}.notice-err{border-color:var(--warn)}.search>svg{left:var(--s3);color:var(--text-dim);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search input{width:100%;height:36px;padding:0 var(--s3) 0 34px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:var(--t-sm);transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}.search input:focus{border-color:var(--accent);box-shadow:var(--focus-ring) var(--accent-soft);outline:none}.history-list{gap:var(--s2);scrollbar-width:thin;flex-direction:column;max-height:620px;display:flex;overflow-y:auto}.history-item{gap:var(--s3);padding:var(--s3) var(--s4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);justify-content:space-between;align-items:flex-start;display:flex}.history-item:hover{border-color:var(--border-strong);background:var(--surface-3)}.history-item .body{flex:1;min-width:0}.history-item .summary{font-size:var(--t-sm);word-break:break-word;line-height:1.55}.history-item .when{margin-top:var(--s1);color:var(--text-dim);font-size:var(--t-xs);font-variant-numeric:tabular-nums}.empty{padding:var(--s8) var(--s4);color:var(--text-dim);font-size:var(--t-sm);text-align:center;line-height:1.9}.curve-canvas{max-width:100%;margin:0 auto var(--s5);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);display:block}.chart-figure{margin:var(--s5) 0 0}.kinetics-canvas{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);width:100%;max-width:520px;margin:0 auto;display:block}.chart-figure figcaption{max-width:520px;margin:var(--s3) auto 0;color:var(--text-dim);font-size:var(--t-xs);line-height:1.6}.stock-chips{gap:var(--s2);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.chip{padding:5px var(--s3);border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface-2);color:var(--text-mid);font-size:var(--t-xs);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}.chip:hover{background:var(--surface-3);border-color:var(--border-strong);color:var(--text)}.chip:active{transform:translateY(.5px)}.chip-row{gap:var(--s2);flex-wrap:wrap;display:flex}.ion-list{margin-bottom:var(--s3)}.ion-row{gap:var(--s3);padding:var(--s3);margin-bottom:var(--s2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);grid-template-columns:1fr 88px auto;align-items:start;display:grid}.ion-row .field{margin-bottom:0}.mix-row{gap:var(--s3);padding:var(--s3);margin-bottom:var(--s2);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);grid-template-columns:1fr 110px auto;align-items:start;display:grid}.mix-row .field{margin-bottom:0}@media (width<=560px){.mix-row{grid-template-columns:1fr 88px auto}}.ion-del{margin-top:var(--s4);align-self:center;font-size:17px;line-height:1}.points-input{width:100%;padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font-family:var(--font-mono);font-size:var(--t-sm);font-variant-numeric:tabular-nums;resize:vertical;transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease);line-height:1.7}.points-input:hover:not(:focus){border-color:var(--border-strong)}.points-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring) var(--accent-soft);outline:none}@media (width<=560px){.ion-row{grid-template-columns:1fr 72px auto}}.calc-drawer{z-index:90;width:min(420px, calc(100vw - var(--s5)));max-height:min(800px, calc(100dvh - var(--s4)));background:var(--chrome,var(--surface));border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-3);animation:window-in var(--dur) var(--ease);flex-direction:column;display:flex;position:fixed;overflow:hidden}@keyframes window-in{0%{opacity:0;transform:scale(.97)translateY(6px)}to{opacity:1;transform:none}}@media (width<=639px){.calc-drawer{border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:82dvh;padding-bottom:var(--safe-bottom);animation:sheet-in var(--dur) var(--ease);border-bottom:none;bottom:0;right:0;top:auto!important;left:0!important}.calc-head:before{content:"";background:var(--border-strong);border-radius:2px;width:36px;height:4px;position:absolute;top:6px;left:50%;transform:translate(-50%)}.calc-head{padding-top:var(--s5)}}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){[data-material=frosted] .calc-drawer{-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%)}}.calc-head{align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--border);display:flex}.calc-head h2{font-family:var(--font-display);font-size:var(--t-lg);letter-spacing:-.01em;margin:0;font-weight:400}.calc-head-actions{align-items:center;gap:var(--s2);margin-left:auto;display:flex}.calc-mode{min-width:48px;height:28px;padding:0 var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-xs);letter-spacing:.04em;transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);font-weight:600}.calc-mode.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.calc-body{gap:var(--s4);padding:var(--s5);flex-direction:column;display:flex;overflow-y:auto}.calc-input{width:100%;min-height:44px;padding:0 var(--s4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-num);font-size:var(--t-md);letter-spacing:.01em}.calc-input:focus{background:var(--surface);border-color:var(--accent);box-shadow:var(--focus-ring) var(--accent-soft);outline:none}.calc-readout{align-items:baseline;gap:var(--s2);min-height:40px;padding:var(--s3) var(--s4);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);flex-wrap:wrap;display:flex}.calc-value{font-family:var(--font-num);font-size:var(--t-lg);letter-spacing:-.01em;word-break:break-all;font-weight:600}.calc-unit{font-family:var(--font-num);font-size:var(--t-base);color:var(--text-mid)}.calc-dim{width:100%;color:var(--text-dim);font-size:var(--t-xs)}.calc-idle{color:var(--text-dim);font-size:var(--t-sm)}.calc-error{color:var(--err-ink);font-size:var(--t-sm);line-height:1.45}.calc-fill{justify-content:center;align-items:center;gap:var(--s2);width:100%;padding:var(--s2) var(--s3);background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:var(--r-sm);color:var(--accent);cursor:pointer;font:inherit;font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);font-weight:550;display:flex}.calc-fill:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}.calc-units{gap:var(--s2);flex-wrap:wrap;display:flex}.calc-chip{height:28px;padding:0 var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-mid);cursor:pointer;font-family:var(--font-num);font-size:var(--t-xs);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease)}.calc-chip:hover{background:var(--surface-3);border-color:var(--accent);color:var(--text)}.calc-page{justify-content:center;align-items:center;gap:var(--s1);width:100%;min-height:30px;padding:0 var(--s3);border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;font:inherit;font-size:var(--t-xs);transition:color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:0 0;display:flex}.calc-page:hover{color:var(--text);border-color:var(--accent);background:var(--surface-2)}.calc-page.is-on{border-style:solid;border-color:var(--accent);background:var(--surface-2);color:var(--accent)}.calc-keypad{flex-direction:column;gap:8px;display:flex}.calc-row{gap:var(--s2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.calc-key{min-height:40px;padding:0 var(--s2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font:inherit;font-size:var(--t-sm);transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}.calc-key:hover{background:var(--surface-3);border-color:var(--border-strong)}.calc-key:active{transform:translateY(1px)}.calc-key.is-fn{color:var(--text-mid);font-size:var(--t-xs)}.calc-key.is-wide{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);grid-column:span 2;font-weight:600}.calc-key.is-wide:hover{background:var(--accent-hover-solid,var(--accent-hover))}.scrim{z-index:100;padding:var(--s5);background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade var(--dur) var(--ease);place-items:center;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-lg);width:min(620px,100%);max-height:min(84vh,720px);box-shadow:var(--shadow-3);animation:rise var(--dur) var(--ease);transition:background var(--dur) var(--ease);overflow-y:auto}.modal-head{align-items:flex-start;gap:var(--s3);padding:var(--s5) var(--s6);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.modal-head h2{font-size:var(--t-md);letter-spacing:-.015em;margin:0;font-weight:650}.modal-head p{color:var(--text-dim);font-size:var(--t-sm);margin:2px 0 0}.modal-body{padding:var(--s5) var(--s6)}.modal-foot{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s4) var(--s6);background:var(--surface);border-top:1px solid var(--border);display:flex;position:sticky;bottom:0}.modal-foot .note{color:var(--text-dim);font-size:var(--t-xs);line-height:1.5}.notice-point{gap:var(--s3);padding:var(--s3) 0;border-bottom:1px solid var(--border);display:flex}.notice-point:last-child{border-bottom:none}.notice-point .mark{border-radius:var(--r-full);background:var(--accent-soft);width:22px;height:22px;color:var(--accent);flex-shrink:0;place-items:center;margin-top:2px;display:grid}.notice-point h3{font-size:var(--t-sm);color:var(--text);margin:0 0 3px;font-weight:600}.notice-point p{color:var(--text-mid);font-size:var(--t-sm);margin:0;line-height:1.65}.footer{align-items:center;gap:var(--s2) var(--s4);margin-top:var(--s10);padding-top:var(--s5);border-top:1px solid var(--border);color:var(--text-dim);font-size:var(--t-xs);flex-wrap:wrap;display:flex}.footer .sep{opacity:.4}.footer .grow{margin-left:auto}.install-prompt{align-items:center;gap:var(--s4);margin-top:var(--s8);padding:var(--s4) var(--s5);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);animation:install-in var(--dur-enter) var(--ease-out) both;flex-wrap:wrap;display:flex}@keyframes install-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.install-prompt>svg{color:var(--accent);flex-shrink:0}.install-text{min-width:0;font-size:var(--t-sm);flex-direction:column;flex:240px;gap:2px;display:flex}.install-text strong{font-weight:600}.install-text span{color:var(--text-dim);font-size:var(--t-xs);line-height:1.5}.install-notice{color:var(--accent)!important}.install-actions{align-items:center;gap:var(--s2);flex-shrink:0;display:flex}@media (width<=560px){.install-actions{justify-content:flex-end;width:100%}}@media (prefers-reduced-motion:reduce){.install-prompt{animation:.22s both value-fade-soft!important}}.ptable-wrap{padding-bottom:var(--s2);margin-bottom:var(--s4);-webkit-overflow-scrolling:touch;overflow-x:auto}.ptable{grid-template-rows:16px repeat(7,46px) 12px 46px 46px;grid-template-columns:26px repeat(18,minmax(38px,1fr));gap:3px;display:grid}.paxis{color:var(--text-dim);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:9px;display:flex}.paxis-f{writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.08em;color:var(--text-mid);justify-content:flex-end;padding-right:3px}.legend{align-items:center;gap:var(--s2);margin-bottom:var(--s3);font-size:var(--t-xs);color:var(--text-dim);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:5px;display:inline-flex}.legend-sw{border-radius:3px;flex:none;width:11px;height:11px}.legend-ramp{border-radius:5px;width:74px;height:9px}.legend-track{width:160px;padding:15px 0 14px;display:inline-block;position:relative}.legend-track .legend-ramp{width:100%;display:block}.legend-tick{white-space:nowrap;font-variant-numeric:tabular-nums;position:absolute;bottom:0;transform:translate(-50%)}.legend-tick[data-first]{transform:none}.legend-tick[data-last]{transform:translate(-100%)}.legend-unit{opacity:.75}.eltip{z-index:40;padding:var(--s2) var(--s3);background:var(--surface-3,var(--surface-2));border:1px solid var(--border-strong,var(--border));border-radius:var(--r-sm);max-width:220px;box-shadow:var(--shadow-2);color:var(--text);font-size:var(--t-xs);pointer-events:none;white-space:nowrap;flex-direction:column;gap:1px;line-height:1.35;display:flex;position:fixed}.eltip strong{font-size:var(--t-sm);margin-right:3px}.eltip-row{color:var(--text-dim)}.cfg{font-family:var(--font-mono,ui-monospace, "SFMono-Regular", Menlo, monospace);font-size:var(--t-xs);letter-spacing:.02em;color:var(--text-mid);background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.pcell{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text-mid);cursor:pointer;font:inherit;transition:transform var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:0;padding:2px;line-height:1.05;display:flex}.pcell:hover{border-color:var(--accent);transform:translateY(-1px)}.pcell:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.pcell.is-on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.pcell.is-dim{opacity:.18}.pcell.is-cmp{border-style:dashed;border-color:var(--accent)}.pcell-z{color:var(--text-mid);align-self:flex-start;padding-left:3px;font-size:9px}.pcell-sym{font-size:var(--t-sm);color:var(--text);font-weight:600}.pcell-name{color:var(--text-mid);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}@media (width<=560px){.ptable{grid-auto-rows:40px}.pcell-name{display:none}}.art{margin:0 auto var(--s3);display:block}.art-line{stroke:var(--text-dim);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.art-faint{stroke:var(--border-strong,var(--text-dim));opacity:.55}.art-accent{stroke:var(--accent);stroke-width:2px;fill:var(--accent);stroke-linecap:round}.empty .art{opacity:.9}.tab:after{transform-origin:50%}.primary{transition:background var(--dur-fast) var(--ease), transform 80ms var(--ease), box-shadow var(--dur-fast) var(--ease)}.primary:hover{box-shadow:var(--shadow-2,var(--shadow-1))}.primary:active{transform:translateY(1px)}input,select,textarea{transition:border-color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease)}input:focus-visible,select:focus-visible,textarea:focus-visible{box-shadow:0 0 0 3px var(--accent-soft,#4ea1ff2e)}@keyframes cell-in{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:none}}.pcell{animation:cell-in .22s var(--ease) backwards;animation-delay:calc(var(--i,0) * 4ms)}.figure{margin:var(--s6) 0 0;align-items:center;gap:var(--s2);flex-direction:column;display:flex}.figure figcaption{color:var(--text-dim);font-size:var(--t-xs);text-align:center}.figure .art{opacity:.85}.diagram{margin:var(--s4) 0 0}.diagram-svg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md);width:100%;height:auto;display:block}.diagram-caption{margin-top:var(--s2);font-size:var(--t-xs);color:var(--text-dim);line-height:1.5}.diagram-axis line{stroke:var(--border-strong);stroke-width:1px}.diagram-axis text{fill:var(--text-dim);font-variant-numeric:tabular-nums;font-size:9px}.diagram-axis-label{font-size:10px;fill:var(--text-mid)!important}.diagram-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.diagram-guide{stroke:var(--text-dim);stroke-width:1px;stroke-dasharray:3 3}.diagram-band{fill:var(--accent);opacity:.09}.diagram-band-label{fill:var(--text-dim);font-size:9px}.diagram-note line{stroke:var(--text-dim);stroke-width:1px}.diagram-note circle{fill:var(--accent)}.diagram-note text{fill:var(--text-mid);font-size:10px}.diagram-line-alt{stroke:var(--text-mid);stroke-dasharray:5 3}.diagram-key text{fill:var(--text-dim);font-size:9px}.diagram-panel-title{fill:var(--text-mid);font-size:10px;font-weight:600}.chart-legend{gap:var(--s4);margin-top:var(--s3);font-size:var(--t-xs);color:var(--text-dim);flex-wrap:wrap;display:flex}.chart-legend .legend-item{align-items:center;gap:var(--s2);display:inline-flex}.legend-sw-band{background:#5aa9ff47;border-radius:2px;width:16px;height:9px}.legend-sw-eq{background:0 0;border-top:2px dashed #f0b429e6;border-radius:0;width:16px;height:0}.legend-sw-line{border-radius:2px;width:16px;height:3px}[data-theme-scheme=light] .legend-sw-band{background:#1f6feb38}[data-theme-scheme=light] .legend-sw-eq{border-top-color:#a56a00e6}.residual-block{margin-top:var(--s4)}.residual-canvas{max-width:520px}.worked{margin-top:var(--s3);border-top:1px dashed var(--border);padding-top:var(--s3)}.worked-toggle{font-size:var(--t-xs)}.worked-steps{margin:var(--s3) 0 0;gap:var(--s2);display:grid}.worked-step{gap:var(--s3);grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:baseline;display:grid}.worked-step dt{font-size:var(--t-xs);color:var(--text-dim);text-align:right}.worked-step dd{font-size:var(--t-sm);color:var(--text-mid);align-items:baseline;gap:var(--s2);flex-wrap:wrap;margin:0;display:flex}.worked-step dd strong{color:var(--text);font-variant-numeric:tabular-nums}.worked-detail{font-size:var(--t-xs);color:var(--text-dim);font-variant-numeric:tabular-nums}@media (width<=560px){.worked-step{grid-template-columns:1fr;gap:2px}.worked-step dt{text-align:left}}@media (width<=700px){.link-btn{min-height:44px;padding:var(--s2) var(--s2);margin:calc(var(--s2) * -1) calc(var(--s2) * -1)}.icon-btn{width:44px;height:44px}.control,select.control,.primary,input,select{min-height:44px}.row-actions{gap:var(--s2);grid-template-columns:1fr}}.compare{margin-top:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.compare-head{align-items:baseline;gap:var(--s2);margin-bottom:var(--s3);flex-wrap:wrap;display:flex}.compare-legend{gap:var(--s3);margin-bottom:var(--s2);font-size:var(--t-xs);flex-wrap:wrap;display:flex}.chip-x{cursor:pointer;color:var(--text-dim);font-size:var(--t-sm);background:0 0;border:none;margin-left:2px;padding:0 2px;line-height:1}.chip-x:hover{color:var(--text)}.compare .diagram{margin:0}.cmp-grid path,.cmp-grid line{fill:none;stroke:var(--border);stroke-width:1px}.cmp-grid path{stroke-dasharray:2 3}.cmp-axis-name{fill:var(--text-mid);font-size:9px}.cmp-axis-unit{fill:var(--text-dim);font-size:8px}.cmp-table{width:100%;margin-top:var(--s3);border-collapse:collapse;font-variant-numeric:tabular-nums}.cmp-table th,.cmp-table td{padding:var(--s2) var(--s3);border-bottom:1px solid var(--border);font-size:var(--t-sm);text-align:left}.cmp-table thead th{color:var(--text-dim);font-size:var(--t-xs);border-bottom-color:var(--border-strong);font-weight:500}.cmp-table tbody th{color:var(--text-dim);font-weight:500}.cmp-table tbody tr:last-child th,.cmp-table tbody tr:last-child td{border-bottom:none}.cmp-table thead th .legend-sw{vertical-align:middle;margin-right:4px;display:inline-block}.cmp-log{color:var(--text-dim);opacity:.8;margin-left:6px;font-size:9px}.theme-wrap{position:relative}.theme-menu{z-index:30;min-width:268px;max-height:70vh;padding:var(--s1);background:var(--surface-3);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-3);animation:rise var(--dur-fast) var(--ease);position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.theme-group+.theme-group{margin-top:var(--s1)}.theme-group-label{padding:var(--s2) var(--s3) var(--s1);color:var(--text-dim);font-size:var(--t-xs);letter-spacing:.04em;text-transform:uppercase}.theme-item{align-items:center;gap:var(--s3);width:100%;padding:var(--s2) var(--s3);border-radius:var(--r-sm);color:var(--text);cursor:pointer;font:inherit;font-size:var(--t-sm);text-align:left;transition:background var(--dur-fast) var(--ease);background:0 0;border:none;display:flex}.theme-item:hover{background:var(--accent-soft)}.theme-item.is-on{background:var(--accent-soft);color:var(--accent)}.theme-name{white-space:nowrap;flex:1}.theme-credit{color:var(--text-dim);font-size:var(--t-xs);opacity:.75;white-space:nowrap}.swatch{border:1px solid var(--border-strong);border-radius:5px;flex-direction:column;flex:none;justify-content:flex-end;gap:2px;width:26px;height:26px;padding:3px;display:inline-flex}.swatch-bar{border-radius:1.5px;height:5px}.swatch-system{background:linear-gradient(135deg, var(--text-dim) 0%, var(--surface-3) 100%)}@keyframes value-pop{0%{opacity:0;transform:translateY(7px)scale(.985)}55%{opacity:1}to{opacity:1;transform:none}}.result-body>.result-main{animation:value-pop .22s var(--ease-out) both}.result-body>.result-note{animation:value-fade .2s var(--ease-out) both;animation-delay:40ms}@keyframes value-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.result-body>.result-grid strong{animation:value-fade .18s var(--ease-out) both}.result-body>.result-grid>div:first-child strong{animation-delay:60ms}.result-body>.result-grid>div:nth-child(2) strong{animation-delay:82ms}.result-body>.result-grid>div:nth-child(3) strong{animation-delay:.104s}.result-body>.result-grid>div:nth-child(4) strong{animation-delay:.126s}.result-body>.result-grid>div:nth-child(5) strong{animation-delay:.148s}.result-body>.result-grid>div:nth-child(6) strong{animation-delay:.17s}.result-body>.result-grid>div:nth-child(7) strong{animation-delay:.192s}.result-body>.result-grid>div:nth-child(n+8) strong{animation-delay:.214s}@keyframes panel-open{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}.worked{animation:panel-open var(--dur) var(--ease)}@keyframes msg-in{0%{opacity:0;transform:translate(-5px)}to{opacity:1;transform:none}}.msg{animation:msg-in .2s var(--ease)}@keyframes row-in{0%{opacity:0;transform:translateY(-4px)scale(.995)}to{opacity:1;transform:none}}.history-item{animation:row-in .2s var(--ease)}.card{transition:border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease)}.history-item{transition:background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease)}.history-item:hover{transform:translate(2px)}.tab{transition:color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease)}.tab:after{transition:transform var(--dur) var(--ease), opacity var(--dur) var(--ease);opacity:0;transform:scaleX(0)}.tab[aria-selected=true]:after{opacity:1;animation:none;transform:scaleX(1)}body,.card,.control,.tab,.history-item,.field input,.field select,.result,.msg{transition-property:background-color,border-color,color,box-shadow;transition-duration:.2s;transition-timing-function:var(--ease)}.report{display:none}@media print{@page{size:A4;margin:16mm 14mm;@bottom-center{content:counter(page);font-size:9pt;color:#666}@bottom-right{content:counter(page) " / " counter(pages);font-size:9pt;color:#666}@top-right{content:string(report-title);font-size:8.5pt;color:#777}}.report-cover-title{string-set:report-title content()}.app,.topbar,.tabs,.history-panel,.disclaimer,dialog{display:none!important}html,body{font-size:11pt;line-height:1.45;color:#111!important;background:#fff!important}.report{--text:#111;--text-mid:#333;--text-dim:#555;--border:#ccc;--surface:#fff;--surface-2:#fff;--surface-3:#f4f4f4;--accent:#0b4fa8;display:block!important}.report-cover{break-after:page;page-break-after:always;padding-top:40mm}.report-cover-mark{letter-spacing:.18em;text-transform:uppercase;color:#777;margin-bottom:4mm;font-size:9pt}.report-cover-title{border-bottom:2px solid #111;margin:0 0 12mm;padding-bottom:5mm;font-size:26pt;font-weight:600;line-height:1.15}.report-cover-meta{grid-template-columns:max-content 1fr;gap:2mm 8mm;margin:0 0 20mm;font-size:10.5pt;display:grid}.report-cover-meta>div{display:contents}.report-cover-meta dt{color:#555}.report-cover-meta dd{font-variant-numeric:tabular-nums;margin:0}.report-cover-note{color:#666;border-top:1px solid #ccc;margin:0;padding-top:4mm;font-size:9pt;line-height:1.5}.report-empty{color:#666;font-size:11pt}.report-item{break-inside:avoid;page-break-inside:avoid;border:1px solid #ccc;border-radius:2mm;margin-bottom:5mm;padding:4mm}.report-item-head{border-bottom:1px solid #e0e0e0;align-items:baseline;gap:3mm;margin-bottom:3mm;padding-bottom:2mm;display:flex}.report-item h2{margin:0 0 1mm;font-size:12pt;font-weight:600}.report-num{color:#999;font-variant-numeric:tabular-nums;min-width:8mm;font-size:13pt;font-weight:600;display:inline-block}.report-kind{color:#555;border:1px solid #ccc;border-radius:1mm;margin-left:3mm;padding:.4mm 2mm;font-size:8pt}.report-method{background:#f7f7f7;border-left:2px solid #bbb;margin-bottom:3mm;padding:3mm 4mm}.report-equation{font-family:var(--font-num,ui-monospace, monospace);color:#111;margin:0 0 2mm;font-size:11pt}.report-method h4{text-transform:uppercase;letter-spacing:.05em;color:#666;margin:0 0 1mm;font-size:8.5pt;font-weight:600}.report-method ul{color:#444;margin:0 0 2mm;padding-left:5mm;font-size:9pt;line-height:1.45}.report-method li{margin-bottom:.6mm}.report-source{color:#666;margin:0;font-size:8.5pt;line-height:1.4}.report-source span{color:#555;font-weight:600}.report-sign{color:#777;align-items:baseline;gap:3mm;margin-top:4mm;font-size:8.5pt;display:flex}.report-sign-line{border-bottom:1px solid #ccc;flex:auto;height:4mm}.report-sign-line.is-short{flex:0 0 30mm}.report-when{color:#666;margin-bottom:3mm;font-size:8.5pt}.report-block{margin-top:3mm}.report-block h3{text-transform:uppercase;letter-spacing:.06em;color:#555;margin:0 0 1.5mm;font-size:9pt;font-weight:600}.report-block dl{grid-template-columns:max-content 1fr;gap:1mm 4mm;margin:0;font-size:10pt;display:grid}.report-block dl>div{display:contents}.report-block dt{color:#444;white-space:nowrap}.report-block dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.report a[href^=http]:after{content:" (" attr(href) ")";color:#555;font-size:8pt}}@media (width<=620px){.topbar{gap:var(--s3);flex-wrap:wrap}.brand{flex:100%;min-width:0}.brand-text{flex:auto}.brand-sub{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-actions{justify-content:flex-start;row-gap:var(--s2);flex-wrap:wrap;flex:100%;margin-left:0}.topbar-actions>*{min-width:0}.topbar-actions .control-label{display:none}.topbar-actions .control{padding:0 var(--s3)}}.molecule{margin:var(--s3) 0 0;padding:var(--s3);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-md)}.molecule-svg{max-width:100%;height:auto;margin:0 auto;display:block}.molecule-caption{margin-top:var(--s2);font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);font-size:var(--t-xs);color:var(--text-dim);text-align:center;overflow-wrap:anywhere}.molecule-svg text,.molecule-svg .element{fill:var(--text)}
