/* ================= 进销存 · 管理端样式 ================= */
:root{
  --qs-blue:#5c7ec0;
  --qs-navy:#0f5697;
  --qs-deep:#0A3C68;
  --qs-hover:#AACEED;
  --qs-info:#00a0e9;
  --qs-border:#cccccc;
  --qs-gray:#e7e7e7;
  --qs-bg:#eeeeee;
  --qs-text:#333;
  --qs-muted:#666;
  --qs-danger:#f86f54;
  --qs-success:#5cb85c;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Microsoft YaHei","Open Sans",Helvetica,Arial,sans-serif;
  background:var(--qs-bg);
  color:var(--qs-text);
  font-size:14px;
  min-width:1250px;
}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:14px}
a{color:var(--qs-info);text-decoration:none}
#app{display:none}
#app.show{display:block}

/* ---------- 登录 ---------- */
#loginView{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f5697 0%,#5c7ec0 55%,#8fb0e0 100%);}
.qs-login-mask{width:880px;max-width:94vw}
.qs-login-card{display:flex;background:#fff;box-shadow:0 18px 50px rgba(5,30,70,.28);}
.qs-logo-block{flex:1;background:linear-gradient(160deg,#0f5697,#5c7ec0);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 32px;gap:8px}
.qs-logo-block .qs-logo-text{font-size:34px;font-weight:700;letter-spacing:3px}
.qs-logo-block .qs-logo-sub{font-size:15px;opacity:.85;letter-spacing:2px}
.qs-login-form{flex:1.2;padding:48px 44px}
.qs-login-title{font-size:22px;color:#0f5697;font-weight:700;margin-bottom:22px}
.qs-login-foot{text-align:center;color:#dbe6f7;font-size:12px;margin-top:18px;letter-spacing:1px}

/* ---------- 顶部导航 ---------- */
.qs-navbar{position:fixed;top:0;left:0;right:0;height:60px;background:var(--qs-blue);z-index:1000;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.qs-nav-inner{display:flex;align-items:stretch;height:100%;background:var(--qs-blue)}
.qs-brand{display:flex;align-items:center;gap:10px;background:var(--qs-navy);padding:0 18px;min-width:236px;color:#fff}
.qs-brand-mark{width:38px;height:38px;background:#fff;color:var(--qs-navy);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700}
.qs-brand-text{color:#fff;line-height:1.15}
.qs-brand-text>div:first-child{font-size:18px;font-weight:700;letter-spacing:1px}
.qs-brand-sub{font-size:11px;opacity:.8;letter-spacing:1px}
.qs-nav-menu{list-style:none;margin:0;padding:0;display:flex;align-items:stretch;flex:1}
.qs-nav-menu>li{position:relative;min-width:92px;padding:0 20px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;font-weight:700;letter-spacing:3px;cursor:pointer;background:var(--qs-navy);border-right:1px solid rgba(255,255,255,.05)}
.qs-nav-menu>li:hover,.qs-nav-menu>li.open{background:var(--qs-blue)}
.qs-nav-menu>li.active{background:var(--qs-deep)}
.qs-nav-menu>li.active::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:3px;background:#fff}
.qs-dropdown{position:absolute;top:60px;left:0;display:none;min-width:260px;background:var(--qs-blue);color:#fff;padding:16px 0 20px;z-index:1010;box-shadow:0 8px 18px rgba(0,0,0,.18)}
.qs-nav-menu>li:hover>.qs-dropdown{display:flex}
.qs-drop-col{padding:0 22px;border-right:1px solid rgba(255,255,255,.18);min-width:200px}
.qs-drop-col:last-child{border-right:none}
.qs-drop-col .qs-drop-title{color:#dfeeff;font-size:15px;font-weight:700;margin-bottom:12px;white-space:nowrap}
.qs-drop-col a{display:block;color:#fff;font-size:14px;font-weight:400;padding:6px 0;white-space:nowrap;cursor:pointer}
.qs-drop-col a:hover{color:#fff;background:var(--qs-hover);margin:0 -10px;padding-left:10px;padding-right:10px}
.qs-nav-right{display:flex;align-items:center;gap:18px;padding:0 18px;background:var(--qs-navy);color:#fff;white-space:nowrap}
.qs-nav-user{display:flex;align-items:center;gap:8px;font-size:14px}
.qs-avatar{width:30px;height:30px;border-radius:50%;background:#fff;color:var(--qs-navy);display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.qs-logout{cursor:pointer;font-size:14px;color:#cfe0ff;border-left:1px solid rgba(255,255,255,.25);padding-left:16px}
.qs-logout:hover{color:#fff}

/* ---------- 面包屑 ---------- */
.qs-pagebar{position:fixed;top:60px;left:0;right:0;height:40px;background:#f9f9f7;border-bottom:1px solid #e1e1e1;z-index:900;display:flex;align-items:center}
.qs-pagebar-inner{width:97%;margin:0 auto;display:flex;align-items:center}
.qs-breadcrumb{margin:0;padding:0;list-style:none;display:flex;align-items:center;font-size:14px;color:var(--qs-muted)}
.qs-breadcrumb li{display:flex;align-items:center}
.qs-breadcrumb li+li::before{content:"/";margin:0 8px;color:#bbb}
.qs-breadcrumb li.active{color:var(--qs-navy);font-weight:700}
.qs-content{max-width:1440px;margin:0 auto;padding:118px 20px 40px}

/* ---------- 通用按钮 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid transparent;border-radius:0;padding:0 18px;height:32px;font-size:14px;line-height:1.42857;vertical-align:middle;white-space:nowrap;color:#fff}
.btn-sm{padding:0 14px;height:25px;font-size:12px}
.btn-normal,.btn-primary{background:var(--qs-info);border-color:var(--qs-info);color:#fff}
.btn-primary:hover,.btn-normal:hover{background:#2db0ec;border-color:#2db0ec;color:#fff}
.btn-ghost{background:var(--qs-gray);border-color:#dadada;color:#333}
.btn-ghost:hover{background:#f4f4f4;border-color:#c8c8c8;color:#333}
.btn-danger{background:var(--qs-danger);border-color:#f86f54;color:#fff}
.btn-danger:hover{background:#ff8068;color:#fff}
.btn-success{background:var(--qs-success);border-color:#4cae4c;color:#fff}
.btn-block{width:100%;height:40px;font-size:15px}
.btn[disabled]{opacity:.6;cursor:not-allowed}

/* ---------- 页面标题 / 卡片 ---------- */
.page-title{font-size:18px;color:#333;font-weight:700;padding:14px 18px;background:#fff;border:1px solid #dcdcdc;border-bottom:none;margin:0}
.card{background:#fff;border:1px solid #dcdcdc;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.card-head{padding:12px 16px;border-bottom:1px dashed #ddd;color:#333;font-weight:700;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.card-body{padding:16px}
.mt-16{margin-top:16px}

/* ---------- 搜索 / 工具栏 ---------- */
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0;padding:12px 16px;background:#fff;border:1px solid #dcdcdc;border-bottom:none}
.toolbar input,.toolbar select{height:32px;padding:4px 8px;border:1px solid var(--qs-border);border-radius:0;font-size:14px;color:#222}
.toolbar input[type=text],.toolbar input:not([type]),.toolbar input[type=number]{min-width:180px}
.toolbar .spacer{flex:1}
.searchForm{margin:0 0 10px;padding:12px 16px;background:#fff;border:1px solid #dcdcdc;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.searchForm label{font-size:14px;color:#666;white-space:nowrap}
.searchForm input,.searchForm select{height:32px;padding:4px 8px;border:1px solid var(--qs-border);border-radius:0;font-size:14px}

/* ---------- 表格 ---------- */
.table-wrap{overflow-x:auto}
table.data{width:100%;border-collapse:collapse;font-size:14px;color:var(--qs-muted)}
table.data th,table.data td{padding:7px 8px;vertical-align:middle;text-align:left;border-bottom:1px solid #e6e6e6}
table.data th{background:#f5f7fa;color:#333;font-weight:700;text-align:center;border-right:1px solid #e6e6e6;white-space:nowrap}
table.data td{border-right:1px solid #f0f0f0}
table.data tr:hover td{background:#f5f9ff}
table.data .num{text-align:right}
table.data tr>td:first-child{text-align:center}
table.data tr>td:last-child{border-right:none}
.empty{color:#999;text-align:center;padding:28px 0}

/* ---------- 指标 ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}
.kpi{background:#fff;border:1px solid #dcdcdc;padding:16px 18px;border-top:3px solid var(--qs-info)}
.kpi .label{color:#666;font-size:13px}
.kpi .value{font-size:26px;font-weight:700;margin-top:6px;color:#333}
.kpi .sub{font-size:12px;color:#999;margin-top:4px}
.kpi.green{border-top-color:var(--qs-success)}
.kpi.orange{border-top-color:#f0ad4e}
.kpi.red{border-top-color:var(--qs-danger)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media(max-width:1100px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-3{grid-template-columns:1fr}}

/* ---------- 徽章 ---------- */
.badge{display:inline-block;padding:2px 8px;font-size:12px;line-height:1.5;background:#e7e7e7;color:#555;white-space:nowrap}
.badge-gray{background:#e7e7e7;color:#555}
.badge-blue{background:#e8f3fb;color:#0f5697}
.badge-green{background:#e7f6ec;color:#3c8d4e}
.badge-orange{background:#fdf2e3;color:#b26a00}
.badge-red{background:#fdeaea;color:#c0392b}

/* ---------- 表单 ---------- */
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:#666;margin-bottom:6px}
.field input{width:100%;height:34px;padding:5px 10px;border:1px solid var(--qs-border);border-radius:0;font-size:14px;color:#222}
.field input:focus{border-color:var(--qs-info);outline:none}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.form-item{display:flex;flex-direction:column;gap:5px}
.form-item label{font-size:13px;color:#666}
.form-item input,.form-item select,.form-item textarea{height:34px;padding:5px 10px;border:1px solid var(--qs-border);border-radius:0;font-size:14px;color:#222}
.form-item textarea{height:60px;padding:8px 10px;resize:vertical}
.form-item.full{grid-column:1/-1}

/* ---------- 弹窗 ---------- */
.modal-mask{position:fixed;inset:0;background:rgba(20,34,56,.45);z-index:2000;display:flex;align-items:center;justify-content:center}
.modal{background:#fff;width:min(760px,94vw);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 22px 55px rgba(0,0,0,.3)}
.modal-head{padding:14px 18px;border-bottom:1px solid #dcdcdc;font-size:16px;font-weight:700;color:#333;display:flex;justify-content:space-between;align-items:center}
.modal-body{padding:18px;overflow-y:auto}
.modal-foot{padding:12px 18px;border-top:1px solid #dcdcdc;display:flex;justify-content:flex-end;gap:8px}

/* ---------- 单据行 ---------- */
.order-line{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 30px;gap:8px;margin-bottom:8px;align-items:center}
.order-line input,.order-line select{height:32px;padding:4px 8px;border:1px solid var(--qs-border);border-radius:0;width:100%}
.order-total{text-align:right;font-size:15px;font-weight:700;padding:10px 0;color:#333}

/* ---------- 收银 ---------- */
.checkout-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}
.product-picker{height:520px;overflow:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-content:start;background:#fff;padding:16px;border:1px solid #dcdcdc}
.product-tile{border:1px solid #dcdcdc;padding:10px;cursor:pointer;background:#fcfcfc}
.product-tile:hover{border-color:var(--qs-info);background:#f0f8fd}
.product-tile .name{font-size:14px;color:#333;margin-bottom:4px;line-height:1.3}
.product-tile .meta{color:#999;font-size:12px}
.product-tile .price{color:#e6452f;font-weight:700;margin-top:5px}
.cart-table{width:100%;border-collapse:collapse;font-size:14px}
.cart-table th,.cart-table td{padding:8px;border-bottom:1px solid #e6e6e6;text-align:left;color:#666}
.cart-table .qty{width:70px}
.cart-table input{width:60px;height:28px;border:1px solid var(--qs-border);border-radius:0;padding:0 6px}

/* ---------- 图表 ---------- */
.chart-box{height:260px;position:relative}
canvas{width:100%;height:100%;display:block}

/* ---------- toast ---------- */
#toast{position:fixed;top:110px;right:20px;z-index:3000;display:flex;flex-direction:column;gap:8px}
.toast{background:#333;color:#fff;padding:10px 14px;font-size:13px;box-shadow:0 3px 10px rgba(0,0,0,.25);animation:fadeIn .2s ease}
.toast.success{background:var(--qs-success)}
.toast.error{background:var(--qs-danger)}
@keyframes fadeIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- 工具类 ---------- */
.muted{color:var(--qs-muted)}
.small{font-size:12px}
.text-bold{font-weight:700}
.mb-10{margin-bottom:10px}
.mt-10{margin-top:10px}

/* ---------- 首页快捷入口 ---------- */
.qs-quick{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.qs-quick-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex:1;min-width:120px;height:76px;background:#fff;border:1px solid #dcdcdc;border-top:3px solid #0f5697;color:#333;cursor:pointer}
.qs-quick-item:hover{background:#f0f8fd;border-color:#5c7ec0}
.qs-quick-item b{font-size:15px}
.qs-quick-item span{font-size:12px;color:#888}
.qs-head-icon{color:#0f5697;font-weight:700;margin-right:6px}

/* ---------- 单据页扩展 ---------- */
.toolbar .sep{width:1px;height:20px;background:#dcdcdc;align-self:center}
.qs-detail-head{font-size:15px;color:#333;margin-bottom:12px}
.qs-detail-head b{color:#0f5697}

/* ================= 界面升级：更轻盈、更有层次 ================= */
:root{
  --qs-blue:#1f6fd6;
  --qs-navy:#123f78;
  --qs-deep:#0d2f5a;
  --qs-hover:rgba(255,255,255,.14);
  --qs-info:#2f7cf6;
  --qs-border:#e5ebf3;
  --qs-gray:#f2f5f9;
  --qs-bg:#f2f5fa;
  --qs-text:#2b3444;
  --qs-muted:#6b7280;
  --qs-danger:#ef5350;
  --qs-success:#22a06b;
}
body{
  background:radial-gradient(circle at 18% -8%, #eaf2ff 0%, #f3f6fb 42%, #eef1f7 100%);
  background-attachment:fixed;
}
#loginView{background:radial-gradient(circle at 30% 20%, #2f7cf6 0%, #123f78 48%, #0d2f5a 100%)}
.qs-login-card{border-radius:22px;overflow:hidden;box-shadow:0 28px 70px rgba(10,32,66,.35)}
.qs-login-form{padding:52px 48px}
.qs-login-title{font-size:24px}
.field input{height:40px;border-radius:9px;border-color:#e2e8f2;transition:border .15s,box-shadow .15s}
.field input:focus{border-color:#2f7cf6;box-shadow:0 0 0 3px rgba(47,124,246,.12)}

/* 顶部导航 */
.qs-navbar{background:linear-gradient(90deg,#0d2f5a 0%,#123f78 44%,#1f6fd6 100%);box-shadow:0 5px 20px rgba(13,47,90,.20);height:62px}
.qs-nav-inner{background:transparent}
.qs-brand{background:rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.12);padding:0 20px;min-width:220px}
.qs-brand-mark{background:rgba(255,255,255,.95);box-shadow:0 4px 10px rgba(0,0,0,.12)}
.qs-nav-menu>li{background:transparent;border-right:1px solid rgba(255,255,255,.08);font-size:15px;letter-spacing:2px;transition:background .18s ease}
.qs-nav-menu>li:hover{background:rgba(255,255,255,.10)}
.qs-nav-menu>li.active{background:rgba(255,255,255,.16);box-shadow:inset 0 -3px 0 #fff}
.qs-nav-menu>li.active::after{display:none}
.qs-dropdown{top:62px;background:rgba(18,63,120,.97);backdrop-filter:blur(12px);border-radius:0 0 16px 16px;box-shadow:0 20px 45px rgba(13,47,90,.28);padding:18px 0 22px}
.qs-drop-col .qs-drop-title{letter-spacing:.5px}
.qs-drop-col a{border-radius:8px;padding:7px 10px;margin:1px 0;transition:background .15s,padding-left .15s}
.qs-drop-col a:hover{background:rgba(255,255,255,.16);margin:1px 0;padding-left:12px}
.qs-nav-right{background:rgba(255,255,255,.05);gap:20px}
.qs-logout{color:#dbeafe;padding-left:18px}
.qs-avatar{box-shadow:0 2px 8px rgba(0,0,0,.15)}

/* 面包屑与内容 */
.qs-pagebar{top:62px;height:44px;background:rgba(255,255,255,.78);backdrop-filter:blur(10px);border-bottom:1px solid rgba(190,202,222,.55)}
.qs-content{padding:124px 22px 44px}
.qs-breadcrumb li.active{color:#1f6fd6}

/* 页面面板 */
.page-title{font-size:20px;padding:16px 20px;background:linear-gradient(180deg,#ffffff,#fbfcfe);border:1px solid #e8edf6;border-bottom:none;border-radius:14px 14px 0 0}
.toolbar{padding:14px 18px;background:#fff;border:1px solid #e8edf6;border-top:none;border-bottom:none;gap:10px}
.toolbar + .card{border-radius:0 0 14px 14px;border-top:1px solid #e8edf6}
.card{border:1px solid #e8edf6;border-radius:14px;box-shadow:0 6px 20px rgba(30,60,120,.06);transition:box-shadow .2s ease}
.card:hover{box-shadow:0 12px 30px rgba(30,60,120,.10)}
.card-head{padding:14px 18px;border-bottom:1px solid #eef1f6}
.card-body{padding:18px}
.mt-16{margin-top:16px}

/* 按钮 */
.btn{border-radius:9px;height:34px;padding:0 16px;font-weight:600;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;box-shadow:0 1px 2px rgba(20,40,70,.06)}
.btn:hover{transform:translateY(-1px)}
.btn-sm{height:26px;padding:0 12px;border-radius:7px;font-size:12px}
.btn-primary,.btn-normal{background:linear-gradient(180deg,#3d8bff,#2f7cf6);border:none;box-shadow:0 6px 15px rgba(47,124,246,.24)}
.btn-primary:hover,.btn-normal:hover{background:linear-gradient(180deg,#4c95ff,#2f7cf6);box-shadow:0 8px 20px rgba(47,124,246,.30)}
.btn-ghost{background:#fff;border:1px solid #dfe6f0;color:#3d4a5f}
.btn-ghost:hover{background:#f5f8fd;border-color:#c8d5ea;color:#1f3a63}
.btn-danger{background:linear-gradient(180deg,#ff7767,#ef5350);border:none;box-shadow:0 6px 15px rgba(239,83,80,.22)}
.btn-danger:hover{background:linear-gradient(180deg,#ff8577,#ef5350)}
.btn-success{background:linear-gradient(180deg,#2db98a,#22a06b);border:none;box-shadow:0 6px 15px rgba(34,160,107,.22)}
.btn-block{height:42px;border-radius:10px;font-size:15px}

/* 表单控件 */
.toolbar input,.toolbar select,.searchForm input,.searchForm select,.field input,.form-item input,.form-item select,.form-item textarea,.order-line input,.order-line select,.cart-table input{border-radius:8px;border-color:#dfe6f0;transition:border .15s ease,box-shadow .15s ease}
.toolbar input:focus,.toolbar select:focus,.searchForm input:focus,.searchForm select:focus,.field input:focus,.form-item input:focus,.form-item select:focus,.form-item textarea:focus,.order-line input:focus,.order-line select:focus{border-color:#3d8bff;box-shadow:0 0 0 3px rgba(61,139,255,.12);outline:none}
.form-item input,.form-item select,.form-item textarea{height:36px}
.form-item textarea{height:64px}
.field input{height:38px}

/* 表格 */
table.data{font-size:13.5px;color:#4b5563}
table.data th{background:linear-gradient(180deg,#f7f9fc,#f1f5fb);color:#4a5568;font-size:13px;padding:11px 9px;border-right:none;border-bottom:1px solid #e6ecf5;letter-spacing:.2px}
table.data td{padding:11px 9px;border-right:none;border-bottom:1px solid #eef1f6}
table.data tr:hover td{background:#f3f8ff}
table.data tr>td:first-child{text-align:center}
.empty{padding:36px 0;color:#a0a8b5}

/* 指标卡 */
.kpis{gap:16px}
.kpi{border:1px solid #e8edf6;border-radius:14px;padding:18px 18px 16px;border-top:none;box-shadow:0 6px 18px rgba(30,60,120,.05);position:relative;overflow:hidden}
.kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#4d97ff,#2f7cf6)}
.kpi.green::before{background:linear-gradient(180deg,#3fc596,#22a06b)}
.kpi.orange::before{background:linear-gradient(180deg,#ffc257,#f0a52b)}
.kpi.red::before{background:linear-gradient(180deg,#ff8a7d,#ef5350)}
.kpi .label{color:#7a8699}
.kpi .value{font-size:28px;margin-top:8px;letter-spacing:-.4px}

/* 首页快捷入口 */
.qs-quick{gap:14px}
.qs-quick-item{border-radius:13px;border:1px solid #e8edf6;border-top:none;box-shadow:0 5px 15px rgba(30,60,120,.05);height:82px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.qs-quick-item:hover{transform:translateY(-3px);border-color:#bcd2f5;box-shadow:0 12px 24px rgba(47,124,246,.12)}

/* 弹窗 */
.modal{border-radius:16px;overflow:hidden;box-shadow:0 26px 70px rgba(10,32,66,.32)}
.modal-head{padding:16px 20px;background:linear-gradient(90deg,#f8fbff,#eef4ff);border-bottom:1px solid #e8edf6;font-size:17px}
.modal-body{padding:20px}
.modal-foot{padding:14px 20px;border-top:1px solid #eef1f6;background:#fbfcfe}
.order-total{padding:12px 0;font-size:16px;color:#1f3a63}

/* 收银 */
.product-picker{border:1px solid #e8edf6;border-radius:14px;background:#f8fafd;padding:14px;gap:12px}
.product-tile{border:1px solid #e8edf6;border-radius:12px;padding:12px;background:#fff;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.product-tile:hover{transform:translateY(-2px);border-color:#bcd2f5;box-shadow:0 10px 20px rgba(47,124,246,.12)}
.checkout-layout .card{border-radius:14px}

/* 提示 */
.toast{border-radius:10px;padding:11px 16px;box-shadow:0 10px 25px rgba(0,0,0,.18)}

/* 新增页面小组件 */
.notify-row{padding:12px 0}
.perm-grid label,.notify-row{accent-color:#2f7cf6}
.mini-card{border-radius:18px;box-shadow:0 16px 35px rgba(13,47,90,.22)}
.guide-list li::marker{color:#2f7cf6;font-weight:700}


/* ================= 活力升级：更轻盈、更有呼吸感 ================= */
@keyframes jxRise { from { opacity:0; transform:translateY(12px) } to { opacity:1; transform:none } }
.qs-content > * { animation:jxRise .38s ease both }
.qs-content > *:nth-child(2) { animation-delay:.05s }
.qs-content > *:nth-child(3) { animation-delay:.1s }
.qs-content > *:nth-child(4) { animation-delay:.15s }

/* 登录页漂浮装饰 */
#loginView{position:relative;overflow:hidden}
#loginView::before,#loginView::after{content:"";position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}
#loginView::before{width:360px;height:360px;left:-90px;top:-110px;background:radial-gradient(circle,rgba(255,255,255,.16),rgba(255,255,255,0) 68%)}
#loginView::after{width:460px;height:460px;right:-130px;bottom:-180px;background:radial-gradient(circle,rgba(255,255,255,.12),rgba(255,255,255,0) 68%)}
.qs-logo-block{background:linear-gradient(160deg,#0d2f5a,#123f78 52%,#1f6fd6);position:relative}
.qs-logo-block::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 78% 18%,rgba(255,255,255,.18),rgba(255,255,255,0) 46%)}
.qs-logo-block>*{position:relative;z-index:1}

/* 顶部导航：图标与渐变高亮 */
.qs-nav-top{display:inline-flex;align-items:center;gap:8px;height:100%;padding:0 8px;border-radius:10px;font-weight:600}
.qs-nav-top::before{font-size:16px;line-height:1;filter:saturate(.95)}
.qs-nav-top[data-top="首页"]::before{content:"🏠"}
.qs-nav-top[data-top="采购"]::before{content:"📥"}
.qs-nav-top[data-top="销售"]::before{content:"📤"}
.qs-nav-top[data-top="仓库"]::before{content:"🏬"}
.qs-nav-top[data-top="报表"]::before{content:"📈"}
.qs-nav-top[data-top="客户"]::before{content:"👥"}
.qs-nav-top[data-top="营销"]::before{content:"🎯"}
.qs-nav-top[data-top="财务"]::before{content:"💰"}
.qs-nav-top[data-top="设置"]::before{content:"⚙️"}
.qs-nav-top[data-top="网店"]::before{content:"🛍️"}
.qs-nav-menu>li.active{background:linear-gradient(180deg,rgba(255,255,255,.24),rgba(255,255,255,.08));box-shadow:inset 0 -3px 0 #8fd0ff}
.qs-nav-menu>li:hover{background:linear-gradient(180deg,rgba(255,255,255,.14),rgba(255,255,255,.04))}
.qs-dropdown{background:linear-gradient(180deg,rgba(13,47,90,.985),rgba(18,63,120,.985));border:1px solid rgba(255,255,255,.09);border-top:none;border-radius:0 0 18px 18px;padding:22px 26px 28px;gap:30px}
.qs-drop-col{border-right:1px solid rgba(255,255,255,.10);padding-right:26px;margin-right:2px;min-width:176px}
.qs-drop-col:last-child{border-right:none;padding-right:0}
.qs-drop-title{color:#9fc6ff;font-size:13px;letter-spacing:1px;margin-bottom:10px}
.qs-drop-col a{display:block;color:#eaf2ff;font-size:13.5px;padding:7px 12px;margin:2px -12px;border-radius:8px;transition:background .16s ease,transform .16s ease}
.qs-drop-col a:hover{background:rgba(255,255,255,.14);color:#fff;transform:translateX(3px)}

/* 首页快捷入口：彩色图标 + 顶部渐变条 */
.qs-quick{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px}
.qs-quick-item{height:98px;border:1px solid #e8edf6;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#fff;box-shadow:0 8px 20px rgba(30,60,120,.06);position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.qs-quick-item::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--q1,#4d97ff),var(--q2,#2f7cf6))}
.qs-quick-item:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(47,124,246,.16)}
.qs-quick-item .qic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;background:linear-gradient(135deg,var(--qbg1,#eaf3ff),var(--qbg2,#dce9ff))}
.qs-quick-item b{font-size:14px;color:#2b3444}
.qs-quick-item .qsub{font-size:11.5px;color:#98a2b3}
.qs-quick-item[data-q="purchases"]{--q1:#4d97ff;--q2:#2f7cf6;--qbg1:#eaf3ff;--qbg2:#dce9ff}
.qs-quick-item[data-q="sales"]{--q1:#3fc596;--q2:#22a06b;--qbg1:#e7f9f1;--qbg2:#d2f2e4}
.qs-quick-item[data-q="checkout"]{--q1:#ffb74d;--q2:#f0a52b;--qbg1:#fff5e2;--qbg2:#ffe7c2}
.qs-quick-item[data-q="stock"]{--q1:#7b8ff0;--q2:#5b6ef0;--qbg1:#eef0ff;--qbg2:#e0e5ff}
.qs-quick-item[data-q="goods"]{--q1:#45c1c6;--q2:#2aa7ad;--qbg1:#e6f8f9;--qbg2:#d3f1f2}
.qs-quick-item[data-q="customers"]{--q1:#f07fb5;--q2:#e75f9c;--qbg1:#fdeef6;--qbg2:#fbdbe9}

/* 指标卡：图标芯片 + 更大留白 */
.dashboard-kpis .kpi{display:flex;align-items:center;gap:18px;padding:22px 24px}
.dashboard-kpis .kpi[data-nav]{cursor:pointer;transition:transform .18s ease,box-shadow .18s ease}
.dashboard-kpis .kpi[data-nav]:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(30,60,120,.10)}
.dashboard-kpis .kpi[data-nav]:active{transform:translateY(0);box-shadow:0 6px 18px rgba(30,60,120,.05)}
.dashboard-kpis .kpi .kpi-ic{width:58px;height:58px;flex:none;border-radius:17px;display:flex;align-items:center;justify-content:center;font-size:27px;background:linear-gradient(135deg,#eaf3ff,#dce9ff);box-shadow:inset 0 0 0 1px rgba(47,124,246,.08)}
.dashboard-kpis .kpi.green .kpi-ic{background:linear-gradient(135deg,#e7f9f1,#d2f2e4);box-shadow:inset 0 0 0 1px rgba(34,160,107,.08)}
.dashboard-kpis .kpi.orange .kpi-ic{background:linear-gradient(135deg,#fff5e2,#ffe7c2);box-shadow:inset 0 0 0 1px rgba(240,165,43,.08)}
.dashboard-kpis .kpi.red .kpi-ic{background:linear-gradient(135deg,#ffeceb,#ffdcd9);box-shadow:inset 0 0 0 1px rgba(239,83,80,.08)}
.dashboard-kpis .kpi .kpi-txt{flex:1;min-width:0}
.dashboard-kpis .kpi .label{font-size:13px}
.dashboard-kpis .kpi .value{font-size:30px;margin-top:6px}

/* 卡片头部图标芯片 */
.card-head{display:flex;align-items:center;gap:4px}
.qs-head-icon{display:inline-flex;width:30px;height:30px;border-radius:9px;align-items:center;justify-content:center;margin-right:8px;font-size:15px;background:linear-gradient(135deg,#eaf3ff,#dce9ff)}
.qs-head-icon.hi-warn{background:linear-gradient(135deg,#fff3e0,#ffe2c2)}
.qs-head-icon.hi-hot{background:linear-gradient(135deg,#ffeceb,#ffdcd9)}

/* 页面标题点缀 */
.page-title{display:flex;align-items:center;gap:12px;font-weight:700;color:#1f3a63}
.page-title::before{content:"";width:6px;height:24px;border-radius:4px;background:linear-gradient(180deg,#4d97ff,#2f7cf6);box-shadow:0 0 0 4px rgba(47,124,246,.10)}

/* 表格：斑马纹 + 圆角包裹 */
table.data tbody tr:nth-child(even) td{background:#fafcff}
table.data thead th{position:sticky;top:0;z-index:1}
.card.table-wrap{border-radius:0 0 14px 14px;overflow:hidden}

/* 工具栏更柔和 */
.toolbar{background:linear-gradient(180deg,#fbfcfe,#f6f9fd);gap:12px}

/* 弹窗更轻盈 */
.modal-head{background:linear-gradient(90deg,#f8fbff,#eef4ff)}
.modal-foot{background:#fbfcfe}

/* 导航自适应：小屏也不挤压退出区 */
.qs-brand{flex:0 0 auto}
.qs-nav-menu{min-width:0}
.qs-nav-menu>li{min-width:0;flex:1 1 0;padding:0 12px}
.qs-nav-top{padding:0 4px;gap:6px;white-space:nowrap;letter-spacing:1px}
.qs-nav-right{flex:0 0 auto;min-width:max-content;padding:0 14px;gap:14px}

/* 库存查询增强 */
.radio-label,.check-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;cursor:pointer;white-space:nowrap}
.stock-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:14px}
.stat-item{background:#fff;border:1px solid #e8edf6;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;box-shadow:0 4px 12px rgba(30,60,120,.04)}
.stat-item span{font-size:12px;color:#8a94a6}
.stat-item b{font-size:18px;color:#1f3a63;letter-spacing:-.2px}
.stat-item:nth-child(4) b{color:#b26a00}
.stat-item:nth-child(5) b{color:#c0392b}

/* 商品云相册 / 销售目标 */
.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.gallery-item{background:#fff;border:1px solid #e8edf6;border-radius:14px;overflow:hidden;box-shadow:0 6px 16px rgba(30,60,120,.05);transition:transform .16s ease,box-shadow .16s ease}
.gallery-item:hover{transform:translateY(-3px);box-shadow:0 14px 26px rgba(47,124,246,.12)}
.gallery-img{height:150px;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:700;color:#fff}
.gallery-img img{width:100%;height:100%;object-fit:cover}
.gallery-meta{padding:10px 12px;display:flex;flex-direction:column;gap:3px}
.gallery-meta b{font-size:14px;color:#2b3444;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gallery-meta span{font-size:12px;color:#98a2b3}
.target-progress{margin-top:18px;max-width:520px}
.tp-bar{height:12px;border-radius:99px;background:#eef1f6;overflow:hidden}
.tp-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#4d97ff,#2f7cf6);transition:width .5s ease}
.tp-info{display:flex;justify-content:space-between;font-size:13px;color:#6b7280;margin-top:8px}

/* APP端入口 */
.qs-app-link{display:inline-flex;align-items:center;gap:6px;color:#dbeafe;font-size:14px;text-decoration:none;padding:7px 12px;border-radius:9px;background:rgba(255,255,255,.10);transition:background .16s ease}
.qs-app-link:hover{background:rgba(255,255,255,.18);color:#fff}
