@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.m-anno{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;background:#1d2129;color:#e5e6eb}.m-anno .m-header{min-height:50px;background:#1d2129;color:#fff}.m-anno-tools{display:flex;flex-wrap:wrap;gap:6px;overflow:visible;padding:8px 12px;background:#1d2129}.m-anno-tool{flex:0 0 auto;padding:7px 10px;border:1px solid #4e5969;border-radius:8px;background:#2e3238;color:#e5e6eb;font-size:13px}.m-anno-tool.on{border-color:#1677ff;background:#1677ff;color:#fff}.m-anno-tool:disabled{opacity:.4}.m-anno-stage{position:relative;display:flex;flex:1;min-height:0;align-items:center;justify-content:center;overflow:hidden;touch-action:none}.m-anno-wrap{position:relative;overflow:hidden;flex:0 0 auto;transform-origin:0 0}.m-anno-svg{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;touch-action:none}.m-anno-zoom{position:absolute;right:12px;bottom:12px;z-index:8;display:flex;align-items:center;gap:4px;padding:5px;border:1px solid #e5e9e6;border-radius:12px;background:#fff;box-shadow:0 2px 10px #0002}.m-anno-zoom button{min-width:34px;height:34px;border:0;border-radius:8px;background:#f1f4f2;color:#24362e;font-size:17px}.m-anno-zoom span{min-width:39px;text-align:center;color:#24362e;font-size:11px}.m-anno-tip{margin:0;padding:8px 16px;color:#8f959e;background:#1d2129;text-align:center;font-size:12px}.m-anno-dialog-mask,.m-anno-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:22px;background:#0009}.m-anno-dialog{width:min(460px,100%);max-height:90vh;overflow:auto;padding:18px 16px;border-radius:14px;background:#fff;color:#1d2129}.m-anno-dialog-title{margin-bottom:12px;color:#1d2129;font-size:16px;font-weight:600}.m-anno-input{width:100%;box-sizing:border-box;margin-top:6px;padding:10px 12px;border:1px solid #e5e6eb;border-radius:8px;font-size:15px}.m-anno-row{display:flex;gap:8px;margin-top:8px}.m-anno-opt{flex:1;padding:10px 8px;border:1px solid #e5e6eb;border-radius:8px;background:#fff;color:#4e5969;font-size:14px}.m-anno-opt.on{border-color:#1677ff;color:#1677ff;background:#eff6ff;font-weight:600}.m-anno-lens{position:absolute;z-index:5;width:120px;height:120px;border:2px solid #fff;border-radius:50%;background-repeat:no-repeat;background-color:#2e3238;box-shadow:0 2px 12px #0008;pointer-events:none}.glass-panel{background:#fffc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:.5px solid rgb(var(--ink-400-rgb))}.ios-input{background-color:#7177861f;border:.5px solid transparent}.ios-input:focus{border-color:rgb(var(--brand-500-rgb));outline:none}.data-row:hover{background-color:rgb(var(--brand-500-rgb) / .05)}@media print{body{background:#fff}.no-print{display:none!important}body.print-preview *{visibility:hidden}body.print-preview .print-preview-modal,body.print-preview .print-preview-modal *{visibility:visible}body.print-preview .print-preview-modal{position:absolute;left:0;top:0;width:100%;max-height:none;overflow:visible;border:0;border-radius:0;padding:0}body.print-preview .print-preview-modal .a4-preview-print{width:210mm}}.pano-anno-stage{position:relative;overflow:hidden;overflow:clip;border-radius:12px;background:#0f172a;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;touch-action:none}.pano-anno-stage.draw{cursor:crosshair}.pano-anno-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.pano-anno-tool,.pano-anno-ruler{min-height:34px;padding:0 14px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#475569;font-size:13px;cursor:pointer}.pano-anno-tool:hover,.pano-anno-ruler:hover{border-color:#f59e0b;color:#b45309}.pano-anno-tool.on,.pano-anno-ruler.on{border-color:#f59e0b;background:#fffbeb;color:#b45309;font-weight:600}.pano-anno-tool:disabled,.pano-anno-ruler:disabled{opacity:.5;cursor:not-allowed}.pano-anno-zoom-controls{display:inline-flex;align-items:center;gap:3px;padding:2px;border:1px solid #dbe3ee;border-radius:8px;background:#f8fafc}.pano-anno-zoom-controls button{min-width:32px;height:30px;border:0;border-radius:6px;background:#fff;color:#344054}.pano-anno-zoom-controls span{min-width:42px;text-align:center;font-size:12px;color:#475569}.pano-anno-export-status{width:100%;color:#475569;font-size:12px}.pano-mmbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.pano-anno-ble,.pano-anno-blefill{min-height:32px;padding:0 12px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#475569;font-size:12px;cursor:pointer;white-space:nowrap}.pano-anno-ble.on{border-color:#16a34a;background:#f0fdf4;color:#15803d;font-weight:600}.pano-anno-ble:disabled,.pano-anno-blefill:disabled{opacity:.45;cursor:not-allowed}.pano-anno-mminput{min-height:32px;padding:0 12px;border:1px solid #f59e0b;border-radius:8px;background:#fff;color:#b45309;font-size:14px;font-weight:700;text-align:center;outline:none;width:190px}.pano-anno-mmhint{font-size:12px;color:#94a3b8}.pano-anno-tip{display:none;margin-bottom:8px;padding:9px 14px;border-radius:10px;background:#eef2ff;color:#2563eb;font-size:13px;min-height:40px}.pano-anno-tip.show{display:block}.pano-annotation-readonly{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:hidden;pointer-events:none}.pano-anno-measures,.pano-anno-texts{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4}.pano-anno-measures svg{overflow:visible}.pano-measure-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}.pano-measure-text{position:absolute;transform:translate(-50%,-50%);background:#fff;border:1px solid #f59e0b;color:#b45309;font-size:13px;font-weight:700;padding:2px 9px;border-radius:6px;white-space:nowrap;box-shadow:0 1px 6px #00000040;pointer-events:auto}.pano-measure-text.vert{writing-mode:vertical-rl;letter-spacing:2px;padding:10px 3px}.pano-measure-text.preview{background:#fffbeb;pointer-events:none}input.pano-measure-text.edit{cursor:text;text-align:center;outline:none;width:64px}input.pano-measure-text.edit.vert{width:auto}.pano-measure.sel .pano-measure-text{outline:2px solid #f59e0b}.pano-measure-handle{position:absolute;width:14px;height:14px;border-radius:50%;background:#f59e0b;border:2px solid #fff;box-shadow:0 0 0 1.5px #f59e0b;transform:translate(-50%,-50%);cursor:grab;pointer-events:auto;z-index:7}.pano-measure-del{position:absolute;width:18px;height:18px;border-radius:50%;background:#dc2626;color:#fff;border:none;font-size:11px;line-height:18px;text-align:center;transform:translate(-50%,-50%);cursor:pointer;pointer-events:auto;z-index:8;box-shadow:0 1px 4px #0000004d;padding:0}.pano-measure-hit{position:absolute;width:24px;height:24px;border:none;background:transparent;transform:translate(-50%,-50%);cursor:pointer;pointer-events:auto;z-index:6;padding:0}.pano-note{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.pano-note-svg{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}.pano-note-text{position:absolute;background:transparent;border:0;color:#b45309;font-size:13px;font-weight:600;white-space:nowrap;padding:0 2px;pointer-events:auto;cursor:move}.pano-note.sel .pano-note-text{outline:2px solid #f59e0b;border-radius:3px}input.pano-note-text,input.pano-note-text:hover,input.pano-note-text:focus{background:transparent!important;background-color:transparent!important;border:0!important;box-shadow:none!important;outline:none;cursor:text;min-width:48px}.pano-measure-p1{position:absolute;width:12px;height:12px;border:2px solid #fff;background:#dc2626;border-radius:50%;transform:translate(-50%,-50%);z-index:5;box-shadow:0 1px 6px #0006}.pano-textmark{position:absolute;transform:translate(-50%,-50%);background:#fff;border:2px solid #2563eb;color:#1e40af;font-size:13px;font-weight:600;padding:3px 10px;border-radius:7px;white-space:nowrap;box-shadow:0 2px 10px #00000040;pointer-events:auto;z-index:5}.pano-textmark.sel{outline:2px solid #f59e0b}.pano-textmark-txt{cursor:grab}.pano-textmark-del{position:absolute;left:calc(100% + 6px);top:-8px;width:18px;height:18px;border-radius:50%;background:#dc2626;color:#fff;border:none;font-size:11px;line-height:18px;text-align:center;cursor:pointer;padding:0;box-shadow:0 1px 4px #0000004d}.pano-textmark-input{position:absolute;transform:translate(-50%,-50%);border:2px solid #2563eb;border-radius:7px;font-size:13px;padding:4px 8px;width:150px;outline:none;z-index:6}.pano-lens{position:absolute;width:150px;height:150px;border-radius:50%;border:3px solid #fff;box-shadow:0 4px 20px #00000080;overflow:hidden;pointer-events:none;z-index:20;background:transparent}.pano-lens-image{display:block;width:100%;height:100%;image-rendering:auto}.pano-lens-cross{position:absolute;left:50%;top:50%;width:100%;height:1px;background:#ffffffa6;transform:translate(-50%,-50%)}.pano-lens-cross.v{width:1px;height:100%}.pano-lens-tip{position:absolute;left:50%;bottom:6px;transform:translate(-50%);color:#fff;font-size:10px;opacity:.8}.pano-anno-limit{margin-top:8px;font-size:12px;color:#d48806}.pano-dlg-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;z-index:60;display:flex;align-items:center;justify-content:center;padding:20px}.pano-dlg{width:520px;max-width:100%;max-height:78vh;background:#fff;border-radius:14px;box-shadow:0 16px 50px #0000004d;display:flex;flex-direction:column;overflow:hidden}.pano-dlg.narrow{width:340px}.pano-dlg-hd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:16px 20px 12px;border-bottom:1px solid #f1f3f5}.pano-dlg-hd b{font-size:15px;color:#1f2937}.pano-dlg-x{width:28px;height:28px;border:none;border-radius:7px;background:#f1f5f9;color:#64748b;font-size:15px;cursor:pointer;flex-shrink:0}.pano-dlg-x:hover{background:#e2e8f0}.pano-dlg-list{flex:1;overflow-y:auto;padding:10px 14px}.pano-dlg-empty{padding:20px 8px;text-align:center;color:#94a3b8;font-size:13px}.pano-dlg-row{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;cursor:grab;border:1px solid transparent}.pano-dlg-row:hover{background:#f8fafc}.pano-dlg-row.on{background:#eef2ff}.pano-dlg-row.drag{opacity:.35;border:1px dashed #2563eb;background:#f8fafc}.pano-dlg-row.over{border-color:#2563eb;background:#eef2ff}.pano-dlg-grip{color:#cbd5e1;cursor:grab;flex-shrink:0;font-size:14px;letter-spacing:1px}.pano-dlg-idx{width:26px;text-align:center;color:#94a3b8;font-size:12px;flex-shrink:0}.pano-dlg-name{flex:1;min-width:0;border:1px solid transparent;background:transparent;font-size:13px;color:#1f2937;padding:4px 8px;border-radius:6px;outline:none}.pano-dlg-name:hover{border-color:#e2e8f0;background:#fff}.pano-dlg-name:focus{border-color:#2563eb;background:#fff}.pano-dlg-pickname{flex:1;font-size:13px;color:#1f2937}.pano-dlg-ops{display:flex;gap:4px;flex-shrink:0}.pano-dlg-op{min-width:26px;height:26px;padding:0 6px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#64748b;font-size:12px;cursor:pointer}.pano-dlg-op:hover{border-color:#2563eb;color:#2563eb}.pano-dlg-op.del:hover{border-color:#dc2626;color:#dc2626}.pano-dlg-ft{padding:12px 20px 16px;border-top:1px solid #f1f3f5;display:flex;gap:8px}.pano-dlg-upload{padding:7px 16px;font-size:13px;border-radius:8px;cursor:pointer;border:1px dashed #2563eb;color:#2563eb;background:#fff}.pano-dlg-ok{margin-left:auto;padding:7px 18px;font-size:13px;border-radius:8px;cursor:pointer;border:none;background:#2563eb;color:#fff}.anno-appearance{display:grid;gap:12px;margin-top:14px;max-height:min(44vh,360px);overflow:auto;padding:12px;border:1px solid #e5e9f0;border-radius:10px;background:#f8fafc}.anno-appearance-field{display:grid;gap:7px;min-width:0;color:#344054;font-size:13px}.anno-appearance-field label{display:flex;justify-content:space-between;align-items:center;font-weight:600}.anno-appearance-field output{color:#667085;font-weight:400}.anno-appearance-field input[type=range]{width:100%;accent-color:#1677ff}.anno-appearance-options{display:flex;flex-wrap:wrap;gap:6px}.anno-appearance-options button{flex:1 1 auto;min-height:34px;padding:6px 8px;border:1px solid #d0d5dd;border-radius:7px;color:#475467;background:#fff;font-size:12px}.anno-appearance-options button.on{border-color:#1677ff;color:#1677ff;background:#eff6ff}.anno-appearance-options button svg{display:block;width:52px;height:16px;margin:0 auto 3px}.anno-appearance-colors{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.anno-appearance-colors button{width:25px;height:25px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #cbd5e1}.anno-appearance-colors input[type=color]{width:30px;height:28px;padding:2px;border:1px solid #cbd5e1;border-radius:5px}.anno-appearance-colors input:disabled{opacity:.45}.anno-appearance-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;background:#0009}.anno-appearance-dialog{width:min(520px,100%);max-height:90vh;overflow:auto;padding:20px;border-radius:14px;background:#fff;box-shadow:0 18px 60px #0005}.anno-appearance-dialog .m-anno-dialog-title{color:#1d2939;font-size:18px;font-weight:700}.anno-appearance-dialog .m-anno-input{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid #d0d5dd;border-radius:8px}.anno-appearance-dialog .m-anno-row{display:flex;gap:8px;margin-top:12px}.anno-appearance-dialog .m-anno-opt{min-height:38px;flex:1;border:1px solid #d0d5dd;border-radius:8px;background:#fff;color:#344054}.anno-appearance-dialog .m-anno-opt.on{border-color:#1677ff;color:#fff;background:#1677ff}m-input/m-field*/m-row 类名，而 mobile.css 仅由 src/mobile/main.tsx 引入 ⇒ PC 端这些类零定义（按钮白板、输入框裸浏览器默认）。 此处按 PC token 体系补齐同名类：颜色全部走 tokens.css 变量（--brand-500-rgb / --m3-on-primary / --ink-*-rgb），随 data-theme（紫浓白/清爽蓝/暗夜极光）切换自动 同步——正是「换主题时按钮也要同步」的口径。移动端入口不加载本文件，互不影响。 ========================================================================== */ .m-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 14px;border:1px solid rgb(var(--ink-400-rgb));border-radius:8px;background:var(--m3-surface-lowest);color:rgb(var(--ink-700-rgb));font-size:14px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}.m-btn:hover{background:rgb(var(--ink-100-rgb))}.m-btn:disabled{opacity:.45;cursor:not-allowed}.m-btn-primary{border-color:transparent;background:rgb(var(--brand-500-rgb));color:var(--m3-on-primary);font-weight:500}.m-btn-primary:hover{background:rgb(var(--brand-600-rgb))}.m-btn-ghost{border-color:rgb(var(--ink-400-rgb));background:var(--m3-surface-lowest);color:rgb(var(--ink-700-rgb))}.m-btn-warn{border-color:rgb(var(--warning-rgb) / .4);background:rgb(var(--warning-rgb) / .08);color:rgb(var(--warning-rgb))}.m-btn-warn:hover{background:rgb(var(--warning-rgb) / .14)}.m-btn-green{border-color:transparent;background:rgb(var(--success-rgb));color:#fff}.m-btn-outline-brand{border-color:rgb(var(--brand-500-rgb) / .5);background:rgb(var(--brand-500-rgb) / .06);color:rgb(var(--brand-500-rgb))}.m-btn-outline-brand:hover{background:rgb(var(--brand-500-rgb) / .12)}.m-btn-sm{height:32px;padding:0 12px;font-size:13px;border-radius:8px}.m-btn-block{width:100%;height:40px;font-size:15px}.m-input{box-sizing:border-box;height:36px;padding:0 10px;border:1px solid rgb(var(--ink-400-rgb));border-radius:8px;background:var(--m3-surface-lowest);color:rgb(var(--ink-700-rgb));font-size:14px}.m-input::-moz-placeholder{color:rgb(var(--ink-500-rgb));opacity:.7}.m-input::placeholder{color:rgb(var(--ink-500-rgb));opacity:.7}.m-input:focus{outline:none;border-color:rgb(var(--brand-500-rgb));box-shadow:0 0 0 3px rgb(var(--brand-500-rgb) / .15)}.m-input:disabled{opacity:.45}.m-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.m-field-row{display:flex;align-items:center;gap:8px}.m-field-row .m-input{width:100%}.m-field-label{font-size:13px;color:rgb(var(--ink-600-rgb));margin:12px 0 6px}.m-field-hint{display:block;font-size:12px;color:rgb(var(--ink-600-rgb));line-height:1.7}.m-field-hint-inline{font-size:12px;color:rgb(var(--ink-600-rgb));font-weight:400}:root{--brand-50-rgb: 243 237 255;--brand-100-rgb: 229 219 255;--brand-200-rgb: 201 182 247;--brand-400-rgb: 122 87 245;--brand-500-rgb: 109 79 214;--brand-600-rgb: 86 54 190;--brand-700-rgb: 67 41 155;--ink-50-rgb: 251 248 255;--ink-100-rgb: 244 239 251;--ink-200-rgb: 235 228 246;--ink-300-rgb: 223 213 238;--ink-400-rgb: 195 180 222;--ink-500-rgb: 110 100 135;--ink-600-rgb: 69 61 102;--ink-700-rgb: 27 20 56;--sand-50-rgb: 250 247 240;--sand-100-rgb: 245 241 232;--sand-150-rgb: 240 236 225;--sand-200-rgb: 231 224 210;--sand-300-rgb: 227 220 203;--sand-400-rgb: 216 209 194;--sand-500-rgb: 196 187 166;--sand-600-rgb: 111 106 94;--sand-700-rgb: 87 82 69;--sand-800-rgb: 75 70 60;--sand-900-rgb: 47 43 38;--moss-rgb: 45 74 62;--moss-50-rgb: 238 244 238;--moss-200-rgb: 207 224 207;--danger-rgb: 168 28 48;--success-rgb: 10 102 63;--warning-rgb: 180 83 9;--danger-soft: #ffe3e8;--success-soft: #e0f5ea;--warning-soft: #fef0d9;--fs-caption: 12px;--fs-label: 13px;--fs-body: 14px;--fs-lg: 16px;--fs-title: 20px;--fs-display: 32px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--r-control: 6px;--r-card: 10px;--r-dialog: 16px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(26, 27, 32, .06), 0 1px 1px rgba(26, 27, 32, .04);--shadow-2: 0 4px 8px rgba(26, 27, 32, .08), 0 2px 4px rgba(26, 27, 32, .04);--shadow-3: 0 12px 24px rgba(26, 27, 32, .12), 0 4px 8px rgba(26, 27, 32, .06);--dur-fast: .15s;--dur-base: .24s;--dur-scene: .42s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ring: 0 0 0 2px #ffffff, 0 0 0 4px rgb(var(--brand-500-rgb));--ring-danger: 0 0 0 2px #ffffff, 0 0 0 4px rgb(var(--danger-rgb));--m3-on-primary: #ffffff;--m3-on-primary-container: #fefcff;--m3-on-primary-fixed: #001a41;--m3-secondary: #4c4aca;--m3-secondary-container: #6664e4;--m3-secondary-fixed: #e2dfff;--m3-secondary-fixed-dim: #c2c1ff;--m3-on-secondary: #ffffff;--m3-on-secondary-container: #fffbff;--m3-on-secondary-fixed: #0c006a;--m3-on-secondary-fixed-variant: #3631b4;--m3-tertiary: #9e3d00;--m3-tertiary-container: #c64f00;--m3-tertiary-fixed: #ffdbcc;--m3-tertiary-fixed-dim: #ffb595;--m3-on-tertiary: #ffffff;--m3-on-tertiary-container: #fffbff;--m3-on-tertiary-fixed: #351000;--m3-on-tertiary-fixed-variant: #7c2e00;--m3-on-error: #ffffff;--m3-on-error-container: #93000a;--m3-surface-lowest: #ffffff;--m3-surface-high: #e9e7ed;--m3-inverse-surface: #2f3035;--m3-inverse-on-surface: #f1f0f6;--sidebar-w: 190px;--rail-w: 56px;--gap-shell: 6px;--row-h: 40px}[data-theme=blue]{--brand-50-rgb: 234 243 253;--brand-100-rgb: 217 233 251;--brand-200-rgb: 169 212 255;--brand-400-rgb: 47 127 230;--brand-500-rgb: 27 113 223;--brand-600-rgb: 19 76 151;--brand-700-rgb: 14 56 116;--ink-50-rgb: 248 252 255;--ink-100-rgb: 239 246 252;--ink-200-rgb: 225 240 251;--ink-300-rgb: 203 222 238;--ink-400-rgb: 159 184 212;--ink-500-rgb: 74 94 126;--ink-600-rgb: 34 53 90;--ink-700-rgb: 19 35 63;--danger-rgb: 168 28 48;--success-rgb: 10 102 63;--warning-rgb: 180 83 9;--danger-soft: #ffe3e8;--success-soft: #e0f5ea;--warning-soft: #fef0d9}[data-theme=dark]{--brand-50-rgb: 36 30 69;--brand-100-rgb: 46 38 87;--brand-200-rgb: 191 174 253;--brand-400-rgb: 139 108 246;--brand-500-rgb: 122 87 245;--brand-600-rgb: 109 79 214;--brand-700-rgb: 86 54 190;--ink-50-rgb: 16 22 46;--ink-100-rgb: 22 27 60;--ink-200-rgb: 28 33 66;--ink-300-rgb: 42 48 80;--ink-400-rgb: 86 94 134;--ink-500-rgb: 168 176 216;--ink-600-rgb: 208 214 242;--ink-700-rgb: 242 244 255;--danger-rgb: 255 138 150;--success-rgb: 107 240 174;--warning-rgb: 255 180 84;--danger-soft: #3a1622;--success-soft: #12301f;--warning-soft: #3a2a10;--m3-on-primary: #ffffff;--m3-on-primary-container: #170d33;--m3-on-primary-fixed: #ece7ff;--m3-secondary: #b9bafd;--m3-secondary-container: #43419e;--m3-secondary-fixed: #2c2a66;--m3-secondary-fixed-dim: #23215a;--m3-on-secondary: #0f0e38;--m3-on-secondary-container: #ecebff;--m3-on-secondary-fixed: #f0f0ff;--m3-on-secondary-fixed-variant: #d8d8ff;--m3-tertiary: #ffb27a;--m3-tertiary-container: #7a3a10;--m3-tertiary-fixed: #3a2410;--m3-tertiary-fixed-dim: #33200e;--m3-on-tertiary: #33160a;--m3-on-tertiary-container: #ffdbc8;--m3-on-tertiary-fixed: #ffd9c2;--m3-on-tertiary-fixed-variant: #ffc4a3;--m3-on-error: #3a0a12;--m3-on-error-container: #ffc9d0;--m3-surface-lowest: #1a1f3c;--m3-surface-high: #333a5e;--m3-inverse-surface: #f2f4ff;--m3-inverse-on-surface: #10162e;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4), 0 1px 1px rgba(0, 0, 0, .3);--shadow-2: 0 4px 8px rgba(0, 0, 0, .45), 0 2px 4px rgba(0, 0, 0, .3);--shadow-3: 0 12px 24px rgba(0, 0, 0, .5), 0 4px 8px rgba(0, 0, 0, .35)}body{font-family:Inter Variable,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--fs-body);line-height:1.6;background-color:rgb(var(--ink-50-rgb));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.oa-num,table td,table th{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-control)}[data-danger=true]:focus-visible{box-shadow:var(--ring-danger)}*{scrollbar-width:thin;scrollbar-color:rgb(var(--ink-400-rgb)) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgb(var(--ink-400-rgb));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgb(var(--ink-500-rgb))}.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root,[data-theme=purple]{--bg-a: #fbf8ff;--bg-b: #f3ecfe;--bg-c: #eadcfa;--orb-a: radial-gradient(circle at 32% 30%, #c9a8ff, #8e5cf0);--orb-b: radial-gradient(circle at 32% 30%, #bdeeea, #7ac6ee);--orb-op-a: .3;--orb-op-b: .28;--glow-tint: rgba(109, 79, 214, .1);--btn-a: #0b7f7b;--btn-b: #6d4fd6;--solid-accent: #6d4fd6;--glow: rgba(109, 79, 214, .3)}[data-theme=blue]{--bg-a: #f8fcff;--bg-b: #eef6fc;--bg-c: #e1f0fb;--orb-a: radial-gradient(circle at 32% 30%, #a9d4ff, #3e8fe6);--orb-b: radial-gradient(circle at 32% 30%, #cff0f4, #6fc8de);--orb-op-a: .3;--orb-op-b: .28;--glow-tint: rgba(47, 127, 230, .1);--btn-a: #0b7f7b;--btn-b: #1b71df;--solid-accent: #2f7fe6;--glow: rgba(47, 127, 230, .28)}[data-theme=dark]{--bg-a: #10162e;--bg-b: #161b3c;--bg-c: #1c1340;--orb-a: radial-gradient(circle at 32% 30%, #6c4ce0, #3a1f8f);--orb-b: radial-gradient(circle at 32% 30%, #2fb8c8, #155e8c);--orb-op-a: .42;--orb-op-b: .2;--glow-tint: rgba(139, 108, 246, .16);--btn-a: #14807b;--btn-b: #7a57f5;--solid-accent: #8b6cf6;--glow: rgba(139, 108, 246, .45)}body{background:linear-gradient(155deg,var(--bg-a) 0%,var(--bg-b) 55%,var(--bg-c) 100%) fixed;background-color:var(--bg-a);transition:background-color .4s ease}body:before,body:after{content:"";position:fixed;z-index:0;pointer-events:none;border-radius:50%;filter:blur(90px);transition:opacity .4s ease}body:before{width:560px;height:560px;top:-160px;left:-120px;background:var(--orb-a);opacity:var(--orb-op-a)}body:after{width:520px;height:520px;bottom:-140px;right:-140px;background:var(--orb-b);opacity:var(--orb-op-b)}#root{position:relative;z-index:1}.glass-page{background:transparent}.glass-sidebar{background:linear-gradient(160deg,#ffffffe0,#ffffffa8);backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%)}.glass-tabbar{background:#fff9;backdrop-filter:blur(24px) saturate(170%);-webkit-backdrop-filter:blur(24px) saturate(170%)}.glass-card{background:linear-gradient(165deg,#ffffffdb,#ffffff9e);backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);border:1px solid rgba(255,255,255,.75);box-shadow:0 8px 28px var(--glow-tint)}[data-theme=dark] .glass-sidebar{background:linear-gradient(160deg,#1a2142d1,#0e122a99);border-color:#96a0dc24}[data-theme=dark] .glass-tabbar{background:#10142c94;border-color:#96a0dc1f}[data-theme=dark] .glass-card{background:linear-gradient(165deg,#1a2142b8,#0e122a80);border:1px solid rgba(150,160,220,.18);box-shadow:0 8px 28px #00000059}[data-theme=dark] .glass-panel{background:#161b3cb8;border-color:#96a0dc29}@media print{body{background:#fff!important}body:before,body:after{display:none!important}.glass-sidebar,.glass-tabbar,.glass-card,.glass-panel{background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-color:#e3e2e8!important;box-shadow:none!important}}@media(prefers-reduced-motion:reduce){body:before,body:after{transition:none!important;animation:none!important}}
