:root{--bg: #f3f5f9;--surface: #ffffff;--surface-soft: #f8fafc;--surface-muted: #eef2f7;--line: #e1e7ef;--line-strong: #cbd5e1;--text: #182230;--text-muted: #667085;--text-soft: #98a2b3;--primary: #2563eb;--primary-dark: #1d4ed8;--primary-soft: #eff6ff;--accent: #2f8f70;--accent-soft: #e8f7ef;--danger: #b42318;--danger-soft: #fff1f0;--warning: #b65b00;--shadow-sm: 0 1px 2px rgba(24, 34, 48, .05);--shadow-md: 0 10px 26px rgba(24, 34, 48, .08);color:var(--text);background:var(--bg);font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;min-width:320px;background:linear-gradient(180deg,#f8faff 0,var(--bg) 300px),var(--bg);font-size:14px;line-height:1.45}button,input,select{font:inherit}button{touch-action:manipulation}button:disabled,select:disabled{cursor:not-allowed;opacity:.58}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.auth-page{display:grid;place-items:center;min-height:100dvh;padding:24px;background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 360px),var(--bg)}.auth-card{width:min(440px,100%);padding:32px;border:1px solid var(--line);border-radius:12px;background:#fffffff5;box-shadow:var(--shadow-md)}.auth-brand{margin-bottom:24px}.auth-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;margin-bottom:18px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted)}.auth-tabs button{min-height:40px;border:0;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;font-weight:700}.auth-tabs button.selected{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.auth-note,.form-message{margin:14px 0 0;color:var(--text-muted);font-size:13px;line-height:1.6}.form-message{color:var(--accent);font-weight:800}.app-shell{display:grid;grid-template-columns:var(--sidebar-width, 220px) minmax(0,1fr);min-height:100dvh}.sidebar{position:sticky;top:0;display:flex;flex-direction:column;height:100dvh;padding:20px 12px;border-right:1px solid var(--line);background:#fffffff5;color:var(--text);box-shadow:6px 0 24px #18223006;transition:width .18s ease,padding .18s ease}.brand{display:flex;align-items:center;gap:10px;margin-bottom:20px;min-width:0}.brand-mark{display:grid;flex:0 0 auto;place-items:center;width:36px;height:36px;border:1px solid rgba(37,99,235,.2);border-radius:10px;background:linear-gradient(180deg,#f7faff,#eaf1ff);color:var(--primary);font-weight:900}.brand strong,.brand span{display:block}.brand strong{color:var(--text);font-size:14px}.brand span{margin-top:4px;color:var(--text-muted);font-size:12px}.brand-copy{min-width:0;flex:1}.sidebar-toggle{flex:0 0 auto}nav{display:grid;gap:6px}nav button,.ghost,.primary,.icon-button{border-radius:9px;cursor:pointer}nav button{display:flex;align-items:center;gap:9px;min-height:40px;padding:9px 10px;border:1px solid transparent;color:var(--text-muted);background:transparent;text-align:left;font-weight:650;white-space:nowrap;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}nav button svg{color:var(--text-soft)}nav button:hover{border-color:#2563eb24;background:var(--primary-soft);color:var(--primary-dark)}nav button.active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 6px 14px #2563eb2e}nav button.active svg{color:#fff}.user-panel{display:grid;gap:5px;margin-top:auto;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}.user-panel strong,.user-panel span{display:block}.user-panel span{color:var(--text-muted);font-size:13px}.user-panel button{display:inline-flex;align-items:center;gap:7px;width:fit-content;min-height:36px;margin-top:6px;padding:6px 0;border:0;color:var(--primary);background:transparent;cursor:pointer;font-weight:800}.sidebar-resizer{position:absolute;top:0;right:-7px;display:grid;place-items:center;width:14px;height:100%;border:0;color:var(--text-soft);background:transparent;cursor:col-resize}.sidebar-resizer:hover{color:var(--primary);background:#176b870f}.sidebar-collapsed .sidebar{padding:20px 8px}.sidebar-collapsed .brand{display:grid;justify-items:center;gap:8px}.sidebar-collapsed .brand-copy,.sidebar-collapsed nav button span,.sidebar-collapsed .user-panel strong,.sidebar-collapsed .user-panel span,.sidebar-collapsed .user-panel button span{display:none}.sidebar-collapsed nav button{justify-content:center;padding:9px}.sidebar-collapsed .user-panel{padding:8px;place-items:center}.workspace-main{min-width:0;padding:24px clamp(20px,2vw,32px) 32px}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line)}.topbar-copy{min-width:0}.page-kicker{display:block;margin-bottom:6px;color:var(--text-soft);font-size:12px;font-weight:700;letter-spacing:.02em}h1,h2,h3,p{margin-top:0}h1{position:relative;margin-bottom:5px;padding-left:13px;color:var(--text);font-size:24px;line-height:1.2}h1:before{position:absolute;top:2px;bottom:2px;left:0;width:4px;border-radius:999px;background:var(--primary);content:""}.topbar p,.muted{color:var(--text-muted);line-height:1.6}.topbar p{margin-bottom:0}.status-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.status-strip span{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:7px 11px;border:1px solid rgba(47,143,112,.24);border-radius:8px;color:#1f6f58;background:var(--accent-soft);font-size:13px;font-weight:800}.operation-notice{margin:0 0 14px;padding:11px 14px;border-radius:10px;font-size:14px;font-weight:800;line-height:1.5}.operation-notice.ok{color:#1f6f58;background:var(--accent-soft);border:1px solid rgba(47,143,112,.26)}.operation-notice.danger{color:var(--danger);background:var(--danger-soft);border:1px solid #ffd1cc}.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:8px 12px;border:1px solid var(--line-strong);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-size:13px;font-weight:700;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}.ghost.compact,.primary.compact{min-height:34px;padding:7px 11px;font-size:12px}.icon-button{display:inline-grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);background:var(--surface);color:var(--text-muted);box-shadow:var(--shadow-sm)}.icon-button:hover{color:var(--primary);border-color:#176b8747}.danger-button{color:var(--danger)}.danger-button:hover:not(:disabled){border-color:#b4231852;background:var(--danger-soft);color:var(--danger)}.ghost:disabled,.icon-button:disabled{cursor:not-allowed;opacity:.48;transform:none}.ghost:hover{border-color:#2563eb61;background:#fbfdff;box-shadow:0 6px 16px #17203314}.ghost:active,nav button:active,.primary:active{transform:translateY(1px)}.stack,.grid{display:grid;gap:16px}.grid.two{grid-template-columns:minmax(320px,.86fr) minmax(460px,1.14fr);align-items:start}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric,.panel,.table-card,.table-wrap{border:1px solid var(--line);border-radius:10px;background:#fffffff5;box-shadow:var(--shadow-sm)}.metric{display:grid;min-height:106px;padding:16px;align-content:start;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.metric:hover,.panel:hover,.table-wrap:hover{border-color:var(--line-strong);box-shadow:var(--shadow-md)}.metric-icon{display:grid;place-items:center;width:34px;height:34px;margin-bottom:10px;border:1px solid rgba(37,99,235,.16);border-radius:9px;color:var(--primary);background:var(--primary-soft)}.metric svg{width:20px;height:20px}.metric span{display:block;color:var(--text-muted);font-size:12px;font-weight:650}.metric strong{display:block;margin-top:6px;color:var(--text);font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums}.panel{padding:18px}.panel h2{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--text);font-size:15px;line-height:1.35}.warning-group{border-top:1px solid var(--line);padding-top:13px;margin-top:13px}.warning-group:first-of-type{border-top:0;padding-top:0;margin-top:0}.warning-group h3,.timeline h3{margin-bottom:8px;color:var(--text);font-size:14px}.warning-group p{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;color:var(--danger);line-height:1.55}.warning-group svg{flex:0 0 auto;margin-top:3px}.timeline{margin-bottom:18px}.timeline:last-child{margin-bottom:0}.timeline p{padding:10px 0;border-bottom:1px solid var(--line);color:var(--text-muted);line-height:1.55}.list-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:12px;min-height:44px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:var(--shadow-sm)}.toolbar-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.search-field{display:flex;align-items:center;gap:8px;width:min(520px,100%);min-height:36px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.search-field:focus-within{border-color:#2563eba6;background:var(--surface);box-shadow:0 0 0 3px #2563eb1c}.search-field svg{flex:0 0 auto;color:var(--text-soft)}.search-field input{width:100%;border:0;outline:0;background:transparent;min-height:30px;padding:0}.toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-left:auto}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:10px}.filter-field{display:flex;flex-direction:column;gap:6px;min-width:0}.filter-field span{color:var(--text-muted);font-size:12px;line-height:1.2}.filter-field select,.filter-field input{width:100%;min-height:36px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 10px;font-size:12px;outline:0}.filter-field select:focus,.filter-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1c}.checkbox-filter .checkbox-control{display:flex;align-items:center;gap:7px;min-height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff}.checkbox-filter input,td input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary)}.checkbox-filter .checkbox-control span{margin:0;color:var(--text);font-size:12px}.table-card{overflow:hidden}.table-wrap{overflow:auto}table{width:100%;min-width:1000px;border-collapse:separate;border-spacing:0;font-size:13px}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;line-height:1.38}th{position:sticky;top:0;z-index:1;color:var(--text-muted);background:var(--surface-soft);font-size:11px;font-weight:800;line-height:1.2;white-space:nowrap}tbody tr{transition:background .14s ease}tbody tr:hover{background:#f7fbfd}tbody tr:last-child td{border-bottom:0}td strong,td span{display:block}td strong{color:var(--text)}td span{margin-top:3px;color:var(--text-muted);font-size:12px}.pill{display:inline-block;width:fit-content;margin-top:5px;padding:3px 7px;border:1px solid rgba(23,107,135,.18);border-radius:999px;color:var(--primary-dark);background:var(--primary-soft);font-size:11px;font-weight:800}.inline{display:inline;margin:0;font-size:inherit}.empty-state{display:block;padding:24px;text-align:center;color:var(--text-muted)}.empty-state.compact{padding:18px 8px}.pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-top:1px solid var(--line);color:var(--text-muted);font-size:12px}.pagination-status{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px}.pagination-status label{display:inline-flex;align-items:center;gap:6px;margin:0}.pagination-status label>span{color:var(--text-muted)}.pagination-status select{min-height:30px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 8px;font-size:12px;outline:0}.pagination-status select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1c}.pagination>div{display:flex;gap:6px}.pagination.in-panel{margin:10px -16px -16px;border-bottom-right-radius:8px;border-bottom-left-radius:8px;background:var(--surface-soft)}.danger{color:var(--danger);font-weight:800}.ok{color:var(--accent);font-weight:800}.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form.single{grid-template-columns:1fr}.form-section{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.form-section-heading{grid-column:1 / -1;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:9px;border-bottom:1px solid var(--line)}.form-section-heading strong{color:var(--text);font-size:13px}.form-section-heading span{color:var(--text-muted);font-size:12px}.scope-note{display:flex;align-items:baseline;gap:12px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.scope-note strong{color:var(--accent);white-space:nowrap}.scope-note span{color:var(--text-muted);font-size:13px}.trade-preview{grid-column:1 / -1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;border-radius:10px;background:var(--surface-soft)}.trade-preview span{display:grid;gap:4px;color:var(--text-muted);font-size:12px}.trade-preview strong{color:var(--text);font-size:15px}label{display:grid;gap:7px;min-width:0}label span{color:var(--text-muted);font-size:12px;font-weight:800}input,select{width:100%;min-height:40px;padding:0 12px;border:1px solid var(--line-strong);border-radius:9px;color:var(--text);background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}input::placeholder{color:var(--text-soft)}.file-input-hidden{display:none}input:focus,select:focus{border-color:#2563ebb8;background:#fcfeff;box-shadow:0 0 0 3px #2563eb1f;outline:0}.primary{grid-column:1 / -1;display:flex;justify-content:center;align-items:center;gap:8px;min-height:40px;border:1px solid var(--primary-dark);color:#fff;background:var(--primary);box-shadow:0 7px 16px #2563eb33;font-size:13px;font-weight:800;transition:box-shadow .16s ease,transform .16s ease,filter .16s ease}.primary:hover{filter:brightness(1.03);box-shadow:0 9px 22px #2563eb40}.primary:disabled{box-shadow:none;filter:none}.spinner{animation:spin .85s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.primary svg{width:18px;height:18px}.records{display:grid;gap:10px}.records article{display:grid;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);transition:border-color .16s ease,background .16s ease}.record-main{display:flex;justify-content:space-between;gap:16px}.record-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px;padding-top:8px;border-top:1px solid var(--line)}.records article:hover{border-color:var(--line-strong);background:#fbfdff}.records span{display:block;color:var(--text-muted);font-size:12px;line-height:1.45}.record-main span{margin-top:6px}.record-meta span{margin-top:0}.record-meta .pill{display:inline-flex;align-items:center;width:fit-content}.sheet-backdrop{position:fixed;inset:0;z-index:50;display:flex;justify-content:flex-end;padding:24px;background:#0f172a4d;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.create-sheet{width:min(720px,100%);height:100%;overflow:auto;padding:24px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 18px 48px #1720332e}.create-sheet header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.create-sheet h2{margin:0;font-size:18px}.records b{white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important}.spinner{animation:none!important}}@media(max-width:1180px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:14px;border-right:0;border-bottom:1px solid var(--line)}nav{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar-toggle,.sidebar-resizer{display:none}.user-panel{margin-top:12px}.topbar{flex-direction:column}}@media(max-width:620px){.auth-card{padding:22px}.workspace-main{padding:14px}.list-toolbar{gap:8px}.toolbar-main{align-items:stretch;flex-direction:column}.search-field{width:100%}.toolbar-actions{width:100%;margin-left:0}.toolbar-actions>button{flex:1}.filter-grid{grid-template-columns:1fr}nav{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:22px}.metrics,.form,.form-section{grid-template-columns:1fr}.form-section-heading,.scope-note{align-items:flex-start;flex-direction:column;gap:4px}.trade-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.records b{white-space:normal}}.table-scroll-hint{padding:9px 12px;color:var(--text-muted);font-size:12px}.table-wrap{max-width:100%;border-radius:0}.data-table{table-layout:fixed;min-width:100%}.data-table td{white-space:nowrap;background:#fff}.data-table tbody tr:hover td{background:#f7fbfd}.data-table .numeric-cell{text-align:right;font-variant-numeric:tabular-nums}.data-table .fixed-select{position:sticky;left:0;z-index:2}.data-table .fixed-identity{position:sticky;left:var(--identity-left);z-index:2;border-right:1px solid var(--line)}.data-table .fixed-actions{position:sticky;right:0;z-index:2;border-left:1px solid var(--line)}.data-table thead .fixed-select,.data-table thead .fixed-identity,.data-table thead .fixed-actions{z-index:3}.cell-details{white-space:normal;min-width:0}.cell-details summary{cursor:pointer;list-style:none;border-radius:3px}.cell-details summary::-webkit-details-marker{display:none}.cell-details summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.cell-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:anywhere}.cell-full{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}.cell-details[open] summary{color:var(--primary)}.record-main>div{min-width:0;overflow-wrap:anywhere}.record-main>b{flex-shrink:0;white-space:nowrap;font-variant-numeric:tabular-nums}.record-meta{overflow-wrap:anywhere}@media(max-width:760px){.data-table .fixed-select,.data-table .fixed-identity,.data-table .fixed-actions{position:static}.record-main{flex-wrap:wrap}}.toolbar-actions{flex-wrap:wrap}@media(max-width:760px){.toolbar-actions>button{flex:1 1 auto}}.pagination-status label{white-space:nowrap}
