/* ============ AuthShield 商户端样式 · 现代SaaS风 ============ */
:root{
  --pri:#4f46e5;--pri-d:#4338ca;--pri-l:#818cf8;
  --grad:linear-gradient(135deg,#6366f1 0%,#4f46e5 50%,#7c3aed 100%);
  --grad-soft:linear-gradient(135deg,#eef2ff 0%,#e0e7ff 100%);
  --bg:#0f172a;--bg-2:#1e293b;--hover:rgba(99,102,241,.15);
  --g50:#f8fafc;--g100:#f1f5f9;--g200:#e2e8f0;--g300:#cbd5e1;--g400:#94a3b8;--g500:#64748b;--g600:#475569;--g700:#334155;--g800:#1e293b;--g900:#0f172a;
  --r:10px;--r-lg:14px;
  --sh-sm:0 1px 2px rgba(15,23,42,.05);
  --sh:0 1px 3px rgba(15,23,42,.08),0 1px 2px rgba(15,23,42,.04);
  --sh-md:0 4px 6px -1px rgba(15,23,42,.08),0 2px 4px -2px rgba(15,23,42,.04);
  --sh-lg:0 10px 25px -5px rgba(15,23,42,.12),0 8px 10px -6px rgba(15,23,42,.06);
  --ring:0 0 0 3px rgba(99,102,241,.25);
}
*{margin:0;padding:0;box-sizing:border-box}
::selection{background:#c7d2fe;color:#1e1b4b}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Inter',Roboto,'PingFang SC','Noto Sans SC','Microsoft YaHei',sans-serif;background:var(--g50);color:var(--g900);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--pri);text-decoration:none;transition:color .15s}
a:hover{color:var(--pri-d)}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}
.portal-sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15)}

.portal-layout{display:flex;min-height:100vh}
.nav-toggle{display:none;position:fixed;top:14px;left:14px;z-index:200;background:var(--g900);color:#fff;border:none;border-radius:10px;padding:8px 14px;font-size:17px;cursor:pointer;box-shadow:var(--sh-lg);border:1px solid rgba(255,255,255,.1)}

/* ===== 侧边栏 ===== */
.portal-sidebar{width:228px;background:linear-gradient(180deg,var(--bg) 0%,#1a2338 100%);color:#cbd5e1;display:flex;flex-direction:column;position:fixed;height:100vh;overflow-y:auto;transition:transform .3s cubic-bezier(.16,1,.3,1);z-index:100;box-shadow:4px 0 24px rgba(15,23,42,.15)}
.sidebar-brand{padding:20px 18px;border-bottom:1px solid rgba(255,255,255,.07);font-size:15.5px;color:#fff;font-weight:700;letter-spacing:.2px;display:flex;align-items:center;gap:8px}
.sidebar-brand::before{content:"";display:inline-block;width:26px;height:26px;border-radius:8px;background:var(--grad);box-shadow:0 2px 8px rgba(99,102,241,.5);flex-shrink:0}
.portal-sidebar nav{flex:1;padding:10px 10px}
.pnav{display:flex;align-items:center;gap:10px;padding:10px 14px;color:#94a3b8;font-size:13.5px;font-weight:500;border-radius:10px;margin-bottom:2px;white-space:nowrap;transition:all .18s;position:relative}
.pnav:hover,.pnav.active{background:var(--hover);color:#fff;text-decoration:none}
.pnav.active{box-shadow:inset 0 0 0 1px rgba(129,140,248,.3)}
.pnav.active::before{content:"";position:absolute;left:0;top:20%;width:3px;height:60%;border-radius:3px;background:var(--pri-l)}
.sidebar-footer{padding:14px 16px;border-top:1px solid rgba(255,255,255,.07);font-size:13px;display:flex;justify-content:space-between;align-items:center;color:#94a3b8}
.btn-logout{color:#f87171;font-size:13px;font-weight:500;transition:color .15s}
.btn-logout:hover{color:#fca5a5}
.portal-main{flex:1;margin-left:228px;padding:20px 24px;min-width:0}

/* ===== 手机端 ===== */
@media(max-width:768px){
  .portal-sidebar{transform:translateX(-100%)}
  .nav-toggle{display:block}
  .nav-toggle-input:checked ~ .portal-sidebar{transform:translateX(0)}
  .portal-main{margin-left:0;padding:56px 12px 16px}
}
@media(max-width:480px){
  .sidebar-brand{font-size:14px}
}
