:root{
  /* 暖陶土主调 v2（唯一色板来源 — 与经营台/库存台/登录页/小程序统一）+ 挖机黄黑品牌点缀 */
  --bg:#f4f1e9;--surface:#fff;--surface-2:#fff;--surface-3:#efece3;--text:#28261f;--muted:#57534a;--faint:#a39b8b;
  --line:#e7e1d4;--line-strong:#dcd5c5;--brand:#c15f3c;--brand-2:#d8795c;--brand-deep:#a94f30;--brand-soft:#f6ece6;--navy:#28261f;
  --green:#5e8c5a;--green-soft:#e7f1e6;--purple:#bd842e;--purple-soft:#f9f0dd;--orange:#c2752e;--red:#bc4b3c;
  /* 品牌点缀：挖机黄 + 墨黑（取自 logo） */
  --brand-yellow:#e0a15f;--brand-yellow-deep:#bd842e;--brand-black:#28261f;--yellow-soft:rgba(189,132,46,.16);
  --shadow:0 18px 60px rgba(60,46,30,.12);--shadow-sm:0 8px 26px rgba(60,46,30,.07);--radius:20px;--radius-sm:13px;
  /* 深色侧栏 + 品牌渐变条（与库存台/经营台的深色侧栏统一） */
  --sidebar-bg:#efebe1;--sidebar-line:#e7e1d4;
  --sidebar-text:#6e6759;--sidebar-text-on:#28261f;--sidebar-hover:rgba(193,95,60,.08);
  --stripe:linear-gradient(90deg,#c15f3c,#d8795c 48%,#bd842e);
  --radius-lg:26px;--space-1:6px;--space-2:12px;--space-3:20px;--space-4:32px;
}
html[data-theme="dark"]{
  --bg:#1b1a18;--surface:#262320;--surface-2:#302d29;--surface-3:#34302b;--text:#f3efe7;--muted:#cdc6ba;--faint:#a59d8e;
  --line:#34302b;--line-strong:#423d37;--brand:#d4755f;--brand-2:#e2998a;--brand-deep:#e8a393;--brand-soft:rgba(212,117,95,.2);--navy:#f3efe7;
  --green:#7aa56f;--green-soft:rgba(122,165,111,.18);--purple:#d8a84e;--purple-soft:rgba(216,168,78,.16);--red:#d4664e;
  --brand-yellow:#f0c000;--brand-yellow-deep:#e0b400;--brand-black:#0f0e0c;--yellow-soft:rgba(240,192,0,.16);
  --shadow:0 18px 60px rgba(0,0,0,.3);--shadow-sm:0 8px 26px rgba(0,0,0,.22)
}
*{box-sizing:border-box}html{font-family:'Noto Sans SC','PingFang SC','Microsoft YaHei UI','Hiragino Sans GB',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text)}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}button,input,select{font:inherit}button{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.is-hidden{display:none!important}.mobile-only{display:none!important}
.boot-screen{position:fixed;inset:0;z-index:9999;display:grid;place-content:center;justify-items:center;gap:18px;background:var(--bg);transition:opacity .2s}.boot-screen.fade{opacity:0;pointer-events:none}.boot-text{font-size:13px;font-weight:700;color:var(--muted);letter-spacing:.4px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy)}.brand-name{font-size:22px;font-weight:900;letter-spacing:-.7px;font-family:'Noto Serif SC','Songti SC',serif}.brand-mark{position:relative;width:40px;height:36px;display:block;background:url("assets/logo-sm.png") center/contain no-repeat;overflow:visible}.brand-mark span{display:none}.brand-mark-lg{width:58px;height:52px}
/* Login */
.login-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(115deg,#f6f2e9 0%,#faf8f2 52%,#fff 52%)}.login-topbar{height:68px;padding:0 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(231,225,212,.85);background:rgba(255,255,255,.78);backdrop-filter:blur(16px);position:relative;z-index:5}.text-action,.link-button,.text-link,.mini-link{border:0;background:transparent;cursor:pointer;color:var(--brand);font-weight:700}.text-action{display:flex;align-items:center;gap:7px;color:#57534a}.text-action svg{width:20px;height:20px}.login-layout{flex:1;display:grid;grid-template-columns:minmax(520px,1.05fr) minmax(500px,1fr);min-height:720px}.login-intro{position:relative;overflow:hidden;padding:72px clamp(46px,7vw,120px) 42px;background:radial-gradient(circle at 78% 16%,rgba(193,95,60,.10),transparent 35%),linear-gradient(150deg,#faf7ef 0%,#f4efe4 65%,#f2ece0 100%)}.login-intro:after{content:"";position:absolute;width:620px;height:620px;border:1px solid rgba(193,95,60,.12);border-radius:50%;right:-360px;top:145px;box-shadow:0 0 0 80px rgba(193,95,60,.04),0 0 0 160px rgba(193,95,60,.03)}.eyebrow,.page-kicker,.hero-kicker{font-size:11px;font-weight:900;letter-spacing:1.5px;color:var(--brand);text-transform:uppercase}.intro-copy{position:relative;z-index:2;max-width:650px}.intro-copy h1{margin:12px 0 16px;font-size:clamp(42px,4vw,66px);line-height:1.12;letter-spacing:-2.8px;color:var(--navy)}.intro-copy h1 span{color:var(--brand)}.intro-copy p{font-size:17px;line-height:1.85;color:#6e6759;max-width:610px;margin:0}.role-grid{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:34px;max-width:690px}.role-card{min-height:88px;padding:16px;display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.85);border:1px solid rgba(231,225,212,.95);border-radius:16px;box-shadow:0 9px 28px rgba(60,46,30,.08);backdrop-filter:blur(10px)}.role-card b{display:block;font-size:14px}.role-card small{display:block;margin-top:5px;font-size:11px;color:var(--muted);white-space:nowrap}.role-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;flex:none}.role-icon svg{width:24px;height:24px}.role-operations .role-icon{background:var(--brand-soft);color:var(--brand)}.role-warehouse .role-icon{background:var(--green-soft);color:var(--green)}.role-owner .role-icon{background:var(--purple-soft);color:var(--purple)}
.product-visual{position:relative;z-index:1;height:330px;margin-top:22px;max-width:720px}.visual-glow{position:absolute;border-radius:50%;filter:blur(2px)}.glow-one{width:340px;height:170px;left:80px;bottom:20px;background:rgba(193,95,60,.10)}.glow-two{width:260px;height:160px;right:40px;bottom:30px;background:rgba(15,180,154,.08)}.visual-window{position:absolute;left:18px;right:116px;top:42px;height:242px;border-radius:23px;background:rgba(255,255,255,.74);border:1px solid rgba(220,213,197,.9);box-shadow:0 28px 70px rgba(60,46,30,.16);transform:perspective(1000px) rotateX(2deg) rotateY(4deg);display:grid;grid-template-columns:68px 1fr;overflow:hidden;backdrop-filter:blur(10px)}.visual-sidebar{background:linear-gradient(180deg,#3a2e24,#2b241c);padding:24px 17px;display:flex;flex-direction:column;gap:17px}.visual-sidebar i{display:block;width:30px;height:7px;border-radius:10px;background:rgba(255,255,255,.25)}.visual-sidebar i.on{height:25px;background:rgba(255,255,255,.93);box-shadow:inset 0 0 0 8px rgba(193,95,60,.7)}.visual-content{padding:25px}.visual-head{display:flex;justify-content:space-between}.visual-head span{display:block;width:110px;height:10px;border-radius:8px;background:#ece5d6}.visual-head span:last-child{width:55px}.visual-chart{height:112px;margin-top:19px;background:linear-gradient(180deg,#faf7ef,#fff);border-radius:15px;border:1px solid #e7e1d4;padding:18px}.visual-chart svg{width:100%;height:100%}.visual-chart path{fill:none;stroke:var(--brand);stroke-width:3}.visual-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.visual-kpis span{height:47px;border-radius:11px;background:#f6f2e9;border:1px solid #e7e1d4}.floating-card{position:absolute;width:132px;padding:17px;border-radius:18px;background:rgba(255,255,255,.92);box-shadow:0 18px 44px rgba(60,46,30,.15);border:1px solid rgba(231,225,212,.95);backdrop-filter:blur(10px)}.floating-card b,.floating-card span{display:block;font-size:10px;color:var(--muted)}.floating-card strong{display:block;margin:6px 0 2px;font-size:26px}.floating-stock{right:58px;top:68px}.floating-stock strong{color:var(--orange)}.floating-owner{right:0;bottom:15px}.floating-owner strong{color:var(--purple)}
.login-side{display:grid;place-items:center;padding:58px;background:linear-gradient(145deg,#faf8f2,#fff)}.login-card{width:min(100%,590px);padding:58px 54px 52px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.welcome-label{text-align:center;color:var(--brand);font-weight:800;font-size:14px}.login-card h2{text-align:center;margin:8px 0 9px;font-size:35px;letter-spacing:-1.2px;font-family:'Noto Serif SC','Songti SC',serif}.login-subtitle{text-align:center;margin:0 0 37px;color:var(--muted);font-size:14px}.field-label{display:block;margin:19px 0 9px;font-size:13px;font-weight:800}.field-shell{height:54px;display:flex;align-items:center;gap:12px;padding:0 15px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);transition:.16s}.field-shell:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(193,95,60,.10)}.field-shell>svg{width:21px;height:21px;color:#a39b8b;flex:none}.field-shell input{width:100%;height:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:14px}.field-shell input::placeholder{color:#bcb4a5}.field-button{border:0;background:transparent;width:36px;height:36px;padding:8px;color:#a39b8b;cursor:pointer}.field-button svg{width:20px;height:20px}.login-options{display:flex;justify-content:space-between;align-items:center;margin:21px 0 8px;font-size:13px}.check{display:flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer}.check input{position:absolute;opacity:0}.check span{width:18px;height:18px;border-radius:5px;border:1px solid #dcd5c5;background:#fff;display:grid;place-items:center}.check input:checked+span{background:var(--brand);border-color:var(--brand)}.check input:checked+span:after{content:"";width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translateY(-1px)}.form-error{min-height:20px;margin-top:8px;color:var(--red);font-size:12px;font-weight:700}.login-card{position:relative;overflow:hidden}.login-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--stripe)}.primary-button{width:100%;height:56px;margin-top:4px;border:0;border-radius:13px;background:linear-gradient(105deg,var(--brand),var(--brand-2));color:#fff;font-weight:900;cursor:pointer;box-shadow:0 14px 30px rgba(193,95,60,.26);display:flex;align-items:center;justify-content:center;gap:9px;transition:.16s}.primary-button:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(193,95,60,.3)}.primary-button:disabled{opacity:.68;cursor:wait;transform:none}.primary-button svg{width:19px;height:19px}.login-note{margin-top:25px;padding:14px 16px;display:flex;align-items:center;gap:10px;background:var(--brand-soft);border:1px solid #e6d3b8;border-radius:11px;color:#a94f30;font-size:12px}.login-note svg{width:20px;height:20px;flex:none}.login-footer{height:66px;padding:0 36px;border-top:1px solid rgba(231,225,212,.85);display:flex;align-items:center;justify-content:center;gap:30px;color:#8a8378;font-size:11px;background:rgba(255,255,255,.65)}
/* App shell */
.app-shell{min-height:100vh;display:grid;grid-template-columns:252px 1fr;background:var(--bg)}.sidebar{position:fixed;inset:0 auto 0 0;width:252px;z-index:20;padding:22px 15px 16px;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-line);display:flex;flex-direction:column;box-shadow:10px 0 34px rgba(20,16,10,.12)}.sidebar .brand-name,.sidebar-brand .brand-name{color:#fff}.sidebar-brand{height:44px;padding:0 8px 16px;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between;position:relative}.sidebar-brand:after{content:"";position:absolute;left:8px;right:8px;bottom:0;height:3px;border-radius:2px;background:var(--stripe)}.workspace-badge{margin:18px 0 20px;padding:13px;display:flex;align-items:center;gap:11px;border-radius:15px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09)}.workspace-badge .badge-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#d9847a,#a94f30);color:#fff;font-weight:900;box-shadow:0 8px 18px rgba(0,0,0,.25)}.workspace-badge .badge-icon::after{background:var(--brand-yellow)}.workspace-badge b{display:block;font-size:13px;color:#fff}.workspace-badge small{display:block;font-size:10px;color:rgba(255,255,255,.5);margin-top:3px}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-item{height:44px;width:100%;padding:0 13px;border:0;border-radius:12px;background:transparent;color:var(--sidebar-text);display:flex;align-items:center;gap:12px;font-size:13px;font-weight:650;cursor:pointer;text-align:left;transition:.14s;position:relative}.nav-item svg{width:19px;height:19px}.nav-item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-on)}.nav-item.active{background:linear-gradient(90deg,rgba(193,95,60,.28),rgba(193,95,60,.08));color:#fff;font-weight:800}.nav-item.active:before{content:"";position:absolute;left:-15px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-yellow)}.nav-label{padding:18px 13px 6px;font-size:9px;color:rgba(255,255,255,.32);font-weight:900;letter-spacing:1.5px;text-transform:uppercase}.sidebar-footer{margin-top:auto;padding-top:14px;border-top:1px solid var(--sidebar-line)}.mini-status{display:flex;align-items:center;gap:8px;padding:7px 10px;color:rgba(255,255,255,.42);font-size:10px}.status-dot{width:7px;height:7px;border-radius:50%;background:#5e8c5a;box-shadow:0 0 0 4px rgba(94,140,90,.14)}.logout-button{width:100%;height:41px;border:0;background:transparent;border-radius:11px;color:rgba(255,255,255,.55);display:flex;align-items:center;gap:10px;padding:0 11px;font-size:12px;font-weight:700;cursor:pointer;transition:.14s}.logout-button:hover{background:rgba(220,90,70,.16);color:#ff9a86}.logout-button svg{width:18px;height:18px}.app-main{grid-column:2;min-width:0}.app-topbar{height:72px;position:sticky;top:0;z-index:15;padding:0 32px;display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--surface) 86%,transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(20px)}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--faint)}.breadcrumb i{font-style:normal}.breadcrumb b{color:var(--text)}.top-actions{display:flex;align-items:center;gap:10px}.icon-button{width:40px;height:40px;border:1px solid var(--line);border-radius:12px;background:var(--surface);display:grid;place-items:center;cursor:pointer;transition:.14s}.icon-button:hover{background:var(--surface-2);border-color:var(--brand);color:var(--brand);transform:translateY(-1px)}.icon-button svg{width:19px;height:19px}.user-menu{height:46px;padding:0 12px 0 6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);display:flex;align-items:center;gap:9px;cursor:pointer;transition:.14s}.user-menu:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.user-menu>span:first-child{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(145deg,#d9847a,#a94f30);color:#fff;font-weight:900;box-shadow:0 6px 14px rgba(169,79,48,.3)}.user-text{text-align:left;min-width:80px}.user-text b,.user-text small{display:block}.user-text b{font-size:12px}.user-text small{margin-top:2px;font-size:9px;color:var(--muted)}.user-menu>svg{width:14px;height:14px;color:var(--faint)}.content-wrap{width:min(100%,1440px);margin:0 auto;padding:30px 36px 55px}.view{display:none;animation:viewIn .2s ease}.view.active{display:block}@keyframes viewIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.hero-card{min-height:270px;padding:44px 48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:space-between;overflow:hidden;position:relative;color:#fff;background:radial-gradient(circle at 87% 12%,rgba(240,192,0,.24),transparent 30%),linear-gradient(120deg,#28261f 0%,#3a2e24 52%,#4a3a2a 100%);box-shadow:0 26px 55px rgba(40,33,22,.28)}.hero-card>div:first-child{position:relative;z-index:2;max-width:690px}.hero-kicker{color:rgba(255,255,255,.68)}.hero-card h1{font-size:35px;margin:11px 0 12px;letter-spacing:-1.3px;font-family:'Noto Serif SC','Songti SC',serif}.hero-card p{max-width:620px;color:rgba(255,255,255,.72);line-height:1.8;margin:0;font-size:14px}.hero-actions{display:flex;gap:11px;margin-top:26px}.button{min-height:43px;padding:0 18px;border-radius:12px;border:1px solid transparent;font-size:12px;font-weight:850;cursor:pointer;transition:.15s}.button:hover{transform:translateY(-2px)}.button-primary{background:linear-gradient(105deg,var(--brand),var(--brand-2));color:#fff;box-shadow:0 10px 22px rgba(193,95,60,.26)}.hero-card .button-primary{background:#fff;color:var(--brand);box-shadow:0 12px 28px rgba(20,16,10,.28)}.button-soft{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.24);color:#fff}.button-ghost{background:var(--surface);border-color:var(--line);color:var(--text)}.hero-art{width:300px;height:210px;position:relative;flex:none}.hero-orbit{position:absolute;border:1px solid rgba(255,255,255,.2);border-radius:50%;left:38px;top:18px}.o1{width:210px;height:165px;transform:rotate(12deg)}.o2{width:260px;height:125px;left:14px;top:42px;transform:rotate(-14deg)}.hero-cube{position:absolute;width:67px;height:67px;border-radius:20px;display:grid;place-items:center;font-weight:900;font-size:20px;border:1px solid rgba(255,255,255,.3);box-shadow:0 15px 38px rgba(40,33,22,.28);backdrop-filter:blur(8px)}.c1{left:35px;top:76px;background:rgba(240,192,0,.9);transform:rotate(-10deg)}.c2{left:123px;top:32px;background:rgba(94,140,90,.85);transform:rotate(8deg)}.c3{right:15px;bottom:33px;background:rgba(193,95,60,.85);transform:rotate(-6deg)}
.section-heading,.panel-head,.page-head-row{display:flex;align-items:flex-end;justify-content:space-between}.section-heading{margin:32px 2px 16px}.section-heading h2,.panel-head h3{margin:0;font-family:'Noto Serif SC','Songti SC',serif}.section-heading h2{font-size:20px}.section-heading p,.panel-head p{margin:5px 0 0;color:var(--muted);font-size:11px}.text-link{font-size:11px}.workspace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.workspace-card{position:relative;min-height:172px;padding:23px;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm);overflow:hidden;cursor:pointer;transition:.18s}.workspace-card:hover{transform:translateY(-4px);border-color:var(--line-strong);box-shadow:0 20px 42px rgba(60,46,30,.14)}.workspace-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--card-soft);transition:.18s}.workspace-card:hover:before{background:var(--card-color)}.workspace-card:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-45px;top:-45px;background:var(--card-soft)}.workspace-card-head{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.workspace-card-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:var(--card-soft);color:var(--card-color);font-weight:900}.workspace-arrow{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);color:var(--muted);font-weight:900}.workspace-card h3{position:relative;z-index:1;margin:19px 0 6px;font-size:16px;font-family:'Noto Serif SC','Songti SC',serif}.workspace-card p{position:relative;z-index:1;margin:0;color:var(--muted);font-size:11px;line-height:1.65}.workspace-card .workspace-tag{position:relative;z-index:1;display:inline-flex;margin-top:13px;padding:5px 8px;border-radius:7px;background:var(--card-soft);color:var(--card-color);font-size:9px;font-weight:900}.wc-blue{--card-color:var(--brand);--card-soft:var(--brand-soft)}.wc-green{--card-color:var(--green);--card-soft:var(--green-soft)}.wc-purple{--card-color:var(--purple);--card-soft:var(--purple-soft)}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr 360px;gap:17px;margin-top:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:21px;box-shadow:var(--shadow-sm)}.panel-span-2{grid-column:span 2}.panel-head{padding:19px 20px 15px;border-bottom:1px solid var(--line)}.panel-head h3{font-size:14px}.date-chip{padding:6px 9px;border-radius:8px;background:var(--surface-2);color:var(--muted);font-size:10px}.attention-list{padding:8px 18px 14px}.attention-item{min-height:62px;display:flex;align-items:center;gap:13px;padding:11px 3px;border-bottom:1px solid var(--line)}.attention-item:last-child{border-bottom:0}.attention-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;font-size:12px;font-weight:900}.attention-item>div:nth-child(2){flex:1}.attention-item b,.attention-item small{display:block}.attention-item b{font-size:12px}.attention-item small{font-size:10px;color:var(--muted);margin-top:4px}.attention-item>strong{font-size:12px}.ai-blue{background:var(--brand-soft);color:var(--brand)}.ai-green{background:var(--green-soft);color:var(--green)}.ai-purple{background:var(--purple-soft);color:var(--purple)}.account-stats{min-height:166px;display:flex;align-items:center;gap:26px;padding:22px}.stat-ring{width:96px;height:96px;border-radius:50%;display:grid;place-content:center;text-align:center;background:conic-gradient(var(--brand) 0 72%,var(--green) 72% 90%,var(--purple) 90% 100%);position:relative}.stat-ring:before{content:"";position:absolute;inset:9px;border-radius:50%;background:var(--surface)}.stat-ring strong,.stat-ring span{position:relative;z-index:1;display:block}.stat-ring strong{font-size:24px}.stat-ring span{font-size:9px;color:var(--muted)}.stat-lines{flex:1}.stat-lines p{display:flex;align-items:center;gap:7px;margin:11px 0;font-size:10px;color:var(--muted)}.stat-lines p b{margin-left:auto;color:var(--text)}.stat-lines i{width:7px;height:7px;border-radius:50%}.dot-blue{background:var(--brand)}.dot-green{background:var(--green)}.dot-purple{background:var(--purple)}.skeleton-row{background:linear-gradient(90deg,transparent,#f0ede4,transparent);animation:pulse 1.4s infinite}@keyframes pulse{50%{opacity:.45}}
.page-head{padding:10px 2px 24px}.page-head h1{font-size:29px;letter-spacing:-1px;margin:7px 0 7px}.page-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.workspace-list-large{display:grid;gap:15px}.workspace-large-card{display:grid;grid-template-columns:62px minmax(240px,.8fr) minmax(320px,1fr) auto;align-items:center;gap:22px;padding:22px 24px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow-sm)}.workspace-large-icon{width:58px;height:58px;border-radius:17px;display:grid;place-items:center;font-size:19px;font-weight:900;background:var(--card-soft);color:var(--card-color)}.workspace-large-card h3{font-size:16px;margin:0 0 6px}.workspace-large-card small{font-size:10px;color:var(--muted)}.workspace-large-card p{font-size:11px;color:var(--muted);line-height:1.7;margin:0}.principle-panel{display:grid;grid-template-columns:repeat(3,1fr);margin-top:18px;background:linear-gradient(125deg,#2b241c,#3a2e24);border-radius:18px;overflow:hidden;color:#fff}.principle-panel>div{padding:24px 26px;border-right:1px solid rgba(255,255,255,.12)}.principle-panel>div:last-child{border:0}.principle-panel span{font-size:10px;color:var(--brand-yellow);font-weight:900}.principle-panel b{display:block;margin-top:7px;font-size:14px}.principle-panel p{margin:7px 0 0;font-size:10px;color:rgba(255,255,255,.62);line-height:1.65}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.metric-card{padding:21px;background:var(--surface);border:1px solid var(--line);border-radius:17px;box-shadow:var(--shadow-sm)}.metric-card span,.metric-card small{display:block;color:var(--muted);font-size:10px}.metric-card strong{display:block;margin:10px 0 5px;font-size:26px;letter-spacing:-1px}.two-column{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.quick-list{padding:7px 15px 14px}.quick-list button{width:100%;padding:13px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left}.quick-list button:last-child{border:0}.quick-list button:hover b{color:var(--brand)}.quick-list button>span:nth-child(2){flex:1}.quick-list b,.quick-list small{display:block}.quick-list b{font-size:12px}.quick-list small{margin-top:4px;font-size:10px;color:var(--muted)}.quick-list i{font-style:normal;color:var(--faint)}.quick-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:900}.q-purple{background:var(--purple-soft);color:var(--purple)}.q-green{background:var(--green-soft);color:var(--green)}.q-blue{background:var(--brand-soft);color:var(--brand)}.permission-list{padding:15px 20px 18px}.permission-list p{display:flex;align-items:center;gap:10px;margin:11px 0;font-size:11px;color:var(--muted)}.permission-list span{width:21px;height:21px;border-radius:7px;display:grid;place-items:center;font-weight:900}.permission-list .ok{background:var(--green-soft);color:var(--green)}.permission-list .lock{background:var(--surface-3);color:var(--faint)}
.role-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:15px}.role-summary article{padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;gap:12px}.role-summary-icon{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;font-weight:900}.rs-owner{background:var(--purple-soft);color:var(--purple)}.rs-operations{background:var(--brand-soft);color:var(--brand)}.rs-warehouse{background:var(--green-soft);color:var(--green)}.role-summary b,.role-summary small{display:block}.role-summary b{font-size:12px}.role-summary small{margin-top:4px;color:var(--muted);font-size:9px}.table-panel{overflow:hidden}.search-box{width:235px;height:36px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;gap:8px;padding:0 11px;background:var(--surface-2)}.search-box svg{width:16px;height:16px;color:var(--faint)}.search-box input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}.user-table-wrap{overflow:auto}.user-table{width:100%;border-collapse:collapse;min-width:780px}.user-table th,.user-table td{padding:14px 20px;text-align:left;border-bottom:1px solid var(--line);font-size:11px}.user-table th{color:var(--faint);font-size:9px;letter-spacing:.4px;background:var(--surface-2)}.user-table tbody tr:last-child td{border:0}.user-cell{display:flex;align-items:center;gap:10px}.table-avatar{width:35px;height:35px;border-radius:11px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-weight:900}.user-cell b,.user-cell small{display:block}.user-cell small{margin-top:3px;color:var(--muted);font-size:9px}.role-pill,.status-pill{display:inline-flex;padding:5px 8px;border-radius:8px;font-size:9px;font-weight:850}.role-pill.owner{background:var(--purple-soft);color:var(--purple)}.role-pill.operations{background:var(--brand-soft);color:var(--brand)}.role-pill.warehouse{background:var(--green-soft);color:var(--green)}.status-pill.active{background:var(--green-soft);color:var(--green)}.status-pill.inactive{background:rgba(188,75,60,.1);color:var(--red)}.table-actions{display:flex;gap:6px}.small-action{height:30px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:9px;font-weight:750;cursor:pointer}.small-action:hover{border-color:var(--brand);color:var(--brand)}.small-action.danger:hover{border-color:var(--red);color:var(--red)}.table-loading{text-align:center;padding:25px;color:var(--muted)}
.profile-layout{display:grid;grid-template-columns:280px minmax(280px,320px) minmax(320px,1fr);gap:16px;align-items:start}.profile-card{padding:34px;text-align:center}.profile-avatar{width:78px;height:78px;margin:0 auto 16px;border-radius:24px;display:grid;place-items:center;background:linear-gradient(145deg,#d9847a,#a94f30);color:#fff;font-size:27px;font-weight:900;box-shadow:0 14px 30px rgba(169,79,48,.22)}.profile-card h3{margin:0;font-size:18px}.profile-card p{margin:5px 0 12px;color:var(--muted);font-size:11px}.profile-role{display:inline-flex;padding:6px 10px;border-radius:8px;background:var(--purple-soft);color:var(--purple);font-size:9px;font-weight:900}.wechat-binding-card,.password-card{overflow:hidden}.wechat-binding-body,.password-card form{padding:20px}.wechat-binding-body{display:flex;flex-direction:column;gap:16px}.wechat-binding-status{display:flex;align-items:flex-start;gap:14px;min-width:0}.wechat-binding-dot{width:12px;height:12px;margin-top:4px;border-radius:50%;background:var(--line-strong);box-shadow:0 0 0 6px rgba(220,213,197,.45);flex:none}.wechat-binding-card.is-bound .wechat-binding-dot{background:var(--green);box-shadow:0 0 0 6px rgba(94,140,90,.14)}.wechat-binding-status strong{display:block;font-size:16px;line-height:1.2}.wechat-binding-status p{margin:6px 0 0;color:var(--muted);font-size:11px;line-height:1.7;word-break:break-word}.wechat-binding-action{align-self:flex-start;border-color:rgba(193,95,60,.34);background:var(--brand-soft);color:var(--brand)}.wechat-binding-action:hover{border-color:var(--brand);background:rgba(193,95,60,.12)}.wechat-binding-action[hidden]{display:none!important}.password-card label,.modal-card label{display:flex;flex-direction:column;gap:8px;font-size:10px;font-weight:800;color:var(--muted)}.password-card input,.modal-card input,.modal-card select{height:44px;border:1px solid var(--line-strong);border-radius:10px;padding:0 12px;background:var(--surface);color:var(--text);outline:0}.password-card input:focus,.modal-card input:focus,.modal-card select:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(193,95,60,.09)}.password-card label+label{margin-top:15px}.password-card .button{margin-top:4px}
/* Modal/toast */
.modal{position:fixed;inset:0;z-index:100;display:none;place-items:center;padding:18px}.modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:rgba(40,33,22,.5);backdrop-filter:blur(4px)}.modal-card{position:relative;width:min(100%,590px);background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 30px 90px rgba(0,0,0,.25);overflow:hidden}.modal-head{padding:21px 22px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.modal-head h2{margin:0;font-size:18px}.modal-head p{margin:5px 0 0;color:var(--muted);font-size:10px}.modal-card form{padding:21px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.role-help{margin-top:16px;padding:14px;border-radius:11px;background:var(--brand-soft);font-size:10px;color:var(--muted)}.role-help b{display:block;color:var(--brand);margin-bottom:4px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:13px}.wechat-unbind-modal .modal-actions{margin-top:8px}.wechat-binding-action:disabled,.wechat-unbind-modal .button:disabled{opacity:.58;cursor:not-allowed;transform:none}.wechat-binding-action:disabled:hover,.wechat-unbind-modal .button:disabled:hover{transform:none;background:var(--brand-soft);border-color:rgba(193,95,60,.34);color:var(--brand)}.toast{position:fixed;left:50%;bottom:28px;z-index:200;transform:translate(-50%,20px);padding:11px 16px;border-radius:11px;background:#28261f;color:#fff;font-size:11px;font-weight:750;box-shadow:0 13px 35px rgba(0,0,0,.2);opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1180px){.login-layout{grid-template-columns:1fr 500px}.login-intro{padding-left:50px;padding-right:45px}.role-grid{grid-template-columns:1fr}.role-card{min-height:63px}.product-visual{height:270px}.visual-window{right:75px;height:205px}.floating-card{transform:scale(.86)}.dashboard-grid{grid-template-columns:1fr 1fr}.dashboard-grid>.panel:last-child{grid-column:span 2}.workspace-large-card{grid-template-columns:58px 1fr auto}.workspace-large-card>p{display:none}.metric-grid{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.mobile-only{display:grid!important}.login-page{background:#f5f8fc}.login-topbar{padding:0 20px}.login-layout{display:block;min-height:0}.login-intro{display:none}.login-side{min-height:calc(100vh - 134px);padding:28px 18px}.login-card{padding:38px 27px}.login-card h2{font-size:28px}.login-footer{padding:0 16px;gap:10px;justify-content:space-between}.app-shell{display:block}.sidebar{transform:translateX(-105%);transition:.2s;box-shadow:20px 0 50px rgba(0,0,0,.15)}.sidebar.open{transform:none}.app-main{width:100%}.app-topbar{padding:0 16px}.content-wrap{padding:20px 16px 45px}.user-text{display:none}.workspace-grid{grid-template-columns:1fr}.dashboard-grid,.two-column,.profile-layout{grid-template-columns:1fr}.panel-span-2,.dashboard-grid>.panel:last-child{grid-column:auto}.hero-card{padding:30px;min-height:245px}.hero-art{display:none}.workspace-list-large{gap:11px}.workspace-large-card{grid-template-columns:50px 1fr auto;padding:17px}.principle-panel{grid-template-columns:1fr}.principle-panel>div{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}.metric-grid,.role-summary{grid-template-columns:1fr 1fr}.page-head-row{align-items:flex-start;gap:20px}.search-box{width:180px}.profile-layout{max-width:650px}}
@media(max-width:560px){.brand-name{font-size:19px}.login-card{border-radius:18px}.login-side{align-items:start}.login-options{font-size:11px}.hero-card h1{font-size:27px}.hero-actions{flex-direction:column}.hero-actions .button{width:100%}.section-heading{align-items:center}.workspace-grid{gap:11px}.workspace-card{min-height:150px}.dashboard-grid{gap:11px}.workspace-large-card{grid-template-columns:45px 1fr}.workspace-large-card .button{grid-column:1/-1;width:100%}.principle-panel{margin-top:12px}.metric-grid,.role-summary{grid-template-columns:1fr}.two-column{gap:11px}.page-head-row{display:block}.page-head-row>.button{margin-top:16px}.panel-head{align-items:flex-start;gap:10px}.search-box{width:145px}.form-grid{grid-template-columns:1fr}.login-footer span:last-child{display:none}}

/* 库存台 Web 资源的视觉新设计（色板已并入顶部主 :root） */
.login-page{background:var(--bg)}
.login-topbar{height:62px;padding:0 30px;background:#fff;border-bottom:1px solid var(--line);backdrop-filter:none}
.login-layout{grid-template-columns:minmax(480px,1.08fr) minmax(420px,.92fr);min-height:calc(100vh - 128px)}
.login-intro{padding:64px clamp(38px,6vw,94px) 36px;background:#f4f1e9;color:#28261f}
.login-intro:after{border-color:rgba(193,95,60,.12);box-shadow:0 0 0 80px rgba(193,95,60,.035),0 0 0 160px rgba(193,95,60,.02)}
.intro-copy h1{color:#28261f;letter-spacing:-1.8px}.intro-copy h1 span{color:#c15f3c}.intro-copy p{color:#57534a;max-width:560px}
.eyebrow{color:#c15f3c}
.role-grid{gap:10px;margin-top:28px}.role-card{min-height:76px;padding:13px;background:#fff;border:1px solid #e7e1d4;box-shadow:0 8px 22px rgba(60,46,30,.06);backdrop-filter:none}.role-card b{color:#28261f;font-size:13px}.role-card small{color:#6e6759;font-size:10px}.role-icon,.role-operations .role-icon,.role-warehouse .role-icon,.role-owner .role-icon{background:#f6ece6;color:#c15f3c}
.product-visual{opacity:.78;margin-top:28px}.visual-window{background:#fff;border-color:#e7e1d4;box-shadow:0 28px 70px rgba(60,46,30,.12);backdrop-filter:none}.visual-sidebar{background:#efebe1}.visual-content{background:#fff}.visual-chart{background:#efece3;border-color:#e7e1d4}.visual-chart path{stroke:#c15f3c}.visual-kpis span{background:#efece3;border-color:#e7e1d4}.floating-card{background:#fff;border-color:#e7e1d4;box-shadow:0 18px 44px rgba(60,46,30,.1);backdrop-filter:none}.floating-card b,.floating-card span{color:#6e6759}.floating-card strong{color:#28261f!important}
.login-side{padding:40px;background:var(--bg)}.login-card{max-width:520px;padding:42px 42px 34px;border-radius:14px;box-shadow:0 18px 52px rgba(60,46,30,.12)}.welcome-label{color:var(--brand)}.login-card h2{font-size:30px}.field-shell{height:50px;border-radius:9px}.primary-button{height:50px;border-radius:9px;background:var(--brand);box-shadow:0 10px 24px rgba(193,95,60,.22)}.primary-button:hover{background:var(--brand-deep)}.login-note{background:var(--brand-soft);border-color:rgba(193,95,60,.22);color:var(--brand-deep)}.login-footer{height:66px;background:#fff;border-top:1px solid var(--line)}
.app-shell{grid-template-columns:232px 1fr;background:var(--bg)}.sidebar{width:232px;background:#2B241C;border-right:0;box-shadow:10px 0 34px rgba(60,46,30,.12)}.workspace-badge{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}.nav-item{height:42px;border-radius:9px}.nav-item.active{background:rgba(193,95,60,.23)}.nav-item.active:before{background:#F0A197}.app-topbar{height:66px;padding:0 28px;background:rgba(255,255,255,.92);border-bottom-color:var(--line);backdrop-filter:blur(12px)}.content-wrap{padding:26px 30px 52px}.hero-card{background:linear-gradient(120deg,#302523 0%,#4B302D 58%,#70463F 100%);box-shadow:0 18px 42px rgba(60,46,30,.16)}.button-primary{background:var(--brand)}.button-primary:hover{background:var(--brand-deep)}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media(max-width:900px){.login-topbar{padding:0 18px}.login-side{padding:28px 18px}.app-topbar{padding:0 16px}}
@media(max-width:560px){.login-card{padding:32px 22px 26px}.login-side{padding:20px 14px}.login-card h2{font-size:26px}.app-topbar{height:58px}.content-wrap{padding:18px 14px 42px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* ── 挖机黄品牌点缀（取自 logo，克制使用） ── */
.workspace-badge .badge-icon{position:relative}
.workspace-badge .badge-icon::after{content:"";position:absolute;left:6px;right:6px;bottom:-4px;height:3px;border-radius:2px;background:var(--brand-yellow)}
.hero-card::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--brand-yellow)}
.status-dot{background:var(--brand-yellow)!important;box-shadow:0 0 0 4px var(--yellow-soft)!important}
.wc-blue{--card-color:var(--brand);--card-soft:var(--brand-soft)}
.wc-blue .workspace-card-icon{position:relative}
.wc-blue .workspace-card-icon::after{content:"";position:absolute;left:8px;right:8px;bottom:-5px;height:3px;border-radius:2px;background:var(--brand-yellow)}
.primary-button{position:relative;overflow:hidden}
/* 登录页大标题的高亮字用挖机黄描一下品牌感 */
.intro-copy h1 span{color:var(--brand-yellow)}
.eyebrow{position:relative;padding-left:16px}
.eyebrow::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:9px;height:9px;background:var(--brand-yellow);border-radius:2px}

/* 2026-07-19: high-density warm operations foundation. */
:root{
  --dg-bg:#f4f1e9;
  --dg-surface:#fff;
  --dg-surface-muted:#efece3;
  --dg-ink:#28261f;
  --dg-muted:#57534a;
  --dg-line:#e7e1d4;
  --dg-clay:#c15f3c;
  --dg-clay-strong:#a94f30;
  --dg-clay-soft:#f6ece6;
  --dg-yellow:#bd842e;
  --dg-sidebar:#efebe1;
  --dg-success:#5e8c5a;
  --dg-warning:#c2752e;
  --dg-danger:#bc4b3c;
  --dg-radius:10px;
  --dg-shadow:0 10px 28px rgba(60,46,30,.1)
}
html,body{background:var(--dg-bg);color:var(--dg-ink)}
.content-wrap{max-width:1600px;padding:24px 28px 48px}
.panel,.workspace-card,.metric-card,.role-summary article{border-radius:var(--dg-radius)}
.button,.primary-button,.icon-button,.user-menu{border-radius:8px}
.button{min-height:40px}
.workspace-card{min-height:154px;padding:20px}

:root{--brand:#c15f3c;--brand-2:#d8795c;--brand-deep:#a94f30;--brand-soft:#f6ece6;--green:#5e8c5a;--green-soft:#e7f1e6;--purple:#bd842e;--purple-soft:#f9f0dd}
html[data-theme="dark"]{--brand:#d8795c;--brand-2:#e6a18a;--brand-deep:#f0b5a2;--brand-soft:rgba(216,121,92,.2);--purple:#d8a84e;--purple-soft:rgba(216,168,78,.16)}

/* Approved operating-console light terracotta navigation palette. */
.sidebar{background:var(--sidebar-bg);border-right-color:var(--sidebar-line);box-shadow:10px 0 34px rgba(60,46,30,.07)}
.sidebar .brand-name,.sidebar-brand .brand-name{color:var(--navy)}
.workspace-badge{background:rgba(255,255,255,.72);border-color:var(--sidebar-line)}
.workspace-badge b{color:var(--text)}.workspace-badge small{color:var(--muted)}
.workspace-badge .badge-icon{background:linear-gradient(145deg,#d8795c,#c15f3c);box-shadow:0 8px 18px rgba(193,95,60,.18)}
.nav-item.active{background:var(--brand-soft);color:var(--brand)}
.nav-item.active:before{background:var(--brand)}.nav-label{color:var(--faint)}
.mini-status,.logout-button{color:var(--muted)}.logout-button:hover{background:var(--brand-soft);color:var(--brand)}
.hero-card{background:#fff;color:#28261f;border:1px solid #e7e1d4;box-shadow:0 12px 32px rgba(60,46,30,.08)}
.hero-kicker{color:#c15f3c}.hero-card p{color:#57534a}.hero-card .button-primary{background:#c15f3c;color:#fff;box-shadow:0 10px 22px rgba(193,95,60,.2)}.hero-card .button-soft{background:#f6ece6;border-color:rgba(193,95,60,.2);color:#c15f3c}
