/* 登录的各个步骤（用户名登录、注册、验证码、绑定验证器、恢复码）、二次认证弹窗、设置 → 安全 */

/* ================= 登录框里的新面板 ================= */
.login-wide{max-width:420px}
.login-alt{margin:0;font-size:13px;color:var(--muted)}
.link{padding:0;border:0;background:none;color:var(--accent);font:inherit;font-size:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.link:hover{color:var(--accent-2)}
.link:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}

/* 密码要求清单 */
.rules{align-self:stretch;margin:0;padding:10px 12px 10px 30px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);
  text-align:left;font-size:12.5px;line-height:1.7;color:var(--muted)}
.rules[hidden]{display:none}
:root[data-theme="light"] .rules{background:#f4f5f7}

/* 绑定验证器 */
.enroll{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.enroll input{width:100%;height:42px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:#121419;color:var(--text);font:inherit;font-size:15px;outline:none;
  text-align:center;letter-spacing:.12em}
.enroll input:focus{border-color:var(--accent)}
:root[data-theme="light"] .enroll input{background:#f4f5f7}
.enroll-steps{align-self:stretch;margin:0;padding-left:22px;text-align:left;font-size:13px;line-height:1.65;color:var(--muted)}
.qr-wrap{padding:10px;border-radius:12px;background:#fff;line-height:0}
.qr{width:184px;height:184px;image-rendering:pixelated;display:block}
.qr-wrap p{margin:0;padding:18px;line-height:1.6;color:#555}
.secret{align-self:stretch;display:flex;flex-direction:column;gap:6px;text-align:left}
.secret small{color:var(--faint);font-size:12px}
.secret-row{display:flex;align-items:center;gap:8px}
.secret-row code{flex:1;min-width:0;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--line);
  font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.06em;white-space:pre-line;word-break:break-all;user-select:all}
:root[data-theme="light"] .secret-row code{background:#f4f5f7}

/* 恢复码 */
.codes{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%}
.codes-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}
.codes-grid code{padding:9px 6px;border-radius:8px;background:rgba(255,255,255,.05);border:1px solid var(--line);text-align:center;
  font:14px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.08em;user-select:all}
:root[data-theme="light"] .codes-grid code{background:#f4f5f7}
.codes-btns{display:flex;gap:8px}
.codes-sure{font-size:13.5px;color:var(--text);cursor:pointer}
.codes .btn.primary{min-width:140px}
.codes .btn.primary:disabled{opacity:.45;cursor:not-allowed}

/* 账号里的「二次认证」弹窗 */
.sec-dialog{width:min(460px,100%)}
.sec-dialog .uf{display:flex;flex-direction:column;gap:12px}
.sec-status{margin:0;font-size:15px}
.sec-status b{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600}
.sec-status b.on{background:rgba(63,185,110,.16);color:#3fb96e}
.sec-status b.off{background:rgba(255,255,255,.08);color:var(--muted)}
.sec-btns{display:flex;flex-wrap:wrap;gap:10px}
.sec-dialog .login-hint{text-align:left}
.sec-dialog .login-btns{justify-content:center}

/* ================= 设置 → 安全 ================= */
.sec-saved{float:right;font-weight:400;font-size:12.5px;color:#3fb96e}
.num-row{display:flex;align-items:center;gap:8px;flex:none}
.num-row em{font-style:normal;font-size:13px;color:var(--muted)}
.num{height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:#121419;color:var(--text);font:inherit;font-size:13.5px;outline:none;
  font-variant-numeric:tabular-nums}
input.num{width:84px;text-align:right}
select.num{min-width:116px;cursor:pointer}
.num:focus{border-color:var(--accent)}
:root[data-theme="light"] .num{background:#fff}
.chk-group{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px 16px;font-size:13.5px}
.chk-group label{display:inline-flex;align-items:center;gap:6px;cursor:pointer;white-space:nowrap}
.chk-group input{accent-color:var(--accent)}

@media (max-width:640px){
  .qr{width:168px;height:168px}
  .codes-grid code{font-size:13px;letter-spacing:.04em}
  .chk-group{justify-content:flex-start}
}

/* ================= 媒体库：文件夹在服务器上还是这台设备上、共享 ================= */
.lib-where{margin:0 0 10px}
.lib-where .seg{display:flex;width:100%}
.lib-where .seg button{flex:1;height:34px}
.lib-where .seg button:disabled{opacity:.6;cursor:default}
.lib-where .lib-tip{margin:8px 0 0}
.lib-where-tag.sharing{background:rgba(63,185,110,.16);color:#3fb96e}
.lib-share-who{margin-top:4px;padding-left:2px}
.lib-share-who .uf-radios{margin-bottom:6px}
.lf-note{flex:1;min-width:0;height:30px;margin:0 6px;padding:0 9px;border-radius:7px;border:1px solid var(--line);background:#121419;color:var(--text);font:inherit;font-size:12.5px;outline:none}
.lf-note:focus{border-color:var(--accent)}
:root[data-theme="light"] .lf-note{background:#fff}

/* ================= 设置 → 媒体库 → 本机小程序 ================= */
.agent-steps{margin:10px 0 12px;padding-left:22px;font-size:13px;line-height:1.8;color:var(--muted)}
.agent-steps li{margin:4px 0}
.agent-steps b{color:var(--text)}
.agent-steps code,.agent-pair code,#agentPanel .hint code{padding:1px 6px;border-radius:5px;background:rgba(255,255,255,.07);font:12.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
:root[data-theme="light"] .agent-steps code,:root[data-theme="light"] .agent-pair code,:root[data-theme="light"] #agentPanel .hint code{background:#eceef2}
.agent-steps a:not(.btn){color:var(--accent)}
.agent-steps .btn{margin-left:6px}
.agent-pair{margin:10px 0 4px}
.agent-cmd{display:flex;align-items:center;gap:8px}
.agent-cmd code{flex:1;min-width:0;padding:9px 11px;border-radius:8px;word-break:break-all;user-select:all;font-size:13px;line-height:1.6}
.agent-devices{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px}
.agent-dev{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:rgba(255,255,255,.03)}
:root[data-theme="light"] .agent-dev{background:#f7f8fa}
.ad-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.ad-info b{font-size:14px}
.ad-info small{font-size:12px;color:var(--faint);line-height:1.5;word-break:break-all}
.ad-st{margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:600}
.ad-st.on{background:rgba(63,185,110,.16);color:#3fb96e}
.ad-st.off{background:rgba(255,255,255,.08);color:var(--muted)}
.agent-none{padding:10px 2px;font-size:13px;color:var(--faint)}
.lib-device{display:flex;align-items:center;gap:8px;margin:8px 0 0;font-size:13px;color:var(--muted)}
.lib-device select{max-width:100%}
.lib-where .seg{flex-wrap:wrap}
@media (max-width:640px){
  .agent-dev{flex-wrap:wrap}
  .agent-steps .btn{margin:6px 0 0 0}
}

/* 共享：开放方式、用户名单的小标题 */
.lib-share-h{margin:12px 0 8px;font-size:12.5px;font-weight:600;color:var(--muted)}
.lib-share-who>.lib-share-h:first-child{margin-top:6px}
.lib-share-who .uf-radios small{margin-left:2px}
.lib-share-who .hint{margin:6px 0 0;max-width:none}

/* ================= 设置 → 日志 ================= */
.log-cats{display:flex;flex-direction:column;gap:12px;margin:12px 0 4px}
.log-cat{border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03);padding:2px 14px 12px}
:root[data-theme="light"] .log-cat{background:#f7f8fa}
.log-cat .switch-row{border-top:0;padding:12px 0 8px}
.lc-opts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;font-size:13px;color:var(--muted)}
.lc-num{display:inline-flex;align-items:center;gap:6px}
.lc-num input.num{width:92px}
.lc-count{flex:1 1 200px;min-width:0;color:var(--faint);font-size:12.5px}
.log-filter{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 12px}
.log-filter input.num{width:min(220px,100%);text-align:left}
.log-filter select.num{min-width:104px}
.log-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.log-row{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:4px 10px;align-items:baseline;padding:8px 12px;border-top:1px solid var(--line);font-size:13px;line-height:1.55}
.log-row:first-child{border-top:0}
.log-row.has-detail{cursor:pointer}
.log-row.has-detail:hover,.log-row:focus-visible{background:rgba(255,255,255,.04);outline:none}
:root[data-theme="light"] .log-row.has-detail:hover,:root[data-theme="light"] .log-row:focus-visible{background:#f0f2f5}
.lg-time{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.lg-cat{padding:0 8px;border-radius:999px;font-size:11.5px;background:rgba(255,255,255,.08);color:var(--muted);white-space:nowrap}
.lg-lvl{font-size:11.5px;color:var(--faint);white-space:nowrap}
.lg-msg{min-width:0;word-break:break-word;color:var(--text)}
.lg-who{color:var(--faint);font-size:12px;white-space:nowrap;max-width:200px;overflow:hidden;text-overflow:ellipsis}
.lv-warn .lg-lvl{color:#e0a43a}
.lv-error .lg-lvl,.lv-error .lg-msg{color:#e5484d}
.lv-debug .lg-msg{color:var(--muted)}
.lg-detail{grid-column:1/-1;margin:4px 0 2px;padding:9px 11px;border-radius:8px;background:rgba(0,0,0,.28);color:var(--muted);font:12px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:260px;overflow:auto}
:root[data-theme="light"] .lg-detail{background:#eceef2}
.log-none{padding:22px;text-align:center;color:var(--faint);font-size:13px}
@media (max-width:640px){
  .log-row{grid-template-columns:auto auto minmax(0,1fr)}
  .lg-msg{grid-column:1/-1;order:5}
  .lg-who{grid-column:1/-1;order:6;max-width:none}
  .lg-lvl{justify-self:end}
}
