.login-screen { min-height: 100vh; min-height: 100dvh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at 15% 20%, #ffe7e7, transparent 40%), #f5f6fa; }
.official-account-badge { display:inline-flex; align-items:center; vertical-align:middle; padding:3px 7px; border-radius:6px; background:#e8f3ff; color:#086abd; font-size:11px; font-weight:600; white-space:nowrap; }
.official-create-form { display:grid; gap:18px; max-width:440px; margin-top:24px; }
.official-create-form label { display:grid; gap:8px; font-size:14px; }
.official-create-form input { min-width:0; width:100%; padding:12px; border:1px solid #dfe4ec; border-radius:9px; font-size:16px; }
.official-create-form .save { min-height:44px; font-size:14px; }
.official-create-form button:disabled { opacity:.5; }
.created-user-id { margin:20px 0; font-size:32px; letter-spacing:5px; color:#086abd; }
#create-user-status { margin:0; color:#c3354b; font-size:13px; }
.login-card { width: 100%; max-width: 410px; padding: 36px 30px; border: 1px solid #eceef3; border-radius: 22px; background: #fff; box-shadow: 0 20px 70px #26314b12; }
.login-mark { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 15px; background: linear-gradient(135deg, #ef1f2c, #ff6654); color: #fff; font-size: 25px; }
.login-card h1 { margin: 24px 0 8px; font-size: 25px; }
.login-card p { margin: 0 0 26px; color: #8891a0; font-size: 13px; line-height: 1.7; }
.login-card form { display: grid; gap: 18px; }
.login-card label { display: grid; gap: 9px; font-size: 13px; color: #596477; }
.login-card input { width: 100%; padding: 13px 14px; border: 1px solid #dfe4ec; border-radius: 10px; background: #fafbfc; font-size: 16px; outline: none; }
.login-card input:focus { border-color: #ef5861; box-shadow: 0 0 0 3px #fff0f1; }
.login-submit { padding: 14px; border-radius: 10px; background: #ec3443; color: #fff; font-weight: 700; }
.login-submit:disabled { opacity: .55; cursor: wait; }
.login-back { display: block; margin-top: 24px; color: #e72d3b; text-align: center; font-size: 13px; text-decoration: none; }
.login-error { min-height: 20px; margin-top: 14px; color: #d63c50; font-size: 13px; line-height: 1.6; }
.admin-head { gap: 10px; flex-wrap: wrap; }
.admin-head > div { flex: 1; }
.tabs { overflow-x: auto; }
.tab { white-space: nowrap; }
.feature-product label,.feature-form label,.feature-user-select { display: grid; gap: 8px; color: #596477; font-size: 12px; }
.feature-product input:not([type=checkbox]) { width: 100px; }
.feature-product input,.feature-form input,.feature-form select,.feature-user-select select { padding: 10px; border: 1px solid #dfe4ec; border-radius: 8px; font-size: 16px; max-width: 100%; }
.feature-form { display: flex; flex-wrap: wrap; align-items: end; gap: 15px; margin: 20px 0; }
.feature-form button { min-height: 40px; }
.feature-user-select { margin-top: 20px; }
@media (max-width: 640px) { .login-card { padding: 28px 22px; } .admin-head > div { flex-basis: 100%; } }

/* Desktop back office: persistent left navigation, working area on the right. */
.admin-shell { display: grid; grid-template-columns: 210px minmax(0,1fr); grid-template-rows: auto 1fr; gap: 22px; width: 100%; max-width: 1480px; min-height: 100vh; padding: 26px; }
.admin-head { grid-column: 1 / -1; border-radius: 16px; }
.admin-shell > .tabs { grid-column: 1; grid-row: 2; display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin: 0; padding: 18px 12px; border: 1px solid #e8ecf3; border-radius: 16px; background: #fff; overflow: visible; align-self: start; position: sticky; top: 24px; }
.admin-shell > .tabs::before { content: '管理菜单'; padding: 6px 12px 14px; color: #a0a8b8; font-size: 12px; letter-spacing: 2px; }
.admin-shell > .tabs .tab { width: 100%; min-height: 46px; padding: 12px 16px; text-align: left; font-size: 14px; color: #667187; background: transparent; border-radius: 10px; }
.admin-shell > .tabs .tab:hover { background: #f7f8fb; }
.admin-shell > .tabs .tab.active { color: #e82f40; background: #fff0f2; box-shadow: inset 3px 0 #ef3442; }
.admin-shell > #content { grid-column: 2; grid-row: 2; min-width: 0; align-self: start; min-height: 360px; padding: 26px; }
.admin-menu-toggle { display: none; }
@media (max-width: 760px) {
  .admin-shell { display: block; padding: 12px; min-height: 100dvh; }
  .admin-head { margin-bottom: 16px; padding: 16px; }
  .admin-head h1 { font-size: 18px; }
  .admin-menu-toggle { display: block; }
  .admin-shell > .tabs { display: none; position: static; margin-bottom: 16px; }
  .admin-shell.menu-open > .tabs { display: flex; }
  .admin-shell > #content { padding: 18px; }
}
.admin-filter,.admin-pager{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:20px 0}.admin-filter input{flex:1;min-width:150px}.admin-filter input,.admin-filter select,.bot-settings-form input:not([type=checkbox]),.bot-settings-form textarea{font:inherit;padding:10px;border:1px solid #dfe4ec;border-radius:8px;max-width:100%;min-width:0}.admin-pager{justify-content:center;font-size:12px}.tool-result{color:#357844;font-size:13px}.bot-avatar-settings{display:flex;align-items:center;gap:20px;margin:25px 0;flex-wrap:wrap}.bot-preview-avatar{width:76px;height:76px;display:grid;place-items:center;border-radius:18px;background:#eef1f9;overflow:hidden;font-size:32px}.bot-preview-avatar img{width:100%;height:100%;object-fit:cover}.bot-avatar-settings form{display:grid;gap:10px;max-width:100%}.bot-avatar-settings label{display:grid;gap:8px}.bot-avatar-settings input{max-width:100%}.bot-settings-form{display:grid;gap:20px;max-width:720px}.bot-settings-form>label{display:grid;gap:8px}.bot-settings-form .bot-toggle{display:flex;align-items:center}.bot-settings-form small,.bot-avatar-settings small{color:#8391a4;font-size:12px}.bot-settings-form textarea{resize:vertical;line-height:1.7}.bot-settings-form fieldset{border:1px solid #e2e7ef;border-radius:10px;padding:16px}.bot-group-list{display:grid;gap:12px;max-height:280px;overflow:auto}.bot-group-list label{overflow-wrap:anywhere}.bot-preview{background:#f7f8fc;border-radius:12px;padding:18px;overflow-wrap:anywhere}.bot-preview h3{font-size:13px;margin:0 0 12px;color:#8691a2}.bot-preview p{white-space:pre-wrap}.admin-pager button:disabled,.bot-settings-form button:disabled{opacity:.5}
