:root{--c-blue: #0071e3;--c-blue-press: #0077ed;--c-green: #34c759;--c-red: #ff3b30;--c-orange: #ff9f0a;--c-bg: #f5f5f7;--c-card: #ffffff;--c-text: #1d1d1f;--c-sub: #57575d;--c-tertiary: #737378;--c-quaternary: #aeaeb2;--c-border: rgba(0, 0, 0, .1);--c-border-strong: rgba(0, 0, 0, .18);--nav-bg: rgba(250, 250, 252, .88);--nav-text: rgba(29, 29, 31, .92);--nav-text-dim: rgba(29, 29, 31, .62);--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", "Segoe UI", sans-serif;--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Helvetica Neue", sans-serif;--font-serif: "New York", "Iowan Old Style", "Palatino Linotype", Georgia, "Songti SC", "STSong", serif;--font-mono: "SF Mono", ui-monospace, Menlo, Monaco, "Cascadia Mono", Consolas, monospace;--radius-sm: 5px;--radius-md: 7px;--radius-lg: 8px;--radius-xl: 8px;--radius-2xl: 10px;--shadow-card: 0 1px 1px rgba(0, 0, 0, .025);--shadow-card-hover: 0 7px 22px rgba(0, 0, 0, .075);--shadow-pop: 0 10px 40px rgba(0, 0, 0, .16);--ease: cubic-bezier(.25, .1, .25, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--nav-h: 52px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.55;color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh}::selection{background:#0071e326}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000029;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#0000004d;border:2px solid transparent;background-clip:content-box}.card{background:var(--c-card);border:.5px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:none;transition:box-shadow .25s var(--ease)}.card.hoverable:hover{box-shadow:var(--shadow-card-hover)}.card.flat{box-shadow:none}.glass{background:var(--c-card);border:.5px solid var(--c-border);border-radius:var(--radius-lg);box-shadow:none;transition:box-shadow .25s var(--ease)}.glass:hover.glass-hover{box-shadow:var(--shadow-card-hover)}.glass-solid{background:var(--c-card)}.serif{font-family:var(--font-display)}.kicker{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-tertiary)}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:0}.num{font-variant-numeric:tabular-nums}.caption{font-size:12px;color:var(--c-sub);line-height:1.5}.fig-caption{font-family:var(--font-sans);font-size:12px;color:var(--c-sub);border-top:.5px solid var(--c-border);margin-top:10px;padding-top:8px}.fig-caption b{color:var(--c-text);font-weight:600}.equation{font-family:var(--font-serif);font-size:14px;background:var(--c-bg);border:.5px solid var(--c-border);border-radius:var(--radius-md);padding:12px 18px;text-align:center;color:var(--c-text);overflow-x:auto}.equation .eq-no{float:right;color:var(--c-quaternary);font-size:12px}.btn{display:inline-flex;align-items:center;gap:6px;border:none;cursor:pointer;font-family:var(--font-sans);font-size:13px;font-weight:600;border-radius:980px;padding:8px 16px;color:var(--c-text);background:#0000000e;transition:all .18s var(--ease);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:hover{background:#0000001a}.btn:active{transform:scale(.97)}.btn.primary{background:var(--c-blue);color:#fff}.btn.primary:hover{background:var(--c-blue-press)}.btn.success{background:var(--c-green);color:#fff}.btn.danger{background:var(--c-red);color:#fff}.btn.ghost{background:transparent;color:var(--c-blue)}.btn.ghost:hover{background:#0071e312}.btn.link{background:none;color:var(--c-blue);padding:4px 6px}.btn.link:hover{text-decoration:underline;background:none}.btn.sm{font-size:12px;padding:5px 12px}.btn.lg{font-size:15px;padding:11px 26px;font-weight:600}.btn:disabled{opacity:.35;pointer-events:none}.btn:focus-visible,.seg-item:focus-visible,.input:focus-visible,.select:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid rgba(0,113,227,.28);outline-offset:2px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:5px;letter-spacing:.01em;white-space:nowrap}.badge.gray{background:#0000000f;color:var(--c-sub)}.badge.blue{background:#0071e317;color:var(--c-blue)}.badge.green{background:#34c7591f;color:#248a3d}.badge.red{background:#ff3b301a;color:#c51f1a}.badge.orange{background:#ff9f0a21;color:#b36800}.dot{width:6px;height:6px;border-radius:50%;flex:none}.dot.blue{background:var(--c-blue)}.dot.green{background:var(--c-green)}.dot.red{background:var(--c-red)}.dot.orange{background:var(--c-orange)}.dot.gray{background:var(--c-quaternary)}.dot.pulse{animation:pulse 2s var(--ease) infinite}@keyframes pulse{0%{box-shadow:0 0 #34c75966}70%{box-shadow:0 0 0 5px #34c75900}to{box-shadow:0 0 #34c75900}}.seg{display:inline-flex;background:#0000000d;border-radius:8px;padding:2px;gap:2px}.seg-item{border:none;background:transparent;cursor:pointer;font-size:12.5px;font-weight:500;color:var(--c-sub);padding:4px 13px;border-radius:6px;transition:all .18s var(--ease);white-space:nowrap}.seg-item.active{background:#fff;color:var(--c-text);box-shadow:0 1px 4px #0000001a}.switch{position:relative;width:40px;height:24px;flex:none;cursor:pointer}.switch input{display:none}.switch .track{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:980px;background:#00000026;transition:background .22s var(--ease)}.switch .thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #00000040;transition:transform .22s var(--ease-spring)}.switch input:checked+.track{background:var(--c-green)}.switch input:checked+.track .thumb{transform:translate(16px)}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-size:12px;font-weight:500;color:var(--c-sub)}.input,.select{font-family:var(--font-sans);font-size:13px;color:var(--c-text);background:#00000008;border:.5px solid var(--c-border-strong);border-radius:8px;padding:7px 11px;outline:none;transition:border-color .2s,box-shadow .2s;width:100%}.input:focus,.select:focus{border-color:var(--c-blue);box-shadow:0 0 0 3px #0071e31f;background:#fff}.input.mono{font-family:var(--font-mono);font-size:12px}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th{text-align:left;font-size:11px;font-weight:600;color:var(--c-tertiary);text-transform:uppercase;letter-spacing:.05em;padding:8px 12px;border-bottom:.5px solid var(--c-border-strong);white-space:nowrap}.tbl td{padding:9px 12px;border-bottom:.5px solid var(--c-border);vertical-align:middle}.tbl tr:last-child td{border-bottom:none}.tbl tr.clickable{cursor:pointer;transition:background .15s}.tbl tr.clickable:hover{background:#0071e30a}.kv{display:grid;grid-template-columns:minmax(120px,auto) 1fr;gap:0;font-size:13px}.kv>.k{color:var(--c-sub);padding:6px 14px 6px 0;white-space:nowrap}.kv>.v{color:var(--c-text);padding:6px 0}.progress{height:5px;border-radius:980px;background:#00000012;overflow:hidden}.progress>.bar{height:100%;border-radius:980px;background:var(--c-blue);transition:width .5s var(--ease)}.progress.green>.bar{background:var(--c-green)}.progress.orange>.bar{background:var(--c-orange)}.progress.red>.bar{background:var(--c-red)}.page{padding:42px 48px 88px;max-width:1520px;margin:0 auto;animation:pagein .4s var(--ease)}@keyframes pagein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.page-title{font-family:var(--font-display);font-size:38px;font-weight:700;letter-spacing:-.035em;margin:0;line-height:1.15}.page-subtitle{font-size:14.5px;color:var(--c-sub);margin-top:6px;max-width:820px;line-height:1.65}.grid{display:grid;gap:16px}.card-title{font-size:15px;font-weight:650;display:flex;align-items:center;gap:8px}.fade-enter-active,.fade-leave-active{transition:opacity .15s var(--ease)}.fade-enter-from,.fade-leave-to{opacity:0}.mico{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#0000000a;color:var(--c-sub)}@media(max-width:1180px){.page{padding:34px 28px 72px}.page-title{font-size:34px}}
