html,body,#root{margin:0;padding:0;height:100%}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:#0d948838}:focus-visible{outline:2px solid #14b8a6;outline-offset:2px}.ant-input,.ant-input-affix-wrapper,textarea,input{caret-color:#0d9488}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0d948847;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#0d948873;border:2px solid transparent;background-clip:content-box}.ant-table td,.ant-statistic-content-value,.ant-tag{font-variant-numeric:tabular-nums}.ai-md{white-space:normal;word-break:break-word}.ai-md>div>:first-child{margin-top:0}.ai-md>div>:last-child{margin-bottom:0}.ai-md p{margin:0 0 6px;line-height:1.65}.ai-md h1,.ai-md h2,.ai-md h3,.ai-md h4{margin:10px 0 6px;font-size:15px;font-weight:600;line-height:1.4}.ai-md ul,.ai-md ol{margin:4px 0 8px;padding-left:20px}.ai-md li{margin:2px 0;line-height:1.6}.ai-md code{background:#80808026;padding:1px 5px;border-radius:4px;font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Courier New,monospace}.ai-md pre{background:#8080801f;border-radius:8px;padding:10px 12px;overflow-x:auto;margin:6px 0}.ai-md pre code{background:transparent;padding:0;font-size:12.5px}.ai-md table{border-collapse:collapse;margin:6px 0;font-size:13px;max-width:100%;display:block;overflow-x:auto}.ai-md th,.ai-md td{border:1px solid rgba(128,128,128,.35);padding:4px 10px}.ai-md th{background:#80808014}.ai-md a{color:#0d9488}.ai-md blockquote{margin:6px 0;padding:2px 10px;border-left:3px solid rgba(128,128,128,.3);opacity:.85}.login-brand{display:none;position:relative;flex:1;background:#0d9488;color:#fff;padding:48px 64px}.login-form-side{flex:1;display:flex;align-items:center;justify-content:center;min-height:100vh;background:#fff}@media (min-width: 900px){.login-brand{display:flex;flex-direction:column;justify-content:center}.login-form-side{border-left:1px solid #99f6e4;min-height:unset}}.focus-row td{background:var(--app-kiln-wash)!important;box-shadow:inset 3px 0 0 var(--app-kiln)}.pinned-row td{background:var(--app-pinned-wash)}.focus-card{background:var(--app-kiln-wash)!important;box-shadow:inset 3px 0 0 var(--app-kiln)}.pinned-card{background:var(--app-pinned-wash)}.lp-hero-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:999px;background:#f0fdfa;border:1px solid #99f6e4;color:#0f766e;font-size:13px}.lp-header{max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:24px}.lp-brand,.lp-header>.ant-btn{flex-shrink:0;white-space:nowrap}.lp-nav{flex:1;display:flex;gap:4px;justify-content:center;min-width:0}.lp-nav-link{color:#334155;font-size:14px;background:none;border:none;cursor:pointer;padding:6px 12px;border-radius:6px;white-space:nowrap;transition:background .15s,color .15s}.lp-nav-link:hover{background:#f1f5f9;color:#0f172a}@media (max-width: 768px){.lp-header{flex-wrap:wrap;gap:8px;padding:10px 14px}.lp-nav{order:3;flex:1 0 100%;justify-content:flex-start;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.lp-nav::-webkit-scrollbar{display:none}}@keyframes lp-dot-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.lp-dot{width:6px;height:6px;border-radius:50%;background:#0d9488;display:inline-block;animation:lp-dot-blink 1.2s infinite}.lp-bar{border-radius:4px 4px 0 0;background:linear-gradient(180deg,#14b8a6,#0d9488);width:26px}应用级语义变量 ⚠ 这些值只是「首屏兜底」。真正的定义在 src/theme/index.ts 的语义层， ThemeProvider 启动时会用 semanticOf(mode) 覆盖到 <html> 上。 改色请改 theme/index.ts，这里保持同步即可，不要在这里单独调色。 ========================================================================== */ :root{--app-surface: #ffffff;--app-surface-sunken: #f5f7f8;--app-canvas: #f5f7f8;--app-overlay: rgba(28, 33, 38, .44);--app-ink: #1f2328;--app-ink-soft: #4e5866;--app-ink-faint: #66717e;--app-border: #d3d9de;--app-border-soft: #e3e8ec;--app-glaze: #0f766e;--app-glaze-text: #0f766e;--app-glaze-soft: #f0faf8;--app-kiln: #fa8c16;--app-kiln-text: #b45309;--app-kiln-wash: #fff3e0;--app-pinned-wash: #fff8ec;--app-success: #3f7a21;--app-danger: #c5351f;--app-series-0: #0f766e;--app-series-1: #2f6fd0;--app-series-2: #c96a06;--app-series-3: #a63d9b;--app-series-4: #2e8b3d;--app-series-5: #6b4fd8;--app-series-6: #d14b4b;--app-series-7: #0e7490;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px}@media (pointer: coarse){.tap{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}.tap-action{min-width:40px;min-height:40px;padding-inline:8px}}.num,.ant-table td .num,.ant-statistic-content-value,.ant-table-cell.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.align-num{text-align:right;font-variant-numeric:tabular-nums}.align-date{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}[data-theme=dark] .lp-header,[data-theme=dark] .lp-nav-link,[data-theme=dark] .lp-nav-link:hover{color:inherit}.ant-table .cell-primary{font-weight:600;color:var(--ant-color-text)}.ant-table .cell-num,.ant-table td:has(.num){font-variant-numeric:tabular-nums}.ant-table-thead>tr>th{font-weight:600;letter-spacing:.01em}.app-main{display:flex;flex:1;min-width:0;min-height:0}.app-main>.ant-layout{min-width:0}.ai-host{display:flex;flex-direction:column;background:var(--app-surface);min-width:0;overflow:hidden}.ai-host-dock{height:100%;flex-shrink:0;border-left:1px solid var(--app-border-soft)}.ai-host-sheet{position:fixed;left:0;right:0;bottom:0;z-index:900;border-top:1px solid var(--app-border-soft);border-radius:16px 16px 0 0;box-shadow:0 -6px 24px #0f172a29;transition:transform .22s cubic-bezier(.22,1,.36,1);padding-bottom:env(safe-area-inset-bottom,0px)}[data-theme=dark] .ai-host-sheet{box-shadow:0 -6px 24px #00000080}.ai-host-dock.is-hidden{display:none}.ai-host-sheet.is-hidden{transform:translateY(101%);visibility:hidden;pointer-events:none}.ai-sheet-bar{padding:7px 0 3px;display:flex;justify-content:center;flex-shrink:0;touch-action:none}.ai-sheet-grip{width:38px;height:4px;border-radius:999px;background:var(--app-border)}.ai-host-sheet .ai-dock-head{height:44px}.ai-dock-head{display:flex;align-items:center;gap:6px;height:52px;padding:0 6px 0 14px;flex-shrink:0;border-bottom:1px solid var(--app-border-soft);font-size:14px}.ai-dock-icon{color:var(--app-glaze);font-size:15px}.ai-dock-title{font-weight:600;color:var(--app-ink);white-space:nowrap}.ai-dock-running{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--app-glaze);white-space:nowrap}.ai-dock-body{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ai-panel-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:40px 0;color:var(--app-ink-faint);font-size:13px}.ai-sheet-peek{position:fixed;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:899;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--app-glaze);background:var(--app-surface);color:var(--app-glaze);font-size:13px;font-weight:500;box-shadow:0 3px 12px #0f172a24;cursor:pointer}.ai-peek-open{color:var(--app-ink-faint);font-size:12px}.ai-fab{position:fixed;right:20px;bottom:20px;z-index:850;display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:999px;border:1px solid var(--app-glaze);background:var(--app-surface);color:var(--app-glaze);font-size:14px;font-weight:500;box-shadow:0 4px 16px #0f172a29;cursor:pointer;transition:transform .15s,box-shadow .15s}[data-theme=dark] .ai-fab{box-shadow:0 4px 16px #0000008c}.ai-fab:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0f172a33}.ai-fab:active{transform:translateY(0)}.ai-fab.is-running{border-color:var(--app-kiln);color:var(--app-kiln-text)}.ai-fab-compact{right:auto;left:50%;transform:translate(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));width:46px;padding:0;justify-content:center;height:46px}.ai-fab-compact:hover{transform:translate(-50%) translateY(-1px)}.ai-pulse{width:8px;height:8px;border-radius:999px;background:var(--app-kiln);animation:ai-pulse 1.5s ease-in-out infinite;flex-shrink:0}@keyframes ai-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.ai-fab-dot{position:absolute;top:9px;right:9px;width:8px;height:8px;border-radius:999px;background:var(--app-kiln);border:2px solid var(--app-surface)}.ai-done-link{background:none;border:none;color:var(--ant-color-link);cursor:pointer;font:inherit;padding:0 4px}@media (max-width: 768px){.ai-fab-text{display:none}.ai-dock-head .ant-btn,.ai-dock-collapsed .ant-btn,.ai-sheet-peek{min-width:40px;min-height:40px}}@media (max-width: 900px){.manual-toc{position:static!important;width:100%!important;display:flex!important;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;-webkit-overflow-scrolling:touch}.manual-toc>div:first-child{display:none}.manual-toc a{white-space:nowrap;flex-shrink:0;border:1px solid var(--app-border-soft)}}
