:root {
  color-scheme: dark;
  --bg: #020b18;
  --bg2: #061427;
  --panel: #07182b;
  --panel-2: #0b1f35;
  --panel-3: #102844;
  --border: #193653;
  --border-soft: rgba(77, 126, 174, .22);
  --text: #eef5ff;
  --muted: #8ea1bb;
  --muted-2: #667b98;
  --blue: #1477ff;
  --blue2: #28a7ff;
  --cyan: #36d4ff;
  --green: #13da7b;
  --orange: #ff9d22;
  --red: #ff4f5c;
  --purple: #8b58ff;
  --shadow: 0 18px 60px rgba(0, 0, 0, .32);
  --radius: 14px;
  --sidebar: 274px;
  --topbar: 78px;
  --font: "Microsoft YaHei", "PingFang SC", Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: radial-gradient(circle at 72% -5%, #0b2140 0, transparent 32%), linear-gradient(145deg, #020915 0%, #041326 52%, #020b18 100%); color: var(--text); font-family: var(--font); }
body { min-height: 100vh; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
input, select, textarea { outline: none; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.small { font-size: 12px; }
.text-green { color: var(--green); }
.text-orange { color: var(--orange); }
.text-red { color: var(--red); }
.text-blue { color: var(--blue2); }

/* LOGIN */
.login-page { display: grid; place-items: center; min-height: 100vh; padding: 28px 18px; overflow: auto; }
.login-page::before { content: ""; position: fixed; inset: 0; pointer-events: none; background-image: radial-gradient(circle at 50% 14%, rgba(35,111,210,.18), transparent 33%), radial-gradient(circle at 85% 78%, rgba(14,104,208,.1), transparent 26%); }
.login-card { position: relative; width: min(620px, 100%); border: 1px solid rgba(77, 151, 224, .65); border-radius: 26px; background: linear-gradient(155deg, rgba(11,31,53,.96), rgba(3,14,29,.96)); box-shadow: 0 24px 80px rgba(0,0,0,.45), inset 0 0 60px rgba(17,86,164,.06); padding: 54px 52px 42px; }
.login-card::after { content:""; position:absolute; inset:18px; border-radius:20px; border:1px solid rgba(86,122,158,.12); pointer-events:none; }
.login-logo { width: min(390px, 90%); display: block; margin: 0 auto 26px; }
.login-subbrand { display:flex; align-items:center; justify-content:center; gap:14px; color:#a2b0c5; font-size:18px; margin-bottom:40px; }
.login-subbrand::before,.login-subbrand::after { content:""; height:1px; flex:1; max-width:90px; background: linear-gradient(90deg, transparent, #1d6dbb); }
.login-subbrand::after { background: linear-gradient(90deg, #1d6dbb, transparent); }
.login-subbrand i { width:8px; height:8px; background:#2c98ff; border-radius:50%; box-shadow:0 0 12px #2c98ff; }
.login-card h1 { margin:0 0 34px; text-align:center; font-size:40px; letter-spacing:2px; }
.form-field { position:relative; margin-bottom:18px; }
.form-field input, .form-field select, .form-field textarea, .input, .select {
  width:100%; border:1px solid #274462; background:#07182b; color:var(--text); border-radius:10px; padding:13px 14px; transition:.18s border,.18s box-shadow,.18s background;
}
.form-field input { min-height:64px; padding-left:60px; font-size:17px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus, .input:focus, .select:focus { border-color:#2389ff; box-shadow:0 0 0 3px rgba(35,137,255,.12); background:#081c32; }
.form-icon { position:absolute; left:20px; top:50%; transform:translateY(-50%); width:24px; height:24px; color:#9fb0c8; pointer-events:none; }
.password-eye { position:absolute; right:18px; top:50%; transform:translateY(-50%); color:#97aac4; background:transparent; border:0; padding:6px; }
.login-row { display:flex; justify-content:space-between; align-items:center; gap:18px; margin:18px 0 34px; font-size:15px; }
.checkbox { display:inline-flex; align-items:center; gap:9px; color:#d7e0ec; }
.checkbox input { width:18px; height:18px; accent-color:var(--blue); }
.link-button { border:0; background:transparent; color:#1f91ff; padding:0; }
.login-submit { width:100%; min-height:64px; border:1px solid #2d90ff; border-radius:10px; color:#fff; font-size:23px; font-weight:700; letter-spacing:7px; background:linear-gradient(90deg,#0d58e9,#169cff); box-shadow:0 14px 35px rgba(15,103,247,.26); }
.login-submit:disabled { opacity:.6; cursor:not-allowed; }
.secure-line { display:flex; align-items:center; justify-content:center; gap:12px; margin:36px 0 0; color:#8fa1b9; }
.secure-line::before,.secure-line::after { content:""; width:70px; height:1px; background:#273b54; }
.login-footer { margin-top:38px; text-align:center; color:#7388a3; font-size:13px; }
.login-message { min-height:22px; margin-top:14px; text-align:center; font-size:14px; color:var(--muted); }
.login-message.error { color:#ff7882; }
.login-message.success { color:#31db91; }

/* ADMIN SHELL */
.admin-sidebar { position:fixed; z-index:30; left:0; top:0; bottom:0; width:var(--sidebar); background:linear-gradient(180deg,#041121 0%,#03101e 100%); border-right:1px solid #17314a; padding:22px 18px; display:flex; flex-direction:column; }
.brand-wrap { padding:0 2px 18px; border-bottom:1px solid rgba(33,66,98,.45); }
.brand-wrap img { width:232px; max-width:100%; }
.nav-list { display:flex; flex-direction:column; gap:4px; padding:18px 0; overflow:auto; }
.nav-link { display:flex; align-items:center; gap:14px; min-height:52px; padding:0 15px; border-radius:8px; color:#d7e1ed; transition:.18s; font-size:15px; }
.nav-link:hover { background:#0b2039; color:#fff; }
.nav-link.active { color:#fff; background:linear-gradient(90deg,#0b61e8,#0b4dbe); box-shadow:0 8px 25px rgba(7,81,192,.24); }
.nav-icon { width:22px; text-align:center; color:#c6d6e7; font-size:20px; }
.nav-arrow { margin-left:auto; color:#8ca0b8; }
.admin-card { margin-top:auto; border:1px solid #173451; border-radius:12px; padding:16px; background:rgba(8,27,47,.74); }
.admin-profile { display:flex; gap:12px; align-items:center; padding-bottom:12px; }
.avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:#234c7f; border:2px solid #3f91ff; font-size:23px; }
.admin-name { font-size:16px; font-weight:700; }
.admin-role { color:#57a7ff; font-size:12px; margin-top:4px; }
.admin-bottom-link { display:flex; align-items:center; gap:10px; padding:11px 4px; color:#d0dce9; font-size:14px; border-top:1px solid rgba(51,82,113,.25); }
.admin-topbar { position:fixed; z-index:20; left:var(--sidebar); top:0; right:0; height:var(--topbar); border-bottom:1px solid #193550; background:rgba(2,12,24,.92); backdrop-filter:blur(16px); display:flex; align-items:center; padding:0 28px; gap:18px; }
.page-title { font-size:20px; font-weight:700; display:flex; align-items:center; gap:14px; }
.hamburger { color:#e5edf7; font-size:23px; }
.topbar-spacer { flex:1; }
.top-clock { color:#bac8d9; font-size:13px; white-space:nowrap; }
.top-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:9px; border:1px solid transparent; color:#d5e3f1; background:transparent; position:relative; }
.top-icon:hover { background:#0c2038; border-color:#1e4365; }
.badge-dot { position:absolute; right:1px; top:1px; min-width:18px; height:18px; padding:0 5px; display:grid; place-items:center; border-radius:10px; background:#f22e37; color:white; font-size:10px; font-weight:700; }
.top-admin { display:flex; align-items:center; gap:9px; padding-left:10px; }
.top-admin .avatar { width:36px; height:36px; font-size:17px; border-width:1px; }
.admin-main { margin-left:var(--sidebar); padding:calc(var(--topbar) + 16px) 24px 28px; min-height:100vh; }
.page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; margin-bottom:18px; }
.page-head h2 { margin:0; font-size:22px; }
.page-head p { margin:6px 0 0; color:var(--muted); font-size:13px; }

/* CARDS */
.metrics-grid { display:grid; grid-template-columns:repeat(6,minmax(145px,1fr)); gap:14px; margin-bottom:16px; }
.metric-card { min-height:130px; border:1px solid var(--border); border-radius:var(--radius); padding:18px 18px; background:linear-gradient(145deg,rgba(10,30,52,.97),rgba(5,19,35,.97)); box-shadow:0 10px 35px rgba(0,0,0,.16); display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.metric-label { color:#ecf4ff; font-size:14px; font-weight:600; }
.metric-value { margin-top:8px; font-size:34px; line-height:1; letter-spacing:.3px; }
.metric-value small { font-size:13px; margin-left:5px; color:#c9d5e5; }
.metric-sub { margin-top:12px; color:#a1b1c5; font-size:13px; }
.metric-icon { width:58px; height:58px; border-radius:17px; display:grid; place-items:center; font-size:31px; flex:0 0 auto; filter:drop-shadow(0 8px 16px rgba(0,0,0,.2)); }
.metric-icon.blue { color:#47a3ff; background:linear-gradient(145deg,rgba(35,133,255,.23),rgba(31,84,192,.05)); }
.metric-icon.green { color:#18de86; background:linear-gradient(145deg,rgba(20,221,130,.2),rgba(8,106,70,.05)); }
.metric-icon.orange { color:#ffad35; background:linear-gradient(145deg,rgba(255,157,34,.2),rgba(120,75,10,.04)); }
.metric-icon.purple { color:#9b70ff; background:linear-gradient(145deg,rgba(139,88,255,.22),rgba(72,40,130,.05)); }
.metric-icon.gray { color:#8595af; background:linear-gradient(145deg,rgba(116,136,164,.18),rgba(40,55,75,.05)); }
.panel { border:1px solid var(--border); border-radius:var(--radius); background:linear-gradient(145deg,rgba(8,25,44,.98),rgba(4,17,31,.98)); box-shadow:0 10px 35px rgba(0,0,0,.14); }
.panel-title { margin:0 0 16px; font-size:17px; }
.dashboard-middle { display:grid; grid-template-columns:1.05fr 1.55fr 1fr; gap:14px; margin-bottom:16px; }
.dashboard-panel { min-height:280px; padding:20px; }
.donut-wrap { display:flex; align-items:center; justify-content:center; gap:28px; min-height:210px; }
.donut { width:156px; height:156px; border-radius:50%; display:grid; place-items:center; position:relative; background:conic-gradient(#18d478 0 72%, #ff9e25 72% 75%, #52647e 75% 100%); }
.donut::before { content:""; width:104px; height:104px; border-radius:50%; background:#07182b; box-shadow:inset 0 0 25px rgba(0,0,0,.25); }
.donut-center { position:absolute; text-align:center; }
.donut-center strong { display:block; font-size:31px; }
.donut-center span { color:#a5b4c5; font-size:12px; }
.legend { display:flex; flex-direction:column; gap:15px; font-size:13px; }
.legend-row { display:grid; grid-template-columns:12px 1fr auto; gap:8px; align-items:center; min-width:160px; }
.legend-dot { width:8px; height:8px; border-radius:50%; }
.map-panel { position:relative; overflow:hidden; }
.map-panel img { width:100%; height:225px; object-fit:contain; opacity:.96; }
.map-ranking { position:absolute; right:16px; bottom:16px; width:145px; border:1px solid #1f4164; background:rgba(6,24,42,.88); border-radius:10px; padding:12px; backdrop-filter:blur(8px); }
.map-ranking h4 { margin:0 0 10px; color:#4aa8ff; font-size:13px; }
.rank-row { display:flex; justify-content:space-between; gap:8px; padding:5px 0; color:#c7d6e7; font-size:12px; }
.rank-row b { color:#5baeff; margin-right:5px; }
.type-donut { background:conic-gradient(#199df7 0 48%,#12d07b 48% 100%); }

/* TOOLBAR + TABLE */
.toolbar { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin-bottom:14px; }
.toolbar .input, .toolbar .select { width:auto; min-width:150px; height:42px; background:#07182b; }
.toolbar .search { min-width:300px; }
.toolbar-spacer { flex:1; }
.btn { height:42px; padding:0 18px; border-radius:8px; border:1px solid #244867; color:#dce9f6; background:#0a1c31; display:inline-flex; align-items:center; justify-content:center; gap:8px; font-weight:600; }
.btn:hover { border-color:#2b7dcc; background:#0b2440; }
.btn-primary { border-color:#1677ff; background:linear-gradient(90deg,#0b5bd8,#0d75ff); color:#fff; box-shadow:0 8px 22px rgba(7,97,230,.18); }
.btn-danger { border-color:#88323b; background:#2c1118; color:#ff8790; }
.btn-success { border-color:#1c7552; background:#0b2b20; color:#3fe09b; }
.btn-sm { height:34px; padding:0 12px; font-size:12px; }
.table-panel { padding:18px; }
.table-title-row { display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; gap:12px; }
.table-title-row h3 { margin:0; font-size:17px; }
.table-wrap { overflow:auto; border:1px solid rgba(37,69,99,.5); border-radius:10px; }
table { width:100%; border-collapse:collapse; min-width:980px; }
th, td { text-align:left; padding:14px 14px; border-bottom:1px solid rgba(38,66,94,.55); white-space:nowrap; }
th { background:#0d2339; color:#aabbd0; font-size:12px; font-weight:600; }
td { color:#dce6f2; font-size:13px; }
tbody tr:hover { background:rgba(18,51,82,.3); }
.table-link { color:#2aa2ff; }
.status { display:inline-flex; align-items:center; gap:7px; font-weight:700; }
.status::before { content:""; width:8px; height:8px; border-radius:50%; background:currentColor; box-shadow:0 0 10px currentColor; }
.status.online,.status.active { color:var(--green); }
.status.warning { color:var(--orange); }
.status.offline,.status.disabled { color:#7689a4; }
.role-pill,.tag { display:inline-flex; align-items:center; height:25px; border-radius:6px; padding:0 9px; font-size:11px; border:1px solid #1d5186; background:#0d2a49; color:#54a9ff; }
.role-pill.admin { border-color:#6043b4; background:#2b1c57; color:#a985ff; }
.tag.new { color:#d8c5ff; background:#4424a7; border-color:#744fff; }
.action-row { display:flex; align-items:center; gap:8px; }
.icon-btn { border:0; background:transparent; color:#92b0ce; width:30px; height:30px; display:grid; place-items:center; border-radius:6px; }
.icon-btn:hover { background:#102944; color:#36a7ff; }
.icon-btn.danger:hover { color:#ff6672; background:#35151b; }
.pagination { display:flex; justify-content:flex-end; align-items:center; gap:7px; padding-top:15px; color:#a6b5c7; font-size:12px; }
.page-btn { min-width:36px; height:36px; border:1px solid #1e3d5b; border-radius:6px; background:#081a2d; color:#cdd9e7; }
.page-btn.active { background:#0b65ed; border-color:#1a7bff; color:#fff; }

/* USER MANAGEMENT */
.user-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:14px; }
.summary-card { min-height:126px; display:flex; align-items:center; gap:22px; padding:20px 26px; }
.summary-icon { width:70px; height:70px; border-radius:22px; display:grid; place-items:center; font-size:36px; }
.summary-content strong { font-size:31px; display:block; margin:5px 0 6px; }
.summary-content span { color:#a5b5c8; font-size:13px; }

/* DEVICE DETAIL */
.detail-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:14px; margin-bottom:14px; }
.info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
.info-item { padding:12px 0; border-bottom:1px solid rgba(51,82,113,.28); }
.info-item label { display:block; color:#7e94af; font-size:12px; margin-bottom:5px; }
.info-item strong { font-size:14px; }
.switch-list { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.switch-card { border:1px solid #1b3a58; border-radius:10px; padding:14px; background:#081b30; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.switch { position:relative; width:46px; height:25px; background:#31435a; border-radius:999px; border:0; transition:.18s; }
.switch::after { content:""; position:absolute; width:19px; height:19px; left:3px; top:3px; border-radius:50%; background:white; transition:.18s; }
.switch.on { background:#0cbf73; }
.switch.on::after { transform:translateX(21px); }
.range-row { display:grid; grid-template-columns:120px 1fr 42px; align-items:center; gap:12px; padding:11px 0; }
.range-row input[type=range] { width:100%; accent-color:#197cff; }
.slot-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.slot-card { border:1px solid #1c3e60; border-radius:11px; padding:14px; background:linear-gradient(145deg,#091f36,#061628); min-height:215px; }
.slot-card.empty { opacity:.72; }
.slot-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.slot-no { font-size:18px; font-weight:800; color:#58aeff; }
.slot-meta { display:grid; grid-template-columns:1fr 1fr; gap:7px 12px; font-size:12px; color:#a7b6c8; margin:11px 0; }
.slot-code { color:#e8f2ff; font-family:Consolas,monospace; font-size:12px; }
.slot-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.slot-actions .btn { height:30px; padding:0 9px; font-size:11px; }

/* GENERIC */
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.content-card { padding:20px; }
.empty-state { min-height:240px; display:grid; place-items:center; text-align:center; color:#8196b0; }
.empty-state strong { display:block; color:#dbe8f5; font-size:20px; margin-bottom:8px; }
.alert-list { display:flex; flex-direction:column; gap:9px; }
.alert-item { display:grid; grid-template-columns:90px 120px 1fr 170px; gap:14px; align-items:center; padding:13px 14px; border:1px solid #1b3854; border-radius:9px; background:#081b30; font-size:13px; }
.code { font-family:Consolas,"SFMono-Regular",monospace; color:#82c3ff; }

/* MODAL / TOAST */
.modal-backdrop { position:fixed; z-index:100; inset:0; background:rgba(0,4,10,.72); display:grid; place-items:center; padding:20px; backdrop-filter:blur(6px); }
.modal { width:min(620px,100%); max-height:90vh; overflow:auto; border:1px solid #27527b; border-radius:15px; background:#07182b; box-shadow:0 24px 100px rgba(0,0,0,.55); }
.modal-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:18px 20px; border-bottom:1px solid #193b5b; }
.modal-head h3 { margin:0; }
.modal-body { padding:20px; }
.modal-foot { display:flex; justify-content:flex-end; gap:10px; padding:15px 20px; border-top:1px solid #193b5b; }
.close-btn { background:transparent; border:0; color:#a8b9cd; font-size:24px; }
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
.form-grid .full { grid-column:1/-1; }
.form-group label { display:block; margin-bottom:7px; color:#a7b8cb; font-size:13px; }
.form-group .input,.form-group .select,.form-group textarea { width:100%; min-height:42px; }
.form-group textarea { min-height:88px; resize:vertical; }
.toast-wrap { position:fixed; z-index:120; right:22px; top:92px; display:flex; flex-direction:column; gap:10px; }
.toast { min-width:270px; max-width:420px; padding:14px 16px; border-radius:9px; border:1px solid #285276; background:#0a2139; box-shadow:0 16px 40px rgba(0,0,0,.35); color:#e7f1fb; }
.toast.success { border-color:#1e7956; }
.toast.error { border-color:#8e3440; }

@media (max-width: 1350px) {
  :root { --sidebar: 238px; }
  .metrics-grid { grid-template-columns:repeat(3,1fr); }
  .dashboard-middle { grid-template-columns:1fr 1.5fr; }
  .dashboard-middle > :last-child { grid-column:1/-1; }
  .slot-grid { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 960px) {
  .admin-sidebar { width:76px; padding:18px 10px; }
  .brand-wrap img { width:52px; height:52px; object-fit:cover; object-position:left; }
  .nav-link { justify-content:center; padding:0; }
  .nav-link span:not(.nav-icon), .nav-arrow, .admin-profile > div, .admin-bottom-link span { display:none; }
  .admin-card { padding:10px; }
  .admin-topbar { left:76px; }
  .admin-main { margin-left:76px; }
  .metrics-grid,.user-summary { grid-template-columns:repeat(2,1fr); }
  .dashboard-middle,.detail-grid,.grid-2,.grid-3 { grid-template-columns:1fr; }
  .dashboard-middle > :last-child { grid-column:auto; }
  .slot-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 640px) {
  .login-card { padding:38px 22px 30px; border-radius:20px; }
  .login-card h1 { font-size:31px; margin-bottom:28px; }
  .login-subbrand { font-size:15px; margin-bottom:30px; }
  .form-field input { min-height:58px; font-size:16px; }
  .login-row { margin-bottom:28px; }
  .admin-sidebar { display:none; }
  .admin-topbar { left:0; padding:0 14px; }
  .admin-main { margin-left:0; padding:calc(var(--topbar) + 12px) 12px 22px; }
  .top-clock,.top-admin .admin-role { display:none; }
  .metrics-grid,.user-summary,.slot-grid,.switch-list,.form-grid { grid-template-columns:1fr; }
  .dashboard-panel { min-height:auto; }
  .donut-wrap { flex-direction:column; }
  .toolbar .search,.toolbar .input,.toolbar .select { width:100%; min-width:0; }
  .toolbar-spacer { display:none; }
  .alert-item { grid-template-columns:1fr; }
}

/* CSP-safe utility classes: avoid inline style/script requirements */
.flex-actions { display:flex; gap:10px; margin-top:15px; flex-wrap:wrap; }
.mb-0 { margin-bottom:0 !important; }
.mt-14 { margin-top:14px !important; }
.mt-18 { margin-top:18px !important; }
.mt-20 { margin-top:20px !important; }
.text-center { text-align:center !important; }
.title-28 { font-size:28px !important; }
.logout-button { width:100%; border:0; background:transparent; text-align:left; cursor:pointer; }
.code-break { word-break:break-all; }
.tag-gap { margin-left:6px; }
.pagination-total { margin-right:auto; }
.summary-icon.purple { color:#9566ff; background:rgba(149,102,255,.09); }
.summary-icon.green { color:#16dc84; background:rgba(22,220,132,.09); }
.summary-icon.blue { color:#4ca7ff; background:rgba(76,167,255,.09); }
.summary-icon.orange { color:#ff9f26; background:rgba(255,159,38,.09); }
.user-placeholder-card { text-align:center; }

.donut-svg { width:156px; height:156px; transform:rotate(-90deg); flex:0 0 auto; }
.donut-svg circle { fill:none; stroke-width:8; }
.donut-track { stroke:#172b42; }
.donut-segment { stroke-linecap:butt; }
.donut-segment.green { stroke:#18d478; }
.donut-segment.orange { stroke:#ff9e25; }
.donut-segment.gray { stroke:#52647e; }
.donut-segment.blue { stroke:#199df7; }
.donut-segment.type-green { stroke:#12d07b; }
.donut-svg-wrap { position:relative; width:156px; height:156px; display:grid; place-items:center; }
.donut-svg-wrap .donut-center { position:absolute; inset:0; display:grid; place-content:center; text-align:center; transform:none; }
.legend-dot.green { background:#18d478; }
.legend-dot.orange { background:#ff9e25; }
.legend-dot.gray { background:#52647e; }
.legend-dot.blue { background:#199df7; }
.legend-dot.type-green { background:#12d07b; }


/* =========================================================
   V0.2 LIGHT / RESPONSIVE ADMIN THEME
   ========================================================= */
:root {
  color-scheme: light;
  --bg:#f4f7fb; --bg2:#eef3f8; --panel:#ffffff; --panel-2:#f8fafc; --panel-3:#f0f5fb;
  --border:#dfe7f1; --border-soft:rgba(73,101,132,.13); --text:#1d2a3a; --muted:#6d7f94; --muted-2:#8c9aac;
  --blue:#1677ff; --blue2:#2b8cff; --cyan:#3bbcf7; --green:#13a66a; --orange:#e89017; --red:#e34d59; --purple:#7558d9;
  --shadow:0 8px 28px rgba(35,55,80,.08); --radius:12px; --sidebar:230px; --topbar:68px;
}
html,body{background:#f4f7fb;color:var(--text);overflow-x:hidden}
body{min-width:320px}
.admin-sidebar{background:#fff;border-right:1px solid #e2e9f1;padding:18px 14px;box-shadow:2px 0 16px rgba(40,65,94,.04)}
.brand-wrap{border-bottom:1px solid #edf1f5}.nav-link{color:#425267;min-height:48px}.nav-link:hover{background:#f2f6fb;color:#1e5fab}.nav-link.active{background:#eaf3ff;color:#116ce2;box-shadow:none;font-weight:700}.nav-icon{color:inherit}.nav-arrow{color:#91a0b2}
.admin-card{border:1px solid #e3eaf2;background:#f9fbfd}.avatar{background:#e9f2ff;border-color:#60a6ff;color:#347fdb}.admin-name{color:#1c2a3a}.admin-role{color:#2c7bd5}.admin-bottom-link{color:#4d5c6d;border-top-color:#edf1f5}
.admin-topbar{background:rgba(255,255,255,.94);border-bottom:1px solid #e4ebf3;backdrop-filter:blur(12px);box-shadow:0 2px 12px rgba(40,65,94,.03)}
.page-title,.hamburger{color:#1e2d3e}.hamburger{border:0;background:transparent;border-radius:8px;padding:8px 9px;line-height:1;cursor:pointer}.hamburger:hover{background:#eff5fb}.top-clock{color:#6d7b8c}.top-icon{color:#607086}.top-icon:hover{background:#f1f5f9;border-color:#dfe7ef}
.admin-main{padding:calc(var(--topbar) + 14px) clamp(14px,1.5vw,24px) 28px;max-width:100%;min-width:0}
.metric-card,.panel{background:#fff;border-color:#e1e8f0;box-shadow:var(--shadow)}.metric-card{min-height:108px;padding:15px 16px;color:#1d2a3a}.metric-label{color:#314155}.metric-value{font-size:30px}.metric-value small{color:#65768a}.metric-sub{color:#7b8a9b;margin-top:9px}.metric-card.clickable{transition:.18s transform,.18s box-shadow,.18s border-color}.metric-card.clickable:hover{transform:translateY(-2px);border-color:#b9d7ff;box-shadow:0 10px 28px rgba(30,100,190,.12)}
.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px}.dashboard-middle{grid-template-columns:minmax(250px,.95fr) minmax(360px,1.35fr) minmax(250px,.95fr);gap:12px}.dashboard-panel{min-height:250px;padding:17px}.panel-title{color:#243449}.panel-title-row{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.panel-hint{margin:5px 0 0;color:#8492a4;font-size:12px;line-height:1.55}.map-panel img{opacity:.74;filter:saturate(.85) contrast(.9)}.map-ranking{background:rgba(255,255,255,.92);border-color:#e2e9f1;color:#26374b}.rank-row{border-color:#edf1f5}.donut-track{stroke:#e6edf5}.donut-center strong{color:#1d2a3a}.donut-center span,.legend-row{color:#607287}
.table-panel{padding:14px}.table-title-row h3{color:#25364a}.table-wrap{overflow:auto;max-width:100%;border:1px solid #e7edf3;border-radius:9px}.table-wrap table{min-width:900px}.table-wrap th{background:#f4f7fa;color:#607084;border-bottom:1px solid #e0e8f0}.table-wrap td{color:#2c3b4c;border-bottom:1px solid #edf1f5}.table-wrap tbody tr:hover{background:#f8fbff}.table-link{color:#1677d9!important}.toolbar{gap:10px}.input,.select,.form-field input,.form-field select,.form-field textarea{background:#fff;color:#25364a;border-color:#d5dfea}.input:focus,.select:focus,.form-field input:focus,.form-field select:focus,.form-field textarea:focus{background:#fff;border-color:#5da2ee;box-shadow:0 0 0 3px rgba(48,132,224,.10)}
.btn{background:#fff;border-color:#d8e2ec;color:#42556a}.btn:hover{background:#f4f8fc;border-color:#b9cfe5}.btn-primary{background:#1677ff;border-color:#1677ff;color:#fff}.btn-primary:hover{background:#0f68e5;border-color:#0f68e5}.btn-danger{color:#d64755;border-color:#efc7cc;background:#fff}.page-btn{background:#fff;border-color:#dce5ee;color:#516176}.page-btn.active{background:#1677ff;color:#fff;border-color:#1677ff}
.role-pill,.tag{background:#eef6ff;color:#1c72c8;border-color:#c9e2fa}.role-pill.admin{background:#f1edff;color:#6e52c8;border-color:#d9cdfc}.tag.new{background:#f3efff;color:#7151d7;border-color:#ddd2ff}.status::before{box-shadow:none}
.summary-card{background:#fff}.summary-content span{color:#728397}.switch-card,.slot-card,.alert-item{background:#fbfcfe;border-color:#e1e8f0}.slot-code{color:#25364a}.info-item{border-color:#edf1f5}.info-item label{color:#7a899b}.modal-backdrop{background:rgba(27,39,55,.34)}.modal{background:#fff;border-color:#d9e3ee;box-shadow:0 26px 80px rgba(25,45,70,.22)}.modal-head,.modal-foot{border-color:#e7edf3}.form-group label{color:#5b6e82}.close-btn{color:#6f7e90}.toast{background:#fff;color:#27394d;border-color:#d6e1ec;box-shadow:0 14px 36px rgba(32,56,82,.18)}
.login-page{background:linear-gradient(145deg,#f5f8fc,#edf4fb)}.login-page::before{background-image:radial-gradient(circle at 50% 14%,rgba(54,132,220,.09),transparent 36%),radial-gradient(circle at 85% 78%,rgba(80,160,230,.07),transparent 28%)}.login-card{background:#fff;border-color:#c7ddf4;box-shadow:0 24px 70px rgba(42,74,110,.15)}.login-card::after{border-color:#edf2f7}.login-card h1{color:#203044}.login-subbrand{color:#728397}.form-field input{background:#f9fbfd;color:#25364a;border-color:#d7e1ec}.form-icon,.password-eye{color:#7d8da0}.checkbox{color:#526479}.secure-line,.login-footer{color:#7c8ca0}.secure-line::before,.secure-line::after{background:#dfe7ef}
.status.offline,.status.disabled{color:#8a98aa}.text-green{color:#13885a}.text-orange{color:#d77e08}.text-red{color:#d33c4a}.muted{color:#75869a}

/* sidebar collapse for common 24-inch screens / Windows scaling */
body.sidebar-collapsed{--sidebar:78px}.sidebar-collapsed .admin-sidebar{padding-left:10px;padding-right:10px}.sidebar-collapsed .brand-wrap img{width:52px;height:48px;object-fit:cover;object-position:left}.sidebar-collapsed .nav-link{justify-content:center;padding:0}.sidebar-collapsed .nav-label,.sidebar-collapsed .nav-arrow,.sidebar-collapsed .admin-profile>div,.sidebar-collapsed .admin-bottom-link span:last-child{display:none}.sidebar-collapsed .admin-card{padding:10px}.sidebar-collapsed .admin-bottom-link{justify-content:center}.sidebar-collapsed .admin-topbar{left:78px}.sidebar-collapsed .admin-main{margin-left:78px}

@media (max-width:1500px){.metrics-grid{grid-template-columns:repeat(3,minmax(155px,1fr))}.dashboard-middle{grid-template-columns:1fr 1.35fr}.dashboard-middle>:last-child{grid-column:1/-1}.admin-main{padding-left:16px;padding-right:16px}.metric-card{min-height:102px}.dashboard-panel{min-height:230px}}
@media (max-width:1080px){body{--sidebar:78px}.admin-sidebar{width:78px;padding:14px 9px}.brand-wrap img{width:52px;height:48px;object-fit:cover;object-position:left}.nav-link{justify-content:center;padding:0}.nav-label,.nav-arrow,.admin-profile>div,.admin-bottom-link span:last-child{display:none}.admin-card{padding:9px}.admin-bottom-link{justify-content:center}.admin-topbar{left:78px}.admin-main{margin-left:78px}.metrics-grid,.user-summary{grid-template-columns:repeat(2,minmax(150px,1fr))}.dashboard-middle,.detail-grid,.grid-2,.grid-3{grid-template-columns:1fr}.dashboard-middle>:last-child{grid-column:auto}.toolbar{align-items:stretch}.toolbar .search{flex:1 1 260px}}
@media (max-width:700px){.admin-sidebar{display:none}.admin-topbar{left:0;height:60px;padding:0 12px}.admin-main,.sidebar-collapsed .admin-main{margin-left:0;padding:74px 10px 20px}.metrics-grid,.user-summary,.slot-grid,.switch-list,.form-grid{grid-template-columns:1fr}.top-clock,.top-admin .admin-role{display:none}.page-title{font-size:17px}.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar .search,.toolbar .input,.toolbar .select{grid-column:1/-1;width:100%}.toolbar-spacer{display:none}.table-wrap table{min-width:760px}.login-card{padding:34px 20px 28px}.login-card h1{font-size:30px}.login-logo{max-width:300px}.modal{max-height:92vh}}


/* V0.3 查询/筛选控件统一浅色：覆盖旧版 .toolbar 的深色高优先级规则 */
body .toolbar .input,
body .toolbar .select,
body .toolbar input.input,
body .toolbar select.select {
  background:#fff;
  color:#25364a;
  border:1px solid #d5dfea;
  box-shadow:none;
  color-scheme:light;
}
body .toolbar .input::placeholder { color:#9aa8b8; opacity:1; }
body .toolbar .input:focus,
body .toolbar .select:focus {
  background:#fff;
  color:#25364a;
  border-color:#5da2ee;
  box-shadow:0 0 0 3px rgba(48,132,224,.10);
  outline:none;
}
body .toolbar .select option { background:#fff; color:#25364a; }
.form-group .select:disabled { background:#f4f7fa; color:#9aa8b8; cursor:not-allowed; }

/* =========================================================
   V0.4 - Windows 下拉框文字完整显示 + 中国地图布局优化
   ========================================================= */
/* 旧版 toolbar 同时设置 height:42px 和 13px 上下 padding，Windows 中文字体会被裁切。
   工具栏控件改成固定高度 + 0 垂直 padding，所有查询/筛选页统一生效。 */
body .toolbar .input,
body .toolbar input.input,
body .toolbar .select,
body .toolbar select.select {
  height:42px;
  min-height:42px;
  line-height:40px;
  padding-top:0;
  padding-bottom:0;
  font-size:14px;
  vertical-align:middle;
}
body .toolbar .input,
body .toolbar input.input { padding-left:14px; padding-right:14px; }
body .toolbar .select,
body .toolbar select.select {
  min-width:148px;
  padding-left:14px;
  padding-right:38px;
  white-space:nowrap;
}

/* 首页中国地图：地图与 TOP 省份并排，不再让排名浮层遮挡地图。 */
.map-panel { overflow:hidden; }
.map-content { display:grid; grid-template-columns:minmax(0,1fr) 145px; gap:16px; align-items:center; min-height:204px; }
.map-visual { position:relative; min-width:0; width:100%; }
.map-panel .map-visual img { display:block; width:100%; height:auto; max-height:218px; object-fit:contain; opacity:1; filter:none; }
.map-ranking { position:static; right:auto; bottom:auto; width:auto; min-width:145px; background:#f8fbff; border:1px solid #dfe9f4; color:#26374b; box-shadow:none; }
.map-ranking h4 { color:#2577c9; }
.rank-row { color:#566b82; }
.rank-row b { color:#2b84d8; }
.province-points { position:absolute; inset:0; pointer-events:none; }
.province-point { position:absolute; width:9px; height:9px; border-radius:50%; background:#1684e8; border:2px solid #fff; box-shadow:0 0 0 4px rgba(22,132,232,.13),0 2px 7px rgba(28,91,151,.25); transform:translate(-50%,-50%); }
.province-point::after { content:attr(data-label); position:absolute; left:50%; top:-27px; transform:translateX(-50%); white-space:nowrap; padding:3px 6px; border-radius:5px; background:rgba(37,57,80,.92); color:#fff; font-size:10px; opacity:0; transition:.15s; }
.map-visual:hover .province-point::after { opacity:1; }
@media (max-width:1200px){.map-content{grid-template-columns:1fr 130px}.map-ranking{min-width:130px}}
@media (max-width:760px){.map-content{grid-template-columns:1fr}.map-ranking{width:100%;min-width:0}.map-panel .map-visual img{max-height:230px}.map-visual:hover .province-point::after{opacity:0}}

/* =========================================================
   V0.5 普通用户单页移动端：4种可选主题
   默认：温暖卡片风（WARM）
   ========================================================= */
.user-mobile-page{
  --u-bg:#fff8ec;--u-bg2:#fff4dd;--u-panel:#fffdf9;--u-card:#fffaf2;--u-border:#f1dfbf;
  --u-text:#3d2a18;--u-muted:#9a7a58;--u-accent:#d8862d;--u-accent2:#ff9f32;--u-accent-soft:#fff0cf;
  --u-good:#19b963;--u-mid:#f4a526;--u-low:#ff5f50;--u-empty:#cfd5dc;--u-blue:#3188ff;
  --u-shadow:0 8px 26px rgba(123,81,34,.08);--u-radius:18px;
  margin:0;min-height:100vh;background:linear-gradient(180deg,var(--u-bg2),var(--u-bg) 28%,var(--u-bg));
  color:var(--u-text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
.user-mobile-page[data-user-theme="fresh"]{
  --u-bg:#f7fbff;--u-bg2:#edf6ff;--u-panel:#fff;--u-card:#fff;--u-border:#d9e9fb;
  --u-text:#183251;--u-muted:#7189a5;--u-accent:#1677ff;--u-accent2:#42a5ff;--u-accent-soft:#eaf4ff;
  --u-shadow:0 9px 28px rgba(27,106,190,.09);
}
.user-mobile-page[data-user-theme="tech"]{
  color-scheme:dark;--u-bg:#041523;--u-bg2:#061d30;--u-panel:#072239;--u-card:#082940;--u-border:#12445e;
  --u-text:#f4fbff;--u-muted:#8eb4c7;--u-accent:#00d8e6;--u-accent2:#1b9fff;--u-accent-soft:#0b344a;
  --u-good:#28e27e;--u-mid:#d2f12b;--u-low:#ff594f;--u-empty:#315064;--u-blue:#00c8ff;
  --u-shadow:0 10px 34px rgba(0,0,0,.22);
}
.user-mobile-page[data-user-theme="minimal"]{
  --u-bg:#f7f8fa;--u-bg2:#f2f4f7;--u-panel:#fff;--u-card:#fff;--u-border:#e5e8ed;
  --u-text:#202b3a;--u-muted:#8792a1;--u-accent:#243246;--u-accent2:#3e4d62;--u-accent-soft:#f1f3f6;
  --u-shadow:0 6px 22px rgba(32,43,58,.06);
}
.user-app{width:min(100%,480px);min-height:100vh;margin:0 auto;padding:0 14px calc(88px + env(safe-area-inset-bottom));box-sizing:border-box;position:relative}
.user-header{display:flex;align-items:center;justify-content:space-between;padding:18px 2px 12px;position:sticky;top:0;z-index:12;background:linear-gradient(180deg,var(--u-bg2) 0%,color-mix(in srgb,var(--u-bg2) 92%,transparent) 72%,transparent 100%);backdrop-filter:blur(12px)}
.user-brand{display:flex;align-items:center;gap:9px}.user-mango{font-size:31px;filter:drop-shadow(0 3px 6px rgba(0,0,0,.1))}.user-brand-title{font-size:21px;font-weight:900;letter-spacing:.3px}.user-brand-sub{font-size:11px;color:var(--u-muted);margin-top:2px}.user-lightning{color:#ff9e14;margin-left:3px}
.user-icon-button{width:42px;height:42px;border:1px solid var(--u-border);background:var(--u-panel);border-radius:13px;color:var(--u-text);font-size:20px;box-shadow:var(--u-shadow);cursor:pointer}
.user-main{display:flex;flex-direction:column;gap:12px}.user-device-card,.user-control-card,.user-quiet-row,.user-panel{background:var(--u-panel);border:1px solid var(--u-border);border-radius:var(--u-radius);box-shadow:var(--u-shadow)}
.user-device-card{padding:15px;overflow:hidden;position:relative}.user-device-card::after{content:"";position:absolute;width:170px;height:170px;border-radius:50%;right:-65px;top:-80px;background:radial-gradient(circle,var(--u-accent-soft),transparent 67%);pointer-events:none}
.user-device-topline{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;position:relative;z-index:1}.user-device-name-button{border:0;background:transparent;padding:0;color:var(--u-text);font-size:20px;font-weight:900;display:flex;align-items:center;gap:7px;cursor:pointer}.user-device-meta{display:flex;gap:5px;color:var(--u-muted);font-size:12px;margin-top:5px}.user-online-pill{font-size:12px;font-weight:800;border-radius:999px;padding:5px 9px;background:#e8f8ef;color:#12a35b}.user-online-pill.offline{background:#f0f2f5;color:#7d8794}.user-online-pill.warning{background:#fff3dc;color:#d18212}
.user-device-hero{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:end;margin-top:14px;position:relative;z-index:1}.user-device-illustration{width:102px;height:124px;border-radius:17px;background:linear-gradient(145deg,#fff,#e9edf2);border:1px solid rgba(120,135,150,.18);box-shadow:10px 14px 24px rgba(58,72,88,.11),inset -8px -10px 18px rgba(153,166,178,.12);padding:13px 10px 10px;box-sizing:border-box;transform:perspective(300px) rotateY(-4deg)}
[data-user-theme="tech"] .user-device-illustration{background:linear-gradient(145deg,#eafaff,#9dc5d4);box-shadow:0 0 28px rgba(0,208,238,.25)}
.udi-screen{width:46px;height:19px;margin:0 auto 9px;border-radius:5px;background:#112737;color:#35c8ff;font-size:11px;display:grid;place-items:center;box-shadow:inset 0 0 8px rgba(22,155,255,.55)}.udi-slots{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.udi-slots i{height:20px;border-radius:4px;background:linear-gradient(180deg,#48545c,#1d252a);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}
.user-device-metrics{display:grid;grid-template-columns:1.1fr .85fr 1fr;border-radius:14px;background:color-mix(in srgb,var(--u-accent-soft) 52%,var(--u-panel));border:1px solid color-mix(in srgb,var(--u-border) 76%,var(--u-accent));overflow:hidden}.user-device-metrics>div{text-align:center;padding:11px 4px;min-width:0}.user-device-metrics>div+div{border-left:1px solid var(--u-border)}.user-device-metrics strong{font-size:21px}.user-device-metrics span{font-weight:700;margin-left:2px}.user-device-metrics small{display:block;color:var(--u-muted);font-size:10px;margin-top:4px;white-space:nowrap}
.user-eject-button{height:58px;border:0;border-radius:18px;background:linear-gradient(100deg,var(--u-accent),var(--u-accent2));color:#fff;font-size:18px;font-weight:900;box-shadow:0 10px 20px color-mix(in srgb,var(--u-accent) 23%,transparent);cursor:pointer}.user-eject-button span{margin-right:7px}.user-eject-button:disabled{opacity:.55;cursor:not-allowed}
.user-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.user-feature{min-height:64px;background:var(--u-panel);border:1px solid var(--u-border);border-radius:15px;color:var(--u-text);display:grid;grid-template-columns:34px 1fr 32px;align-items:center;text-align:left;padding:9px 10px;box-shadow:var(--u-shadow);cursor:pointer}.user-feature:disabled{opacity:.55}.user-feature-icon{font-size:21px}.user-feature>span:nth-child(2){font-size:13px;font-weight:800}.user-mini-switch{display:block;width:31px;height:18px;background:#cfd6dd;border-radius:999px;position:relative;transition:.18s}.user-mini-switch::after{content:"";position:absolute;width:14px;height:14px;top:2px;left:2px;background:#fff;border-radius:50%;box-shadow:0 1px 5px rgba(0,0,0,.22);transition:.18s}.user-feature.is-on .user-mini-switch{background:var(--u-accent)}.user-feature.is-on .user-mini-switch::after{transform:translateX(13px)}
.user-control-card{padding:6px 14px}.user-range-row{min-height:72px;display:grid;grid-template-columns:26px 1fr 44px;gap:8px;align-items:center}.user-range-row+.user-range-row{border-top:1px solid var(--u-border)}.user-range-icon{font-size:18px}.user-range-main{display:grid;gap:8px}.user-range-main b{font-size:13px}.user-range-row strong{font-size:12px;text-align:right}.user-range-row input[type="range"]{width:100%;accent-color:var(--u-accent);margin:0}.user-range-row input:disabled{opacity:.45}
.user-quiet-row{min-height:56px;padding:0 14px;display:flex;justify-content:space-between;align-items:center;color:var(--u-text);cursor:pointer}.user-quiet-left{display:flex;align-items:center;gap:9px}.user-moon{color:var(--u-accent);font-size:22px}.user-quiet-row>span:last-child{font-size:12px;color:var(--u-muted);display:flex;align-items:center;gap:7px}.user-chevron{opacity:.7}
.user-panel{padding:14px}.user-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:10px}.user-panel-head h2{font-size:15px;margin:0}.user-panel-head span{font-size:10px;color:var(--u-muted)}
.user-slot-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px 6px}.user-slot-grid.eight{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 9px}.user-slot{border:0;background:transparent;color:var(--u-text);display:grid;place-items:center;gap:4px;padding:0;cursor:pointer;min-width:0}.user-slot-no{font-size:11px;font-weight:800}.user-battery{width:19px;height:30px;border:2px solid currentColor;border-radius:4px;position:relative;color:var(--u-good);box-sizing:border-box;background:transparent}.user-battery::before{content:"";position:absolute;width:7px;height:3px;border-radius:2px 2px 0 0;background:currentColor;top:-5px;left:4px}.user-battery::after{content:"";position:absolute;left:2px;right:2px;bottom:2px;height:var(--fill,50%);max-height:22px;background:currentColor;border-radius:1px}.user-battery.mid{color:var(--u-mid)}.user-battery.low{color:var(--u-low)}.user-battery.empty{color:var(--u-empty)}.user-battery.empty::after{display:none}.user-battery.charging{color:var(--u-blue)}.user-slot-percent{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.user-slot.warning .user-slot-no{color:var(--u-low)}
.user-slot-legend{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px;padding-top:10px;border-top:1px solid var(--u-border);color:var(--u-muted);font-size:9px}.user-slot-legend span{display:flex;align-items:center;gap:4px}.legend-battery{width:7px;height:11px;border-radius:2px;background:var(--u-good)}.legend-battery.mid{background:var(--u-mid)}.legend-battery.low{background:var(--u-low)}.legend-battery.empty{background:var(--u-empty)}
.user-recent-list{display:grid}.user-recent-item{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;padding:9px 0}.user-recent-item+.user-recent-item{border-top:1px solid var(--u-border)}.user-recent-dot{width:24px;height:24px;border-radius:8px;background:var(--u-accent-soft);display:grid;place-items:center;color:var(--u-accent);font-size:12px}.user-recent-item b{font-size:12px}.user-recent-item small{font-size:10px;color:var(--u-muted)}.user-empty{padding:16px;text-align:center;color:var(--u-muted);font-size:12px}
.user-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.user-status-grid>div{background:var(--u-card);border:1px solid var(--u-border);border-radius:12px;padding:10px;text-align:center}.user-status-grid small{display:block;color:var(--u-muted);font-size:9px;margin-bottom:5px}.user-status-grid strong{font-size:13px}.user-quiet-banner{min-height:72px;padding:12px 16px;border-radius:16px;background:linear-gradient(110deg,var(--u-accent),var(--u-accent2));color:#fff;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--u-shadow)}.user-quiet-banner b,.user-quiet-banner span{display:block}.user-quiet-banner b{font-size:13px}.user-quiet-banner div span{font-size:11px;margin-top:5px;opacity:.85}.quiet-banner-moon{font-size:38px;opacity:.82}
.user-bottom-nav{position:fixed;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,480px);height:70px;padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box;background:color-mix(in srgb,var(--u-panel) 94%,transparent);border-top:1px solid var(--u-border);backdrop-filter:blur(16px);z-index:20;display:grid;grid-template-columns:1fr 1fr;box-shadow:0 -7px 24px rgba(30,50,70,.05)}.user-bottom-nav button{border:0;background:transparent;color:var(--u-muted);display:grid;place-content:center;gap:2px;font-size:18px;cursor:pointer}.user-bottom-nav button b{font-size:11px}.user-bottom-nav button.active{color:var(--u-accent)}
.user-loading{position:fixed;inset:0;background:var(--u-bg);z-index:80;display:grid;place-items:center}.user-loading.hidden{display:none}.user-loading-card{display:grid;place-items:center;gap:10px;color:var(--u-text)}.user-loading-mango{font-size:48px;animation:userBob 1.3s ease-in-out infinite}@keyframes userBob{50%{transform:translateY(-8px) rotate(-4deg)}}
.user-theme-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.user-theme-option{border:1px solid #dfe5ec;background:#fff;color:#263648;border-radius:14px;padding:12px;text-align:left;cursor:pointer;min-height:86px}.user-theme-option b{display:block;font-size:14px}.user-theme-option small{display:block;color:#7e8d9d;font-size:11px;margin-top:5px;line-height:1.45}.user-theme-option.is-selected{border:2px solid #2684ff;box-shadow:0 0 0 3px rgba(38,132,255,.09)}.user-theme-swatch{display:flex;gap:5px;margin-bottom:9px}.user-theme-swatch i{width:16px;height:16px;border-radius:50%;display:block}.theme-fresh i:nth-child(1){background:#1677ff}.theme-fresh i:nth-child(2){background:#eaf4ff}.theme-warm i:nth-child(1){background:#d8862d}.theme-warm i:nth-child(2){background:#fff0cf}.theme-tech i:nth-child(1){background:#031827}.theme-tech i:nth-child(2){background:#00d8e6}.theme-minimal i:nth-child(1){background:#243246}.theme-minimal i:nth-child(2){background:#f2f4f7}
.user-settings-info{display:grid;gap:0;margin-top:14px;border:1px solid #e4e9ef;border-radius:12px;overflow:hidden}.user-settings-info div{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;background:#fff;color:#33465a;font-size:12px}.user-settings-info div+div{border-top:1px solid #edf0f3}.user-settings-info span:first-child{color:#8491a0}.user-settings-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}.user-setting-section-title{font-size:13px;color:#576a7e;margin:3px 0 10px}
.user-slot-detail{display:grid;grid-template-columns:1fr 1fr;gap:10px}.user-slot-detail>div{background:#f7f9fb;border:1px solid #e6ebf1;border-radius:11px;padding:10px}.user-slot-detail small{display:block;color:#8492a2;font-size:10px}.user-slot-detail strong{display:block;color:#26384b;margin-top:5px;font-size:14px}.user-slot-detail .full{grid-column:1/-1}
.user-quiet-form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.user-quiet-form .full{grid-column:1/-1}.user-quiet-toggle{display:flex;align-items:center;justify-content:space-between;background:#f7f9fb;border:1px solid #e2e8ef;border-radius:12px;padding:12px}.user-quiet-toggle input{width:20px;height:20px;accent-color:#1677ff}
@media(min-width:700px){.user-mobile-page{background:linear-gradient(135deg,#eef3f8,#fafcff)}.user-app{margin:18px auto 26px;border:1px solid var(--u-border);border-radius:30px;background:var(--u-bg);box-shadow:0 24px 70px rgba(35,55,80,.14);overflow:hidden}.user-bottom-nav{border-radius:0 0 30px 30px;bottom:26px}.user-header{padding-left:16px;padding-right:16px}.user-main{padding:0 2px}}
@media(max-width:365px){.user-slot-grid{gap-left:3px}.user-device-hero{grid-template-columns:92px 1fr}.user-device-illustration{width:86px;height:110px}.user-device-metrics strong{font-size:18px}.user-feature{grid-template-columns:28px 1fr 29px;padding:8px}.user-feature>span:nth-child(2){font-size:12px}}

/* =========================================================
   V0.6 普通用户体验优化
   - 默认温暖卡片风加入呆萌芒果角色
   - 仓位状态进入独立控制页
   - 我的设置改为手机底部抽屉
   ========================================================= */
.user-warm-stage{display:none;position:relative;height:132px;margin:0 -2px -28px;border-radius:24px;overflow:hidden;pointer-events:none}
[data-user-theme="warm"] .user-warm-stage{display:block;background:linear-gradient(145deg,#fff8dd 0%,#fff0bd 56%,#ffe4a4 100%);box-shadow:inset 0 0 0 1px rgba(229,169,68,.16)}
[data-user-theme="warm"] .user-header{position:relative;top:auto;background:linear-gradient(180deg,#fff8df 0%,rgba(255,248,223,.95) 75%,transparent);backdrop-filter:none;padding-top:15px}
[data-user-theme="warm"] .user-device-card{z-index:2;margin:0 10px;border-color:#f0d7a6;background:rgba(255,255,255,.96);box-shadow:0 14px 30px rgba(151,94,31,.12)}
[data-user-theme="warm"] .user-device-card::after{display:none}
[data-user-theme="warm"] .user-device-hero{display:block;margin-top:12px}
[data-user-theme="warm"] .user-device-illustration{display:none}
[data-user-theme="warm"] .user-device-metrics{grid-template-columns:1fr .9fr 1fr;background:linear-gradient(90deg,#fff6df,#fffaf0);border-color:#f5dfb9}
[data-user-theme="warm"] .user-eject-button{margin:0 10px;background:linear-gradient(105deg,#ffb126 0%,#ff7f2f 55%,#ff693e 100%);box-shadow:0 12px 22px rgba(242,129,41,.22)}
[data-user-theme="warm"] .user-feature-grid,[data-user-theme="warm"] .user-control-card,[data-user-theme="warm"] .user-quiet-row,[data-user-theme="warm"] .user-panel{margin-left:10px;margin-right:10px}

.cute-mango-character{position:absolute;right:24px;top:2px;width:118px;height:124px;border-radius:50% 48% 46% 52% / 55% 54% 46% 45%;background:linear-gradient(145deg,#ffd84f 5%,#ffb92f 56%,#ff9630 100%);box-shadow:0 13px 24px rgba(203,119,26,.2),inset 10px 10px 18px rgba(255,255,255,.24);transform:rotate(-3deg)}
.cute-mango-character::after{content:"";position:absolute;left:46px;bottom:-8px;width:34px;height:13px;border-radius:50%;background:rgba(198,113,24,.12);filter:blur(4px)}
.cute-leaf{position:absolute;background:linear-gradient(145deg,#6dcc48,#2f9f3b);border-radius:100% 0 100% 0;transform-origin:bottom left;box-shadow:inset 2px 2px 4px rgba(255,255,255,.25)}
.cute-leaf.leaf-a{width:43px;height:22px;top:-11px;left:57px;transform:rotate(-17deg)}
.cute-leaf.leaf-b{width:31px;height:16px;top:-6px;left:49px;transform:rotate(14deg) scaleX(-1)}
.cute-eye{position:absolute;top:42px;width:8px;height:11px;border-radius:50%;background:#3f2b21;box-shadow:inset 1px 1px 0 rgba(255,255,255,.25)}
.cute-eye.eye-l{left:37px}.cute-eye.eye-r{right:36px}
.cute-blush{position:absolute;top:60px;width:16px;height:8px;border-radius:50%;background:rgba(255,108,83,.36)}
.cute-blush.blush-l{left:19px}.cute-blush.blush-r{right:18px}
.cute-smile{position:absolute;left:48px;top:58px;width:25px;height:15px;border:4px solid #5e3324;border-top:0;border-left-color:transparent;border-right-color:transparent;border-radius:0 0 50% 50%;box-sizing:border-box}
.cute-smile::after{content:"";position:absolute;left:6px;top:6px;width:8px;height:4px;border-radius:50%;background:#ff7d79}
.cute-arm{position:absolute;top:68px;width:38px;height:12px;background:#b77739;border-radius:20px;z-index:-1}
.cute-arm.arm-l{left:-24px;transform:rotate(-32deg)}.cute-arm.arm-r{right:-23px;transform:rotate(29deg)}
.cute-phone{position:absolute;left:-25px;top:28px;width:31px;height:54px;border-radius:7px;background:#34475c;border:3px solid #34475c;transform:rotate(-12deg);box-shadow:0 5px 10px rgba(52,71,92,.18)}
.cute-phone::before{content:"";position:absolute;inset:4px;border-radius:4px;background:linear-gradient(150deg,#f8fbff,#dfefff)}
.cute-phone i{position:absolute;z-index:1;left:6px;top:13px;font-style:normal;font-size:18px;color:#ff9d19}
.cute-bolt{position:absolute;bottom:15px;left:51px;font-size:22px;color:#fff7d5;filter:drop-shadow(0 2px 2px rgba(150,84,20,.12))}
.warm-bubble{position:absolute;border-radius:50%;background:rgba(255,255,255,.36)}.warm-bubble.bubble-a{width:52px;height:52px;left:20px;top:17px}.warm-bubble.bubble-b{width:26px;height:26px;left:74px;bottom:9px}

.user-panel-link{border:0;background:transparent;color:var(--u-accent);font-size:12px;font-weight:800;padding:8px 0;cursor:pointer}.user-panel-link span{font-size:17px;vertical-align:-1px;margin-left:2px}
.user-slot-head{margin-bottom:12px}
.user-slot{border-radius:11px;padding:5px 2px;transition:transform .15s,background .15s}.user-slot:active{transform:scale(.95)}
[data-user-theme="warm"] .user-slot:hover{background:#fff7e8}
.user-status-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;margin-bottom:12px}
.user-status-head h2{white-space:nowrap}.user-status-head>span{white-space:nowrap;text-align:center}
.user-status-head #last-online{text-align:right}
.user-membership-expiry{justify-self:center;padding:5px 8px;border-radius:999px;background:var(--u-accent-soft);color:var(--u-accent)!important;font-weight:800}.user-membership-expiry.soon{background:#fff0d5;color:#d9820d!important}.user-membership-expiry.expired{background:#ffe7e5;color:#d94c43!important}

/* 手机式“我的设置”底部抽屉 */
.user-sheet-open{overflow:hidden}
.user-sheet-backdrop{position:fixed;inset:0;z-index:100;background:rgba(27,38,50,.34);display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px);padding:0}.user-sheet-backdrop.hidden{display:none}
.user-bottom-sheet{width:min(100%,480px);max-height:min(88vh,760px);background:#f7f8fa;border-radius:24px 24px 0 0;box-shadow:0 -18px 55px rgba(21,33,46,.22);overflow:hidden;animation:userSheetIn .22s ease-out}
@keyframes userSheetIn{from{transform:translateY(100%)}to{transform:translateY(0)}}
.user-sheet-handle{width:42px;height:5px;border-radius:999px;background:#d6dbe1;margin:9px auto 3px}
.user-sheet-head{display:flex;justify-content:space-between;align-items:center;padding:10px 18px 14px;border-bottom:1px solid #e8ebef;background:#fff}.user-sheet-head small{display:block;color:#8c98a5;font-size:10px;margin-bottom:2px}.user-sheet-head h2{margin:0;font-size:21px;color:#233548}.user-sheet-close{border:0;width:36px;height:36px;border-radius:50%;background:#f1f3f5;color:#607080;font-size:27px;line-height:34px;cursor:pointer}
.user-sheet-body{max-height:calc(min(88vh,760px) - 77px);overflow:auto;padding:14px 14px calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.user-mobile-profile-card{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#fff4d2,#fff);border:1px solid #f2dfb4;border-radius:18px;padding:14px;box-shadow:0 7px 22px rgba(89,63,30,.06)}.user-mobile-profile-avatar{width:50px;height:50px;border-radius:16px;background:#ffcf49;display:grid;place-items:center;font-size:30px}.user-mobile-profile-card b{display:block;color:#2b3c4e;font-size:17px}.user-mobile-profile-card small{display:block;color:#8994a0;margin-top:4px;font-size:12px}
.user-mobile-setting-title{font-size:12px;font-weight:700;color:#8b96a2;margin:18px 5px 8px}.user-mobile-setting-group{border-radius:16px;background:#fff;overflow:hidden;border:1px solid #e8ebef}.user-mobile-setting-row{width:100%;border:0;background:#fff;display:grid;grid-template-columns:36px 1fr auto;gap:8px;align-items:center;padding:12px 13px;text-align:left;color:#26384a;min-height:62px}.user-mobile-setting-row+.user-mobile-setting-row{border-top:1px solid #eef0f3}.user-mobile-setting-icon{width:32px;height:32px;border-radius:10px;background:#f5f7f9;display:grid;place-items:center;font-size:16px}.user-mobile-setting-main b{display:block;font-size:14px}.user-mobile-setting-main small{display:block;margin-top:3px;color:#98a2ad;font-size:11px}.user-mobile-setting-arrow{font-size:22px;color:#b0b8c1}
.user-theme-picker-mobile{grid-template-columns:1fr 1fr}.user-theme-picker-mobile .user-theme-option{min-height:82px;padding:11px}

/* 仓位控制独立页 */
.user-slot-control-app{padding-bottom:26px}
.user-subpage-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;min-height:64px;padding:calc(5px + env(safe-area-inset-top)) 8px 5px;background:color-mix(in srgb,var(--u-bg2) 94%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid color-mix(in srgb,var(--u-border) 70%,transparent)}
.user-subpage-back{width:42px;height:42px;border:0;border-radius:13px;background:var(--u-panel);color:var(--u-text);font-size:34px;line-height:34px;box-shadow:var(--u-shadow);cursor:pointer}.user-subpage-title{text-align:center;min-width:0}.user-subpage-title b{display:block;font-size:18px}.user-subpage-title small{display:block;color:var(--u-muted);font-size:10px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-subpage-space{width:42px}
.user-slot-control-main{display:flex;flex-direction:column;gap:12px;padding:14px 0}
.user-slot-summary-card{display:grid;grid-template-columns:1.2fr .8fr .8fr;background:var(--u-panel);border:1px solid var(--u-border);border-radius:18px;box-shadow:var(--u-shadow);overflow:hidden}.user-slot-summary-card>div{padding:13px 10px;text-align:center}.user-slot-summary-card>div+div{border-left:1px solid var(--u-border)}.user-slot-summary-card small{display:block;color:var(--u-muted);font-size:9px}.user-slot-summary-card strong{display:block;margin-top:5px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-slot-control-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border-radius:18px;background:linear-gradient(115deg,var(--u-accent-soft),var(--u-panel));border:1px solid var(--u-border)}.user-slot-control-intro h1{margin:0;font-size:16px}.user-slot-control-intro p{margin:5px 0 0;color:var(--u-muted);font-size:10px;line-height:1.5}.user-slot-control-intro>span{font-size:35px}
.user-slot-detail-grid{display:grid;gap:12px}.user-slot-control-card{background:var(--u-panel);border:1px solid var(--u-border);border-radius:19px;box-shadow:var(--u-shadow);padding:14px;scroll-margin-top:78px;position:relative;overflow:hidden}.user-slot-control-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--u-good)}.user-slot-control-card.mid::before{background:var(--u-mid)}.user-slot-control-card.low::before,.user-slot-control-card.warning::before{background:var(--u-low)}.user-slot-control-card.charging::before{background:var(--u-blue)}.user-slot-control-card.empty::before{background:var(--u-empty)}
.slot-control-card-head{display:flex;justify-content:space-between;align-items:center}.slot-control-no{display:flex;align-items:baseline;gap:6px}.slot-control-no small{color:var(--u-muted);font-size:10px}.slot-control-no strong{font-size:25px}.slot-control-badge{font-size:10px;font-weight:800;padding:5px 9px;border-radius:999px;background:#e8f8ef;color:#15a65c}.user-slot-control-card.charging .slot-control-badge{background:#e7f2ff;color:#247be5}.user-slot-control-card.empty .slot-control-badge{background:#eff1f4;color:#84909d}.user-slot-control-card.warning .slot-control-badge{background:#ffe9e5;color:#d85047}
.slot-control-battery-wrap{display:flex;align-items:center;gap:15px;margin:12px 0;padding:12px;border-radius:14px;background:var(--u-card);border:1px solid var(--u-border)}.slot-control-battery{width:28px;height:44px;border:2px solid var(--u-good);border-radius:5px;position:relative;color:var(--u-good)}.slot-control-battery::before{content:"";position:absolute;top:-6px;left:8px;width:8px;height:4px;border-radius:2px 2px 0 0;background:currentColor}.slot-control-battery::after{content:"";position:absolute;left:3px;right:3px;bottom:3px;height:var(--fill,0%);max-height:34px;background:currentColor;border-radius:2px}.mid .slot-control-battery{color:var(--u-mid);border-color:var(--u-mid)}.low .slot-control-battery,.warning .slot-control-battery{color:var(--u-low);border-color:var(--u-low)}.charging .slot-control-battery{color:var(--u-blue);border-color:var(--u-blue)}.empty .slot-control-battery{color:var(--u-empty);border-color:var(--u-empty)}.empty .slot-control-battery::after{display:none}.slot-control-battery-wrap strong{display:block;font-size:25px}.slot-control-battery-wrap small{display:block;color:var(--u-muted);font-size:10px;margin-top:2px}
.slot-control-info{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--u-border);border-radius:14px;overflow:hidden}.slot-control-info-row{padding:10px}.slot-control-info-row:nth-child(even){border-left:1px solid var(--u-border)}.slot-control-info-row:nth-child(n+3){border-top:1px solid var(--u-border)}.slot-control-info-row span{display:block;color:var(--u-muted);font-size:9px}.slot-control-info-row strong{display:block;margin-top:4px;font-size:12px}.slot-control-eject{width:100%;height:44px;margin-top:12px;border:0;border-radius:13px;background:linear-gradient(100deg,var(--u-accent),var(--u-accent2));color:#fff;font-size:14px;font-weight:800;cursor:pointer}.slot-control-eject:disabled{background:#d8dde3;color:#8995a1;cursor:not-allowed;box-shadow:none}
.user-slot-page-empty{background:var(--u-panel);border:1px solid var(--u-border);border-radius:16px}

@media(max-width:390px){
  .cute-mango-character{right:16px;transform:scale(.9) rotate(-3deg);transform-origin:bottom right}
  .user-status-head{grid-template-columns:1fr auto;row-gap:7px}.user-status-head h2{grid-column:1}.user-membership-expiry{grid-column:2}.user-status-head #last-online{grid-column:1/-1;text-align:right}
}
@media(min-width:700px){.user-sheet-backdrop{align-items:center}.user-bottom-sheet{border-radius:24px;max-height:84vh}.user-slot-control-app{margin-bottom:24px}}

/* =========================================================
   V0.7 普通用户手机端优化
   - 所有主题共用用户确认的呆萌芒果顶部背景
   - 真正按手机宽度自适应
   - 仓位控制双列卡片
   - 我的设置精简为手机原生习惯布局
   ========================================================= */
.user-mobile-page{overflow-x:hidden;min-width:0}
.user-app{width:100%;max-width:480px;min-height:100dvh;padding-left:clamp(10px,3.2vw,16px);padding-right:clamp(10px,3.2vw,16px)}
.user-theme-hero{
  width:100%;aspect-ratio:303/114;position:relative;margin:0 auto 4px;border-radius:0 0 20px 20px;
  background-image:url('/assets/img/user-cute-header.png');background-repeat:no-repeat;background-position:center top;background-size:100% 100%;
  box-shadow:0 7px 24px rgba(168,111,35,.10);overflow:hidden;
}
.user-hero-settings{position:absolute;right:3.5%;top:12%;width:13%;height:36%;border:0;background:transparent;border-radius:50%;cursor:pointer;touch-action:manipulation}
.user-hero-settings:active{background:rgba(255,255,255,.18)}
.user-main{gap:clamp(9px,2.7vw,12px)}
.user-device-card{margin-top:-2px}
[data-user-theme="warm"] .user-device-card,[data-user-theme="warm"] .user-eject-button,[data-user-theme="warm"] .user-feature-grid,[data-user-theme="warm"] .user-control-card,[data-user-theme="warm"] .user-quiet-row,[data-user-theme="warm"] .user-panel{margin-left:0;margin-right:0}
[data-user-theme="warm"] .user-device-card{border-color:#f0d7a6}
[data-user-theme="warm"] .user-device-hero{display:block}
[data-user-theme="warm"] .user-device-illustration{display:none}
.user-device-name-button{font-size:clamp(17px,5vw,20px)}
.user-device-metrics strong{font-size:clamp(18px,5.4vw,21px)}
.user-feature{min-width:0}.user-feature>span:nth-child(2){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-status-head{grid-template-columns:auto 1fr auto}.user-membership-expiry{font-size:9px!important;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.user-bottom-nav{width:min(100%,480px)}

/* 设置：主题只显示名称，节省手机空间 */
.user-theme-name-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;background:#fff;border:1px solid #e7ebef;border-radius:16px;padding:8px}
.user-theme-name{min-height:42px;border:1px solid #e6eaf0;background:#f7f8fa;border-radius:11px;color:#34465a;font-weight:700;font-size:13px;cursor:pointer}
.user-theme-name.active{border-color:#ffad3f;background:#fff5dc;color:#b76417;box-shadow:0 0 0 2px rgba(255,173,63,.10)}
.user-profile-text{min-width:0;flex:1}.user-profile-edit{border:0;background:#fff4d7;color:#b36a20;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:700;white-space:nowrap}
.user-setting-action-text{font-size:12px;color:#1677ff;font-weight:800;white-space:nowrap}
.user-sheet-subview{display:grid;gap:12px}.user-sheet-field{display:grid;gap:7px}.user-sheet-field>span{font-size:12px;color:#687889;font-weight:700;padding-left:2px}.user-sheet-input{width:100%;height:50px;border:1px solid #dfe5ec;border-radius:13px;background:#fff;color:#24364a;padding:0 14px;font-size:15px;outline:none}.user-sheet-input:focus{border-color:#4a9bff;box-shadow:0 0 0 3px rgba(74,155,255,.12)}
.user-sheet-primary,.user-sheet-secondary,.user-sheet-logout{width:100%;min-height:50px;border-radius:14px;font-weight:800;font-size:14px;cursor:pointer}.user-sheet-primary{border:0;background:linear-gradient(100deg,#ffb52c,#ff7c34);color:#fff;box-shadow:0 8px 20px rgba(255,126,52,.18)}.user-sheet-secondary{border:1px solid #dfe5ec;background:#fff;color:#42566b}.user-sheet-logout{margin-top:16px;border:1px solid #ffd6d2;background:#fff7f6;color:#d44f45}
.user-sheet-note{margin:0;padding:12px 13px;border-radius:13px;background:#f6f8fb;color:#657589;font-size:12px;line-height:1.65}.user-sheet-warning{display:grid;gap:5px;padding:14px;border-radius:14px;background:#fff4df;border:1px solid #ffe0a6;color:#855118}.user-sheet-warning b{font-size:14px}.user-sheet-warning span{font-size:12px;line-height:1.6}
.user-sheet-send-code{margin-top:0}.user-renew-card{display:grid;place-items:center;gap:7px;padding:20px;border-radius:18px;background:linear-gradient(145deg,#fff3cd,#fff);border:1px solid #f5ddb1}.user-renew-icon{font-size:36px}.user-renew-card b{font-size:24px;color:#a96318}.user-renew-card span{font-size:12px;color:#8b765e}.user-renew-note{padding:14px 15px;border-radius:16px;background:#fff;border:1px solid #e7ebef;color:#506174}.user-renew-note b{color:#2d4054}.user-renew-note p{margin:7px 0 0;font-size:12px;line-height:1.7}

/* 仓位控制：固定双列，每张卡片内完成状态查看与弹宝 */
.user-slot-control-main{padding-left:0;padding-right:0}
.user-slot-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.user-slot-control-card.compact{padding:11px;border-radius:16px;min-width:0}
.slot-control-card-head.compact{gap:6px}.slot-control-card-head.compact .slot-control-no{gap:4px}.slot-control-card-head.compact .slot-control-no strong{font-size:22px}.slot-control-card-head.compact .slot-control-badge{padding:4px 7px;font-size:9px;white-space:nowrap}
.slot-compact-battery-row{display:flex;align-items:center;gap:9px;margin:9px 0;padding:9px;border-radius:12px;background:var(--u-card);border:1px solid var(--u-border)}.slot-control-battery.compact-battery{width:22px;height:34px;flex:0 0 auto}.slot-control-battery.compact-battery::before{left:6px;width:7px}.slot-control-battery.compact-battery::after{max-height:26px}.slot-compact-battery-row strong{display:block;font-size:18px}.slot-compact-battery-row small{display:block;font-size:8px;color:var(--u-muted);margin-top:2px}
.slot-compact-info{display:grid;gap:0;border:1px solid var(--u-border);border-radius:11px;overflow:hidden}.slot-mini-line{display:flex;justify-content:space-between;align-items:center;gap:5px;padding:7px 8px;background:color-mix(in srgb,var(--u-panel) 90%,var(--u-card))}.slot-mini-line+.slot-mini-line{border-top:1px solid var(--u-border)}.slot-mini-line span{font-size:8px;color:var(--u-muted);white-space:nowrap}.slot-mini-line strong{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.slot-control-eject.compact{height:39px;margin-top:9px;font-size:11px;border-radius:11px;padding:0 5px}
.user-slot-page-empty{grid-column:1/-1}

@media(max-width:360px){
  .user-app{padding-left:9px;padding-right:9px}.user-theme-hero{border-radius:0 0 16px 16px}
  .user-feature-grid{gap:6px}.user-feature{padding:7px;grid-template-columns:26px 1fr 28px}.user-feature>span:nth-child(2){font-size:11px}
  .user-slot-detail-grid{gap:7px}.user-slot-control-card.compact{padding:9px}.slot-mini-line{padding:6px}.slot-control-eject.compact{font-size:10px}
  .user-status-head{grid-template-columns:1fr auto;row-gap:6px}.user-status-head #last-online{grid-column:1/-1;text-align:right}
}
@media(min-width:700px){
  .user-mobile-page{background:#eef2f6}.user-app{margin:16px auto 28px;border-radius:26px;background:var(--u-bg);box-shadow:0 20px 60px rgba(35,55,80,.12);overflow:hidden;padding-top:0}
  .user-theme-hero{border-radius:0 0 20px 20px}.user-bottom-nav{bottom:28px}
}

/* =========================================================
   V0.8 普通用户三套主题定稿
   FRESH = 阳光活力 / WARM = 温暖治愈 / TECH = 科技趣味
   仅调整主题视觉；V0.7 已确认业务功能与页面流程保持不变。
   ========================================================= */
.user-mobile-page[data-user-theme="fresh"]{color-scheme:light;--u-bg:#f6fbff;--u-bg2:#e8f7ff;--u-panel:#fff;--u-card:#f8fcff;--u-border:#d9ebf8;--u-text:#183653;--u-muted:#708aa2;--u-accent:#1d84f7;--u-accent2:#52b6ff;--u-accent-soft:#e4f4ff;--u-good:#19b963;--u-mid:#f4a526;--u-low:#ff5f50;--u-empty:#cfd5dc;--u-blue:#2688ff;--u-shadow:0 8px 26px rgba(38,125,190,.09)}
.user-mobile-page[data-user-theme="warm"]{color-scheme:light;--u-bg:#fff9ef;--u-bg2:#fff0cf;--u-panel:#fffdf9;--u-card:#fff8ee;--u-border:#f1dfbf;--u-text:#3d2a18;--u-muted:#987656;--u-accent:#e37c27;--u-accent2:#ffad36;--u-accent-soft:#fff0cf;--u-good:#19b963;--u-mid:#f4a526;--u-low:#ff5f50;--u-empty:#cfd5dc;--u-blue:#3188ff;--u-shadow:0 8px 26px rgba(142,91,36,.08)}
.user-mobile-page[data-user-theme="tech"]{color-scheme:light;--u-bg:#f8f7ff;--u-bg2:#eeedff;--u-panel:#fff;--u-card:#faf9ff;--u-border:#e2def8;--u-text:#252451;--u-muted:#78779c;--u-accent:#6547e8;--u-accent2:#3c82ff;--u-accent-soft:#eeebff;--u-good:#19b963;--u-mid:#f4a526;--u-low:#ff5f50;--u-empty:#cfd5dc;--u-blue:#5d54f3;--u-shadow:0 9px 28px rgba(77,65,171,.09)}
.user-theme-hero{aspect-ratio:720/270;background-size:cover;background-position:center;box-shadow:0 8px 24px rgba(41,78,110,.11)}
.user-mobile-page[data-user-theme="fresh"] .user-theme-hero{background-image:url('/assets/img/user-hero-sunny.svg')}
.user-mobile-page[data-user-theme="warm"] .user-theme-hero{background-image:url('/assets/img/user-hero-warm.svg')}
.user-mobile-page[data-user-theme="tech"] .user-theme-hero{background-image:url('/assets/img/user-hero-tech.svg')}
.user-hero-brand{position:absolute;left:5.3%;top:16%;z-index:2;max-width:50%;line-height:1.1}
.user-hero-title{display:flex;align-items:center;gap:4px;font-size:clamp(19px,6vw,25px);font-weight:950;letter-spacing:.2px;color:#173451;white-space:nowrap}.user-hero-mango{font-size:.78em}.user-hero-bolt{font-size:.75em;color:#ff9e16}.user-hero-subtitle{margin:7px 0 0 30px;font-size:clamp(9px,2.8vw,12px);font-weight:650;color:#405f78}
.user-mobile-page[data-user-theme="warm"] .user-hero-title{color:#432b19}.user-mobile-page[data-user-theme="warm"] .user-hero-subtitle{color:#826443}.user-mobile-page[data-user-theme="tech"] .user-hero-title,.user-mobile-page[data-user-theme="tech"] .user-hero-subtitle{color:#fff;text-shadow:0 2px 7px rgba(21,22,92,.28)}.user-mobile-page[data-user-theme="tech"] .user-hero-bolt{color:#ffe240}
.user-hero-settings{right:4.5%;top:12%;width:40px;height:40px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.76);backdrop-filter:blur(5px);border-radius:50%;font-size:19px;color:#273c53;box-shadow:0 4px 14px rgba(25,60,93,.10)}.user-mobile-page[data-user-theme="tech"] .user-hero-settings{color:#fff;background:rgba(64,57,164,.50);border-color:rgba(255,255,255,.38)}.user-hero-settings:active{transform:scale(.96);background:rgba(255,255,255,.9)}
.user-device-hero{display:block}.user-device-illustration{display:none!important}.user-device-metrics{width:100%;margin-top:13px}
.user-mobile-page[data-user-theme="fresh"] .user-eject-button{background:linear-gradient(100deg,#ffbd1f,#ff981f)}.user-mobile-page[data-user-theme="warm"] .user-eject-button{background:linear-gradient(100deg,#ffad2d,#ff7629)}.user-mobile-page[data-user-theme="tech"] .user-eject-button{background:linear-gradient(100deg,#7150f4,#4c65f4)}
.user-mobile-page[data-user-theme="tech"] .user-bottom-nav{background:rgba(255,255,255,.95);border-color:#e5e2fa}.user-mobile-page[data-user-theme="tech"] .user-bottom-nav button{color:#85839f}.user-mobile-page[data-user-theme="tech"] .user-bottom-nav button.active{color:#5d4be7}
.user-theme-name-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.user-theme-name{min-height:40px;padding:0 4px;font-size:12px;white-space:nowrap}.user-theme-name.active{border-color:var(--u-accent);background:var(--u-accent-soft);color:var(--u-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--u-accent) 10%,transparent)}
@media(max-width:360px){.user-hero-brand{left:4.7%;top:15%;max-width:52%}.user-hero-subtitle{margin-left:25px}.user-hero-settings{width:36px;height:36px;font-size:17px}.user-theme-name{font-size:11px}}

/* =========================================================
   V0.10 普通用户首页视觉定稿
   设计基准：用户最终确认的三套设计稿
   - 阳光活力：蓝天白云 + 呆萌芒果
   - 温暖治愈：奶油客厅 + 捧杯芒果（默认）
   - 科技趣味：紫蓝太空 + 芒果宇航员
   业务逻辑、API、权限、仓位控制、会员、邮箱、手机号等保持不变。
   ========================================================= */
.user-mobile-page{
  --u-page-gap:12px;
  background:var(--u-bg);
  -webkit-tap-highlight-color:transparent;
}
.user-app.user-app-v10{
  width:100%;max-width:470px;min-height:100dvh;margin:0 auto;
  padding:0 0 calc(76px + env(safe-area-inset-bottom));
  background:var(--u-bg);overflow:hidden;position:relative;
}
.user-theme-hero.user-theme-hero-v10{
  width:100%;height:auto;aspect-ratio:470/177;margin:0;border:0;border-radius:0;
  background-repeat:no-repeat;background-size:100% 100%;background-position:center top;
  box-shadow:none;position:relative;overflow:hidden;
}
.user-mobile-page[data-user-theme="fresh"] .user-theme-hero-v10{background-image:url('/assets/img/user-hero-sunny-approved.png')}
.user-mobile-page[data-user-theme="warm"] .user-theme-hero-v10{background-image:url('/assets/img/user-hero-warm-approved.png')}
.user-mobile-page[data-user-theme="tech"] .user-theme-hero-v10{background-image:url('/assets/img/user-hero-tech-approved.png')}
/* 设计稿的齿轮作为画面的一部分，这个透明点击层负责真实交互 */
.user-hero-settings-hit{
  position:absolute;right:3.4%;top:8%;width:11.8%;aspect-ratio:1;border:0;border-radius:50%;
  background:transparent;cursor:pointer;touch-action:manipulation;z-index:5;
}
.user-hero-settings-hit:active{background:rgba(255,255,255,.16)}
.user-main.user-main-v10{
  display:flex;flex-direction:column;gap:var(--u-page-gap);padding:0 14px 12px;
  margin-top:-14px;position:relative;z-index:3;
}
.user-device-card.user-device-card-v10{
  margin:0;padding:19px 18px 14px;border-radius:20px;background:#fff;
  border:1px solid color-mix(in srgb,var(--u-border) 72%,#fff);
  box-shadow:0 8px 22px color-mix(in srgb,var(--u-accent) 10%,transparent);
  overflow:hidden;
}
.user-mobile-page[data-user-theme="fresh"] .user-device-card-v10{border-color:#dceaf6}
.user-mobile-page[data-user-theme="warm"] .user-device-card-v10{border-color:#f0dfc7}
.user-mobile-page[data-user-theme="tech"] .user-device-card-v10{border-color:#e2def8}
.user-device-card-v10::after{display:none!important}
.user-device-topline.user-device-topline-v10{align-items:flex-start;gap:10px;position:relative;z-index:1}
.user-device-title-block{min-width:0;flex:1}
.user-device-name-button.user-device-name-v10{
  font-size:18px;line-height:1.25;font-weight:900;color:#172949;letter-spacing:.1px;
  max-width:100%;min-width:0;display:flex;align-items:center;gap:4px;
}
.user-mobile-page[data-user-theme="warm"] .user-device-name-v10{color:#2e261f}
.user-mobile-page[data-user-theme="tech"] .user-device-name-v10{color:#252451}
.device-picker-chevron{font-size:14px;color:var(--u-muted);margin-left:2px}
.user-device-meta.user-device-meta-v10{margin-top:7px;font-size:12px;color:#536a82;gap:5px}
.user-online-pill.user-online-pill-v10{
  flex:0 0 auto;padding:5px 9px;border-radius:999px;font-size:11px;line-height:1;font-weight:800;
  background:#e9f8ef;color:#10a653;margin-top:0;
}
.user-device-metrics.user-device-metrics-v10{
  margin:17px 0 0;width:100%;display:grid;grid-template-columns:repeat(3,1fr);
  border:0;border-top:1px solid #e8edf2;border-radius:0;background:transparent;overflow:visible;
}
.user-device-metrics-v10>div{padding:14px 4px 11px;text-align:center;position:relative}
.user-device-metrics-v10>div+div{border-left:1px solid #e6ebf0}
.user-device-metrics-v10 strong{font-size:21px;line-height:1;color:#15264a;font-weight:900}
.user-device-metrics-v10 span{font-size:13px;color:#15264a;font-weight:800;margin-left:1px}
.user-device-metrics-v10 small{font-size:10px;color:#718298;margin-top:7px;line-height:1.1}
.user-eject-button.user-eject-button-v10{
  width:100%;height:48px;margin-top:4px;border-radius:999px;border:0;
  display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;font-size:16px;font-weight:900;
  box-shadow:0 7px 17px color-mix(in srgb,var(--u-accent) 22%,transparent);
}
.user-mobile-page[data-user-theme="fresh"] .user-eject-button-v10{background:linear-gradient(90deg,#ffc61b,#ff9f17)}
.user-mobile-page[data-user-theme="warm"] .user-eject-button-v10{background:linear-gradient(90deg,#ffae28,#ff7529)}
.user-mobile-page[data-user-theme="tech"] .user-eject-button-v10{background:linear-gradient(90deg,#7542f2,#6038e9)}
.eject-bolt{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--u-accent);font-size:15px;box-shadow:0 2px 5px rgba(0,0,0,.08)}
.user-feature-grid.user-feature-grid-v10{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:11px 5px 10px;
  background:#fff;border:1px solid var(--u-border);border-radius:18px;box-shadow:var(--u-shadow);
}
.user-feature.user-feature-v10{
  min-height:72px;padding:4px 1px;border:0;border-radius:0;background:transparent!important;box-shadow:none;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;color:#53677c;text-align:center;
}
.user-feature-v10+.user-feature-v10{border-left:1px solid #edf0f3}
.user-feature-icon.user-feature-icon-v10{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  background:#f3f6f8;color:#8a9aab;transition:.18s ease;
}
.user-feature-icon-v10 svg,.user-range-icon-v10 svg,.user-bottom-nav-v10 svg{
  width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
}
.user-feature-v10.is-on .user-feature-icon-v10{background:var(--u-accent-soft);color:var(--u-accent)}
.user-feature-label{font-size:11px;font-weight:800;line-height:1.05;color:#35485f;white-space:nowrap}
.user-feature-v10.is-on .user-feature-label{color:#253b55}
.user-feature-v10 .user-mini-switch{display:none!important}
.user-control-card.user-control-card-v10{padding:4px 14px;background:#fff;border-radius:16px;border:1px solid var(--u-border);box-shadow:var(--u-shadow)}
.user-range-row.user-range-row-v10{min-height:54px;grid-template-columns:25px 1fr 38px;gap:9px}
.user-range-row-v10+.user-range-row-v10{border-top:1px solid #edf0f3}
.user-range-icon.user-range-icon-v10{color:var(--u-accent);display:grid;place-items:center}
.user-range-main.user-range-main-v10{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:8px}
.user-range-main-v10 b{font-size:12px;color:#344960;white-space:nowrap}
.user-range-main-v10 input[type="range"]{height:18px;width:100%;accent-color:var(--u-accent)}
.user-range-row-v10>strong{font-size:11px;color:#263a52;text-align:right}
.user-quiet-row.user-quiet-row-v10{
  min-height:52px;padding:0 14px;background:#fff;border-radius:15px;border:1px solid var(--u-border);box-shadow:var(--u-shadow);
}
.user-quiet-row-v10 b{font-size:12px;color:#344960}.user-moon.user-moon-v10{font-size:23px;color:var(--u-accent)}
.user-quiet-row-v10>span:last-child{font-size:11px;color:#4e6380}
.user-panel.user-slot-panel-v10{padding:14px 14px 13px;border-radius:17px;background:#fff;border:1px solid var(--u-border);box-shadow:var(--u-shadow)}
.user-slot-head.user-slot-head-v10{margin-bottom:13px}.user-slot-head-v10 h2{font-size:14px;color:#24384f;font-weight:900}
.user-panel-link.user-panel-link-v10{border:0;background:transparent;color:var(--u-accent);font-size:11px;font-weight:800;padding:3px 0;cursor:pointer}
.user-slot-grid.user-slot-grid-v10{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px 6px}
.user-slot-grid-v10.eight{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 10px}
.user-slot-grid-v10 .user-slot{gap:5px}
.user-slot-grid-v10 .user-slot-no{font-size:10px;color:#25364f;font-weight:800}
.user-slot-grid-v10 .user-battery{width:17px;height:28px;border-width:1.7px;border-radius:3px}
.user-slot-grid-v10 .user-battery::before{width:6px;height:3px;left:3.6px;top:-4px}
.user-slot-grid-v10 .user-battery::after{left:2px;right:2px;bottom:2px;max-height:20px}
.user-slot-grid-v10 .user-slot-percent{font-size:9px;color:#40536b}
.user-slot-legend.user-slot-legend-v10{justify-content:center;gap:18px;margin-top:13px;padding-top:10px;border-top:1px solid #edf0f3;font-size:10px;color:#55687d}
.legend-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}.legend-dot.available{background:#20bd55}.legend-dot.charging{background:var(--u-accent)}.legend-dot.empty{background:#bfc6cd}
.user-device-status-panel.user-device-status-v10{padding:14px;border-radius:16px;background:#fff;border:1px solid var(--u-border);box-shadow:var(--u-shadow)}
.user-status-head.user-status-head-v10{display:grid;grid-template-columns:auto 1fr auto;gap:8px;margin-bottom:11px;align-items:center}
.user-status-head-v10 h2{font-size:14px;color:#263b51}.user-status-head-v10 #last-online{font-size:9px;color:#8897a6;text-align:right}.user-membership-expiry{font-size:9px!important;text-align:center;color:var(--u-accent)!important;font-weight:800}
.user-status-grid.user-status-grid-v10{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.user-status-grid-v10>div{padding:10px 5px;border-radius:10px;background:#f8fafc;border:1px solid #edf1f5;text-align:center}.user-status-grid-v10 small{display:block;font-size:9px;color:#8996a5}.user-status-grid-v10 strong{display:block;margin-top:5px;font-size:12px;color:#2b4055}
.user-quiet-banner.user-quiet-banner-v10{border-radius:15px;margin-bottom:0}
.user-bottom-nav.user-bottom-nav-v10{
  width:min(100%,470px);height:64px;bottom:0;padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box;
  background:rgba(255,255,255,.97);border-top:1px solid #e8edf2;box-shadow:0 -7px 18px rgba(34,54,77,.05);backdrop-filter:blur(12px);
}
.user-bottom-nav-v10 button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#9aa4ae;font-size:12px}
.user-bottom-nav-v10 button svg{width:23px;height:23px;stroke-width:2;fill:none}.user-bottom-nav-v10 button b{font-size:10px;font-weight:800}
.user-bottom-nav-v10 button.active{color:var(--u-accent)}.user-bottom-nav-v10 button.active svg{fill:color-mix(in srgb,var(--u-accent) 18%,transparent)}

/* 三套主题的边框、按钮和底部导航按设计稿色调同步 */
.user-mobile-page[data-user-theme="fresh"]{--u-bg:#f4faff;--u-panel:#fff;--u-card:#f8fcff;--u-border:#dcecf8;--u-accent:#1683f8;--u-accent2:#45afff;--u-accent-soft:#e8f4ff;--u-shadow:0 7px 20px rgba(43,124,187,.07)}
.user-mobile-page[data-user-theme="warm"]{--u-bg:#fff9ed;--u-panel:#fff;--u-card:#fff9f0;--u-border:#efdfc6;--u-accent:#ef811f;--u-accent2:#ffad2d;--u-accent-soft:#fff1da;--u-shadow:0 7px 20px rgba(154,97,38,.07)}
.user-mobile-page[data-user-theme="tech"]{--u-bg:#f7f6ff;--u-panel:#fff;--u-card:#faf9ff;--u-border:#e1def5;--u-accent:#6745e9;--u-accent2:#4f67f4;--u-accent-soft:#efecff;--u-shadow:0 7px 20px rgba(78,62,175,.07)}
.user-mobile-page[data-user-theme="fresh"] .user-feature-v10.is-on .user-feature-icon-v10{color:#1683f8;background:#e8f4ff}
.user-mobile-page[data-user-theme="warm"] .user-feature-v10.is-on .user-feature-icon-v10{color:#f07f19;background:#fff1dc}
.user-mobile-page[data-user-theme="tech"] .user-feature-v10.is-on .user-feature-icon-v10{color:#6948ea;background:#efecff}

/* 设置抽屉继续沿用已确认的手机结构，但按钮颜色跟随当前主题 */
.user-mobile-page .user-sheet-primary{background:linear-gradient(100deg,var(--u-accent2),var(--u-accent));box-shadow:0 8px 20px color-mix(in srgb,var(--u-accent) 18%,transparent)}
.user-mobile-page .user-theme-name.active{border-color:var(--u-accent);background:var(--u-accent-soft);color:var(--u-accent)}

/* 手机自适应：不产生横向滚动，320~480px 保持设计比例 */
@media(max-width:390px){
  .user-main.user-main-v10{padding-left:10px;padding-right:10px;gap:10px;margin-top:-12px}
  .user-device-card.user-device-card-v10{padding:16px 14px 12px;border-radius:18px}
  .user-device-name-button.user-device-name-v10{font-size:16px}.user-device-meta-v10{font-size:11px}
  .user-device-metrics-v10 strong{font-size:19px}.user-device-metrics-v10 small{font-size:9px}
  .user-eject-button.user-eject-button-v10{height:45px;font-size:15px}
  .user-feature-grid.user-feature-grid-v10{padding-left:2px;padding-right:2px}.user-feature.user-feature-v10{min-height:67px}.user-feature-icon-v10{width:33px;height:33px}.user-feature-icon-v10 svg{width:19px;height:19px}.user-feature-label{font-size:10px}
  .user-control-card.user-control-card-v10{padding-left:10px;padding-right:10px}.user-range-main.user-range-main-v10{grid-template-columns:68px 1fr}.user-range-main-v10 b{font-size:11px}
  .user-slot-grid.user-slot-grid-v10{column-gap:4px}.user-slot-legend-v10{gap:11px}
  .user-status-head.user-status-head-v10{grid-template-columns:1fr auto;row-gap:6px}.user-status-head-v10 h2{grid-column:1}.user-membership-expiry{grid-column:2}.user-status-head-v10 #last-online{grid-column:1/-1;text-align:right}
}
@media(max-width:335px){
  .user-main.user-main-v10{padding-left:8px;padding-right:8px}.user-feature-label{font-size:9px}.user-feature-icon-v10{width:31px;height:31px}
  .user-range-main.user-range-main-v10{grid-template-columns:60px 1fr}.user-range-main-v10 b{font-size:10px}.user-slot-grid-v10 .user-slot-percent{font-size:8px}
}
@media(min-width:700px){
  .user-mobile-page{background:#eef2f6}.user-app.user-app-v10{margin:18px auto 28px;border-radius:28px;box-shadow:0 22px 60px rgba(39,59,84,.14);border:1px solid #e5e9ee;overflow:hidden}.user-bottom-nav.user-bottom-nav-v10{bottom:28px;border-radius:0 0 28px 28px}
}

/* =========================================================
   V0.11 普通用户「进入控制」页面定稿
   目标：严格跟随用户最终确认的三套主题设计稿，支持主题联动色调。
   页面结构：顶部返回栏 / 设备摘要卡 / 全部弹出按钮 / 双列仓位卡片。
   ========================================================= */
.user-slot-control-app-v11{
  width:100%;max-width:470px;min-height:100dvh;margin:0 auto;
  background:var(--u-bg);padding:0 0 18px;
}
.user-control-topbar{
  position:sticky;top:0;z-index:12;height:62px;padding:calc(env(safe-area-inset-top) + 8px) 16px 10px;
  display:grid;grid-template-columns:40px 1fr 40px;align-items:end;background:color-mix(in srgb,var(--u-bg) 94%,#fff);
}
.user-control-topbar strong{justify-self:center;font-size:17px;line-height:1;color:#3b2a19;font-weight:900;letter-spacing:.5px}
.user-mobile-page[data-user-theme="tech"] .user-control-topbar strong{color:#252451}
.user-mobile-page[data-user-theme="fresh"] .user-control-topbar strong{color:#183653}
.user-control-topbar-btn{
  width:34px;height:34px;border:0;border-radius:50%;background:transparent;color:#654b2d;
  display:grid;place-items:center;font-size:28px;line-height:1;padding:0;align-self:center;
}
.user-mobile-page[data-user-theme="fresh"] .user-control-topbar-btn{color:#22517c}
.user-mobile-page[data-user-theme="tech"] .user-control-topbar-btn{color:#47408e}
.user-control-topbar-btn.more{font-size:22px;letter-spacing:1px;justify-self:end}
.user-slot-control-main-v11{display:flex;flex-direction:column;gap:12px;padding:10px 14px 0}
.user-control-device-card{
  position:relative;display:grid;grid-template-columns:112px 1fr;gap:10px;min-height:126px;
  padding:14px;border-radius:20px;background:linear-gradient(180deg,#fffdf9,#fff8ef);
  border:1px solid var(--u-border);box-shadow:var(--u-shadow);overflow:hidden;
}
.user-control-device-card::after{
  content:"";position:absolute;right:-4%;bottom:-10%;width:50%;height:110%;opacity:.12;pointer-events:none;
  background-repeat:no-repeat;background-size:cover;background-position:right center;
}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-card{background:linear-gradient(180deg,#ffffff,#f8fcff)}
.user-mobile-page[data-user-theme="warm"] .user-control-device-card{background:linear-gradient(180deg,#fffdf8,#fff7ea)}
.user-mobile-page[data-user-theme="tech"] .user-control-device-card{background:linear-gradient(180deg,#ffffff,#faf9ff)}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-card::after{background-image:url('/assets/img/user-hero-sunny-approved.png')}
.user-mobile-page[data-user-theme="warm"] .user-control-device-card::after{background-image:url('/assets/img/user-hero-warm-approved.png')}
.user-mobile-page[data-user-theme="tech"] .user-control-device-card::after{background-image:url('/assets/img/user-hero-tech-approved.png')}
.user-control-device-illustration{
  position:relative;border-radius:16px;background:transparent;overflow:hidden;min-height:94px;
}
.user-control-device-illustration::before{
  content:"";position:absolute;inset:0;background-repeat:no-repeat;background-size:190% auto;background-position:center 42%;
}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-illustration::before{background-image:url('/assets/img/user-hero-sunny-approved.png');background-size:185% auto;background-position:46% 40%}
.user-mobile-page[data-user-theme="warm"] .user-control-device-illustration::before{background-image:url('/assets/img/user-hero-warm-approved.png');background-size:185% auto;background-position:53% 35%}
.user-mobile-page[data-user-theme="tech"] .user-control-device-illustration::before{background-image:url('/assets/img/user-hero-tech-approved.png');background-size:190% auto;background-position:52% 38%}
.user-control-device-info{display:flex;flex-direction:column;justify-content:center;min-width:0;position:relative;z-index:1}
.user-control-device-info h1{margin:0;font-size:18px;line-height:1.25;color:#3c2c1f;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-info h1{color:#183653}
.user-mobile-page[data-user-theme="tech"] .user-control-device-info h1{color:#252451}
.user-control-device-status-row{display:flex;align-items:center;gap:8px;margin-top:10px}
.user-control-status-pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;background:#ebf8ee;color:#24a64d;font-size:13px;font-weight:800}
.user-control-status-pill.warning{background:#fff0df;color:#ef8b1e}
.user-control-status-pill.offline{background:#eef1f4;color:#8a96a3}
.user-control-device-info p{margin:10px 0 0;color:#7d6c58;font-size:12px;font-weight:700}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-info p{color:#607c96}
.user-mobile-page[data-user-theme="tech"] .user-control-device-info p{color:#79779c}
.user-control-eject-all{
  height:52px;border:0;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:10px;
  color:#fff;font-size:17px;font-weight:900;box-shadow:0 10px 20px color-mix(in srgb,var(--u-accent) 20%,transparent);
}
.user-mobile-page[data-user-theme="fresh"] .user-control-eject-all{background:linear-gradient(90deg,#ffbd1f,#ff9f17)}
.user-mobile-page[data-user-theme="warm"] .user-control-eject-all{background:linear-gradient(90deg,#ffae28,#ff7529)}
.user-mobile-page[data-user-theme="tech"] .user-control-eject-all{background:linear-gradient(90deg,#7542f2,#6038e9)}
.user-control-eject-all:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}
.eject-all-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--u-accent);font-size:15px;line-height:1}
.user-slot-detail-grid-v11{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.user-slot-card-v11{
  min-width:0;background:#fff;border:1px solid var(--u-border);border-radius:18px;padding:12px 12px 11px;
  box-shadow:var(--u-shadow);display:flex;flex-direction:column;gap:10px;position:relative;overflow:hidden;
}
.user-slot-card-v11::before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:#65c861}
.user-slot-card-v11.mid::before{background:#f0b021}
.user-slot-card-v11.low::before,.user-slot-card-v11.warning::before{background:#ff7c48}
.user-slot-card-v11.charging::before{background:var(--u-accent)}
.user-slot-card-v11.empty::before{background:#cfd5dc}
.user-slot-card-head-v11{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.user-slot-card-title-block{min-width:0}
.user-slot-card-title-block h3{margin:0 0 5px;font-size:14px;line-height:1.15;color:#3c2a1b;font-weight:900}
.user-mobile-page[data-user-theme="fresh"] .user-slot-card-title-block h3{color:#183653}
.user-mobile-page[data-user-theme="tech"] .user-slot-card-title-block h3{color:#252451}
.slot-code-badge-v11{display:inline-flex;align-items:center;height:21px;padding:0 8px;border-radius:8px;background:#f7f1e6;color:#9a866f;font-size:11px;font-weight:800}
.user-mobile-page[data-user-theme="fresh"] .slot-code-badge-v11{background:#eef6fb;color:#68829a}
.user-mobile-page[data-user-theme="tech"] .slot-code-badge-v11{background:#f0effb;color:#7a79a0}
.slot-battery-status-v11{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.slot-battery-percent-v11{font-size:16px;line-height:1;color:#69bf45;font-weight:900;white-space:nowrap}
.slot-battery-percent-v11.mid{color:#eaa01c}.slot-battery-percent-v11.low{color:#f36f4b}.slot-battery-percent-v11.empty{color:#b0bac5}.slot-battery-percent-v11.charging{color:var(--u-accent)}
.slot-battery-icon-v11{width:22px;height:14px;border:2px solid currentColor;border-radius:5px;position:relative;display:inline-block;color:#69bf45}
.slot-battery-icon-v11::before{content:"";position:absolute;right:-5px;top:3px;width:3px;height:6px;border-radius:0 2px 2px 0;background:currentColor}
.slot-battery-icon-v11::after{content:"";position:absolute;left:2px;top:2px;bottom:2px;width:var(--fill,50%);max-width:14px;border-radius:2px;background:currentColor}
.slot-battery-icon-v11.mid{color:#eaa01c}.slot-battery-icon-v11.low{color:#f36f4b}.slot-battery-icon-v11.empty{color:#c6ccd3}.slot-battery-icon-v11.empty::after{display:none}.slot-battery-icon-v11.charging{color:var(--u-accent)}
.user-slot-metrics-v11{display:grid;grid-template-columns:1fr 1fr;gap:7px 6px;min-width:0}
.user-control-metric{display:flex;align-items:center;gap:6px;min-width:0;color:#826b55;font-size:12px;font-weight:800}
.user-control-metric:nth-child(3){grid-column:1/span 1}
.user-control-metric .metric-icon{font-size:15px;line-height:1;width:16px;text-align:center}
.user-control-metric .metric-value{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-control-metric small{margin-left:1px;font-size:12px;color:inherit;font-weight:800}
.user-mobile-page[data-user-theme="fresh"] .user-control-metric{color:#546f88}
.user-mobile-page[data-user-theme="tech"] .user-control-metric{color:#6a6991}
.slot-eject-btn-v11{
  align-self:flex-end;min-width:78px;height:36px;padding:0 18px;border:0;border-radius:999px;
  color:#fff;font-size:13px;font-weight:900;box-shadow:0 7px 16px color-mix(in srgb,var(--u-accent) 20%,transparent);
}
.user-mobile-page[data-user-theme="fresh"] .slot-eject-btn-v11{background:linear-gradient(90deg,#ffbd1f,#ff9f17)}
.user-mobile-page[data-user-theme="warm"] .slot-eject-btn-v11{background:linear-gradient(90deg,#ffae28,#ff7529)}
.user-mobile-page[data-user-theme="tech"] .slot-eject-btn-v11{background:linear-gradient(90deg,#7542f2,#6038e9)}
.slot-eject-btn-v11:disabled{background:#eef1f4!important;color:#93a0ad;box-shadow:none;cursor:not-allowed}
.user-slot-page-empty-v11{grid-column:1/-1;background:#fff;border:1px solid var(--u-border);border-radius:16px;padding:24px;text-align:center;color:var(--u-muted)}

@media(max-width:390px){
  .user-slot-control-main-v11{padding-left:10px;padding-right:10px;gap:10px}
  .user-control-device-card{grid-template-columns:92px 1fr;padding:12px;border-radius:18px;min-height:114px}
  .user-control-device-info h1{font-size:16px}.user-control-device-info p{font-size:11px}
  .user-control-status-pill{height:24px;padding:0 9px;font-size:12px}
  .user-control-eject-all{height:48px;font-size:16px}
  .user-slot-detail-grid-v11{gap:10px}.user-slot-card-v11{padding:10px;border-radius:16px}
  .slot-battery-percent-v11{font-size:15px}.slot-eject-btn-v11{min-width:72px;height:34px;font-size:12px}
  .user-control-metric{font-size:11px}.user-control-metric small{font-size:11px}
}
@media(max-width:345px){
  .user-slot-detail-grid-v11{grid-template-columns:1fr}
}
@media(min-width:700px){
  .user-slot-control-app-v11{margin:18px auto 28px;border-radius:28px;border:1px solid #e5e9ee;box-shadow:0 22px 60px rgba(39,59,84,.14);overflow:hidden}
}

/* =========================================================
   V0.12 修正：进入控制页布局/文字截断/主题插画
   - 修复全局 .metric-value 与用户卡片字段同名导致字号 34px、文字省略的问题
   - 使用独立裁切的主题角色图，不再截到“芒果快充”品牌文字
   - 仓位卡片严格两列，电压/温度/循环/弹出组成 2×2 区块
   ========================================================= */
.user-mobile-page .user-control-device-card::after{display:none!important}
.user-mobile-page[data-user-theme="fresh"] .user-control-device-illustration::before{
  background-image:url('/assets/img/user-control-fresh.png')!important;
  background-size:cover!important;background-position:center!important;
}
.user-mobile-page[data-user-theme="warm"] .user-control-device-illustration::before{
  background-image:url('/assets/img/user-control-warm.png')!important;
  background-size:cover!important;background-position:center!important;
}
.user-mobile-page[data-user-theme="tech"] .user-control-device-illustration::before{
  background-image:url('/assets/img/user-control-tech.png')!important;
  background-size:cover!important;background-position:center!important;
}
.user-control-device-illustration{background:transparent!important}

.user-slot-card-v11{gap:11px!important;padding:12px!important;min-height:172px}
.user-slot-card-head-v11{min-height:42px}
.user-slot-card-title-block h3{font-size:15px!important;line-height:1.15!important}
.slot-code-badge-v11{font-size:10px!important;height:20px!important;padding:0 7px!important}
.slot-battery-percent-v11{font-size:16px!important;line-height:1!important;letter-spacing:0!important;margin:0!important}

.user-slot-card-body-v12{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  grid-template-rows:36px 36px;gap:8px 8px;align-items:center;
}
.user-control-metric{
  min-width:0!important;width:100%!important;display:flex!important;align-items:center!important;gap:5px!important;
  margin:0!important;padding:0!important;font-size:11px!important;line-height:1.15!important;font-weight:800!important;
  overflow:visible!important;white-space:nowrap!important;
}
/* 关键修复：避免继承管理员首页 .metric-value 的 34px / margin-top / line-height */
.user-control-metric .metric-value{
  display:inline!important;min-width:0!important;max-width:none!important;margin:0!important;padding:0!important;
  font-size:12px!important;line-height:1.15!important;letter-spacing:0!important;font-weight:900!important;
  white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;color:inherit!important;
}
.user-control-metric .metric-icon{
  flex:0 0 16px!important;width:16px!important;height:auto!important;margin:0!important;padding:0!important;
  font-size:14px!important;line-height:1!important;filter:none!important;background:transparent!important;border-radius:0!important;
}
.user-control-metric small{
  display:inline!important;margin:0!important;padding:0!important;font-size:10px!important;line-height:1.15!important;
  color:inherit!important;font-weight:800!important;white-space:nowrap!important;
}
.user-control-metric:nth-child(1){grid-column:1;grid-row:1}
.user-control-metric:nth-child(2){grid-column:2;grid-row:1}
.user-control-metric:nth-child(3){grid-column:1;grid-row:2}
.slot-eject-btn-v11{
  grid-column:2;grid-row:2;justify-self:end;align-self:center!important;min-width:68px!important;height:34px!important;
  padding:0 15px!important;font-size:12px!important;margin:0!important;
}

@media(max-width:390px){
  .user-slot-card-v11{padding:10px!important;min-height:164px}
  .user-slot-card-title-block h3{font-size:14px!important}
  .slot-battery-percent-v11{font-size:15px!important}
  .user-control-metric .metric-value{font-size:11px!important}
  .user-control-metric small{font-size:9px!important}
  .user-control-metric{font-size:10px!important;gap:4px!important}
  .slot-eject-btn-v11{min-width:64px!important;height:32px!important;padding:0 12px!important;font-size:11px!important}
}
@media(max-width:345px){
  .user-slot-detail-grid-v11{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .user-slot-card-v11{padding:8px!important;min-height:158px}
  .user-slot-card-body-v12{gap:6px 5px;grid-template-rows:34px 34px}
  .slot-battery-icon-v11{width:19px;height:13px}
  .slot-battery-percent-v11{font-size:13px!important}
  .user-control-metric .metric-icon{flex-basis:13px!important;width:13px!important;font-size:12px!important}
  .user-control-metric .metric-value{font-size:10px!important}
  .user-control-metric small{font-size:8px!important}
  .slot-eject-btn-v11{min-width:58px!important;height:30px!important;padding:0 9px!important}
}

/* =========================================================
   V0.13 普通用户「进入控制」最终视觉基线
   唯一参考：用户确认的三主题设计稿。
   使用全新 v13-* 类名，隔离 V0.11/V0.12 历史样式，避免级联冲突。
   ========================================================= */
.user-mobile-page[data-user-theme="fresh"]{
  --v13-page:#f6fbff;--v13-panel:#fff;--v13-border:#bcdcf4;--v13-text:#173653;--v13-muted:#71869a;
  --v13-primary:#167ee8;--v13-primary-2:#58b8ff;--v13-btn-a:#ffc926;--v13-btn-b:#ffa112;
  --v13-shadow:0 6px 18px rgba(56,136,197,.12);--v13-code-bg:#edf6fc;--v13-code:#7890a4;
}
.user-mobile-page[data-user-theme="warm"]{
  --v13-page:#fffaf0;--v13-panel:#fffdf9;--v13-border:#efdaba;--v13-text:#402b19;--v13-muted:#88725b;
  --v13-primary:#e87818;--v13-primary-2:#ffb13d;--v13-btn-a:#ffae28;--v13-btn-b:#ff7a23;
  --v13-shadow:0 6px 18px rgba(151,95,39,.10);--v13-code-bg:#f8f1e6;--v13-code:#927d67;
}
.user-mobile-page[data-user-theme="tech"]{
  --v13-page:#faf9ff;--v13-panel:#fff;--v13-border:#dcd6f8;--v13-text:#282555;--v13-muted:#74739a;
  --v13-primary:#5f49e8;--v13-primary-2:#4f79ff;--v13-btn-a:#8a4df3;--v13-btn-b:#5f3ce9;
  --v13-shadow:0 6px 19px rgba(82,67,175,.11);--v13-code-bg:#f0effb;--v13-code:#7e7ba6;
}

.v13-control-app{
  width:100%;max-width:470px;min-height:100dvh;margin:0 auto;background:var(--v13-page);color:var(--v13-text);
  padding-bottom:calc(18px + env(safe-area-inset-bottom));font-family:var(--font);overflow:hidden;
}
.v13-control-topbar{
  height:60px;padding:calc(env(safe-area-inset-top) + 7px) 14px 8px;display:grid;grid-template-columns:42px 1fr 42px;
  align-items:center;background:var(--v13-page);position:relative;z-index:5;
}
.v13-control-topbar h1{margin:0;text-align:center;font-size:18px;line-height:1;font-weight:900;color:var(--v13-text);letter-spacing:.2px}
.v13-topbar-action{width:36px;height:36px;border:0;background:transparent;color:var(--v13-text);display:grid;place-items:center;padding:0}
.v13-topbar-action svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.v13-topbar-action.more{justify-self:end;font-size:19px;letter-spacing:1.5px;opacity:1!important;cursor:default}
.v13-topbar-action.more:disabled{color:var(--v13-text)}
.v13-control-main{display:flex;flex-direction:column;gap:10px;padding:0 14px 16px}

/* 设备卡：严格按设计稿，左侧主题芒果，右侧设备文字 */
.v13-device-hero{
  min-height:137px;border:1px solid var(--v13-border);border-radius:20px;background:var(--v13-panel);box-shadow:var(--v13-shadow);
  display:grid;grid-template-columns:142px 1fr;gap:5px;align-items:center;padding:10px 14px 10px 7px;position:relative;overflow:hidden;
}
.v13-device-hero::before,.v13-device-hero::after{content:"";position:absolute;pointer-events:none;z-index:0}
.user-mobile-page[data-user-theme="fresh"] .v13-device-hero{
  background:linear-gradient(110deg,#e8f8ff 0%,#f7fcff 70%,#e7f6ff 100%);
}
.user-mobile-page[data-user-theme="fresh"] .v13-device-hero::before{right:18px;top:16px;width:42px;height:42px;border-radius:50%;background:#fff3a7;box-shadow:0 0 0 10px rgba(255,242,159,.15)}
.user-mobile-page[data-user-theme="fresh"] .v13-device-hero::after{right:-28px;bottom:-24px;width:150px;height:72px;border-radius:70% 0 0 0;background:rgba(255,255,255,.55)}
.user-mobile-page[data-user-theme="warm"] .v13-device-hero{
  background:linear-gradient(112deg,#fff9e9 0%,#fffdf8 67%,#fff4d6 100%);
}
.user-mobile-page[data-user-theme="warm"] .v13-device-hero::before{right:23px;top:23px;width:16px;height:16px;background:#ffe3a5;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.user-mobile-page[data-user-theme="warm"] .v13-device-hero::after{right:14px;bottom:4px;width:92px;height:92px;border-radius:50%;background:rgba(243,193,103,.08)}
.user-mobile-page[data-user-theme="tech"] .v13-device-hero{
  background:radial-gradient(circle at 80% 18%,rgba(123,86,255,.75),transparent 27%),linear-gradient(120deg,#24117a 0%,#3520a4 52%,#4730c7 100%);
  border-color:#6650dd;box-shadow:0 8px 20px rgba(70,49,190,.20);
}
.user-mobile-page[data-user-theme="tech"] .v13-device-hero::before{right:27px;top:22px;width:52px;height:18px;border:2px solid rgba(255,255,255,.35);border-radius:50%;transform:rotate(-16deg)}
.user-mobile-page[data-user-theme="tech"] .v13-device-hero::after{right:55px;top:20px;width:21px;height:21px;border-radius:50%;background:#8c64ff;box-shadow:42px 34px 0 -5px #5edfff,-72px -1px 0 -7px #fff,18px 76px 0 -8px #fff}
.v13-device-mascot{height:116px;border-radius:17px;position:relative;z-index:1;background-repeat:no-repeat;background-size:cover;background-position:center}
.user-mobile-page[data-user-theme="fresh"] .v13-device-mascot{background-image:url('/assets/img/v13-mascot-fresh.png');background-size:cover}
.user-mobile-page[data-user-theme="warm"] .v13-device-mascot{background-image:url('/assets/img/v13-mascot-warm.png');background-size:cover}
.user-mobile-page[data-user-theme="tech"] .v13-device-mascot{background-image:url('/assets/img/v13-mascot-tech.png');background-size:cover}
.v13-device-copy{position:relative;z-index:2;min-width:0;align-self:center;padding-left:4px}
.v13-device-copy h2{margin:0 0 8px;font-size:19px;line-height:1.15;font-weight:900;color:var(--v13-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-mobile-page[data-user-theme="tech"] .v13-device-copy h2{color:#fff}
.v13-status-pill{display:inline-flex;align-items:center;gap:4px;font-size:13px;line-height:1;font-weight:850;color:#18a94f;margin-bottom:9px}
.v13-status-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.v13-status-pill.warning{color:#f49a22}.v13-status-pill.offline{color:#9aa4ae}
.user-mobile-page[data-user-theme="tech"] .v13-status-pill{color:#45ef95}
.v13-device-copy p{margin:0;font-size:12px;font-weight:700;color:var(--v13-muted)}
.user-mobile-page[data-user-theme="tech"] .v13-device-copy p{color:#e8e4ff}
.v13-hero-decor{display:none}

.v13-eject-all{
  height:49px;border:0;border-radius:999px;color:#fff;display:flex;align-items:center;justify-content:center;gap:9px;
  font-size:16px;font-weight:900;box-shadow:0 7px 16px color-mix(in srgb,var(--v13-primary) 20%,transparent);padding:0 18px;
  background:linear-gradient(90deg,var(--v13-btn-a),var(--v13-btn-b));
}
.user-mobile-page[data-user-theme="tech"] .v13-eject-all{background:linear-gradient(90deg,#884cf0,#5c5af4)}
.v13-eject-all svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.v13-eject-all:disabled{opacity:.48;box-shadow:none}

/* 双列仓位：严格固定设计稿结构 */
.v13-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.v13-slot-card{
  min-width:0;height:123px;border:1px solid var(--v13-border);border-radius:15px;background:var(--v13-panel);box-shadow:var(--v13-shadow);
  padding:10px 10px 9px;display:grid;grid-template-rows:39px 1fr;gap:5px;overflow:hidden;
}
.v13-slot-header{display:flex;justify-content:space-between;align-items:flex-start;gap:5px;min-width:0}
.v13-slot-identity{min-width:0}
.v13-slot-identity h3{margin:0 0 4px;font-size:14px;line-height:1.05;font-weight:900;color:var(--v13-text);white-space:nowrap}
.v13-slot-identity>span{display:inline-flex;align-items:center;height:18px;max-width:68px;padding:0 7px;border-radius:6px;background:var(--v13-code-bg);color:var(--v13-code);font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v13-battery-wrap{display:flex;align-items:center;gap:5px;flex:0 0 auto;padding-top:1px;color:#50b72f}
.v13-battery-wrap.mid{color:#f2aa10}.v13-battery-wrap.low{color:#ff4d54}.v13-battery-wrap.empty{color:#b7c0c8}
.user-mobile-page[data-user-theme="tech"] .v13-battery-wrap.high{color:#13a8b9}
.v13-battery-wrap strong{font-size:16px;line-height:1;font-weight:900;white-space:nowrap;color:currentColor}
.v13-battery{width:23px;height:14px;border:2px solid currentColor;border-radius:4px;display:block;position:relative;padding:2px}
.v13-battery::after{content:"";position:absolute;right:-5px;top:3px;width:3px;height:6px;border-radius:0 2px 2px 0;background:currentColor}
.v13-battery-fill{display:block;height:100%;max-width:100%;border-radius:1px;background:currentColor}
.v13-slot-body{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:31px 31px;gap:1px 7px;align-items:center;min-width:0}
.v13-metric{min-width:0;display:flex;align-items:center;gap:4px;font-size:11px;line-height:1;color:#5e6371;font-weight:800;white-space:nowrap}
.user-mobile-page[data-user-theme="warm"] .v13-metric{color:#80684f}
.user-mobile-page[data-user-theme="fresh"] .v13-metric{color:#526c84}
.user-mobile-page[data-user-theme="tech"] .v13-metric{color:#62618b}
.v13-metric-icon{width:15px;height:17px;display:grid;place-items:center;flex:0 0 15px}
.v13-metric-icon svg{width:15px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.v13-metric-voltage .v13-metric-icon{color:#ffb31f}.v13-metric-temp .v13-metric-icon{color:#ff7146}.v13-metric-cycles .v13-metric-icon{color:#31b83e}
.user-mobile-page[data-user-theme="tech"] .v13-metric-voltage .v13-metric-icon,.user-mobile-page[data-user-theme="tech"] .v13-metric-temp .v13-metric-icon,.user-mobile-page[data-user-theme="tech"] .v13-metric-cycles .v13-metric-icon{color:#5264ed}
.v13-metric-text{min-width:0;display:flex;align-items:baseline;gap:2px;overflow:visible!important}
.v13-metric-text b{font-size:11px;line-height:1;font-weight:800;color:inherit;white-space:nowrap}
.v13-metric-text small{font-size:9px;line-height:1;font-weight:800;color:inherit;white-space:nowrap}
.v13-metric-voltage{grid-column:1;grid-row:1}.v13-metric-temp{grid-column:2;grid-row:1}.v13-metric-cycles{grid-column:1;grid-row:2}
.v13-eject-one{
  grid-column:2;grid-row:2;justify-self:end;width:68px;height:29px;border:0;border-radius:999px;color:#fff;
  background:linear-gradient(90deg,var(--v13-btn-a),var(--v13-btn-b));font-size:11px;font-weight:900;box-shadow:0 4px 10px color-mix(in srgb,var(--v13-primary) 18%,transparent);
}
.user-mobile-page[data-user-theme="tech"] .v13-eject-one{background:linear-gradient(90deg,#8a4ef1,#673eea)}
.v13-eject-one:disabled{background:#edf1f4!important;color:#a1abb5;box-shadow:none}
.v13-empty{grid-column:1/-1;padding:28px 15px;border:1px solid var(--v13-border);border-radius:15px;background:var(--v13-panel);color:var(--v13-muted);text-align:center;font-size:13px}

@media(max-width:390px){
  .v13-control-main{padding-left:10px;padding-right:10px;gap:9px}
  .v13-device-hero{grid-template-columns:124px 1fr;min-height:124px;padding:8px 11px 8px 6px;border-radius:18px}
  .v13-device-mascot{height:106px}.user-mobile-page[data-user-theme="fresh"] .v13-device-mascot,.user-mobile-page[data-user-theme="warm"] .v13-device-mascot,.user-mobile-page[data-user-theme="tech"] .v13-device-mascot{background-size:cover}
  .v13-device-copy h2{font-size:17px}.v13-status-pill{font-size:12px}.v13-device-copy p{font-size:11px}
  .v13-eject-all{height:46px;font-size:15px}
  .v13-slot-grid{gap:8px}.v13-slot-card{height:119px;padding:9px 8px 8px}.v13-slot-identity h3{font-size:13px}.v13-battery-wrap strong{font-size:15px}
  .v13-metric{gap:3px}.v13-metric-text b{font-size:10px}.v13-metric-text small{font-size:8px}.v13-eject-one{width:63px;height:28px;font-size:10px}
}
@media(max-width:335px){
  .v13-control-main{padding-left:7px;padding-right:7px}.v13-slot-grid{gap:6px}.v13-slot-card{padding:8px 7px;height:116px}.v13-slot-identity h3{font-size:12px}.v13-slot-identity>span{font-size:8px;padding:0 5px}
  .v13-battery-wrap strong{font-size:13px}.v13-battery{width:20px;height:13px}.v13-metric-text b{font-size:9px}.v13-metric-text small{font-size:7px}.v13-eject-one{width:57px}
}
@media(min-width:700px){
  .user-mobile-page{background:#edf1f5}.v13-control-app{margin:18px auto 28px;border:1px solid #e4e8ec;border-radius:28px;box-shadow:0 22px 60px rgba(37,54,74,.14)}
}

/* =========================================================
   V0.14 进入控制顶部设备卡：严格使用最终设计稿背景
   修复 V0.13 将角色图单独塞进内层矩形导致的割裂、裁切和重复装饰问题。
   ========================================================= */
.v14-device-hero{
  position:relative;width:100%;aspect-ratio:457/141;min-height:0;
  border:0;border-radius:20px;overflow:hidden;background-repeat:no-repeat;
  background-size:100% 100%;background-position:center;box-shadow:var(--v13-shadow);
}
.user-mobile-page[data-user-theme="fresh"] .v14-device-hero{background-image:url('/assets/img/v14-device-hero-fresh.png')}
.user-mobile-page[data-user-theme="warm"] .v14-device-hero{background-image:url('/assets/img/v14-device-hero-warm.png')}
.user-mobile-page[data-user-theme="tech"] .v14-device-hero{background-image:url('/assets/img/v14-device-hero-tech.png')}
.v14-device-copy{
  position:absolute;left:35.5%;top:18%;width:48%;height:70%;z-index:2;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;
  color:var(--v13-text);min-width:0;text-align:left;
}
.v14-device-copy h2{
  margin:0 0 8px;font-size:clamp(18px,5.2vw,24px);line-height:1.08;font-weight:950;
  color:var(--v13-text);letter-spacing:.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.v14-status-pill{
  display:inline-flex;align-items:center;gap:7px;margin:0 0 8px;font-size:clamp(12px,3.4vw,15px);
  line-height:1;font-weight:900;color:#1fa94c;white-space:nowrap;
}
.v14-status-pill::before{content:"";width:9px;height:9px;border-radius:50%;background:currentColor;flex:0 0 auto}
.v14-status-pill.warning{color:#f39a20}.v14-status-pill.offline{color:#98a1aa}
.v14-device-copy p{
  margin:0;font-size:clamp(11px,3.1vw,14px);line-height:1.1;font-weight:750;color:#657889;white-space:nowrap;
}
.user-mobile-page[data-user-theme="warm"] .v14-device-copy h2{color:#422d1c}
.user-mobile-page[data-user-theme="warm"] .v14-device-copy p{color:#846f59}
.user-mobile-page[data-user-theme="tech"] .v14-device-copy h2{color:#fff;text-shadow:0 1px 3px rgba(17,10,78,.22)}
.user-mobile-page[data-user-theme="tech"] .v14-status-pill{color:#45ef95;text-shadow:0 1px 2px rgba(17,10,78,.2)}
.user-mobile-page[data-user-theme="tech"] .v14-device-copy p{color:#eeeaff;text-shadow:0 1px 2px rgba(17,10,78,.2)}

@media(max-width:390px){
  .v14-device-hero{border-radius:18px}
  .v14-device-copy{left:35.8%;top:18.5%;width:49%}
  .v14-device-copy h2{margin-bottom:7px}
  .v14-status-pill{margin-bottom:7px}
}
@media(max-width:335px){
  .v14-device-copy{left:35%;top:17.5%;width:50%}
  .v14-device-copy h2{font-size:17px}.v14-status-pill{font-size:11px}.v14-device-copy p{font-size:10px}
}

/* =========================================================
   V0.15 普通用户语音设置页（紧凑版定稿）
   设计基准：用户确认的三主题紧凑版语音设置设计稿。
   仅新增语音页视觉，不改变管理员后台、首页和进入控制页布局。
   ========================================================= */
.voice-v15-app{
  width:100%;max-width:470px;min-height:100dvh;margin:0 auto;background:var(--u-bg);
  padding:0 0 calc(18px + env(safe-area-inset-bottom));overflow:hidden;
}
.voice-v15-topbar{
  height:58px;padding:calc(env(safe-area-inset-top) + 7px) 16px 8px;
  display:grid;grid-template-columns:40px 1fr 40px;align-items:end;background:var(--u-bg);position:sticky;top:0;z-index:20;
}
.voice-v15-topbar strong{justify-self:center;font-size:18px;line-height:1.1;font-weight:950;color:#183653;letter-spacing:.3px}
.voice-v15-back{width:36px;height:36px;border:0;background:transparent;border-radius:50%;font-size:31px;line-height:1;color:var(--u-accent);padding:0;display:grid;place-items:center}
.user-mobile-page[data-user-theme="warm"] .voice-v15-topbar strong{color:#4a2a17}
.user-mobile-page[data-user-theme="tech"] .voice-v15-topbar strong{color:#28224f}
.voice-v15-main{display:flex;flex-direction:column;gap:11px;padding:8px 14px 14px}
.voice-v15-device-hero{
  position:relative;aspect-ratio:457/141;border-radius:20px;overflow:hidden;background-repeat:no-repeat;background-size:100% 100%;background-position:center;
  border:1px solid var(--u-border);box-shadow:var(--u-shadow);
}
.user-mobile-page[data-user-theme="fresh"] .voice-v15-device-hero{background-image:url('/assets/img/v14-device-hero-fresh.png')}
.user-mobile-page[data-user-theme="warm"] .voice-v15-device-hero{background-image:url('/assets/img/v14-device-hero-warm.png')}
.user-mobile-page[data-user-theme="tech"] .voice-v15-device-hero{background-image:url('/assets/img/v14-device-hero-tech.png')}
.voice-v15-device-copy{position:absolute;left:48%;top:50%;transform:translateY(-50%);right:5%;z-index:2}
.voice-v15-device-copy h1{margin:0;font-size:20px;line-height:1.15;color:#183653;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.voice-v15-online{margin-top:8px;color:#18a84f;font-size:12px;font-weight:900}.voice-v15-online.warning{color:#ef8b1e}.voice-v15-online.offline{color:#8b97a3}
.voice-v15-device-copy p{margin:7px 0 0;color:#627d97;font-size:11px;font-weight:750}
.user-mobile-page[data-user-theme="warm"] .voice-v15-device-copy h1{color:#4a2a17}.user-mobile-page[data-user-theme="warm"] .voice-v15-device-copy p{color:#8b6f52}
.user-mobile-page[data-user-theme="tech"] .voice-v15-device-copy h1{color:#fff;text-shadow:0 2px 8px rgba(25,15,94,.25)}.user-mobile-page[data-user-theme="tech"] .voice-v15-device-copy p{color:#efeaff}.user-mobile-page[data-user-theme="tech"] .voice-v15-online{color:#3fe899}
.voice-v15-card{background:#fff;border:1px solid var(--u-border);border-radius:18px;box-shadow:var(--u-shadow)}
.voice-v15-control-card{padding:14px 15px 13px}.voice-v15-row{display:flex;align-items:center;justify-content:space-between}.voice-v15-switch-row b{font-size:14px;color:#233b53}.user-mobile-page[data-user-theme="warm"] .voice-v15-switch-row b{color:#4a2f1b}.user-mobile-page[data-user-theme="tech"] .voice-v15-switch-row b{color:#292550}
.voice-v15-switch{width:48px;height:28px;border:0;border-radius:999px;padding:2px;background:#d9dee5;position:relative;transition:.18s}.voice-v15-switch i{display:block;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.16);transition:.18s}.voice-v15-switch.on{background:var(--u-accent)}.voice-v15-switch.on i{transform:translateX(20px)}.voice-v15-switch:disabled{opacity:.5}
.voice-v15-divider{height:1px;background:#edf0f3;margin:12px 0 10px}.voice-v15-volume-head{display:flex;justify-content:space-between;align-items:center}.voice-v15-volume-head b{font-size:12px;color:#344a60}.voice-v15-volume-head strong{font-size:12px;color:var(--u-accent)}
.voice-v15-volume-row{display:grid;grid-template-columns:20px 1fr 20px;gap:7px;align-items:center;margin-top:7px;color:#b3c0cf;font-size:13px}.voice-v15-volume-row input{width:100%;accent-color:var(--u-accent)}
.voice-v15-scene-card{padding:14px}.voice-v15-scene-card h2,.voice-v15-section-head h2{margin:0;font-size:14px;color:var(--u-accent);font-weight:950}.voice-v15-field-label,.voice-v15-current-label{display:block;margin-top:12px;font-size:10px;color:#667c92;font-weight:800}.voice-v15-select{width:100%;height:43px;margin-top:6px;padding:0 12px;border:1px solid color-mix(in srgb,var(--u-accent) 30%,#dfe6ed);border-radius:11px;background:#fff;color:#263c53;font-size:13px;font-weight:800;outline:none}
.voice-v15-current-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:6px}.voice-v15-current-row strong{font-size:14px;color:#283b4e}.voice-v15-play,.voice-v15-mini-play{width:39px;height:39px;border-radius:50%;border:1px solid color-mix(in srgb,var(--u-accent) 35%,#dde6ee);background:#fff;color:var(--u-accent);display:grid;place-items:center;font-size:14px;padding-left:3px}.voice-v15-outline{width:100%;height:39px;margin-top:10px;border:1px solid var(--u-accent);border-radius:10px;background:#fff;color:var(--u-accent);font-size:13px;font-weight:900}
.voice-v15-my-card{padding:13px 14px 11px}.voice-v15-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.voice-v15-section-head button{border:0;background:transparent;color:var(--u-accent);font-size:11px;font-weight:900;padding:2px 0}.voice-v15-my-preview{border-top:1px solid #edf0f3}.voice-v15-custom-row{min-height:66px;display:grid;grid-template-columns:40px 1fr 38px auto;gap:9px;align-items:center;padding:8px 0}.voice-v15-note-icon{width:38px;height:38px;border-radius:10px;background:var(--u-accent-soft);color:var(--u-accent);display:grid;place-items:center;font-size:20px;font-weight:900}.voice-v15-custom-copy,.voice-v15-choice-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.voice-v15-custom-copy b,.voice-v15-choice-copy b{font-size:12px;color:#293d52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-v15-custom-copy small,.voice-v15-choice-copy small{font-size:9px;color:#8090a0}.voice-v15-custom-copy em{font-style:normal;font-weight:850}.voice-v15-custom-copy em.synced{color:#1fb15b}.voice-v15-custom-copy em.pending{color:#f1a21c}.voice-v15-custom-copy em.syncing{color:var(--u-accent)}.voice-v15-mini-play{width:34px;height:34px;font-size:12px}.voice-v15-more{border:0;background:transparent;color:var(--u-accent);font-size:16px;padding:5px}
.voice-v15-empty{padding:17px 4px;color:#93a0ad;font-size:11px;text-align:center}
.voice-v15-storage-card{padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.voice-v15-storage-copy{min-width:0}.voice-v15-storage-copy b{display:block;font-size:12px;color:#2c4054}.voice-v15-storage-copy strong{display:block;margin-top:7px;font-size:11px;color:#53677b}.voice-v15-progress{height:7px;margin-top:8px;border-radius:999px;background:var(--u-accent-soft);overflow:hidden}.voice-v15-progress i{display:block;height:100%;width:0;border-radius:999px;background:var(--u-accent);transition:.25s}.voice-v15-reset{height:42px;padding:0 15px;border:1px solid var(--u-accent);border-radius:12px;background:#fff;color:var(--u-accent);font-size:12px;font-weight:900;white-space:nowrap}

/* 语音设置底部抽屉 */
.voice-v15-sheet-backdrop{position:fixed;inset:0;z-index:120;background:rgba(20,27,38,.35);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(2px)}
.voice-v15-sheet{width:min(100%,470px);max-height:82dvh;background:#fff;border-radius:24px 24px 0 0;padding:8px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(30,44,60,.18);overflow:auto}.voice-v15-sheet-handle{width:42px;height:5px;border-radius:999px;background:#d9dee5;margin:0 auto 8px}.voice-v15-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:5px 2px 10px;border-bottom:1px solid #edf0f3}.voice-v15-sheet-head small{display:block;color:#8a99a8;font-size:9px}.voice-v15-sheet-head h2{margin:3px 0 0;font-size:17px;color:#263b50}.voice-v15-sheet-head button{width:34px;height:34px;border:0;border-radius:50%;background:#f3f5f7;color:#68798a;font-size:22px}.voice-v15-sheet-body{padding-top:10px}.voice-v15-sheet-section-title{margin:12px 0 7px;font-size:11px;color:#7f8d9c}.voice-v15-choice{width:100%;min-height:58px;padding:8px 4px;border:0;border-bottom:1px solid #edf0f3;background:#fff;display:grid;grid-template-columns:38px 1fr 28px;gap:9px;align-items:center;text-align:left}.voice-v15-choice-check{justify-self:end;color:var(--u-accent);font-weight:900}.voice-v15-sheet-empty{padding:16px 6px;color:#909dab;font-size:11px;text-align:center;background:#f8fafb;border-radius:12px}.voice-v15-manage-list{border:1px solid #edf0f3;border-radius:14px;padding:0 10px}.voice-v15-sheet-primary,.voice-v15-sheet-danger{width:100%;height:44px;margin-top:12px;border:0;border-radius:12px;font-weight:900;font-size:13px}.voice-v15-sheet-primary{background:linear-gradient(100deg,var(--u-accent2),var(--u-accent));color:#fff}.voice-v15-sheet-danger{background:#fff0ef;color:#df554e;border:1px solid #f6cfcb}.voice-v15-form-field{display:block;margin-top:11px}.voice-v15-form-field span{display:block;margin-bottom:6px;font-size:10px;color:#687b8e;font-weight:800}.voice-v15-form-field input{width:100%;height:43px;border:1px solid #dfe6ed;border-radius:10px;background:#fff;color:#263b50;padding:0 12px;font-size:13px;outline:none}.voice-v15-form-field input:focus{border-color:var(--u-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--u-accent) 10%,transparent)}.voice-v15-dev-note{padding:10px 11px;border-radius:11px;background:#fff8e9;color:#98713f;font-size:10px;line-height:1.55}

/* 三主题细节 */
.user-mobile-page[data-user-theme="fresh"] .voice-v15-card{border-color:#dcecf8}.user-mobile-page[data-user-theme="fresh"] .voice-v15-note-icon{background:#e8f4ff}.user-mobile-page[data-user-theme="fresh"] .voice-v15-reset{background:#fff}
.user-mobile-page[data-user-theme="warm"] .voice-v15-card{border-color:#efdfc6}.user-mobile-page[data-user-theme="warm"] .voice-v15-note-icon{background:#fff1da}.user-mobile-page[data-user-theme="warm"] .voice-v15-current-row strong,.user-mobile-page[data-user-theme="warm"] .voice-v15-custom-copy b{color:#4a321f}
.user-mobile-page[data-user-theme="tech"] .voice-v15-card{border-color:#e1def5}.user-mobile-page[data-user-theme="tech"] .voice-v15-note-icon{background:#efecff}.user-mobile-page[data-user-theme="tech"] .voice-v15-current-row strong,.user-mobile-page[data-user-theme="tech"] .voice-v15-custom-copy b{color:#2c2856}

@media(max-width:390px){
  .voice-v15-main{padding-left:10px;padding-right:10px;gap:9px}.voice-v15-topbar{height:54px}.voice-v15-device-hero{border-radius:18px}.voice-v15-device-copy h1{font-size:18px}.voice-v15-control-card,.voice-v15-scene-card{padding:12px}.voice-v15-storage-card{padding:11px 12px;gap:9px}.voice-v15-reset{padding:0 11px;font-size:11px}.voice-v15-card{border-radius:16px}
}
@media(max-width:340px){.voice-v15-storage-card{grid-template-columns:1fr}.voice-v15-reset{width:100%}}
@media(min-width:700px){.user-mobile-page{background:#eef2f6}.voice-v15-app{margin:18px auto 28px;border:1px solid #e5e9ee;border-radius:28px;box-shadow:0 22px 60px rgba(39,59,84,.14);overflow:hidden}.voice-v15-sheet{border-radius:24px}}

/* =========================================================
   V0.16 首页智能语音入口 + 对话识别页面
   首页原四个功能按钮继续只负责开关；新增两个入口按钮负责进入设置页。
   ========================================================= */
.user-service-entry-row-v16{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;
}
.user-service-entry-v16{
  min-width:0;min-height:58px;padding:9px 10px;border:1px solid var(--u-border);border-radius:16px;
  background:#fff;box-shadow:var(--u-shadow);display:grid;grid-template-columns:34px 1fr 12px;gap:8px;
  align-items:center;text-align:left;color:#2e4257;transition:transform .15s,border-color .15s,background .15s;
}
.user-service-entry-v16:active{transform:scale(.98);background:var(--u-accent-soft)}
.user-service-entry-icon-v16{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--u-accent-soft);color:var(--u-accent);
}
.user-service-entry-icon-v16 svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.user-service-entry-copy-v16{min-width:0;display:flex;flex-direction:column;gap:4px}.user-service-entry-copy-v16 b{font-size:12px;line-height:1;color:#30465c;white-space:nowrap}.user-service-entry-copy-v16 small{font-size:9px;line-height:1;color:#8594a3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-service-entry-arrow-v16{justify-self:end;color:var(--u-accent);font-size:20px;line-height:1}
.user-mobile-page[data-user-theme="warm"] .user-service-entry-copy-v16 b{color:#4a321f}.user-mobile-page[data-user-theme="tech"] .user-service-entry-copy-v16 b{color:#2c2856}

.recognition-v16-app{width:100%;max-width:470px;min-height:100dvh;margin:0 auto;background:var(--u-bg);padding-bottom:16px}
.recognition-v16-topbar{height:58px;padding:calc(env(safe-area-inset-top) + 7px) 15px 9px;display:grid;grid-template-columns:40px 1fr 40px;align-items:end;background:var(--u-bg)}
.recognition-v16-topbar strong{justify-self:center;font-size:18px;line-height:1.1;font-weight:950;color:#183653;letter-spacing:.3px}.recognition-v16-back{width:36px;height:36px;border:0;background:transparent;border-radius:50%;font-size:31px;line-height:1;color:var(--u-accent);padding:0;display:grid;place-items:center}.user-mobile-page[data-user-theme="warm"] .recognition-v16-topbar strong{color:#4a2a17}.user-mobile-page[data-user-theme="tech"] .recognition-v16-topbar strong{color:#28224f}
.recognition-v16-main{display:flex;flex-direction:column;gap:11px;padding:8px 14px 14px}
.recognition-v16-device-hero{position:relative;width:100%;aspect-ratio:457/141;border-radius:19px;border:1px solid var(--u-border);overflow:hidden;background-repeat:no-repeat;background-size:100% 100%;background-position:center;box-shadow:var(--u-shadow)}
.user-mobile-page[data-user-theme="fresh"] .recognition-v16-device-hero{background-image:url('/assets/img/v14-device-hero-fresh.png')}.user-mobile-page[data-user-theme="warm"] .recognition-v16-device-hero{background-image:url('/assets/img/v14-device-hero-warm.png')}.user-mobile-page[data-user-theme="tech"] .recognition-v16-device-hero{background-image:url('/assets/img/v14-device-hero-tech.png')}
.recognition-v16-device-copy{position:absolute;left:48%;top:50%;transform:translateY(-50%);right:5%;z-index:2}.recognition-v16-device-copy h1{margin:0;font-size:20px;line-height:1.15;color:#183653;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recognition-v16-online{margin-top:8px;color:#18a84f;font-size:12px;font-weight:900}.recognition-v16-online.warning{color:#ef8b1e}.recognition-v16-online.offline{color:#8b97a3}.recognition-v16-device-copy p{margin:7px 0 0;color:#627d97;font-size:11px;font-weight:750}.user-mobile-page[data-user-theme="warm"] .recognition-v16-device-copy h1{color:#4a2a17}.user-mobile-page[data-user-theme="warm"] .recognition-v16-device-copy p{color:#8b6f52}.user-mobile-page[data-user-theme="tech"] .recognition-v16-device-copy h1{color:#fff;text-shadow:0 2px 8px rgba(25,15,94,.25)}.user-mobile-page[data-user-theme="tech"] .recognition-v16-device-copy p{color:#efeaff}.user-mobile-page[data-user-theme="tech"] .recognition-v16-online{color:#3fe899}
.recognition-v16-card{background:#fff;border:1px solid var(--u-border);border-radius:18px;box-shadow:var(--u-shadow)}
.recognition-v16-control-card{padding:14px 15px 13px}.recognition-v16-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.recognition-v16-switch-row>div{display:flex;flex-direction:column;gap:4px}.recognition-v16-switch-row b{font-size:14px;color:#233b53}.recognition-v16-switch-row small{font-size:9px;color:#8a98a6}.user-mobile-page[data-user-theme="warm"] .recognition-v16-switch-row b{color:#4a2f1b}.user-mobile-page[data-user-theme="tech"] .recognition-v16-switch-row b{color:#292550}
.recognition-v16-switch{width:48px;height:28px;border:0;border-radius:999px;padding:2px;background:#d9dee5;position:relative;transition:.18s;flex:0 0 auto}.recognition-v16-switch i{display:block;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.16);transition:.18s}.recognition-v16-switch.on{background:var(--u-accent)}.recognition-v16-switch.on i{transform:translateX(20px)}.recognition-v16-switch:disabled{opacity:.5}
.recognition-v16-warning{margin-top:10px;padding:8px 10px;border-radius:10px;background:#fff4dd;color:#9a6b27;font-size:9px;line-height:1.45}.recognition-v16-divider{height:1px;background:#edf0f3;margin:12px 0 10px}.recognition-v16-volume-head{display:flex;justify-content:space-between;align-items:center}.recognition-v16-volume-head b{font-size:12px;color:#344a60}.recognition-v16-volume-head strong{font-size:12px;color:var(--u-accent)}.recognition-v16-volume-row{display:grid;grid-template-columns:20px 1fr 20px;gap:7px;align-items:center;margin-top:7px;color:#9eacba;font-size:9px;font-weight:800;text-align:center}.recognition-v16-volume-row input{width:100%;accent-color:var(--u-accent)}
.recognition-v16-wake-card{padding:13px 14px}.recognition-v16-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.recognition-v16-section-head h2,.recognition-v16-command-card h2{margin:0;font-size:14px;color:var(--u-accent);font-weight:950}.recognition-v16-section-head button{border:0;background:transparent;color:var(--u-accent);font-size:11px;font-weight:900;padding:2px 0}.recognition-v16-badge{display:inline-flex;height:22px;align-items:center;padding:0 8px;border-radius:999px;background:var(--u-accent-soft);color:var(--u-accent);font-size:9px;font-weight:900}.recognition-v16-wake-row{min-height:58px;display:grid;grid-template-columns:38px 1fr auto;gap:9px;align-items:center;border-top:1px solid #edf0f3;padding-top:8px}.recognition-v16-wake-icon{width:38px;height:38px;border-radius:12px;background:var(--u-accent-soft);color:var(--u-accent);display:grid;place-items:center;font-size:18px}.recognition-v16-wake-row div{display:flex;flex-direction:column;gap:4px}.recognition-v16-wake-row small{font-size:9px;color:#8b98a5}.recognition-v16-wake-row strong{font-size:14px;color:#293d52}.recognition-v16-offline{font-size:9px;color:#24a85a;font-weight:900;white-space:nowrap}
.recognition-v16-command-card{padding:14px}.recognition-v16-field-label,.recognition-v16-current-label{display:block;margin-top:12px;font-size:10px;color:#667c92;font-weight:800}.recognition-v16-select{width:100%;height:43px;margin-top:6px;padding:0 12px;border:1px solid color-mix(in srgb,var(--u-accent) 30%,#dfe6ed);border-radius:11px;background:#fff;color:#263c53;font-size:13px;font-weight:800;outline:none}.recognition-v16-current-phrases{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;min-height:27px}.recognition-v16-current-phrases span{display:inline-flex;align-items:center;min-height:27px;padding:0 9px;border-radius:9px;background:var(--u-accent-soft);color:#374d63;font-size:10px;font-weight:800}.recognition-v16-current-phrases.empty{color:#97a3af;font-size:11px;align-items:center}.recognition-v16-outline{width:100%;height:39px;margin-top:10px;border:1px solid var(--u-accent);border-radius:10px;background:#fff;color:var(--u-accent);font-size:13px;font-weight:900}
.recognition-v16-my-card{padding:13px 14px 11px}.recognition-v16-command-preview{border-top:1px solid #edf0f3}.recognition-v16-command-row{min-height:65px;display:grid;grid-template-columns:40px 1fr auto auto;gap:9px;align-items:center;padding:8px 0}.recognition-v16-command-icon{width:38px;height:38px;border-radius:10px;background:var(--u-accent-soft);color:var(--u-accent);display:grid;place-items:center;font-size:18px;font-weight:900}.recognition-v16-command-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.recognition-v16-command-copy b{font-size:12px;color:#293d52;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recognition-v16-command-copy small{font-size:9px;color:#8090a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recognition-v16-command-count{font-size:9px;color:#24a85a;font-weight:900;white-space:nowrap}.recognition-v16-more{border:0;background:transparent;color:var(--u-accent);font-size:10px;font-weight:900;padding:5px}.recognition-v16-empty{padding:17px 4px;color:#93a0ad;font-size:11px;text-align:center}
.recognition-v16-summary-card{padding:13px 14px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.recognition-v16-summary-copy{min-width:0}.recognition-v16-summary-copy b{display:block;font-size:12px;color:#2c4054}.recognition-v16-summary-copy strong{display:block;margin-top:6px;font-size:11px;color:#53677b}.recognition-v16-summary-copy small{display:block;margin-top:4px;font-size:9px;color:#8996a3}.recognition-v16-reset{height:42px;padding:0 15px;border:1px solid var(--u-accent);border-radius:12px;background:#fff;color:var(--u-accent);font-size:12px;font-weight:900;white-space:nowrap}
.recognition-v16-sheet-backdrop{position:fixed;inset:0;z-index:120;background:rgba(20,27,38,.35);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(2px)}.recognition-v16-sheet{width:min(100%,470px);max-height:82dvh;background:#fff;border-radius:24px 24px 0 0;padding:8px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 50px rgba(30,44,60,.18);overflow:auto}.recognition-v16-sheet-handle{width:42px;height:5px;border-radius:999px;background:#d9dee5;margin:0 auto 8px}.recognition-v16-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:5px 2px 10px;border-bottom:1px solid #edf0f3}.recognition-v16-sheet-head small{display:block;color:#8a99a8;font-size:9px}.recognition-v16-sheet-head h2{margin:3px 0 0;font-size:17px;color:#263b50}.recognition-v16-sheet-head button{width:34px;height:34px;border:0;border-radius:50%;background:#f3f5f7;color:#68798a;font-size:22px}.recognition-v16-sheet-body{padding-top:10px}.recognition-v16-dev-note{padding:10px 11px;border-radius:11px;background:#fff8e9;color:#98713f;font-size:10px;line-height:1.55}.recognition-v16-form-field{display:block;margin-top:11px}.recognition-v16-form-field span{display:block;margin-bottom:6px;font-size:10px;color:#687b8e;font-weight:800}.recognition-v16-form-field input{width:100%;height:43px;border:1px solid #dfe6ed;border-radius:10px;background:#fff;color:#263b50;padding:0 12px;font-size:13px;outline:none}.recognition-v16-form-field input:focus{border-color:var(--u-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--u-accent) 10%,transparent)}.recognition-v16-sheet-primary{width:100%;height:44px;margin-top:12px;border:0;border-radius:12px;background:linear-gradient(100deg,var(--u-accent2),var(--u-accent));color:#fff;font-weight:900;font-size:13px}.recognition-v16-manage-list{border:1px solid #edf0f3;border-radius:14px;padding:0 10px}
.user-mobile-page[data-user-theme="fresh"] .recognition-v16-card{border-color:#dcecf8}.user-mobile-page[data-user-theme="warm"] .recognition-v16-card{border-color:#efdfc6}.user-mobile-page[data-user-theme="tech"] .recognition-v16-card{border-color:#e1def5}.user-mobile-page[data-user-theme="warm"] .recognition-v16-command-copy b,.user-mobile-page[data-user-theme="warm"] .recognition-v16-wake-row strong{color:#4a321f}.user-mobile-page[data-user-theme="tech"] .recognition-v16-command-copy b,.user-mobile-page[data-user-theme="tech"] .recognition-v16-wake-row strong{color:#2c2856}
@media(max-width:390px){.user-service-entry-row-v16{gap:8px}.user-service-entry-v16{min-height:55px;padding:8px;grid-template-columns:31px 1fr 10px;gap:7px}.user-service-entry-icon-v16{width:31px;height:31px}.user-service-entry-copy-v16 b{font-size:11px}.user-service-entry-copy-v16 small{font-size:8px}.recognition-v16-main{padding-left:10px;padding-right:10px;gap:9px}.recognition-v16-topbar{height:54px}.recognition-v16-device-hero{border-radius:18px}.recognition-v16-device-copy h1{font-size:18px}.recognition-v16-control-card,.recognition-v16-command-card{padding:12px}.recognition-v16-summary-card{padding:11px 12px;gap:9px}.recognition-v16-reset{padding:0 11px;font-size:11px}.recognition-v16-card{border-radius:16px}}
@media(max-width:340px){.user-service-entry-copy-v16 small{display:none}.recognition-v16-summary-card{grid-template-columns:1fr}.recognition-v16-reset{width:100%}}
@media(min-width:700px){.recognition-v16-app{margin:18px auto 28px;border:1px solid #e5e9ee;border-radius:28px;box-shadow:0 22px 60px rgba(39,59,84,.14);overflow:hidden}.recognition-v16-sheet{border-radius:24px}}


/* =========================================================
   V0.17 首页智能语音双入口精简定稿
   设计基准：用户确认的“短按钮、居中、无副标题、无箭头”稿。
   仅调整首页两个入口按钮；原四个功能开关、跳转逻辑及其它页面不变。
   ========================================================= */
.user-service-entry-row-v16{
  width:min(82%,380px);
  margin:0 auto;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.user-service-entry-v16{
  min-height:54px;
  padding:8px 14px;
  grid-template-columns:34px auto;
  justify-content:center;
  gap:10px;
  text-align:center;
  border-radius:17px;
}
.user-service-entry-copy-v16{
  display:block;
  min-width:auto;
}
.user-service-entry-copy-v16 b{
  display:block;
  font-size:13px;
  line-height:1;
  white-space:nowrap;
}
.user-service-entry-copy-v16 small,
.user-service-entry-arrow-v16{
  display:none!important;
}
@media(max-width:390px){
  .user-service-entry-row-v16{width:min(86%,342px);gap:10px}
  .user-service-entry-v16{min-height:52px;padding:7px 11px;grid-template-columns:31px auto;gap:8px}
  .user-service-entry-icon-v16{width:31px;height:31px}
  .user-service-entry-copy-v16 b{font-size:12px}
}
@media(max-width:340px){
  .user-service-entry-row-v16{width:92%;gap:8px}
  .user-service-entry-v16{padding-left:8px;padding-right:8px;gap:6px}
  .user-service-entry-copy-v16 b{font-size:11px}
}

/* =========================================================
   V0.18 首页夜间勿扰状态栏
   首页直接显示：未开启 / 已开启 / 生效中。
   ========================================================= */
.user-quiet-row.user-quiet-row-v18{
  min-height:76px;padding:10px 13px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;
  align-items:center;gap:10px;background:#fff;border:1px solid var(--u-border);border-radius:16px;
  box-shadow:var(--u-shadow);color:var(--u-text);text-align:left;transition:.18s ease;
}
.quiet-v18-icon{
  width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:25px;
  color:var(--u-accent);background:var(--u-accent-soft);border:1px solid color-mix(in srgb,var(--u-accent) 20%,transparent);
}
.quiet-v18-main{display:flex;flex-direction:column;gap:5px;min-width:0}
.quiet-v18-title-line{display:flex;align-items:center;gap:8px;min-width:0}
.quiet-v18-title-line b{font-size:13px;line-height:1.15;color:#344960;white-space:nowrap}
.quiet-v18-status{
  font-style:normal;font-size:10px;line-height:1;height:24px;padding:0 9px;border-radius:999px;
  display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-weight:900;
  background:var(--u-accent-soft);color:var(--u-accent);
}
.quiet-v18-main small{
  display:block;font-size:9px;line-height:1.35;color:#8190a0;white-space:normal;
}
.quiet-v18-side{
  display:flex;align-items:center;gap:6px;white-space:nowrap;color:#475d75;font-size:11px;
}
.quiet-v18-clock{font-size:18px;color:var(--u-accent);line-height:1}
.user-quiet-row-v18 .user-chevron{font-size:18px;color:#65788b;margin-left:1px}
.user-quiet-row-v18.is-on{
  background:linear-gradient(105deg,color-mix(in srgb,var(--u-accent-soft) 48%,#fff),#fff 72%);
  border-color:color-mix(in srgb,var(--u-accent) 28%,var(--u-border));
}
.user-quiet-row-v18.is-active{
  background:linear-gradient(105deg,#f4fbf1,#fff 76%);border-color:#cfe7c5;
}
.user-quiet-row-v18.is-active .quiet-v18-icon{
  color:#58a942;background:#edf8e9;border-color:#d2eac9;
}
.user-quiet-row-v18.is-active .quiet-v18-status{
  color:#4f9f3a;background:#eaf6e5;
}
.user-quiet-row-v18.is-active .quiet-v18-clock{color:#58a942}
.user-quiet-row-v18.is-off{
  background:#fff;border-color:#e5e9ee;
}
.user-quiet-row-v18.is-off .quiet-v18-icon{
  color:#9da6b0;background:#f5f6f7;border-color:#e5e8eb;
}
.user-quiet-row-v18.is-off .quiet-v18-status{
  color:#8a949f;background:#f2f4f5;
}
.user-quiet-row-v18.is-off .quiet-v18-clock{color:#8f99a4}

@media(max-width:390px){
  .user-quiet-row.user-quiet-row-v18{min-height:72px;grid-template-columns:38px minmax(0,1fr) auto;gap:8px;padding:9px 11px}
  .quiet-v18-icon{width:38px;height:38px;font-size:22px}
  .quiet-v18-title-line{gap:6px}.quiet-v18-title-line b{font-size:12px}.quiet-v18-status{height:22px;padding:0 7px;font-size:9px}
  .quiet-v18-main small{font-size:8px;max-width:190px}.quiet-v18-side{font-size:10px;gap:4px}.quiet-v18-clock{font-size:16px}
}
@media(max-width:345px){
  .user-quiet-row.user-quiet-row-v18{grid-template-columns:36px minmax(0,1fr);position:relative;padding-right:8px}
  .quiet-v18-icon{width:36px;height:36px}.quiet-v18-side{grid-column:2;justify-self:start;margin-top:-2px}
  .quiet-v18-main small{display:none}
}

/* =========================================================
   V0.19 普通用户夜间勿扰设置页
   - 从桌面通用 Modal 改为独立手机设置页
   - 三套主题跟随账号主题
   ========================================================= */
.quiet-v19-app{
  width:100%;max-width:470px;min-height:100dvh;margin:0 auto;background:var(--u-bg);
  padding-bottom:calc(22px + env(safe-area-inset-bottom));overflow:hidden;
}
.quiet-v19-topbar{
  height:60px;padding:calc(env(safe-area-inset-top) + 7px) 16px 9px;
  display:grid;grid-template-columns:38px 1fr 38px;align-items:end;
  background:color-mix(in srgb,var(--u-bg) 95%,#fff);border-bottom:1px solid color-mix(in srgb,var(--u-border) 70%,transparent);
}
.quiet-v19-topbar strong{justify-self:center;font-size:18px;line-height:1.1;font-weight:950;color:#183653;letter-spacing:.3px}
.quiet-v19-back{width:36px;height:36px;border:0;background:transparent;border-radius:50%;font-size:31px;line-height:1;color:var(--u-accent);padding:0;display:grid;place-items:center}
.user-mobile-page[data-user-theme="warm"] .quiet-v19-topbar strong{color:#4a2a17}
.user-mobile-page[data-user-theme="tech"] .quiet-v19-topbar strong{color:#28224f}
.quiet-v19-main{display:flex;flex-direction:column;gap:12px;padding:12px 14px 18px}
.quiet-v19-card{background:#fff;border:1px solid var(--u-border);border-radius:18px;box-shadow:var(--u-shadow)}
.quiet-v19-main-card{padding:16px 15px}
.quiet-v19-main-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:11px;align-items:center}
.quiet-v19-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--u-accent-soft);color:var(--u-accent);font-size:27px;font-weight:900}
.quiet-v19-copy{min-width:0}.quiet-v19-title-line{display:flex;align-items:center;gap:8px;min-width:0}.quiet-v19-title-line b{font-size:16px;color:#263b50;white-space:nowrap}.quiet-v19-title-line em{font-style:normal;padding:4px 9px;border-radius:999px;background:#f1f3f5;color:#84909b;font-size:10px;font-weight:900;white-space:nowrap}.quiet-v19-title-line em.is-on{background:var(--u-accent-soft);color:var(--u-accent)}.quiet-v19-title-line em.is-active{background:#eaf8e8;color:#45a83f}.quiet-v19-copy p{margin:7px 0 0;color:#7b8997;font-size:10px;line-height:1.55}
.user-mobile-page[data-user-theme="warm"] .quiet-v19-title-line b{color:#4a321f}.user-mobile-page[data-user-theme="tech"] .quiet-v19-title-line b{color:#2d2858}
.quiet-v19-switch{width:48px;height:28px;border:0;border-radius:999px;padding:2px;background:#d9dee5;position:relative;transition:.18s;justify-self:end}.quiet-v19-switch i{display:block;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.16);transition:.18s}.quiet-v19-switch.on{background:var(--u-accent)}.quiet-v19-switch.on i{transform:translateX(20px)}.quiet-v19-switch:disabled{opacity:.48;cursor:not-allowed}
.quiet-v19-time-card{padding:15px}
.quiet-v19-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:0 2px 12px}.quiet-v19-section-head small{display:block;font-size:9px;color:#8c99a6;margin-bottom:3px}.quiet-v19-section-head h2{margin:0;font-size:15px;color:#263b50}.quiet-v19-section-head>span{font-size:11px;color:var(--u-accent);font-weight:900;white-space:nowrap}
.user-mobile-page[data-user-theme="warm"] .quiet-v19-section-head h2{color:#4a321f}.user-mobile-page[data-user-theme="tech"] .quiet-v19-section-head h2{color:#2d2858}
.quiet-v19-time-row{min-height:72px;display:grid;grid-template-columns:38px minmax(0,1fr) 92px;gap:10px;align-items:center;cursor:pointer}.quiet-v19-time-icon{width:36px;height:36px;border-radius:11px;background:var(--u-accent-soft);color:var(--u-accent);display:grid;place-items:center;font-size:19px;font-weight:900}.quiet-v19-time-copy{display:flex;flex-direction:column;gap:4px;min-width:0}.quiet-v19-time-copy b{font-size:13px;color:#30465b}.quiet-v19-time-copy small{font-size:9px;color:#91a0ae;line-height:1.35}.quiet-v19-time-row input[type="time"]{width:92px;height:42px;border:1px solid color-mix(in srgb,var(--u-accent) 25%,#dfe6ed);border-radius:11px;background:#fff;color:#2d4155;padding:0 7px;font-size:13px;font-weight:850;outline:none;text-align:center}.quiet-v19-time-row input[type="time"]:focus{border-color:var(--u-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--u-accent) 10%,transparent)}.quiet-v19-time-row input:disabled{opacity:.55;background:#f5f6f7}.quiet-v19-divider{height:1px;background:#edf0f3;margin:0 2px}
.quiet-v19-preview-card{padding:13px 15px}.quiet-v19-preview-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.quiet-v19-preview-title>span{font-size:12px;color:#66798b;font-weight:850}.quiet-v19-preview-title strong{font-size:10px;padding:5px 10px;border-radius:999px;background:#f1f3f5;color:#84909b}.quiet-v19-preview-title strong.is-on{background:var(--u-accent-soft);color:var(--u-accent)}.quiet-v19-preview-title strong.is-active{background:#eaf8e8;color:#45a83f}.quiet-v19-preview-card p{margin:8px 0 0;color:#8a97a4;font-size:10px;line-height:1.55}
.quiet-v19-save{width:100%;height:48px;border:0;border-radius:14px;background:linear-gradient(100deg,var(--u-accent2),var(--u-accent));color:#fff;font-size:14px;font-weight:950;box-shadow:0 9px 22px color-mix(in srgb,var(--u-accent) 18%,transparent)}.quiet-v19-save:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
.user-mobile-page[data-user-theme="fresh"] .quiet-v19-card{border-color:#dcecf8}.user-mobile-page[data-user-theme="warm"] .quiet-v19-card{border-color:#efdfc6}.user-mobile-page[data-user-theme="tech"] .quiet-v19-card{border-color:#e1def5}
@media(max-width:390px){.quiet-v19-main{padding-left:10px;padding-right:10px;gap:10px}.quiet-v19-card{border-radius:16px}.quiet-v19-main-card{padding:14px 12px}.quiet-v19-main-row{grid-template-columns:44px minmax(0,1fr) 46px;gap:9px}.quiet-v19-icon{width:42px;height:42px;font-size:24px}.quiet-v19-title-line b{font-size:15px}.quiet-v19-copy p{font-size:9px}.quiet-v19-time-card{padding:13px 12px}.quiet-v19-time-row{grid-template-columns:35px minmax(0,1fr) 88px;gap:8px}.quiet-v19-time-row input[type="time"]{width:88px;font-size:12px}}
@media(max-width:335px){.quiet-v19-time-row{grid-template-columns:33px minmax(0,1fr) 84px}.quiet-v19-time-row input[type="time"]{width:84px;padding:0 4px}.quiet-v19-time-copy small{display:none}}
@media(min-width:700px){.user-mobile-page{background:#eef2f6}.quiet-v19-app{margin:18px auto 28px;border:1px solid #e5e9ee;border-radius:28px;box-shadow:0 22px 60px rgba(39,59,84,.14);overflow:hidden}}

/* V0.20 登录页品牌统一：使用普通用户端同款呆萌芒果视觉 */
.login-brand-lockup{
  width:min(430px,96%);margin:0 auto 26px;display:flex;align-items:center;justify-content:center;gap:16px;
}
.login-mango-mascot{
  width:88px;height:88px;flex:0 0 88px;object-fit:cover;border-radius:25px;
  filter:drop-shadow(0 8px 16px rgba(255,157,34,.13));
}
.login-brand-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:7px}
.login-brand-copy strong{font-size:27px;line-height:1.12;letter-spacing:.2px;color:#203044;font-weight:800;white-space:nowrap}
.login-brand-copy span{font-size:10.5px;letter-spacing:1.25px;color:#728397;white-space:nowrap}
@media(max-width:560px){
  .login-brand-lockup{gap:11px;margin-bottom:22px}
  .login-mango-mascot{width:68px;height:68px;flex-basis:68px;border-radius:20px}
  .login-brand-copy strong{font-size:20px}
  .login-brand-copy span{font-size:8px;letter-spacing:.8px}
}
@media(max-width:370px){
  .login-brand-lockup{width:100%;gap:8px}
  .login-mango-mascot{width:58px;height:58px;flex-basis:58px;border-radius:17px}
  .login-brand-copy strong{font-size:17px}
  .login-brand-copy span{font-size:7px;letter-spacing:.55px}
}
