:root{--brand:#2b6f4e;--brand-dark:#215a3f;--bg:#f4f6f5;--card:#fff;--line:#e3e8e5;--text:#243129;--muted:#7a8a80;--warn:#c0392b;--ok:#27ae60;}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;}
a{color:var(--brand);text-decoration:none;}
.wrap{max-width:960px;margin:0 auto;padding:24px 16px;}
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px;background:linear-gradient(160deg,#eef4f0,#f7f9f5 60%);}
.brand{margin-bottom:28px;text-align:center;}
.brand h1{font-size:22px;color:var(--brand-dark);}
.brand p{color:var(--muted);font-size:13px;margin-top:6px;}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px;width:100%;max-width:420px;box-shadow:0 6px 24px rgba(30,60,45,.06);}
.card.wide{max-width:760px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;}
.field label b{color:var(--warn);}
.field input[type=text],.field input[type=password],.field input[type=tel],.field select,.field textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:14px;outline:none;background:#fff;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);}
.field textarea{min-height:70px;resize:vertical;}
.btn{display:inline-block;background:var(--brand);color:#fff;border:none;border-radius:8px;padding:11px 20px;font-size:15px;cursor:pointer;text-align:center;}
.btn:hover{background:var(--brand-dark);}
.btn.block{display:block;width:100%;}
.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--brand);}
.btn.small{padding:6px 14px;font-size:13px;}
.btn:disabled{opacity:.5;cursor:not-allowed;}
.row{display:flex;gap:12px;flex-wrap:wrap;}
.row .field{flex:1;min-width:200px;}
.links{margin-top:18px;font-size:13px;color:var(--muted);text-align:center;}
.links a{margin:0 6px;}
.entry{display:flex;gap:12px;margin-top:22px;}
.entry a{flex:1;border:1px solid var(--line);border-radius:10px;padding:14px 10px;text-align:center;background:#fbfcfb;font-size:14px;}
.entry a:hover{border-color:var(--brand);background:#f2f8f4;}
.entry a b{display:block;color:var(--brand-dark);margin-bottom:2px;}
.entry a span{font-size:12px;color:var(--muted);}
.agree{font-size:12px;color:var(--muted);display:flex;gap:6px;align-items:flex-start;margin:4px 0 14px;}
.agree input{margin-top:3px;}
.steps{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
.steps span{background:#eef2ef;color:var(--muted);border-radius:20px;padding:4px 14px;font-size:12px;}
.steps span.on{background:var(--brand);color:#fff;}
.status-card{border-left:4px solid var(--brand);background:#fff;border-radius:8px;padding:18px 20px;margin-bottom:16px;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.status-card.warn{border-left-color:#e67e22;}
.status-card.err{border-left-color:var(--warn);}
.status-card.ok{border-left-color:var(--ok);}
.status-card h3{font-size:16px;margin-bottom:8px;}
.status-card p{color:var(--muted);font-size:13px;}
.kv{display:grid;grid-template-columns:110px 1fr;gap:6px 12px;font-size:13px;margin-top:10px;}
.kv dt{color:var(--muted);}
.headbar{background:#fff;border-bottom:1px solid var(--line);padding:12px 0;}
.headbar .wrap{display:flex;justify-content:space-between;align-items:center;padding-top:0;padding-bottom:0;gap:16px;max-width:1080px;}
.head-title{font-weight:700;color:var(--brand-dark);font-size:16px;}
.side{display:none;}
.has-side{padding-left:232px;}
.has-side .side{display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;width:232px;background:#1d3d30;color:#d7e4dc;padding:18px 12px;z-index:40;overflow:auto;}
.has-side .side-logo{color:#fff;font-size:16px;font-weight:700;padding:6px 10px 18px;display:block;}
.has-side .side-sec{font-size:11px;color:#8aa396;padding:14px 10px 6px;letter-spacing:.08em;}
.has-side .side a{display:block;padding:8px 10px;border-radius:8px;color:#d7e4dc;font-size:14px;margin-bottom:2px;}
.has-side .side a:hover,.has-side .side a.on{background:#2b6f4e;color:#fff;}
.has-side .side-out{margin-top:auto;color:#f3c6c0 !important;}
.has-side .headbar{margin:0;position:sticky;top:0;z-index:30;}
.has-side .headbar .wrap,.has-side .wrap{max-width:none;}
.has-side .shelf-wrap{max-width:none;}
.has-side .home-wide{max-width:none;}
.avatar-wrap{position:relative;margin-left:auto;}
.avatar-btn{width:36px;height:36px;border:none;border-radius:50%;background:var(--brand);color:#fff;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;}
.avatar-face{font-size:15px;font-weight:600;line-height:1;}
.avatar-wrap.open .avatar-btn{box-shadow:0 0 0 3px rgba(43,111,78,.2);}
.avatar-drop{display:none;position:absolute;right:0;top:44px;width:220px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(30,60,45,.12);padding:8px 0;z-index:50;}
.avatar-wrap.open .avatar-drop{display:block;}
.avatar-meta{padding:10px 14px 8px;border-bottom:1px solid var(--line);margin-bottom:6px;}
.avatar-meta b{display:block;font-size:14px;color:var(--text);}
.avatar-meta span{font-size:12px;color:var(--muted);}
.avatar-drop a{display:block;padding:9px 14px;color:var(--text);font-size:14px;}
.avatar-drop a:hover{background:#f4f6f5;color:var(--brand-dark);}
.avatar-drop a.danger{color:var(--warn);margin-top:4px;border-top:1px solid var(--line);}
.home-wide{max-width:1080px;}
.zone{margin-bottom:28px;}
.zone-h{margin-bottom:12px;}
.zone-h h2{font-size:18px;color:var(--brand-dark);}
.zone-h p{color:var(--muted);font-size:13px;margin-top:4px;}
.zone-card{flex:1;min-width:280px;max-width:none;}
.zone-card h3{margin-bottom:8px;color:var(--brand-dark);}
.zone-card > p{color:var(--muted);font-size:13px;margin-bottom:14px;}
.note-list{margin:0;padding-left:18px;color:var(--muted);font-size:13px;}
.note-list li{margin-bottom:6px;}
.notice{background:#fdf6ec;border:1px solid #f5e3c8;color:#9a6b1d;border-radius:8px;padding:10px 14px;font-size:13px;margin-bottom:16px;}
.upload-box{border:1px dashed var(--line);border-radius:8px;padding:14px;background:#fbfcfb;}
.upload-box .thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.upload-box .thumbs div{position:relative;}
.upload-box img{width:72px;height:72px;object-fit:cover;border-radius:6px;border:1px solid var(--line);}
.upload-box .del{position:absolute;top:-6px;right:-6px;background:var(--warn);color:#fff;border-radius:50%;width:18px;height:18px;line-height:18px;text-align:center;font-size:12px;cursor:pointer;}
.pt-table{width:100%;border-collapse:collapse;font-size:13px;}
.pt-table th,.pt-table td{padding:10px 8px;border-top:1px solid var(--line);vertical-align:top;text-align:left;}
.pt-table th{color:var(--muted);font-weight:600;}
.page{margin-top:14px;color:var(--muted);font-size:13px;}
.hero-panel{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin:24px 0 16px;}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;}
.mall-toolbar{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;}
.goods-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.goods-card{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden;display:block;color:inherit;}
.goods-cover{height:160px;background:#f5f7f6;}
.goods-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.goods-body{padding:16px;display:flex;flex-direction:column;gap:10px;}
.goods-name{font-size:16px;font-weight:600;color:var(--text);min-height:44px;}
.goods-supplier{font-size:13px;color:var(--muted);}
.goods-price{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;}
.goods-price .current{font-size:20px;color:var(--brand-dark);font-weight:700;}
.goods-price .origin{font-size:12px;color:#9aa8a0;text-decoration:line-through;}
.goods-form{margin-top:auto;}
.shelf-wrap{max-width:1080px;}
.shelf-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin:24px 0 16px;}
.shelf-head h2{font-size:22px;color:var(--brand-dark);}
.shelf-head p{color:var(--muted);font-size:13px;margin-top:4px;max-width:640px;}
.stat-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px;}
.stat-box{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px;}
.stat-box span{display:block;font-size:12px;color:var(--muted);}
.stat-box b{display:block;margin-top:4px;font-size:22px;line-height:1.2;color:var(--brand-dark);}
.shelf-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.shelf-tabs a{background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 14px;color:var(--muted);font-size:13px;}
.shelf-tabs a.on,.shelf-tabs a:hover{border-color:var(--brand);background:#eef4f0;color:var(--brand-dark);}
.shelf-empty{max-width:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}
.shelf-empty p{margin:0;color:var(--muted);}
.shelf-list{display:flex;flex-direction:column;gap:12px;}
.shelf-item{display:grid;grid-template-columns:28px 92px 1fr auto;gap:16px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;align-items:center;box-shadow:0 6px 18px rgba(30,60,45,.04);}
.batch-bar,.shelf-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px;}
.batch-count,.shelf-toolbar .picked{color:var(--muted);font-size:13px;margin-left:auto;}
.shelf-pick,.shelf-check{display:flex;align-items:center;justify-content:center;}
.shelf-pick input,.shelf-check input{width:16px;height:16px;}
.shelf-item.is-on{border-left:4px solid var(--ok);}
.shelf-item.is-draft{border-left:4px solid #e67e22;}
.shelf-item.is-off{border-left:4px solid #b7c2bc;}
.shelf-thumb{width:92px;height:92px;border-radius:10px;overflow:hidden;background:#eef2ef;border:1px solid var(--line);}
.shelf-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.shelf-thumb span{display:flex;height:100%;align-items:center;justify-content:center;color:var(--muted);font-size:12px;}
.shelf-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.shelf-title-row h3{font-size:16px;color:var(--text);}
.chip{font-size:11px;font-style:normal;background:#eef4f0;color:var(--brand-dark);border-radius:999px;padding:2px 8px;}
.chip-status{background:#f4f6f5;color:var(--muted);}
.shelf-item.is-on .chip-status{background:#eaf8ef;color:#1e7a45;}
.shelf-note{font-size:12px;color:var(--muted);margin:4px 0 10px;}
.shelf-metrics{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:8px;}
.shelf-metrics div{background:#f7f9f8;border-radius:8px;padding:8px 10px;}
.shelf-metrics span{display:block;font-size:11px;color:var(--muted);}
.shelf-metrics b{font-size:16px;color:var(--text);}
.shelf-metrics .warn b{color:var(--warn);}
.shelf-ops{display:flex;flex-direction:column;gap:8px;min-width:108px;}
.shelf-ops form{margin:0;}
.shelf-ops .btn{width:100%;}
@media (max-width:860px){
  .stat-strip{grid-template-columns:repeat(2,1fr);}
  .shelf-item{grid-template-columns:24px 72px 1fr; }
  .shelf-thumb{width:72px;height:72px;}
  .shelf-ops{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;}
  .shelf-ops .btn{width:auto;}
  .shelf-metrics{grid-template-columns:repeat(2,1fr);}
  .has-side{padding-left:0;}
  .has-side .side{position:relative;width:auto;height:auto;flex-direction:row;flex-wrap:wrap;padding:10px;}
  .has-side .side-sec{display:none;}
  .has-side .side-logo{padding:6px 10px;}
}
