/* 简洁大方的年轻化风格样式（支持暗色模式） */
:root{
  --bg:#f7f8fb;            /* 背景 */
  --card:#ffffff;          /* 卡片 */
  --text:#0f172a;          /* 主文字 */
  --muted:#64748b;         /* 次文字 */
  --border:#e5e7eb;        /* 边框 */
  --primary:#4f46e5;       /* 品牌主色 indigo-600 */
  --primary-600:#4338ca;
  --success:#10b981;       /* 成功 */
  --danger:#ef4444;        /* 错误 */
  --ring: 0 0 0 .14rem rgba(79,70,229,.25);
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0b1220;
    --card:#0f172a;
    --text:#e5e7eb;
    --muted:#94a3b8;
    --border:#1f2937;
    --primary:#818cf8;
    --primary-600:#6366f1;
    --ring: 0 0 0 .14rem rgba(129,140,248,.25);
  }
}
html,body{background:var(--bg);color:var(--text);font:14px/1.6 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
.site-header{position:sticky;top:0;z-index:10;background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,.65));backdrop-filter: blur(10px);border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding:10px 16px}
@media (prefers-color-scheme: dark){.site-header{background:linear-gradient(180deg,rgba(15,23,42,.85),rgba(15,23,42,.65));}}
.brand{display:flex;align-items:center;gap:10px;user-select:none}
.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--primary);color:#fff;font-weight:700}
.brand-name{font-weight:700;letter-spacing:.2px}
.nav{display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;max-width:100%;padding-bottom:6px}
.nav::-webkit-scrollbar{display:none}
.nav-link{display:inline-block;color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:8px;border:1px solid transparent}
.nav-link:hover{color:var(--text);background:rgba(15,23,42,.04)}
.nav-link.active{color:#fff;background:var(--primary);border-color:var(--primary)}

/* 表单与容器 */
.row{display:flex;flex-wrap:wrap;gap:20px}
.col{flex:1 1 340px;min-width:300px}
fieldset{margin:20px 16px;padding:20px;border:1px solid var(--border);border-radius:14px;background:var(--card)}
legend{padding:0 8px;color:var(--muted);font-weight:700;letter-spacing:.2px}
label{display:block;margin:6px 0 6px;font-weight:600;color:var(--muted)}
.req{color:#ef4444;margin-left:4px}
input,select,textarea{width:100%;min-height:42px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);outline:none;transition:.15s;box-sizing:border-box}
input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:var(--ring)}
textarea{min-height:90px;resize:vertical}
input[type=file]{padding:12px;border:1px dashed var(--border);border-radius:12px}
.tip{color:var(--muted);font-size:12px}
.ok{color:var(--success)}
.err{color:var(--danger)}

/* 按钮 */
.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;min-height:42px;border-radius:12px;border:1px solid var(--primary);background:var(--primary);color:#fff;font-weight:700;letter-spacing:.2px;cursor:pointer;text-decoration:none;transition:.15s}
.btn:hover{filter:brightness(1.06)}
.btn.gray{background:transparent;color:var(--text);border-color:var(--border)}
.btn.gray:hover{background:rgba(15,23,42,.04)}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn+.btn{margin-left:10px}

.table-actions{display:flex;gap:8px;flex-wrap:nowrap;align-items:center}

.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;z-index:100}
.modal-card{background:var(--card);border-radius:16px;padding:24px 28px;box-shadow:0 20px 40px rgba(15,23,42,.18);max-width:360px;width:90%;text-align:center}
.modal-card h4{margin-top:0;margin-bottom:10px}
.modal-card p{margin:0 0 18px;font-size:15px}

/* 小屏自适应 */
@media (max-width: 720px){
  .row{flex-direction:column}
  .col{flex-basis:100%;min-width:100%}
  fieldset{margin:12px 10px}
}

/* 细节优化 */
::placeholder{color:var(--muted)}
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill{transition:background-color 5000s ease-in-out 0s}
hr{border:none;border-top:1px solid var(--border)}

/* 页面两侧边界与标题间距 */
body > :not(.site-header){max-width:1100px;margin:0 auto;padding:16px}
h3{margin:22px 16px 10px}
/* 头部与主体间距、底部留白 */
.site-header+*{margin-top:12px}
body{padding-bottom:72px}
form{margin-bottom:48px}

/* 桌面端缩小每列内输入控件宽度，避免贴边拥挤 */
@media (min-width: 721px){
  .col input,.col select,.col textarea{max-width:95%}
}

/* 登录页 */
.auth-wrap{min-height:calc(100vh - 60px);display:flex;align-items:center;justify-content:center;padding:32px}
.auth-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px 22px 18px;box-shadow:0 10px 30px rgba(2,6,23,.06)}
.auth-head{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:14px}
.auth-head .logo{width:44px;height:44px;border-radius:12px;background:var(--primary);color:#fff;display:grid;place-items:center;font-weight:800}
.auth-head .title{font-weight:800;letter-spacing:.3px}
.auth-head .sub{color:var(--muted);font-size:12px}
.auth-card form{display:flex;flex-direction:column;gap:12px}
.auth-card label{margin-top:4px}
.auth-card input,.auth-card select{width:100%;max-width:100%}
.auth-card{overflow:hidden}

/* 通用表格（若页面有表格展示） */
table{width:100%;border-collapse:separate;border-spacing:0 8px}
th,td{padding:10px 12px;background:var(--card);border:1px solid var(--border)}
th{font-weight:700;color:var(--muted)}
tr td:first-child, tr th:first-child{border-top-left-radius:10px;border-bottom-left-radius:10px}
tr td:last-child, tr th:last-child{border-top-right-radius:10px;border-bottom-right-radius:10px}

.table-actions form{margin:0;display:flex}
.table-actions .btn{white-space:nowrap;padding:8px 12px;min-height:36px;font-size:13px}

.notify-error td{background:#fef2f2;border-color:#fecaca;}
.notify-error span.err{font-weight:700;}

.notify-debug{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.notify-debug details{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--card)}
.notify-debug summary{font-weight:700;color:var(--text);cursor:pointer;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.notify-debug summary::-webkit-details-marker{display:none}
.notify-debug .tag{display:inline-flex;align-items:center;justify-content:center;padding:0 10px;height:22px;border-radius:999px;background:var(--primary);color:#fff;font-size:12px}
.notify-debug textarea{margin-top:6px;font-family:ui-monospace,Consolas,monospace;min-height:90px}
