/* Smartwell 管理后台 */
:root{
  --abg:#0d1319; --acard:#131c26; --aline:rgba(148,220,255,.12); --atext:#e8f2ee; --amuted:#8ba3ab;
  --agreen:#34f5a1; --acyan:#37d6ff; --agold:#e8c15a; --ared:#ff6d6d;
  --afont:"Space Grotesk","Noto Sans SC","PingFang SC","Microsoft YaHei",sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--abg);color:var(--atext);font-family:var(--afont);font-size:14px;line-height:1.6}
a{color:var(--acyan);text-decoration:none}
.layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
/* 侧栏 */
.side{background:var(--acard);border-right:1px solid var(--aline);padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.side .brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:.06em;padding:6px 10px 18px}
.side .brand .mk{width:24px;height:24px;border-radius:7px;background:linear-gradient(120deg,#34f5a1,#37d6ff)}
.side .grp{font-size:11px;color:var(--amuted);letter-spacing:.2em;padding:16px 10px 6px;text-transform:uppercase}
.side a.item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;color:var(--amuted);transition:.2s;font-size:13.5px}
.side a.item:hover{color:var(--atext);background:rgba(148,220,255,.06)}
.side a.item.on{color:#04231a;background:linear-gradient(120deg,#34f5a1,#37d6ff);font-weight:700}
.side .foot{margin-top:22px;padding:10px;font-size:11px;color:var(--amuted)}
.side a.view-site{display:block;margin-top:10px;padding:9px 12px;border:1px solid var(--aline);border-radius:10px;color:var(--amuted);font-size:12.5px;text-align:center}
.side a.view-site:hover{color:var(--agreen);border-color:var(--agreen)}
/* 主区 */
.main{padding:26px 32px;max-width:1280px}
.topbar{display:flex;align-items:center;gap:16px;margin-bottom:24px}
.topbar h1{font-size:22px;margin-right:auto}
.topbar .who{font-size:12.5px;color:var(--amuted)}
.topbar .who b{color:var(--atext)}
.btn{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(120deg,#34f5a1,#37d6ff);color:#04231a;border:none;border-radius:10px;padding:9px 18px;font-weight:700;font-size:13px;cursor:pointer;font-family:var(--afont);transition:.2s}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(52,245,161,.3)}
.btn.ghost{background:none;border:1px solid var(--aline);color:var(--amuted)}
.btn.ghost:hover{color:var(--agreen);border-color:var(--agreen)}
.btn.danger{background:none;border:1px solid rgba(255,109,109,.4);color:var(--ared)}
.btn.sm{padding:5px 12px;font-size:12px;border-radius:8px}
/* 卡片 */
.card{background:var(--acard);border:1px solid var(--aline);border-radius:16px;padding:22px;margin-bottom:22px}
.card h3{font-size:15px;margin-bottom:14px}
/* 统计 */
.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-bottom:24px}
.stat{background:var(--acard);border:1px solid var(--aline);border-radius:14px;padding:16px}
.stat b{display:block;font-size:24px;color:var(--agreen)}
.stat span{font-size:12px;color:var(--amuted)}
/* 表格 */
.tbl{width:100%;border-collapse:collapse}
.tbl th{text-align:left;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--amuted);padding:10px 12px;border-bottom:1px solid var(--aline)}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--aline);color:var(--amuted);font-size:13px;vertical-align:top}
.tbl td.hl{color:var(--atext)}
.tbl tr:hover td{background:rgba(148,220,255,.03)}
.tbl-scroll{overflow-x:auto}
.chip{display:inline-block;font-size:10.5px;padding:3px 10px;border-radius:99px;background:rgba(52,245,161,.12);color:var(--agreen)}
.chip.cy{background:rgba(55,214,255,.12);color:var(--acyan)}
.chip.gold{background:rgba(232,193,90,.12);color:var(--agold)}
.chip.red{background:rgba(255,109,109,.12);color:var(--ared)}
.chip.gray{background:rgba(139,163,171,.14);color:var(--amuted)}
.row-actions{display:flex;gap:8px;white-space:nowrap}
/* 表单 */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f{display:flex;flex-direction:column;gap:6px}
.f.full{grid-column:1/-1}
.f label{font-size:12px;color:var(--amuted)}
.f input,.f select,.f textarea{background:#0a1017;border:1px solid var(--aline);border-radius:10px;padding:10px 12px;color:var(--atext);font-family:var(--afont);font-size:13.5px;outline:none;transition:.2s}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--agreen);box-shadow:0 0 0 3px rgba(52,245,161,.1)}
.f textarea{min-height:110px;resize:vertical}
.f .hint{font-size:11px;color:var(--amuted)}
.f input[type=file]{padding:7px}
.f .cur{font-size:11.5px;color:var(--agreen)}
.checkline{display:flex;align-items:center;gap:10px}
.checkline input{width:18px;height:18px;accent-color:#34f5a1}
.form-foot{display:flex;gap:12px;margin-top:20px}
/* 登录 */
.login-body{display:flex;align-items:center;justify-content:center;min-height:100vh;background:radial-gradient(80% 80% at 50% 0%,rgba(52,245,161,.08),transparent 55%),var(--abg)}
.login-card{background:var(--acard);border:1px solid var(--aline);border-radius:20px;padding:40px;width:min(420px,92vw)}
.login-card .brand{display:flex;gap:12px;align-items:center;margin-bottom:26px}
.login-card .brand .mk{width:34px;height:34px;border-radius:10px;background:linear-gradient(120deg,#34f5a1,#37d6ff)}
.login-card h1{font-size:20px;margin-bottom:4px}
.login-card .sub{color:var(--amuted);font-size:12.5px;margin-bottom:22px}
.login-err{background:rgba(255,109,109,.1);border:1px solid rgba(255,109,109,.35);color:var(--ared);border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px}
.login-card .f{margin-bottom:14px}
.login-note{font-size:11.5px;color:var(--amuted);margin-top:16px;line-height:1.8}
/* 媒体库 */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.media-item{background:var(--acard);border:1px solid var(--aline);border-radius:12px;padding:10px;font-size:12px}
.media-item img{border-radius:8px;height:110px;width:100%;object-fit:cover;background:#0a1017;margin-bottom:8px}
.media-item .ic{height:110px;display:flex;align-items:center;justify-content:center;font-size:34px;background:#0a1017;border-radius:8px;margin-bottom:8px}
.media-item code{display:block;color:var(--agreen);font-size:10.5px;word-break:break-all;margin:4px 0}
/* 设置 */
.kv-row{display:grid;grid-template-columns:220px 1fr 1fr;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--aline)}
.kv-row b{font-size:13px}
.kv-row code{font-size:11px;color:var(--amuted)}
.empty{padding:40px;text-align:center;color:var(--amuted)}
@media(max-width:900px){.layout{grid-template-columns:1fr}.side{position:static;height:auto;display:flex;flex-wrap:wrap;gap:4px}.side .grp{width:100%}.form-grid{grid-template-columns:1fr}.kv-row{grid-template-columns:1fr}}

/* 可视化富文本编辑器 */
.rich-wrap{grid-column:1/-1}
.re-toolbar{display:flex;gap:4px;flex-wrap:wrap;border:1px solid var(--aline);border-bottom:none;border-radius:8px 8px 0 0;padding:6px;background:var(--abg2,#f3f6f4)}
.re-toolbar button{border:1px solid var(--aline);background:#fff;border-radius:6px;min-width:30px;height:28px;padding:0 8px;font-size:13px;cursor:pointer;color:#22312b}
.re-toolbar button:hover{border-color:#2a7a65;color:#0a6e52}
.re-toolbar button.on{background:#2a7a65;color:#fff}
.re-area{border:1px solid var(--aline);border-radius:0 0 8px 8px;min-height:340px;padding:14px 16px;background:#fff;overflow:auto;outline:none;font-size:15px;line-height:1.8;color:#22312b}
.re-area:focus{border-color:#2a7a65}
.re-area.re-src{font-family:Consolas,monospace;font-size:12.5px;white-space:pre-wrap;color:#39544a}
.re-area p{margin:0 0 14px}
.re-area h2{font-size:19px;margin:22px 0 10px;color:#12251c}
.re-area h3{font-size:16px;margin:18px 0 8px;color:#12251c}
.re-area ul,.re-area ol{margin:0 0 14px;padding-left:24px}
.re-area blockquote{border-left:3px solid #2a7a65;margin:14px 0;padding:6px 14px;background:#f2f8f5;color:#39544a}
.re-area img{max-width:100%;border-radius:8px}
.re-area figure{margin:18px 0}
.re-area figcaption{font-size:12px;color:#6b8076;text-align:center;margin-top:6px}
.rich-wrap .hint{display:block;margin-top:6px;font-size:12px;color:#6b8076}

/* ===== Admin UX v2 ===== */
.back-btn{flex:none}
.top-save{flex:none}
.list-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.lt-search{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.lt-input{border:1px solid var(--aline);border-radius:8px;padding:7px 12px;font-size:13px;background:#fff;color:var(--atext);min-width:180px}
.lt-input:focus{outline:none;border-color:var(--agreen,#2a7a65)}
.lt-count{margin-left:auto;font-size:12.5px;color:var(--amuted);white-space:nowrap}
.tbl-scroll{overflow-x:auto}
table.tbl.smart{width:100%}
table.tbl.smart th{position:sticky;top:0;z-index:2;background:var(--acard);white-space:nowrap}
table.tbl.smart td.cell-clip{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.th-ops{width:120px}
.row-actions{display:flex;gap:6px;align-items:center}
.badge{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;border-radius:99px;font-size:11px;padding:0 7px}
.badge.green{background:rgba(42,122,101,.14);color:#1a7a5e;border:1px solid rgba(42,122,101,.35)}
.badge.gold{background:rgba(200,159,62,.14);color:#9a7420;border:1px solid rgba(200,159,62,.4)}
.badge.gray{background:rgba(120,130,125,.12);color:#7c8681;border:1px solid rgba(120,130,125,.3)}
.toast{border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:14px}
.toast.ok{background:rgba(42,122,101,.1);color:#1a7a5e;border:1px solid rgba(42,122,101,.35)}
.toast.err{background:rgba(200,80,80,.08);color:#b04848;border:1px solid rgba(200,80,80,.35)}
.btn.danger{border-color:rgba(200,80,80,.4);color:#b04848;background:#fff}
.btn.danger:hover{background:rgba(200,80,80,.08)}
@media(max-width:720px){.lt-input{min-width:130px}.lt-count{margin-left:0;width:100%}}

.admin-logo{height:30px;width:auto;display:block}
.login-card .admin-logo{height:36px}
