:root{--color-bg: #e8f2ff;--color-bg-soft: #dbeafe;--color-surface: #f8fbff;--color-card: #ffffff;--color-text: #0f2744;--color-text-muted: #5b7394;--color-text-soft: #334e68;--color-border: rgba(147, 197, 253, .55);--color-border-soft: rgba(191, 219, 254, .8);--color-accent: #3b82f6;--color-accent-hover: #2563eb;--color-accent-soft: rgba(59, 130, 246, .12);--color-accent-glow: rgba(59, 130, 246, .22);--color-teal-dark: #0369a1;--color-focus: #60a5fa;--color-success-bg: #ecfdf5;--color-success: #059669;--color-warning-bg: #fffbeb;--color-warning: #d97706;--color-danger-bg: #fef2f2;--color-danger: #dc2626;--color-neutral-bg: #f1f5f9;--color-neutral: #64748b;--glass-bg: rgba(255, 255, 255, .72);--glass-blur: blur(18px) saturate(160%);--radius-sm: 12px;--radius-md: 18px;--radius-lg: 24px;--shadow-soft: 0 8px 32px rgba(37, 99, 235, .08);--shadow-card: 0 16px 48px rgba(37, 99, 235, .12);--shadow-glow: 0 8px 24px rgba(59, 130, 246, .22);color:var(--color-text);background:var(--color-bg);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,Inter,system-ui,sans-serif;font-size:15px;line-height:1.55}*{box-sizing:border-box}body{margin:0;min-width:1180px;min-height:100vh;background:radial-gradient(circle at 12% 18%,rgba(96,165,250,.35),transparent 38%),radial-gradient(circle at 88% 8%,rgba(59,130,246,.25),transparent 32%),radial-gradient(circle at 72% 78%,rgba(14,165,233,.18),transparent 36%),linear-gradient(145deg,#dbeafe,#eff6ff 40%,#f0f9ff);background-attachment:fixed}button,input,select{font:inherit}button{border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);background:#fff;color:var(--color-text-soft);cursor:pointer;min-height:36px;padding:0 14px;transition:.2s ease}button:hover{background:#f8fbff;border-color:var(--color-border)}input,select{width:100%;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);background:#fff;color:var(--color-text);min-height:42px;padding:0 12px;outline:none}input:focus,select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px #3b82f629}h1,h2,h3,h4,p{margin:0}.eyebrow{display:inline-flex;align-items:center;gap:6px;color:var(--color-teal-dark);font-size:12px;font-weight:700;letter-spacing:.04em}.surface-switch{display:flex;gap:6px;padding:5px;border-radius:999px;background:#ffffffa6;border:1px solid rgba(255,255,255,.85)}.surface-switch button,.rail nav button,.phone-tabs button,.segment-nav button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.surface-switch button.active,.rail nav button.active,.phone-tabs button.active,.segment-nav button.active{background:linear-gradient(135deg,#60a5fa,#3b82f6);color:#fff;border-color:transparent;box-shadow:var(--shadow-glow)}.workspace{display:grid;gap:0;margin-top:0;min-height:0}.workspace.web-fill{height:100%}.workspace.web{grid-template-columns:minmax(0,1fr)}.web-console{display:grid;grid-template-columns:var(--sidebar-w, 228px) minmax(0,1fr);height:100%;min-height:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid rgba(255,255,255,.85);box-shadow:var(--shadow-card);isolation:isolate}.rail{background:#f8fbffe0;color:var(--color-text-soft);padding:22px 14px;border-right:1px solid var(--color-border-soft)}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,#60a5fa,#3b82f6);border:1px solid rgba(255,255,255,.7);color:#fff;box-shadow:var(--shadow-glow)}.rail-title{margin:14px 0 18px 4px;font-size:13px;font-weight:600;color:var(--color-text-muted)}.rail nav{display:grid;gap:16px}.nav-group{display:grid;gap:4px}.nav-group-label{padding:0 12px;color:var(--color-text-muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.rail nav button{justify-content:flex-start;width:100%;background:transparent;color:var(--color-text-soft);text-align:left;border-radius:14px;padding:0 12px;min-height:40px;border:1px solid transparent}.rail nav button:hover{background:#fff;border-color:var(--color-border-soft)}.rail nav button.active{transform:none}.nav-icon{flex-shrink:0;opacity:.85}.rail nav button.active .nav-icon{opacity:1}.desktop-panel{min-width:0;padding:24px;background:#ffffff8c}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px;padding:16px 18px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft)}.panel-head h2{display:flex;align-items:center;gap:10px;font-size:26px;font-weight:700;color:var(--color-text)}.head-actions,.legend,.table-actions,.card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.page-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric,.section,.product-card,.shipment,.phone-card,.machine-card{border-radius:var(--radius-md);background:var(--color-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft)}.metric{min-height:132px;padding:18px;position:relative;overflow:hidden}.metric:before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#60a5fa,#3b82f6)}.metric.warn:before{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.metric.danger:before{background:linear-gradient(90deg,#f87171,#ef4444)}.metric-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.metric-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:var(--color-accent-soft);color:var(--color-accent);border:1px solid rgba(147,197,253,.35)}.metric span,.metric em{color:var(--color-text-muted);font-style:normal;font-size:13px}.metric strong{display:block;margin:12px 0 4px;color:var(--color-text);font-size:36px;line-height:1;font-weight:800;letter-spacing:-.03em}.section{padding:20px}.section h3,.section h4{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--color-text)}.wide{grid-column:span 3}.low-stock-section{grid-column:span 2}.chart-row{display:flex;align-items:end;gap:10px;height:156px;margin:12px 0;padding:14px;border-radius:var(--radius-md);background:var(--color-accent-soft);border:1px solid rgba(147,197,253,.35)}.chart-row span{flex:1;border-radius:10px 10px 0 0;background:linear-gradient(180deg,#93c5fd,#3b82f6);box-shadow:0 -4px 16px #3b82f633}.muted{color:var(--color-text-muted)}.machine-card{display:grid;gap:9px;padding:16px;margin-top:12px}.mini-row,.inventory-row,.customer-row,.audit-row{display:grid;align-items:center;gap:12px;min-height:56px;border-bottom:1px solid rgba(147,197,253,.25)}.mini-row{grid-template-columns:minmax(0,1fr) auto auto}.mini-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status{display:inline-flex;align-items:center;gap:6px;width:fit-content;min-height:26px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:700;white-space:nowrap}.status i{width:8px;height:8px;border-radius:50%;background:currentColor}.status.good{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(16,185,129,.2)}.status.warning{background:var(--color-warning-bg);color:var(--color-warning);border:1px solid rgba(245,158,11,.2)}.status.danger{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid rgba(239,68,68,.2)}.status.neutral{background:var(--color-neutral-bg);color:var(--color-neutral);border:1px solid rgba(148,163,184,.25)}.order-form{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.form-main{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border-radius:var(--radius-md);background:var(--color-card);border:1px solid var(--color-border-soft);padding:20px}label{display:grid;gap:6px;color:var(--color-text-muted);font-size:13px;font-weight:700}.span2{grid-column:span 2}.line-items{display:grid;gap:12px;padding:16px;border-radius:var(--radius-md);background:#eff6ffa6;border:1px solid var(--color-border-soft)}.line-items-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.line-items-head h3{font-size:15px}.line-item{display:grid;grid-template-columns:36px 1.4fr 1fr .7fr .7fr auto;gap:10px;align-items:end;padding:12px;border-radius:var(--radius-sm);background:#fff;border:1px solid var(--color-border-soft)}.line-index{align-self:center;color:var(--color-text-muted);font-size:12px;font-weight:700}.line-unit span{display:grid;min-height:42px;place-items:center;border-radius:var(--radius-sm);background:var(--color-neutral-bg);color:var(--color-text-soft);font-weight:700}.line-remove{align-self:end;min-height:42px;color:var(--color-danger);background:var(--color-danger-bg);border-color:#ef444433}.stock-list{display:grid;gap:6px}.stock-list p{padding:8px 10px;border-radius:var(--radius-sm);background:#ffffffb3;border:1px solid var(--color-border-soft);font-size:13px}.order-items-cell{line-height:1.45}.card-tags{display:flex;gap:8px;flex-wrap:wrap}.ship-tip{margin-bottom:14px}.ship-tags{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.ship-items{margin:0;padding-left:18px;color:var(--color-text-soft)}.ship-items li+li{margin-top:4px}.ship-warning{color:var(--color-danger);font-size:13px;font-weight:700;padding:8px 10px;border-radius:var(--radius-sm);background:var(--color-danger-bg);border:1px solid rgba(239,68,68,.18)}.shipment.unpaid,.phone-card.unpaid{border-color:#ef444459;box-shadow:0 0 0 1px #ef444414}.side-box{display:grid;align-content:start;gap:12px;border-radius:var(--radius-md);background:linear-gradient(160deg,#eff6ff,#dbeafe);border:1px solid rgba(147,197,253,.45);color:var(--color-text-soft);padding:20px}.stock-dial{display:grid;place-items:center;height:128px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.stock-dial strong{font-size:42px;line-height:1;color:var(--color-teal-dark)}.check{display:flex;align-items:center;gap:8px;color:var(--color-text-soft)}.check input{width:16px;min-height:16px}.primary{background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff;font-weight:700;border:1px solid rgba(255,255,255,.35);box-shadow:var(--shadow-glow)}.primary:hover{background:linear-gradient(135deg,#93c5fd,#3b82f6)}.toast{border-left:4px solid var(--color-success);background:var(--color-success-bg);padding:10px;border-radius:var(--radius-sm)}.danger-text{border-left-color:var(--color-danger);background:var(--color-danger-bg);color:var(--color-danger)}.data-table{display:grid;overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--color-border-soft);background:#fff}.table-head,.table-row{display:grid;grid-template-columns:1.1fr 1fr 1fr .6fr .75fr .75fr .75fr 1.45fr;gap:10px;align-items:center;min-height:52px;padding:0 12px}.orders-table .table-head,.orders-table .table-row{grid-template-columns:1fr .9fr 1.6fr .75fr .7fr .7fr .7fr 1.35fr}.table-head{background:var(--color-accent-soft);color:var(--color-teal-dark);font-weight:800}.table-row{background:#fff;border-top:1px solid rgba(147,197,253,.25)}.table-row:hover{background:#f8fbff}.ship-grid,.product-grid,.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.shipment,.product-card,.permission-grid article{display:grid;gap:10px;padding:16px}.shipment>div{display:flex;justify-content:space-between;gap:8px}.inventory-row{grid-template-columns:1.5fr .7fr .7fr .8fr 1fr;padding:12px 0}.inventory-row div:first-child,.inventory-count{display:grid}.inventory-row div:first-child span,.inventory-count span{color:var(--color-text-muted);font-size:12px}.inventory-count strong{font-size:24px;color:var(--color-teal-dark)}.customer-row{grid-template-columns:1.2fr .5fr .9fr 1.6fr .7fr;padding:10px 0}.audit-list{display:grid;gap:8px;margin-bottom:14px}.audit-row{grid-template-columns:1fr .8fr 120px 1.5fr;border-radius:var(--radius-sm);padding:10px;background:#fff;border:1px solid var(--color-border-soft)}.timeline{display:grid;gap:8px}.timeline p{border-left:4px solid var(--color-accent);background:var(--color-accent-soft);padding:12px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.phone-frame{width:390px;min-height:820px;border:10px solid rgba(15,39,68,.88);border-radius:40px;overflow:hidden;background:#0f2744eb;box-shadow:0 24px 64px #2563eb40}.phone-status{display:flex;justify-content:space-between;color:#ffffffeb;padding:10px 20px 8px;font-size:12px;background:#ffffff0f}.phone-screen{min-height:700px;max-height:700px;overflow:auto;padding:16px;background:radial-gradient(circle at 20% 10%,rgba(96,165,250,.28),transparent 40%),linear-gradient(180deg,#dbeafe,#eff6ff)}.phone-head{margin-bottom:14px}.phone-head p{color:var(--color-text-muted);font-size:12px}.phone-head h2{display:flex;align-items:center;gap:8px;font-size:24px;font-weight:700;color:var(--color-text)}.phone-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:10px 12px 14px;background:#ffffffe0;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border-top:1px solid rgba(255,255,255,.95)}.phone-tabs button{flex-direction:column;gap:3px;min-height:52px;padding:6px 0;background:transparent;color:var(--color-text-muted);font-size:11px;font-weight:700;border-radius:14px;border:1px solid transparent}.phone-tabs button.active{transform:none}.tab-icon{opacity:.75}.phone-tabs button.active .tab-icon{opacity:1}.segment-nav{display:flex;gap:6px;margin-bottom:12px;padding:5px;border-radius:16px;background:#fff;border:1px solid var(--color-border-soft)}.segment-nav button{flex:1;flex-direction:column;gap:2px;min-height:48px;padding:4px 6px;background:transparent;color:var(--color-text-muted);font-size:11px;font-weight:700;border:1px solid transparent}.segment-nav button.active{transform:none}.mobile-list{display:grid;gap:12px}.mobile-hero{border-radius:var(--radius-lg);padding:22px;color:#fff;background:linear-gradient(135deg,#60a5fa,#2563eb);border:1px solid rgba(255,255,255,.35);box-shadow:var(--shadow-glow)}.mobile-hero.me-hero strong{font-size:30px}.mobile-hero span{display:flex;align-items:center;gap:6px;opacity:.92;font-size:13px}.mobile-hero strong{display:block;font-size:46px;line-height:1.05;margin:10px 0 6px;font-weight:800;letter-spacing:-.03em}.mobile-hero p{opacity:.92;font-size:13px}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.quick-grid button{flex-direction:column;gap:6px;min-height:72px;font-weight:700;color:var(--color-text-soft);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft)}.quick-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--color-accent-soft);color:var(--color-accent)}.phone-card{display:grid;gap:8px;padding:16px}.phone-card>div{display:flex;justify-content:space-between;gap:8px;align-items:center}.card-title{display:flex;align-items:center;gap:8px}.card-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:var(--color-accent-soft);color:var(--color-accent);flex-shrink:0}.me-menu{display:grid;gap:8px}.me-menu button{justify-content:space-between;min-height:50px;padding:0 16px;border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.me-menu button span{display:inline-flex;align-items:center;gap:10px}.order-form.mobile{grid-template-columns:1fr}.order-form.mobile .form-main{grid-template-columns:1fr;padding:14px}.order-form.mobile .span2{grid-column:span 1}.order-form.mobile .line-items,.order-form.mobile .line-item{grid-template-columns:1fr}.order-form.mobile .line-index{display:none}.order-form.mobile .line-remove{width:100%}.order-form.mobile .side-box{background:#fff;color:var(--color-text)}.order-form.mobile .check{color:var(--color-text-soft)}.order-form.mobile .stock-dial{color:var(--color-text);background:var(--color-accent-soft)}.phone-frame .audit-row{grid-template-columns:1fr .8fr 88px}@media(max-width:1240px){body{min-width:390px}.workspace.both,.workspace.web{grid-template-columns:1fr}.workspace.both{place-items:start center}}:root{--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--sidebar-w: 248px;--header-h: 64px;--panel-head-h: 72px}html,body,#root{height:100%;overflow:hidden}.app-shell{height:100%;min-height:0;padding:12px 16px 16px;box-sizing:border-box}.workspace.web-fill{height:100%;min-height:0}.web-console{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);height:100%;min-height:0;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border-soft);box-shadow:var(--shadow-card)}.rail{display:flex;flex-direction:column;padding:var(--space-5) var(--space-3);background:linear-gradient(180deg,#f8fbff,#eef6ff);overflow:auto;min-height:0}.rail-brand{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border-soft);margin-bottom:var(--space-4)}.rail-brand-text b{display:block;font-size:15px;color:var(--color-text)}.rail-brand-text span{font-size:12px;color:var(--color-text-muted)}.rail nav button{gap:10px;font-size:14px;font-weight:600}.rail nav button.active{background:#fff;color:var(--color-accent-hover);border-color:#3b82f640;box-shadow:var(--shadow-soft)}.rail nav button.active .nav-icon{color:var(--color-accent)}.desktop-panel{display:flex;flex-direction:column;padding:0;background:#ffffff9e;min-height:0;overflow:hidden}.panel-head{flex-shrink:0;margin:0;border-radius:0;border:none;border-bottom:1px solid var(--color-border-soft);box-shadow:none;padding:var(--space-4) var(--space-6);background:#ffffffeb}.page-body{flex:1;overflow:auto;padding:var(--space-5) var(--space-6);min-height:0}.page-body-fill{display:flex;flex-direction:column;padding:var(--space-4) var(--space-5);min-height:0}.page-body-fill .list-page-fill{flex:1;min-height:0}.dashboard-page{display:flex;flex-direction:column;gap:var(--space-4);width:100%;flex-shrink:0}.section-card-dashboard{overflow:visible;flex-shrink:0}.section-card-dashboard .section-card-body{overflow:visible}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.page-header-main{display:flex;align-items:center;gap:var(--space-4)}.page-title{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--color-text)}.page-subtitle{margin-top:4px;color:var(--color-text-muted);font-size:13px}.page-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.icon-badge{display:inline-grid;place-items:center;flex-shrink:0;border-radius:12px;background:var(--color-accent-soft);color:var(--color-accent);border:1px solid rgba(147,197,253,.35)}.icon-badge-sm{width:32px;height:32px;border-radius:10px}.icon-badge-lg{width:48px;height:48px;border-radius:14px}.icon-tone-default{background:var(--color-accent-soft);color:var(--color-accent)}.icon-tone-warn{background:var(--color-warning-bg);color:var(--color-warning);border-color:#f59e0b40}.icon-tone-danger{background:var(--color-danger-bg);color:var(--color-danger);border-color:#ef444440}.icon-tone-success{background:var(--color-success-bg);color:var(--color-success);border-color:#10b98140}.section-card{border-radius:var(--radius-md);background:var(--color-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);overflow:hidden}.section-card+.section-card{margin-top:var(--space-4)}.section-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid rgba(147,197,253,.2);background:linear-gradient(180deg,#fff,#f8fbff)}.section-card-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;margin:0}.section-card-body{padding:var(--space-5)}.metric-tile{padding:var(--space-5);border-radius:var(--radius-md);background:var(--color-card);border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft);position:relative;overflow:hidden}.metric-tile:before{content:"";position:absolute;inset:0 auto auto 0;width:100%;height:3px;background:linear-gradient(90deg,#60a5fa,#3b82f6)}.metric-tile-warn:before{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.metric-tile-danger:before{background:linear-gradient(90deg,#f87171,#ef4444)}.metric-tile-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.metric-tile-label{font-size:13px;font-weight:600;color:var(--color-text-muted)}.metric-tile-value{display:block;margin-top:var(--space-3);font-size:34px;line-height:1;font-weight:800;letter-spacing:-.03em}.metric-tile-hint{display:block;margin-top:6px;font-style:normal;font-size:12px;color:var(--color-text-muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.sales-grand-total{font-size:13px;color:var(--color-text-soft)}.sales-grand-total b{color:var(--color-accent-hover);font-size:16px}.sales-monthly-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,280px);gap:var(--space-5);align-items:start}.sales-monthly-table-wrap{min-width:0}.sales-table-scroll{max-height:none;overflow:visible}.sales-matrix th,.sales-matrix td{text-align:center;white-space:nowrap}.sales-matrix th:first-child,.sales-matrix td:first-child{text-align:left}.sales-matrix tbody tr{cursor:pointer;transition:background .15s}.sales-matrix tbody tr:hover{background:#3b82f60a}.sales-matrix tbody tr.is-selected{background:#3b82f614}.sales-matrix tfoot td{background:#f8fbff;font-weight:700;border-top:2px solid var(--color-border-soft)}.sales-month-cell{font-weight:600}.sales-qty-cell{font-variant-numeric:tabular-nums}.sales-total-cell{font-weight:700;color:var(--color-accent-hover);font-variant-numeric:tabular-nums}.sales-hint{margin-top:var(--space-3);font-size:12px}.sales-monthly-chart{background:#f8fbff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4) var(--space-3);overflow:visible}.sales-monthly-chart .pie-chart-wrap{padding-bottom:var(--space-2)}.sales-monthly-chart .empty-state{padding:var(--space-4) 0}.sales-monthly-chart h4{margin:0 0 var(--space-3);font-size:14px;font-weight:700;color:var(--color-text)}.layout-split{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--space-4);align-items:start}.layout-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.data-table-pro{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);overflow:hidden;background:#fff}.data-table-pro .table-head,.data-table-pro .table-row{display:grid;align-items:center;gap:var(--space-3);padding:12px var(--space-4)}.data-table-pro .table-head{background:#f1f5f9;font-size:12px;font-weight:700;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-soft)}.data-table-pro .table-row{border-bottom:1px solid rgba(147,197,253,.18);font-size:13px}.data-table-pro .table-row:last-child{border-bottom:none}.data-table-pro .table-row:hover{background:#f8fbff}.orders-table-pro .table-head,.orders-table-pro .table-row{grid-template-columns:1.1fr 1fr 1.6fr .9fr .8fr .8fr .8fr 1fr}.ship-grid-pro{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-4)}.ship-card{display:grid;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft);box-shadow:var(--shadow-soft)}.ship-card.unpaid{border-color:#ef444459;background:linear-gradient(180deg,#fff,#fff5f5)}.inventory-grid{display:grid;gap:var(--space-3)}.inventory-card{display:grid;grid-template-columns:minmax(0,1.4fr) auto auto auto auto;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.inventory-card b{display:block;margin-bottom:4px}.inventory-count-lg{text-align:center}.inventory-count-lg strong{display:block;font-size:24px;line-height:1}.product-grid-pro{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4)}.product-card-pro{display:grid;gap:8px;padding:var(--space-5);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.product-card-pro .cat{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-accent)}.customer-grid{display:grid;gap:var(--space-3)}.customer-card{display:grid;grid-template-columns:1.2fr auto 1fr 1.4fr auto;gap:var(--space-3);align-items:center;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.permission-grid-pro{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--space-4)}.permission-card{padding:var(--space-5);border-radius:var(--radius-md);background:#fff;border:1px solid var(--color-border-soft)}.permission-card b{display:block;margin-bottom:8px}.timeline-pro{display:grid;gap:0}.timeline-pro .log-item{display:grid;grid-template-columns:12px 1fr;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid rgba(147,197,253,.18);font-size:13px}.timeline-pro .log-item:before{content:"";width:8px;height:8px;margin-top:6px;border-radius:50%;background:var(--color-accent)}.empty-state,.loading-state,.error-state{display:grid;place-items:center;gap:8px;padding:48px 24px;text-align:center;color:var(--color-text-muted);border-radius:var(--radius-md);background:#ffffffb3;border:1px dashed var(--color-border-soft)}.error-state{color:var(--color-danger);background:var(--color-danger-bg);border-color:#ef444440}.loading-dot{width:10px;height:10px;border-radius:50%;background:var(--color-accent);animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}.login-shell{min-height:100vh;display:grid;place-items:center;padding:var(--space-8)}.login-card{width:min(420px,100%);border-radius:var(--radius-lg);background:#ffffffeb;border:1px solid rgba(255,255,255,.95);box-shadow:var(--shadow-card);overflow:hidden}.login-brand{padding:var(--space-8) var(--space-6) var(--space-5);text-align:center;background:linear-gradient(135deg,#60a5fa,#2563eb);color:#fff}.login-brand .icon-badge-lg{margin:0 auto var(--space-4);background:#ffffff2e;border-color:#ffffff59;color:#fff}.login-form{padding:var(--space-6);display:grid;gap:var(--space-4)}@media(max-width:1280px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-split{grid-template-columns:1fr}.orders-table-pro .table-head,.orders-table-pro .table-row{grid-template-columns:1fr 1fr}}.list-page{display:flex;flex-direction:column;min-height:0;flex:1}.list-page-fill{height:100%}.list-page-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4);flex-shrink:0}.list-page-title{font-size:20px;font-weight:800;color:var(--color-text)}.list-page-sub{margin-top:4px;font-size:13px;color:var(--color-text-muted)}.list-page-actions{display:flex;gap:var(--space-2);flex-shrink:0}.list-page-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.list-page-body>.std-table-wrap,.list-page-body>.table-empty,.list-page-body>.integration-cards,.list-page-body>.rbac-tree-layout,.list-page-body>.rbac-tree-layout-single,.list-page-body>.rbac-tree-panel,.list-page-body>.perm-toolbar-card+.rbac-tree-panel{flex:1;min-height:0;overflow:auto}.list-page-body>.pager{flex-shrink:0;margin-top:0;padding:12px 16px;border-top:1px solid var(--color-border-soft);background:#fff;border-radius:0 0 var(--radius-md) var(--radius-md)}.pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.pager-info{display:flex;align-items:center;gap:var(--space-3);font-size:13px}.pager-range{font-weight:600;color:var(--color-text)}.pager-controls{display:flex;align-items:center;gap:var(--space-3)}.pager-status b{color:var(--color-accent-hover);font-weight:800}.std-table-wrap{border:1px solid var(--color-border-soft);border-radius:var(--radius-md);overflow:auto;background:#fff;max-height:100%}.std-table{width:100%;border-collapse:collapse;font-size:13px}.std-table th,.std-table td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--color-border-soft);vertical-align:middle}.std-table th{background:#f8fbff;font-weight:700;color:var(--color-text-soft);position:sticky;top:0;z-index:1}.std-table tbody tr:hover{background:#3b82f60a}.table-empty,.table-empty-cell{text-align:center;color:var(--color-text-muted);padding:48px 16px}.cell-wrap{max-width:280px;word-break:break-word}.cell-stack{display:flex;flex-direction:column;gap:4px}.cell-hint{font-size:12px;line-height:1.4;color:var(--color-text-muted)}.cell-hint.danger{color:#dc2626}.cell-hint.warn{color:#d97706}.row-actions{display:flex;flex-wrap:wrap;gap:8px}.row-actions button{padding:4px 10px;font-size:12px}.danger-text{color:var(--color-danger)!important}button.danger,button.primary.danger{background:var(--color-danger);border-color:var(--color-danger)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f274473;z-index:1000;display:grid;place-items:center;padding:24px}.modal-panel{width:100%;background:#fff;border-radius:var(--radius-lg);box-shadow:0 24px 64px #0f27442e;max-height:min(90vh,720px);display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border-soft)}.modal-head h3{font-size:18px;font-weight:800}.modal-close{padding:6px;border:none;background:transparent;cursor:pointer;color:var(--color-text-muted)}.modal-body{padding:20px;overflow:auto}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border-soft)}.confirm-message{color:var(--color-text-soft);line-height:1.6}.toast-top{position:fixed;top:16px;left:50%;transform:translate(-50%);z-index:2000;padding:12px 24px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 12px 32px #0f274426;animation:toast-in .25s ease}.toast-top-success{background:var(--color-success-bg);color:var(--color-success);border:1px solid rgba(5,150,105,.25)}.toast-top-error{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid rgba(220,38,38,.25)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.form-stack{display:grid;gap:14px}.form-stack label,.form-grid label{display:grid;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-soft)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .span2{grid-column:span 2}.form-stack input,.form-stack select,.form-grid input,.form-grid select,.line-item-row input,.line-item-row select{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px}.checkbox-row{display:flex!important;align-items:center;gap:8px;flex-direction:row!important}.role-checkboxes{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px;display:grid;gap:8px}.role-checkboxes legend{font-size:13px;font-weight:600;color:var(--color-text-muted);padding:0 4px}.line-items-modal{margin-top:16px;border-top:1px dashed var(--color-border-soft);padding-top:16px}.line-items-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.line-item-row{display:grid;grid-template-columns:36px 1fr 100px auto;gap:8px;align-items:center;margin-bottom:8px}.line-index{font-weight:800;color:var(--color-text-muted)}.audit-layout{display:grid;grid-template-columns:280px 1fr;gap:var(--space-4);min-height:0}.audit-chart-card,.audit-table-card{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4)}.audit-chart-card h3,.audit-table-card h3,.section-inline-title{font-size:15px;font-weight:800;margin-bottom:var(--space-3)}.pie-chart-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.pie-chart{border-radius:50%;box-shadow:inset 0 0 0 8px #fff}.pie-legend{list-style:none;padding:0;margin:0;width:100%}.pie-legend li{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}.pie-legend i{width:10px;height:10px;border-radius:3px;flex-shrink:0}.pie-legend b{margin-left:auto}.rbac-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--space-4);min-height:0}.rbac-roles{display:flex;flex-direction:column;gap:6px}.rbac-side-title{font-size:12px;font-weight:700;color:var(--color-text-muted);margin-bottom:4px}.rbac-roles button{text-align:left;padding:10px 12px;border-radius:var(--radius-sm);border:1px solid transparent;background:#fff}.rbac-roles button.active{background:var(--color-accent-soft);border-color:#3b82f640;color:var(--color-accent-hover);font-weight:700}.rbac-matrix{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4);overflow:auto}.rbac-role-hint{margin-bottom:var(--space-4);font-size:14px}.rbac-group{margin-bottom:var(--space-4)}.rbac-group h4{font-size:13px;font-weight:800;margin-bottom:8px;color:var(--color-text-muted)}.rbac-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}.rbac-check{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.rbac-check code{margin-left:auto;font-size:11px;color:var(--color-text-muted)}.integration-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.integration-card{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4)}.integration-card h3{font-size:15px;font-weight:800;margin:0 0 var(--space-2)}.perm-toolbar-card{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4)}.perm-role-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.perm-toolbar-actions{display:flex;align-items:center;gap:var(--space-2);flex:1;flex-wrap:wrap;justify-content:flex-end;min-width:280px}.perm-search{flex:1;min-width:180px;max-width:280px;padding:7px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px}.perm-only-selected{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--color-text-soft);white-space:nowrap}.perm-only-selected input{accent-color:var(--color-accent)}.perm-chips-label{font-size:12px;font-weight:700;color:var(--color-text-muted);align-self:center}.perm-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#f8fbff;border:1px solid rgba(147,197,253,.45);font-size:12px;font-weight:600;color:var(--color-text-soft);cursor:pointer;transition:border-color .15s,background .15s;font-family:inherit}.perm-chip:hover{background:#eff6ff;border-color:#3b82f673}.perm-role-select{display:flex;align-items:center;gap:var(--space-2);font-size:13px;font-weight:600;color:var(--color-text-soft)}.perm-role-select select{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);min-width:180px;font-weight:600}.perm-count-badge{display:inline-flex;align-items:center;padding:6px 14px;border-radius:999px;background:var(--color-accent-soft);color:var(--color-accent-hover);font-size:13px;font-weight:700}.perm-selected-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed var(--color-border-soft)}.perm-chip-x{padding:0 2px;background:transparent;color:var(--color-text-muted);font-size:14px;line-height:1;cursor:pointer}.perm-chip-x:hover{color:var(--color-danger)}.perm-tree-table{display:flex;flex-direction:column;min-height:0}.perm-tree-head,.perm-tree-row{display:grid;grid-template-columns:minmax(220px,1fr) 200px 52px;align-items:center;column-gap:16px}.perm-tree-head{padding:10px 14px;background:#f8fbff;border-bottom:1px solid var(--color-border-soft);font-size:12px;font-weight:700;color:var(--color-text-muted);position:sticky;top:0;z-index:2}.perm-tree-body{flex:1}.perm-tree-row{padding:10px 14px;border-bottom:1px solid rgba(147,197,253,.2);transition:background .15s}.perm-tree-row.is-group{background:#f8fbffcc;font-weight:700}.perm-tree-row.is-leaf{cursor:pointer}.perm-tree-row.is-leaf:hover{background:#3b82f60a}.perm-tree-row.is-checked{background:#3b82f60f}.perm-tree-row.is-indeterminate{background:#3b82f608}.perm-tree-row.is-highlight{animation:perm-highlight 1.8s ease}@keyframes perm-highlight{0%,35%{background:#3b82f62e;box-shadow:inset 3px 0 0 var(--color-accent)}to{background:transparent;box-shadow:none}}.perm-tree-row.no-perm{cursor:default}.perm-col-name{display:flex;align-items:center;gap:8px;min-width:0}.perm-expand{width:22px;height:22px;padding:0;border:none;background:transparent;color:var(--color-text-muted);font-size:11px;flex-shrink:0}.perm-expand.spacer{visibility:hidden}.perm-tag{flex-shrink:0;font-size:10px;font-weight:800;padding:2px 7px;border-radius:6px}.perm-tag-group{background:#f0fdf4;color:#059669}.perm-tag-menu{background:#fffbeb;color:#d97706}.perm-tag-action{background:#fef2f2;color:#dc2626}.perm-name{font-size:14px;font-weight:600;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.perm-group-count{flex-shrink:0;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#eef2ff;color:#4f46e5}.perm-col-key{min-width:0}.perm-col-key code{font-size:12px;color:var(--color-text-muted);background:#f1f5f9;padding:3px 8px;border-radius:6px}.perm-col-check{display:flex;justify-content:flex-end;align-items:center;padding-right:4px}.perm-col-check input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer}.perm-check-all{color:var(--color-success);font-weight:800;font-size:16px}.perm-tree-panel{flex:1;min-height:0;padding:0;overflow:auto}.perm-role-bar{display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-4);flex-wrap:wrap}.rbac-tree-layout{display:grid;grid-template-columns:1fr 280px;gap:var(--space-4);min-height:0;flex:1}.rbac-tree-layout-single{display:grid;grid-template-columns:1fr 280px;gap:var(--space-4);flex:1;min-height:0}.rbac-tree-panel{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-3);overflow:auto;min-height:0}.rbac-tree-hint{font-size:13px;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px dashed var(--color-border-soft)}.rbac-tree{font-size:13px}.tree-row{display:flex;align-items:center;gap:6px;min-height:34px;border-radius:8px}.tree-row.selected{background:var(--color-accent-soft)}.tree-toggle{width:20px;height:20px;padding:0;border:none;background:transparent;color:var(--color-text-muted);font-size:12px;flex-shrink:0}.tree-toggle.spacer{visibility:hidden}.tree-label{flex:1;text-align:left;border:none;background:transparent;padding:4px 0;display:flex;align-items:center;gap:8px;min-width:0}.tree-type{font-size:10px;font-weight:800;padding:2px 6px;border-radius:6px;background:#f1f5f9;color:#64748b;flex-shrink:0}.tree-type-角色{background:#eff6ff;color:#2563eb}.tree-type-组{background:#f0fdf4;color:#059669}.tree-type-菜单{background:#fffbeb;color:#d97706}.tree-type-权{background:#fef2f2;color:#dc2626}.tree-perm{margin-left:auto;font-size:10px;color:var(--color-text-muted)}.tree-check{flex-shrink:0}.tree-check.on{color:var(--color-success);font-weight:800;width:18px;text-align:center}.rbac-detail-panel{background:#fff;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);padding:var(--space-4)}.rbac-detail-panel h3{font-size:15px;margin-bottom:var(--space-3)}.rbac-detail dt{font-size:12px;color:var(--color-text-muted);margin-top:10px}.rbac-detail dd{font-size:14px;font-weight:600}@media(max-width:960px){.sales-monthly-layout{grid-template-columns:1fr}.sales-monthly-chart{max-width:320px;margin:0 auto;width:100%}.rbac-tree-layout{grid-template-columns:1fr}}
