:root{--color-primary: #2563eb;--color-primary-light: #3b82f6;--color-primary-dark: #1d4ed8;--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-600: #1d4ed8;--color-primary-700: #1e40af;--color-primary-900: #1e3a8a;--color-accent: #d97706;--color-accent-light: #f59e0b;--color-accent-50: #fffbeb;--color-accent-100: #fef3c7;--color-success: #059669;--color-success-light: #10b981;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-danger: #dc2626;--color-danger-light: #ef4444;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-warning: #d97706;--color-warning-50: #fffbeb;--color-info: #0284c7;--color-info-50: #f0f9ff;--color-bg: #eef2f7;--color-bg-warm: #f8fafc;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-overlay: rgba(15, 23, 42, .5);--color-text: #0f172a;--color-text-secondary: #475569;--color-text-tertiary: #94a3b8;--color-text-inverse: #ffffff;--color-border: #e2e8f0;--color-border-light: #f1f5f9;--color-border-focus: var(--color-primary);--sidebar-bg: #111827;--sidebar-text: #94a3b8;--sidebar-text-active: #ffffff;--sidebar-hover-bg: rgba(255, 255, 255, .06);--sidebar-active-bg: rgba(37, 99, 235, .15);--sidebar-active-border: var(--color-primary);--sidebar-width: 184px;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06), 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .04);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .04);--shadow-xl: 0 20px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .04);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 8px;--radius-xl: 10px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 15px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 34px;--font-size-4xl: 42px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--z-sidebar: 10;--z-topbar: 20;--z-overlay: 30;--z-modal: 40;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-size:var(--font-size-base);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer;border:none;background:none}.shell{min-height:100vh;background:var(--color-bg)}.topbar{position:fixed;top:0;left:0;right:0;z-index:var(--z-topbar);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);height:52px;padding:0 var(--space-4);background:var(--sidebar-bg);border-bottom:1px solid rgba(255,255,255,.08)}.brand{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--font-size-lg);font-weight:800;color:var(--color-text-inverse);letter-spacing:-.02em}.brand-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-primary);color:#fff;font-size:var(--font-size-sm);font-weight:700;margin-right:var(--space-1)}.subtitle{color:var(--sidebar-text);font-size:var(--font-size-sm);font-weight:400}.user{color:var(--sidebar-text);font-size:var(--font-size-sm);font-weight:500;padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:#ffffff14;transition:background var(--transition-fast)}.user:hover{background:#ffffff1f}.login-panel{width:min(480px,calc(100vw - 32px));margin:var(--space-12) auto;padding:var(--space-10);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-xl);border:1px solid var(--color-border)}.login-panel h1{margin:0 0 var(--space-2);font-size:var(--font-size-2xl);font-weight:800;letter-spacing:-.03em;color:var(--color-text)}.login-subtitle{margin:0 0 var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.login-brand-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-8)}.login-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:var(--font-size-lg);font-weight:700}.login-brand-text{font-size:var(--font-size-xl);font-weight:800;color:var(--color-text);letter-spacing:-.03em}.login-divider{width:100%;height:1px;background:var(--color-border);margin:var(--space-6) 0}.session-restore{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-secondary);font-weight:600}.workspace{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;padding-top:52px}.tabs{position:fixed;top:52px;bottom:0;left:0;width:var(--sidebar-width);align-self:start;max-height:none;overflow-y:auto;display:flex;flex-direction:column;gap:2px;padding:var(--space-2);background:var(--sidebar-bg);border-right:1px solid rgba(255,255,255,.06)}.tabs::-webkit-scrollbar{width:4px}.tabs::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:var(--radius-full)}.tabs button{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:34px;border-radius:var(--radius-md);background:transparent;color:var(--sidebar-text);text-align:left;padding:6px var(--space-2);font-size:13px;font-weight:500;transition:all var(--transition-fast);position:relative;border:1px solid transparent}.tabs button:hover{background:var(--sidebar-hover-bg);color:var(--sidebar-text-active)}.tabs button.active{background:var(--sidebar-active-bg);color:var(--sidebar-text-active);font-weight:600;border-color:#2563eb4d}.tabs button.active:before{content:"";position:absolute;left:-var(--space-2);top:7px;bottom:7px;width:3px;border-radius:var(--radius-full);background:var(--color-primary)}.tab-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;opacity:.6;transition:opacity var(--transition-fast)}.tabs button.active .tab-icon,.tabs button:hover .tab-icon{opacity:1}.content{grid-column:2;padding:var(--space-2) var(--space-4) var(--space-6);width:100%;max-width:1600px;margin:0 auto}.content-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:34px;margin-bottom:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border)}.content-header h1{margin:0;font-size:var(--font-size-lg);letter-spacing:0;line-height:1.2}.content-kicker,.detail-kicker{color:var(--color-text-tertiary);font-size:11px;font-weight:700;letter-spacing:0;line-height:1.2}.content-tools{display:flex;flex-wrap:wrap;gap:var(--space-1)}.login-panel,.panel{padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.panel{transition:box-shadow var(--transition-base)}h1,h2{margin:0 0 var(--space-3);letter-spacing:-.03em}h1{font-size:var(--font-size-2xl);font-weight:800}h2{font-size:var(--font-size-lg);font-weight:700}h3{margin:var(--space-4) 0 var(--space-2);font-size:var(--font-size-base);font-weight:600;color:var(--color-text)}.form{display:grid;gap:var(--space-4)}.grid-form{grid-template-columns:repeat(2,minmax(0,1fr))}label{display:grid;gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}input,select{width:100%;min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:0 var(--space-3);color:var(--color-text);font-size:var(--font-size-base);transition:all var(--transition-fast)}input:focus,select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px var(--color-primary-100)}input::placeholder{color:var(--color-text-tertiary)}.primary,.secondary,.danger{min-height:34px;border-radius:var(--radius-md);padding:0 var(--space-3);font-weight:600;font-size:var(--font-size-sm);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.primary{background:var(--color-primary);color:var(--color-text-inverse);box-shadow:var(--shadow-sm),0 2px 8px #2563eb40}.primary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-md),0 4px 12px #2563eb59;transform:translateY(-1px)}.primary:active{transform:translateY(0);box-shadow:var(--shadow-xs)}.button-link{text-decoration:none}.secondary{background:var(--color-surface);color:var(--color-text-secondary);border:1px solid var(--color-border)}.secondary:hover{background:var(--color-bg);color:var(--color-text);border-color:var(--color-border)}.secondary:active{background:var(--color-border-light)}.danger{background:var(--color-danger-50);color:var(--color-danger);border:1px solid var(--color-danger-100)}.danger:hover{background:var(--color-danger-100);color:var(--color-danger)}button:disabled{cursor:not-allowed;opacity:.5;transform:none;box-shadow:none}.compact-button{flex:0 0 auto;min-height:26px;padding:0 var(--space-2);font-size:var(--font-size-xs);white-space:nowrap}.table-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.table-actions.nowrap{flex-wrap:nowrap}.table-link{display:inline-flex;max-width:100%;min-height:28px;align-items:center;padding:0;color:var(--color-primary);font-weight:700;text-align:left;text-decoration:none;background:transparent}.table-link:hover{color:var(--color-primary-dark);text-decoration:underline}.number-link{justify-content:flex-end;width:100%;font-variant-numeric:tabular-nums}.inline-form{display:grid;grid-template-columns:1fr auto;gap:var(--space-2);margin-bottom:var(--space-3)}.filter-bar{display:grid;gap:var(--space-2);align-items:center;margin-bottom:var(--space-2);padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-warm)}.filter-bar label{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-2);align-items:center;min-width:0}.filter-bar label span{min-width:42px;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.filter-bar input,.filter-bar select,.filter-bar button{min-height:36px}.filter-bar input,.filter-bar select{background:var(--color-surface)}.filter-actions,.qr-filter-actions{display:flex;gap:var(--space-2);align-items:center;white-space:nowrap}.asset-filter-form{grid-template-columns:minmax(240px,1fr) 150px minmax(180px,.7fr) auto}.customer-filter-form{grid-template-columns:minmax(240px,1fr) auto}.product-filter-form{grid-template-columns:minmax(220px,1fr) minmax(160px,220px) auto}.record-filter-form{grid-template-columns:150px minmax(180px,1fr) auto}.report-filter-form{grid-template-columns:repeat(4,minmax(180px,1fr)) auto}.finished-goods-filter-form{grid-template-columns:minmax(240px,1.4fr) minmax(180px,.8fr) minmax(180px,.8fr) minmax(160px,.7fr) auto}.notice-slot{min-height:0;margin-bottom:var(--space-2)}.notice-slot:empty{display:none}.notice{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);font-weight:500;display:flex;align-items:center;gap:var(--space-2);animation:noticeIn var(--transition-base)}@keyframes noticeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notice.success{background:var(--color-success-50);color:var(--color-success);border:1px solid var(--color-success-100)}.notice.error{background:var(--color-danger-50);color:var(--color-danger);border:1px solid var(--color-danger-100)}.notice-icon{display:inline-flex;width:18px;height:18px}.asset-workbench{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,380px);gap:var(--space-3);align-items:start}.customer-workbench{grid-template-columns:minmax(0,1fr) minmax(340px,380px);gap:var(--space-3)}.business-list-workbench{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);width:100%}.business-list-workbench .system-table{min-width:1180px}.business-list-workbench .system-table.has-actions{min-width:1360px}.customer-workbench .panel{padding:var(--space-3)}.customer-workbench .panel-head{margin-bottom:var(--space-2)}.customer-workbench .inline-form{gap:var(--space-2);margin-bottom:var(--space-3)}.customer-workbench .inline-form input,.customer-workbench .inline-form button{min-height:36px}.customer-workbench .inline-form button{padding:0 var(--space-4)}.asset-list-panel{min-width:0}.operation-stack{display:grid;gap:var(--space-4);min-width:0}.action-form-panel{padding:var(--space-4)}.action-form-panel .panel-head{margin-bottom:var(--space-3)}.action-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}.action-form label{gap:var(--space-1)}.action-form input,.action-form select{min-height:40px}.form-actions{grid-column:1 / -1;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-2)}.form-inline-error{margin-right:auto;color:var(--color-danger);font-weight:700}.form-actions .primary{min-width:120px}.autocomplete-panel{position:absolute;z-index:10002;display:grid;gap:2px;max-height:280px;overflow:auto;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xl)}.autocomplete-option{display:grid;width:100%;gap:2px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer;text-align:left}.autocomplete-option:hover,.autocomplete-option:focus{background:var(--color-primary-50);outline:none}.autocomplete-option strong{color:var(--color-text);font-size:var(--font-size-sm);font-weight:800;line-height:1.25}.autocomplete-option span{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:600;line-height:1.25;overflow-wrap:anywhere}.record-list-panel{padding:var(--space-5)}.record-list-panel .panel-head,.record-list-panel .inline-form{margin-bottom:var(--space-3)}.asset-detail-aside{position:sticky;top:76px;min-width:0;max-height:calc(100vh - 88px);overflow:auto}.asset-list{display:block}.table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.asset-table{width:100%;min-width:960px;border-collapse:separate;border-spacing:0;table-layout:fixed}.asset-table th,.asset-table td{padding:6px var(--space-2);border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);text-align:left;vertical-align:middle}.asset-table th:last-child,.asset-table td:last-child{border-right:0}.asset-table th{color:var(--color-text-secondary);background:var(--color-bg-warm);font-size:var(--font-size-xs);font-weight:700}.asset-table th:nth-child(1),.asset-table td:nth-child(1){width:76px}.asset-table th:nth-child(2),.asset-table td:nth-child(2){width:150px}.asset-table th:nth-child(4),.asset-table td:nth-child(4){width:96px}.asset-table th:nth-child(8),.asset-table td:nth-child(8){width:96px;text-align:right}.asset-table tbody tr{height:42px}.asset-row{cursor:pointer;transition:background var(--transition-fast)}.asset-row:hover{background:var(--color-primary-50)}.asset-row.selected{background:var(--color-primary-100)}.asset-table td strong,.asset-table td span{display:block}.asset-table td strong{color:var(--color-text);font-weight:700}.asset-table td span{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.asset-thumb{display:block;width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover;background:var(--color-bg-warm);border:1px solid var(--color-border)}.asset-thumb.placeholder{display:flex;align-items:center;justify-content:center;color:var(--color-primary-700);background:var(--color-primary-50);font-weight:800}.customer-list{display:block}.customer-table{width:100%;min-width:840px;border-collapse:separate;border-spacing:0;table-layout:fixed}.customer-table th,.customer-table td{padding:6px var(--space-2);border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);text-align:left;vertical-align:middle}.customer-table th:last-child,.customer-table td:last-child{border-right:0}.customer-table th{background:var(--color-bg-warm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700}.customer-table td{color:var(--color-text);font-size:var(--font-size-sm);height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-table td strong{display:inline-block;max-width:100%;font-weight:700;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.location-page{overflow:hidden}.location-section{display:grid;gap:var(--space-3);min-width:0}.location-section h3{margin:0;font-size:var(--font-size-base)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.section-title span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:600}.location-create-panel,.location-tree-panel,.location-table-panel{min-width:0;padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-warm)}.location-form{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-bottom:0}.location-form .primary{grid-column:auto}.location-browser{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(0,1fr);gap:var(--space-3);align-items:start}.sub-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-3);border-bottom:1px solid var(--color-border-light)}.sub-tabs button{min-height:40px;padding:0 var(--space-4);border-bottom:2px solid transparent;color:var(--color-text-secondary);font-weight:600}.sub-tabs button.active{border-color:var(--color-primary);color:var(--color-primary)}.sub-tabs button span{margin-left:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-xs)}.customer-related-section{display:grid;gap:var(--space-3);margin-top:var(--space-5)}.customer-related-section .table-wrap{margin-top:0}.system-option-panel{display:grid;gap:var(--space-3)}.compact-form{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:var(--space-3)}.compact-form .primary,.compact-form>.secondary{grid-column:1 / -1}.location-table,.system-table{width:100%;min-width:0;border-collapse:separate;border-spacing:0;table-layout:fixed}.location-table th,.location-table td,.system-table th,.system-table td{padding:6px var(--space-2);border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);text-align:left}.location-table th:last-child,.location-table td:last-child,.system-table th:last-child,.system-table td:last-child{border-right:0}.location-table th,.system-table th{background:var(--color-bg-warm);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.location-table td,.system-table td{font-size:var(--font-size-sm);line-height:1.3;overflow-wrap:anywhere}.system-table.has-actions th.action-column,.system-table.has-actions td.action-column{width:292px;white-space:nowrap;word-break:normal;overflow-wrap:normal}.system-table.has-actions .table-actions{min-width:max-content}.location-table th:nth-child(1),.location-table td:nth-child(1){width:110px}.location-table th:nth-child(3),.location-table td:nth-child(3){width:210px}.customer-table th:nth-child(1),.customer-table td:nth-child(1){width:150px}.customer-table th:nth-child(2),.customer-table td:nth-child(2){width:140px}.customer-table th:nth-child(6),.customer-table td:nth-child(6),.customer-table th:nth-child(7),.customer-table td:nth-child(7){width:56px}.customer-table th:nth-child(8),.customer-table td:nth-child(8){width:126px}.customer-table th:nth-child(9),.customer-table td:nth-child(9){width:64px}.number-cell{text-align:right;font-variant-numeric:tabular-nums}.customer-table .time-cell{width:150px;overflow:visible;text-overflow:clip;font-variant-numeric:tabular-nums}.product-table{min-width:1280px}.product-table th,.product-table td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-table td strong,.product-table td .table-link{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-table td:last-child{overflow:visible}.product-table .table-actions{flex-wrap:nowrap}.product-table .table-actions button{flex:0 0 auto}.product-table th:nth-child(1),.product-table td:nth-child(1){width:180px}.product-table th:nth-child(2),.product-table td:nth-child(2){width:112px}.product-table th:nth-child(3),.product-table td:nth-child(3){width:150px}.product-table th:nth-child(4),.product-table td:nth-child(4){width:120px}.product-table th:nth-child(5),.product-table td:nth-child(5){width:110px}.product-table th:nth-child(6),.product-table td:nth-child(6){width:130px}.product-table th:nth-child(7),.product-table td:nth-child(7){width:126px}.product-table th:nth-child(8),.product-table td:nth-child(8){width:170px}.product-table th:nth-child(9),.product-table td:nth-child(9){width:182px}.asset-card{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);transition:all var(--transition-base);position:relative}.asset-card:after{content:"";position:absolute;inset:0;border-radius:var(--radius-lg);opacity:0;transition:opacity var(--transition-base);pointer-events:none;box-shadow:var(--shadow-lg),0 8px 24px #2563eb1f}.asset-card.clickable{cursor:pointer}.asset-card.clickable:hover{border-color:var(--color-primary-200);background:var(--color-primary-50)}.asset-card.clickable:hover:after{opacity:1}.asset-main{display:flex;flex-direction:column;gap:var(--space-1)}.asset-main strong{font-size:var(--font-size-base);font-weight:700;color:var(--color-text)}.asset-main span{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.asset-status{width:max-content;border-radius:var(--radius-full);padding:2px var(--space-2);font-size:var(--font-size-xs);font-weight:700;letter-spacing:0;text-transform:uppercase}.asset-status[data-status=在库],.asset-status[data-status=正常],.asset-status[data-status=已归还]{background:var(--color-success-50);color:var(--color-success)}.asset-status[data-status=出库],.asset-status[data-status=生产中],.asset-status[data-status=使用中],.asset-status[data-status=外借],.asset-status[data-status=外借中]{background:var(--color-accent-50);color:var(--color-accent)}.asset-status[data-status=维修],.asset-status[data-status=维修中],.asset-status[data-status=外出维修],.asset-status[data-status=异常],.asset-status[data-status=待处理]{background:var(--color-danger-50);color:var(--color-danger)}.asset-status[data-status=待归还],.asset-status[data-status=盘点中],.asset-status[data-status=未知]{background:var(--color-info-50);color:var(--color-info)}.asset-status{background:var(--color-primary-50);color:var(--color-primary)}.detail-panel{display:grid;gap:var(--space-2);margin-top:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.edit-panel{gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-3)}.edit-panel .panel-head{padding-bottom:var(--space-1)}.edit-panel .form{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-2) var(--space-3)}.edit-panel label{gap:4px;font-size:var(--font-size-xs);font-weight:700}.edit-panel input,.edit-panel select{min-height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.edit-panel .form-actions{grid-column:1 / -1;padding-top:var(--space-1)}.edit-panel .form-actions .primary{min-width:132px;min-height:34px}.detail-placeholder{min-height:360px}.detail-panel h3{margin:0 0 var(--space-2);font-size:var(--font-size-base);font-weight:600}.detail-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-2);align-items:start;padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border-light)}.detail-hero h2{margin:2px 0;font-size:var(--font-size-lg);letter-spacing:0;line-height:1.25}.detail-hero p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);overflow-wrap:anywhere}.detail-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.detail-hero-actions .primary,.detail-hero-actions .secondary{min-height:32px;padding:0 var(--space-2)}.detail-sections{display:grid;gap:var(--space-2)}.detail-section{min-width:0;padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg-warm)}.asset-image{width:min(360px,100%);max-height:260px;object-fit:contain;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg)}.action-row{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-1)}.related-list{display:grid;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border-light)}.related-list h3{margin:var(--space-2) 0 0;font-size:var(--font-size-base)}.related-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-2);align-items:center;min-height:40px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);text-align:left}.related-item:hover{border-color:var(--color-primary-200);background:var(--color-primary-50)}.related-item strong{overflow:hidden;color:var(--color-text);font-weight:700;text-overflow:ellipsis;white-space:nowrap}.related-item span,.related-item em{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:normal}.stocktake-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-primary-50);border:1px solid var(--color-primary-100)}.history-list{display:grid;gap:var(--space-2)}.history-list>div{display:grid;grid-template-columns:120px 140px 1fr;gap:var(--space-2);align-items:center;min-height:34px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border-light);transition:background var(--transition-fast)}.history-list>div:hover{background:var(--color-primary-50)}.history-list span,.history-list em{color:var(--color-text-secondary);font-style:normal;font-size:var(--font-size-sm)}.history-detail{display:grid;gap:2px;min-width:0}.history-detail em{color:var(--color-text-tertiary);line-height:1.35}.operation-timeline{display:grid;gap:var(--space-3);margin-top:var(--space-2)}.operation-event{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:var(--space-3)}.operation-event:not(:last-child):before{content:"";position:absolute;left:8px;top:20px;bottom:-14px;width:2px;background:var(--color-border)}.operation-dot{position:relative;z-index:1;width:18px;height:18px;margin-top:11px;border:4px solid var(--color-primary-100);border-radius:var(--radius-full);background:var(--color-primary)}.operation-card{display:grid;gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.operation-main{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.operation-main strong{color:var(--color-text);font-size:var(--font-size-sm)}.operation-main span{flex:0 0 auto;color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700}.operation-meta{display:flex;flex-wrap:wrap;gap:var(--space-2)}.operation-meta span,.operation-meta em{display:inline-flex;align-items:center;min-height:24px;padding:3px var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:normal;font-weight:700;overflow-wrap:anywhere}.reminders-panel{display:grid;gap:var(--space-4)}.reminder-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.reminder-metric{display:grid;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.reminder-metric span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:700}.reminder-metric strong{color:var(--color-text);font-size:var(--font-size-3xl);line-height:1}.reminder-metric em{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-style:normal}.reminder-metric[data-color=red]{border-color:var(--color-danger-100);background:var(--color-danger-50)}.reminder-metric[data-color=amber]{background:#fffbeb;border-color:#fde68a}.reminder-metric[data-color=blue]{border-color:var(--color-primary-100);background:var(--color-primary-50)}.reminder-section{display:grid;gap:var(--space-3)}.reminder-section .section-title{align-items:end}.reminder-section .section-title p{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.reminder-list{display:grid;gap:var(--space-3)}.reminder-card{display:grid;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-xs)}.reminder-card[data-severity=高]{border-left-color:var(--color-danger)}.reminder-card[data-severity=中]{border-left-color:var(--color-warning)}.reminder-card-head{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:var(--space-2)}.reminder-card-head strong{color:var(--color-text);font-size:var(--font-size-base);line-height:1.45}.reminder-severity{display:inline-flex;align-items:center;min-height:24px;padding:0 var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.reminder-card[data-severity=高] .reminder-severity{background:var(--color-danger-50);color:var(--color-danger)}.reminder-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.reminder-detail-grid>div{display:grid;gap:2px;min-width:0;padding:var(--space-2);border-radius:var(--radius-sm);background:var(--color-bg)}.reminder-detail-grid span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700}.reminder-detail-grid strong{color:var(--color-text);font-size:var(--font-size-sm);font-weight:700;line-height:1.35;overflow-wrap:anywhere}.reminder-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding-top:var(--space-2);border-top:1px solid var(--color-border-light)}.reminder-action>span{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.45}.qr-label-panel{display:grid;gap:var(--space-3)}.qr-filter-form{grid-template-columns:150px minmax(180px,1fr) minmax(180px,1fr) 150px auto}.filter-summary{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.label-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--space-3)}.qr-label{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-4);border:2px solid var(--color-text);border-radius:var(--radius-md);background:var(--color-surface);text-align:center;transition:transform var(--transition-fast)}.qr-label:hover{transform:scale(1.02)}.qr-label img{width:140px;height:140px}.qr-label strong{font-size:var(--font-size-sm)}.qr-label small{color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.qr-preview-modal{width:min(360px,calc(100vw - 32px))}.qr-preview-body{display:grid;justify-items:center;gap:var(--space-2);text-align:center}.qr-preview-body img{width:220px;height:220px;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:#fff;padding:var(--space-2)}.qr-preview-body small{max-width:100%;overflow-wrap:anywhere;color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.user-workbench{grid-template-columns:minmax(0,1fr)}.user-table{min-width:980px}.user-name-link{display:grid;gap:2px;justify-content:start;min-height:auto}.user-name-link span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:500}.user-create-form{display:grid;gap:var(--space-3);align-items:end}.user-create-panel .user-create-form{align-items:stretch;margin-bottom:0;padding:0;border:0;border-radius:0;background:transparent}.user-create-panel .user-create-form .role-grid,.user-create-panel .user-create-form .form-actions{grid-column:1 / -1}.user-role-tags{display:flex;flex-wrap:wrap;gap:6px}.user-role-tags span{display:inline-flex;min-height:24px;align-items:center;padding:0 var(--space-2);border:1px solid var(--color-primary-100);border-radius:var(--radius-sm);background:var(--color-primary-50);color:var(--color-primary-dark);font-size:var(--font-size-xs);font-weight:700}.user-history-table{min-width:900px}.check-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-size-sm)}.check-label input{width:auto;min-height:auto}.role-grid{display:flex;flex-wrap:wrap;gap:6px;align-content:center}.role-grid label{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs)}.role-grid input{width:auto;min-height:auto}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.panel-head h2{margin:0;font-weight:700;line-height:1.25}.list-summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-2);margin:var(--space-2) 0}.list-summary-item{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-surface-muted)}.list-summary-item span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:600}.list-summary-item strong{color:var(--color-text);font-size:var(--font-size-xl);line-height:1;font-weight:800}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.metric{min-height:104px;display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--radius-md);background:var(--color-surface);padding:var(--space-5);border:1px solid var(--color-border);transition:all var(--transition-base);position:relative;overflow:hidden}.metric:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--metric-accent, var(--color-primary));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.metric:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.metric span{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:500}.metric strong{font-size:var(--font-size-3xl);font-weight:800;letter-spacing:-.04em;color:var(--color-text);line-height:1}.metric[data-color=blue]{--metric-accent: var(--color-primary)}.metric[data-color=amber]{--metric-accent: var(--color-accent)}.metric[data-color=green]{--metric-accent: var(--color-success)}.metric[data-color=red]{--metric-accent: var(--color-danger)}.metric[data-color=teal]{--metric-accent: #0d9488}.metric[data-color=purple]{--metric-accent: #7c3aed}dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;margin:0;overflow:hidden;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-border-light)}.detail-item{display:grid;grid-template-columns:minmax(68px,96px) minmax(0,1fr);gap:var(--space-2);align-items:start;min-width:0;padding:6px var(--space-2);background:var(--color-surface)}dt{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:600;text-transform:none;letter-spacing:0;line-height:1.35;white-space:nowrap}dd{margin:0;color:var(--color-text);font-size:var(--font-size-sm);line-height:1.35;overflow-wrap:anywhere;min-width:0}.pager{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.pager-size{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap}.pager-size select{width:auto;min-height:34px;padding:0 var(--space-8) 0 var(--space-3)}.flat-panel{border:0;box-shadow:none;padding:var(--space-4) 0 0}.record-detail{margin-top:var(--space-2)}.record-page-toolbar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.record-page-toolbar h2{margin:0;font-size:var(--font-size-xl)}.record-page-toolbar p{margin:var(--space-1) 0 0;color:var(--color-text-secondary)}.record-summary{margin:0 0 var(--space-3);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.45}.customer-order-detail-page,.customer-detail-page,.product-detail-page,.asset-detail-page{max-width:none}.asset-detail-page>h3{margin:var(--space-3) 0 var(--space-1)}.asset-detail-page #assetEditForm{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-2) var(--space-3)}.asset-detail-page #assetEditForm label{gap:4px;font-size:var(--font-size-xs);font-weight:700}.asset-detail-page #assetEditForm input,.asset-detail-page #assetEditForm select{min-height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.asset-detail-page #assetEditForm .form-actions{grid-column:1 / -1;padding-top:var(--space-1)}.asset-detail-page #assetEditForm .form-actions .primary,.asset-detail-page #assetEditForm .form-actions .secondary{min-width:132px;min-height:34px}.order-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;overflow:hidden;margin-bottom:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-border-light)}.order-summary-grid .detail-item{margin:0}.order-items-section{margin-top:var(--space-4)}.record-side-sections{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-4);margin-top:var(--space-5)}.compact-table-wrap{max-height:none}.file-import{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.file-import input{display:none}.dashboard-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-6)}.mini-list{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.mini-list.wide{grid-column:1 / -1}.mini-list h3{margin:0;padding:var(--space-3) var(--space-4);background:var(--color-bg);border-bottom:1px solid var(--color-border)}.mini-list>div:not(.empty){display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1.4fr) minmax(96px,.5fr);gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle)}.mini-list-title{display:grid;gap:2px;min-width:0}.mini-list-title span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700}.mini-list p{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.35;overflow-wrap:anywhere}.mini-list>div:last-child{border-bottom:0}.location-tree{display:grid;gap:var(--space-1);max-height:520px;overflow:auto;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.tree-node{border-left:1px solid var(--color-border);padding-left:var(--space-2)}.tree-node summary{cursor:pointer;color:var(--color-text);font-size:var(--font-size-sm);font-weight:600;padding:6px 0}.tree-node>div{display:grid;gap:var(--space-1);padding-bottom:var(--space-2)}.tree-leaf{justify-self:start;max-width:100%;border:0;background:transparent;color:var(--color-primary);cursor:pointer;padding:4px 0;font-size:var(--font-size-sm);font-weight:600;overflow-wrap:anywhere;text-align:left}.empty{display:grid;place-items:center;min-height:160px;border-radius:var(--radius-lg);background:var(--color-bg);text-align:center;color:var(--color-text-tertiary);font-size:var(--font-size-sm);border:1px dashed var(--color-border)}@media print{.topbar,.tabs,.notice-slot,.panel-head .action-row{display:none}.workspace,.content{display:block;width:100%;margin:0;padding:0}.panel{border:0;box-shadow:none}.metric:before{display:none}}@media(max-width:820px){:root{--sidebar-width: 100%}.shell{background:var(--color-bg)}.topbar{position:static;height:auto;align-items:flex-start;flex-direction:column;padding:var(--space-4)}.workspace{display:block;width:100%;padding-top:0}.tabs{position:static;width:100%;max-height:none;overflow-y:visible;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);padding:var(--space-3);background:var(--sidebar-bg);border-right:none;border-bottom:1px solid rgba(255,255,255,.06)}.tabs button{text-align:center;min-height:36px;padding:var(--space-2);font-size:var(--font-size-xs);justify-content:center}.tab-icon{display:none}.tabs button.active:before{display:none}.content{padding:var(--space-4);max-width:100%}.content-header{align-items:stretch;flex-direction:column}.content-tools{width:100%}.content-tools .compact-button{flex:1}.asset-workbench{grid-template-columns:1fr}.asset-detail-aside{position:static;max-height:none;overflow:visible}.detail-hero{grid-template-columns:1fr}.detail-hero-actions{justify-content:flex-start}.related-item,.compact-form{grid-template-columns:1fr}.login-panel{width:min(100vw - 24px,420px);margin:var(--space-8) auto}.grid-form,.inline-form,.filter-bar,.qr-filter-form,.action-form,.stocktake-bar,.user-create-form,.metrics,.pager,dl,.history-list>div{grid-template-columns:1fr}.pager{align-items:stretch;justify-content:flex-start;flex-direction:column}.panel-head{align-items:stretch;flex-direction:column}.panel-head .table-actions{width:100%}.filter-actions,.qr-filter-actions{align-items:stretch;flex-direction:column}.user-create-form .role-grid{grid-column:1 / -1}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-lists,.reminder-metrics,.reminder-detail-grid,.mini-list>div:not(.empty){grid-template-columns:1fr}.reminder-card-head,.reminder-action{align-items:stretch;grid-template-columns:1fr;flex-direction:column}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}.loading-spinner{display:inline-flex;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:76px;right:var(--space-5);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;max-width:420px}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-lg),0 0 0 1px var(--color-border);font-size:var(--font-size-sm);font-weight:500;pointer-events:auto;animation:toastSlideIn .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.toast.removing{animation:toastSlideOut .25s cubic-bezier(.4,0,.2,1) forwards}.toast:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--radius-md) 0 0 var(--radius-md)}.toast.success:before{background:var(--color-success)}.toast.error:before{background:var(--color-danger)}.toast.info:before{background:var(--color-info)}.toast.warning:before{background:var(--color-warning)}.toast-icon{flex-shrink:0;display:inline-flex;width:20px;height:20px;margin-top:1px}.toast.success .toast-icon{color:var(--color-success)}.toast.error .toast-icon{color:var(--color-danger)}.toast.info .toast-icon{color:var(--color-info)}.toast.warning .toast-icon{color:var(--color-warning)}.toast-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.toast-title{font-weight:600;color:var(--color-text);line-height:1.4}.toast-message{color:var(--color-text-secondary);font-size:var(--font-size-xs);line-height:1.4;overflow-wrap:anywhere}.toast-close{flex-shrink:0;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:transparent;border:none;padding:0}.toast-close:hover{background:var(--color-bg);color:var(--color-text)}.toast-progress{position:absolute;bottom:0;left:4px;right:0;height:3px;border-radius:0 var(--radius-sm) 0 0;transform-origin:left;animation:toastProgress linear forwards}.toast.success .toast-progress{background:var(--color-success-light)}.toast.error .toast-progress{background:var(--color-danger-light)}.toast.info .toast-progress{background:var(--color-info)}.toast.warning .toast-progress{background:var(--color-warning)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.modal-overlay{position:fixed;inset:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#0f172a66;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:modalOverlayIn .2s ease}.modal-overlay.removing{animation:modalOverlayOut .15s ease forwards}.modal{width:min(440px,calc(100vw - 32px));background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl),0 0 0 1px var(--color-border);overflow:hidden;animation:modalIn .25s cubic-bezier(.4,0,.2,1)}.modal.removing{animation:modalOut .15s ease forwards}.modal-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-3)}.modal-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-full)}.modal-icon.danger{background:var(--color-danger-50);color:var(--color-danger)}.modal-icon.warning{background:var(--color-warning-50);color:var(--color-warning)}.modal-icon.info{background:var(--color-info-50);color:var(--color-info)}.modal-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-text);margin:0}.modal-body{padding:0 var(--space-6) var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5}.modal-body strong{color:var(--color-text);font-weight:600}.modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);background:var(--color-bg-warm);border-top:1px solid var(--color-border-light)}@keyframes modalOverlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalOverlayOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes modalOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(10px)}}.loading-bar{position:fixed;top:0;left:0;right:0;height:3px;z-index:10001;pointer-events:none;background:transparent}.loading-bar .bar{height:100%;width:0;background:var(--color-primary);box-shadow:0 0 10px var(--color-primary-light),0 0 6px var(--color-primary);border-radius:0 2px 2px 0;transition:width .3s ease}.loading-bar.active .bar{animation:loadingBarGrow .8s ease-out forwards}.loading-bar.done .bar{width:100%;opacity:0;transition:width .2s ease,opacity .4s ease .2s}@keyframes loadingBarGrow{0%{width:0}50%{width:70%}to{width:85%}}.btn-loading{position:relative;pointer-events:none;opacity:.75}.btn-loading:after{content:"";position:absolute;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite;left:50%;top:50%;transform:translate(-50%,-50%)}.btn-loading>*{visibility:hidden}.view-transition{animation:viewFadeIn .2s cubic-bezier(.4,0,.2,1)}@keyframes viewFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.table-wrap.sticky-header{max-height:calc(100vh - 220px);overflow:auto}.table-wrap.sticky-header table thead th{position:sticky;top:0;z-index:5;box-shadow:inset 0 -1px 0 var(--color-border)}.location-command-bar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:var(--space-3);align-items:center;padding:var(--space-2);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background:var(--color-surface)}.location-search-field{display:flex;align-items:center;min-width:0;height:40px;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-warm)}.location-search-field:focus-within{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-primary-100);background:var(--color-surface)}.location-search-icon{display:inline-flex;width:18px;height:18px;margin-right:var(--space-2);color:var(--color-text-tertiary)}.location-search-icon svg{width:18px;height:18px}.location-search-field input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent}.location-clear-search{flex:0 0 auto;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:700}.location-clear-search:hover{background:var(--color-bg);color:var(--color-text)}.location-command-meta{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);white-space:nowrap}.location-command-meta span{color:var(--color-text-tertiary);font-size:var(--font-size-xs);font-weight:700}.location-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.location-toolbar-actions{display:flex;gap:var(--space-2)}.location-create-panel.collapsed .form,.location-create-panel.collapsed{display:none}.location-create-panel.collapsed .section-title{margin-bottom:0}.location-create-panel .toggle-collapse{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-tertiary);cursor:pointer;background:transparent;border:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.location-create-panel .toggle-collapse:hover{background:var(--color-bg);color:var(--color-text)}.tree-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text-secondary);font-size:11px;font-weight:700;margin-left:var(--space-2);font-variant-numeric:tabular-nums}.tree-node summary{display:flex;align-items:center;gap:var(--space-1)}.tree-node summary::-webkit-details-marker{display:none}.tree-node summary:before{content:"▶";font-size:10px;color:var(--color-text-tertiary);transition:transform var(--transition-fast);display:inline-block;width:14px;text-align:center}.tree-node[open] summary:before{transform:rotate(90deg)}.tree-leaf.active{color:var(--color-primary-dark);font-weight:700;background:var(--color-primary-50);border-radius:var(--radius-sm);padding:4px var(--space-2)}.location-empty-hint{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8);text-align:center;color:var(--color-text-tertiary)}.location-empty-hint .icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text-tertiary)}.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:var(--radius-sm);background:var(--color-bg);border:1px solid var(--color-border);box-shadow:0 1px 0 var(--color-border);color:var(--color-text-secondary);font-size:11px;font-family:var(--font-mono);font-weight:600;line-height:1}.shortcut-hint{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-text-tertiary);font-size:var(--font-size-xs)}.table-wrap::-webkit-scrollbar,.location-tree::-webkit-scrollbar{width:6px;height:6px}.table-wrap::-webkit-scrollbar-thumb,.location-tree::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}.table-wrap::-webkit-scrollbar-thumb:hover,.location-tree::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.empty-action{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}.empty-action .empty-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--color-bg);color:var(--color-text-tertiary)}.inline-create-panel{margin:var(--space-4) 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.standalone-create-page>.detail-panel,.standalone-create-page .inline-create-panel,.standalone-form-panel .inline-create-panel{margin:var(--space-2) 0 0;padding:var(--space-3)}.standalone-create-page>.detail-panel .grid-form,.standalone-create-page .inline-create-panel .grid-form,.standalone-form-panel .inline-create-panel .grid-form{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--space-2) var(--space-3)}.standalone-create-page>.detail-panel label,.standalone-create-page .inline-create-panel label,.standalone-form-panel .inline-create-panel label{gap:4px;font-size:var(--font-size-xs);font-weight:700}.standalone-create-page>.detail-panel input,.standalone-create-page>.detail-panel select,.standalone-create-page .inline-create-panel input,.standalone-create-page .inline-create-panel select,.standalone-form-panel .inline-create-panel input,.standalone-form-panel .inline-create-panel select{min-height:32px;padding:0 var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.standalone-create-page>.detail-panel .form-actions,.standalone-create-page .inline-create-panel .form-actions,.standalone-form-panel .inline-create-panel .form-actions{grid-column:1 / -1;padding-top:var(--space-1)}.standalone-create-page>.detail-panel .form-actions .primary,.standalone-create-page .inline-create-panel .form-actions .primary,.standalone-form-panel .inline-create-panel .form-actions .primary{min-width:132px;min-height:34px}.compact-head{margin-bottom:var(--space-2)}.grid-form .wide-field{grid-column:1 / -1}.form-section-title{display:block;margin-bottom:var(--space-2);font-weight:700;color:var(--color-text)}.order-items-grid{display:grid;gap:0;overflow-x:auto;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-surface)}.plan-items-head{min-width:1280px;display:grid;grid-template-columns:minmax(240px,1.2fr) minmax(220px,1fr) 130px 110px 110px minmax(220px,1fr);background:var(--color-bg-warm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:800}.plan-items-head span{padding:7px var(--space-2);border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.plan-items-head span:last-child{border-right:0}.order-item-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(120px,.8fr) minmax(140px,1fr);gap:var(--space-3)}.production-plan-item-row{min-width:1280px;grid-template-columns:minmax(240px,1.2fr) minmax(220px,1fr) 130px 110px 110px minmax(220px,1fr);gap:0}.production-plan-item-row label{gap:4px;padding:var(--space-2);border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.production-plan-item-row label:last-child{border-right:0}.production-plan-item-row:last-child label{border-bottom:0}.production-plan-item-row input{min-height:30px}.production-plan-item-row input[readonly]{background:var(--color-bg);color:var(--color-text-secondary)}.plan-items-summary{min-width:1280px;display:flex;align-items:center;justify-content:flex-end;gap:var(--space-5);padding:var(--space-3);background:var(--color-bg-warm);border-top:1px solid var(--color-border-light);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.plan-items-summary span{margin-right:auto;font-weight:800;color:var(--color-text)}.plan-items-summary strong{color:var(--color-text)}.sidebar-backdrop{display:none}@media(max-width:820px){.toast-container{top:auto;bottom:var(--space-4);right:var(--space-4);left:var(--space-4);max-width:none}.modal{width:calc(100vw - 24px)}.location-browser,.location-form,.location-command-bar{grid-template-columns:1fr}.location-command-meta{justify-content:space-between;flex-wrap:wrap}.order-item-row{grid-template-columns:1fr}}
