/* 巴尔干纸箱厂管理系统 — macOS 天气风格：超薄磨砂玻璃 + 柔和低饱和蓝紫 */
:root{
  /* 玻璃材质令牌（模拟 ultraThinMaterial：轻磨砂、半通透，不厚重） */
  --glass-blur:20px;
  --glass-bg:rgba(255,255,255,.55);
  --glass-bg-strong:rgba(255,255,255,.72);
  --glass-bg-hover:rgba(255,255,255,.66);
  --glass-border:rgba(255,255,255,.45);
  --glass-highlight:inset 0 1px 0 rgba(255,255,255,.6);
  --glass-radius:18px;
  --glass-shadow:0 8px 30px rgba(72,82,120,.12),0 2px 8px rgba(72,82,120,.07);

  /* 柔和低饱和蓝紫配色 */
  --blue:#5B7CC9; --accent:#7B86D8; --purple:#8B7FD0;
  --red:#D2707A; --green:#5FA87A; --amber:#C9A24B;
  --ink:#2C3142; --ink-soft:#606A85;
  --line:rgba(110,122,158,.18);

  /* 柔和缓动与时长（0.2~0.4s） */
  --ease-soft:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.25,.46,.35,.94);
  --dur-fast:.22s; --dur-mid:.32s; --dur-slow:.4s;

  /* 兼容旧变量名（内联样式与既有规则引用），统一指向新体系 */
  --paper:#E9EDF8; --card:rgba(255,255,255,.55);
  --muted:#606A85;
  --kraft:#7B86D8; --kraft-deep:#4A5596; --kraft-soft:rgba(255,255,255,.5);
  --radius:16px; --shadow:var(--glass-shadow);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",
    "PingFang SC","Microsoft YaHei","Noto Sans SC","Hiragino Sans GB",sans-serif;
  background:transparent;color:var(--ink);font-size:15px;line-height:1.75;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
button{font-family:inherit;cursor:pointer;border:none}
input,textarea,select{font-family:inherit;font-size:16px}
a{color:var(--blue);text-decoration:none}
h1,h2,h3{line-height:1.35}

/* 柔和低饱和渐变背景层（固定，带轻微视差位移） */
.bg-layer{
  position:fixed;inset:-12% -10% -18%;z-index:-1;will-change:transform;
  background:
    radial-gradient(46% 38% at 16% 12%,rgba(150,170,225,.55),transparent 70%),
    radial-gradient(42% 36% at 86% 16%,rgba(190,170,225,.5),transparent 70%),
    radial-gradient(50% 46% at 72% 86%,rgba(150,185,220,.45),transparent 72%),
    radial-gradient(46% 40% at 24% 88%,rgba(205,180,220,.4),transparent 70%),
    linear-gradient(160deg,#E9EDF8 0%,#E2E7F5 46%,#EAE4F4 100%);
  transform:translate3d(0,0,0);
}
@media (prefers-reduced-motion:reduce){
  .bg-layer{transform:none!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;scroll-behavior:auto!important}
  .card:active,.stat:active,.fab:active,.btn:active{transform:none!important}
}

/* ===== 登录 ===== */
.login-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:420px;background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  border:1px solid var(--glass-border);border-radius:var(--glass-radius);
  padding:30px 26px;box-shadow:var(--glass-shadow),var(--glass-highlight)}
.login-mark{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#6B8AD0,#8B7FD0);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;margin:0 auto 14px}
.login-card h1{font-size:20px;text-align:center;color:var(--kraft-deep)}
.login-card .tip{text-align:center;color:var(--ink-soft);font-size:13.5px;margin:6px 0 20px}
.field{margin-bottom:14px}
.field label{display:block;font-size:13.5px;color:var(--ink-soft);margin-bottom:6px}
.field input,.field textarea,.field select{width:100%;padding:11px 12px;border:1px solid var(--glass-border);border-radius:10px;background:rgba(255,255,255,.5);color:var(--ink)}
.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid rgba(91,124,201,.25);border-color:var(--blue)}
.btn{width:100%;padding:11px;border-radius:10px;background:linear-gradient(135deg,#6B8AD0,#7B86D8);color:#fff;font-size:15px;font-weight:600;min-height:44px;
  transition:transform var(--dur-fast) var(--ease-soft),opacity var(--dur-fast) var(--ease-soft)}
.btn:active{opacity:.9;transform:scale(.98)}
.btn.brown{background:var(--kraft)}
.btn.ghost{background:rgba(255,255,255,.5);color:var(--blue);border:1px solid var(--glass-border);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.step-dots{display:flex;gap:8px;justify-content:center;margin-bottom:18px}
.step-dots i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.step-dots i.on{background:var(--kraft)}
.form-err{color:var(--red);font-size:13.5px;margin-bottom:10px;min-height:20px}

/* ===== 应用外壳 ===== */
.app-shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;background:var(--glass-bg);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  color:var(--ink);border-bottom:1px solid var(--glass-border);display:flex;align-items:center;gap:10px;padding:0 14px;height:54px}
.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15.5px;flex:1;color:var(--ink)}
.brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#6B8AD0,#8B7FD0);display:grid;place-items:center;flex:none}
.brand-mark svg{width:18px;height:18px}
.topbar .icon-btn{background:transparent;color:var(--ink-soft);min-width:40px;min-height:40px;border-radius:8px;display:grid;place-items:center}
.topbar .icon-btn:active{background:var(--kraft-soft)}
.badge{position:absolute;top:4px;right:2px;background:var(--red);color:#fff;font-size:11px;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.content{flex:1;padding:18px 14px 86px;max-width:920px;width:100%;margin:0 auto}

/* 桌面侧栏：手机端隐藏，媒体查询内显示 */
.side-nav{display:none}

/* 底部导航（手机） */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:20;background:var(--glass-bg);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  backdrop-filter:blur(var(--glass-blur)) saturate(170%);
  border-top:1px solid var(--glass-border);display:flex}
.bottom-nav button{flex:1;background:transparent;padding:8px 0 10px;min-height:56px;color:var(--ink-soft);font-size:12px;display:flex;flex-direction:column;align-items:center;gap:3px}
.bottom-nav button.on{color:var(--blue);font-weight:700}
.bottom-nav svg{width:22px;height:22px}

/* 卡片 */
.card{background:var(--glass-bg);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(165%);
  backdrop-filter:blur(var(--glass-blur)) saturate(165%);
  border:1px solid var(--glass-border);border-radius:var(--glass-radius);
  padding:18px;margin-bottom:16px;box-shadow:var(--glass-shadow),var(--glass-highlight);
  transition:background var(--dur-mid) var(--ease-soft),
    transform var(--dur-fast) var(--ease-soft)}
.card:hover{background:var(--glass-bg-hover)}
.card:active{transform:scale(.98)}
.card h3{font-size:16px;color:var(--kraft-deep);margin-bottom:10px}
.culture{background:var(--glass-bg-strong);border-color:var(--glass-border)}
.culture h2{font-size:18px;color:var(--kraft-deep)}
.culture .slogan{font-size:16px;margin-top:8px;color:var(--kraft-deep);font-weight:700}
.culture .slogan-sr{font-size:13px;color:var(--ink-soft);margin-top:4px}

.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.stat{background:var(--glass-bg);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(150%);
  backdrop-filter:blur(var(--glass-blur)) saturate(150%);
  border:1px solid var(--glass-border);border-radius:var(--glass-radius);
  padding:14px;text-align:center;box-shadow:var(--glass-highlight);
  transition:background var(--dur-mid) var(--ease-soft),
    transform var(--dur-fast) var(--ease-soft)}
.stat:hover{background:var(--glass-bg-hover)}
.stat:active{transform:scale(.97)}
.stat b{display:block;font-size:24px;color:var(--blue)}
.stat span{font-size:13px;color:var(--ink-soft)}

.warn-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.warn-item:last-child{border-bottom:none}
.tag{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12.5px;font-weight:600;white-space:nowrap}
.tag.blue{background:rgba(91,124,201,.16);color:var(--blue)}
.tag.green{background:rgba(95,168,122,.16);color:var(--green)}
.tag.red{background:rgba(210,112,122,.16);color:var(--red)}
.tag.amber{background:rgba(201,162,75,.18);color:#9A7A33}
.tag.gray{background:rgba(120,130,160,.16);color:var(--ink-soft)}
.empty{text-align:center;color:var(--ink-soft);padding:22px 0;font-size:14px}

/* 浮动按钮（柔和蓝紫玻璃） */
.fab{position:fixed;right:18px;bottom:76px;z-index:19;width:52px;height:52px;border-radius:50%;
  background:linear-gradient(135deg,#6B8AD0,#7B86D8);color:#fff;font-size:24px;
  box-shadow:0 6px 18px rgba(91,124,201,.3);display:grid;place-items:center;
  transition:transform var(--dur-fast) var(--ease-soft)}
.fab:active{transform:scale(.92)}

/* 弹层 */
.modal-mask{position:fixed;inset:0;background:rgba(30,36,60,.28);z-index:30;display:flex;align-items:flex-end}
.modal{background:var(--glass-bg-strong);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);
  backdrop-filter:blur(var(--glass-blur)) saturate(180%);
  width:100%;border-radius:20px 20px 0 0;padding:20px 18px 26px;max-height:86vh;overflow:auto;
  border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--glass-highlight)}
.modal h3{margin-bottom:14px;color:var(--kraft-deep)}
.modal .actions{display:flex;gap:10px;margin-top:8px}
.modal .actions .btn{flex:1}

/* Toast */
.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:rgba(35,40,47,.92);color:#fff;padding:10px 18px;border-radius:9px;font-size:13.5px;z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}

/* ===== 桌面端 ===== */
@media(min-width:768px){
  .content{padding:22px 24px 28px}
  .bottom-nav{display:none}
  .app-shell{padding-left:210px}
  .side-nav{position:fixed;left:0;top:0;bottom:0;width:210px;background:var(--glass-bg);
    -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(160%);
    backdrop-filter:blur(var(--glass-blur)) saturate(160%);
    border-right:1px solid var(--glass-border);padding:16px 10px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}
  .side-nav button{background:transparent;text-align:left;padding:10px 12px;border-radius:10px;color:var(--ink-soft);font-size:14px;min-height:44px;display:flex;align-items:center;gap:10px}
  .side-nav button svg{width:19px;height:19px;flex:none}
  .side-nav button.on{background:rgba(255,255,255,.55);color:var(--blue);font-weight:700}
  .side-nav .nav-sep{font-size:12px;color:var(--ink-soft);padding:12px 12px 4px}
  .fab{bottom:28px;right:28px}
}
