/* M1 页面样式（05 §10 / 原型 #v-member #v-log）。
 * 沿用 fin.css 的变量与极简 SaaS 风格，主色 #5B6CF9；不引任何第三方库。
 * 所有 M1 页面同时引入 fin.css 与本文件。 */
:root{
  --green:#17a673; --amber:#e6a23c; --red:#d64545;
}
*{box-sizing:border-box}
/* 输入框/下拉框的**唯一**高度真源（2026-11-16 修「下拉框被压扁」）。
 * 病根：.inp 原先靠 padding 撑高（9px 上下 → 自然高约 37px），而好几个页面又用行内
 *      style="height:30px/32px/34px" 把它压小；box-sizing:border-box 下内容区只剩 10~14px，
 *      一行 13px 的字根本放不下，Chrome 直接把字上下切掉 —— 账户与归档页的「类型/归属股东」
 *      下拉框就是这么变成半个字的。
 * 现在把高度写死成 36px（= .btn/.fin-btn 的自然高度，8+8+18+2），padding 改 0，
 * 垂直居中交给 line-height —— 于是每个页面的文本框、下拉框、日期框都是同一个高度，
 * 行内再写 height 也只会把它压扁（所以下面各页的行内 height 一并删掉了）。
 * 以后要改输入框高度，只改这一行 + 各页不要再写行内 height。 */
.inp{width:100%;height:36px;padding:0 12px;line-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;outline:none;transition:.15s}
/* 日期框在部分浏览器自带内边距，统一压平，避免比旁边下拉高半头 */
input[type="date"].inp{padding:0 8px}
.inp:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(91,108,249,.12)}
.fld{margin-bottom:16px}
.fld>label{display:block;font-size:13px;color:var(--t2);margin-bottom:6px}
.req{color:var(--red)}
.mini{font-size:12px;color:var(--t3)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);cursor:pointer;font-size:13px;transition:.15s}
.btn:hover{border-color:var(--brand);color:var(--brand)}
.btn-pri{background:var(--brand);border-color:var(--brand);color:#fff}
.btn-pri:hover{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-block{width:100%;height:42px;font-size:14px;margin-top:6px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.sp{flex:1}

/* ---------- 登录 / 改密 ---------- */
.auth-body{background:linear-gradient(120deg,#eef1ff 0%,#f7f8fc 46%,#f2f4ff 100%)}
.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1fr 400px;gap:64px;align-items:center;max-width:1040px;margin:0 auto;padding:40px 24px}
.auth-brand .auth-logo{width:46px;height:46px;border-radius:12px;background:var(--brand);color:#fff;font-size:22px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(91,108,249,.28)}
.auth-brand h1{font-size:28px;margin:22px 0 6px;font-weight:600}
.auth-brand .sub{color:var(--t3);font-size:14px;margin:0 0 28px}
.auth-brand .note{max-width:360px;background:rgba(255,255,255,.7);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:0 10px 10px 0;padding:14px 18px;font-size:12.5px;color:var(--t2);line-height:1.9}
.auth-card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px rgba(28,32,51,.08);padding:32px 30px}
.auth-card h2{font-size:21px;margin:0 0 6px;font-weight:600}
.auth-sub{color:var(--t3);font-size:12.5px;margin:0 0 24px;line-height:1.7}
.pwd-wrap{position:relative}
.pwd-wrap .inp{padding-right:56px}
.pwd-eye{position:absolute;right:6px;top:6px;bottom:6px;border:0;background:transparent;color:var(--t3);font-size:12px;cursor:pointer;padding:0 8px}
.auth-row{display:flex;align-items:center;justify-content:space-between;font-size:12.5px;margin:4px 0 12px}
.chk{display:inline-flex;align-items:center;gap:6px;color:var(--t2);cursor:pointer}
.chk input{accent-color:var(--brand)}
.auth-tip{color:var(--t3)}
.auth-err{min-height:18px;color:var(--red);font-size:12.5px;margin:2px 0 6px}
.auth-foot{display:flex;justify-content:space-between;margin-top:14px;font-size:12px;color:var(--t3)}
.auth-foot a{font-size:12px}
.shake{animation:au-shake .3s}
@keyframes au-shake{0%,100%{transform:none}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
@media(max-width:860px){.auth-wrap{grid-template-columns:1fr;gap:20px}.auth-brand{display:none}}

/* 滑块 / 算术验证码 */
.captcha-box{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:14px;background:#fafbfe}
.cap-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--t2);margin-bottom:8px}
.cap-img{position:relative;width:320px;max-width:100%;height:160px;overflow:hidden;border-radius:8px;background:#e9ecf8}
.cap-img img.bg{position:absolute;left:0;top:0;width:320px;height:160px}
.cap-img img.pz{position:absolute;width:50px;height:50px;left:0}
.cap-track{position:relative;height:36px;margin-top:10px;border-radius:8px;background:#eceefa;display:flex;align-items:center;padding:0 4px;user-select:none}
.cap-fill{position:absolute;left:0;top:0;bottom:0;background:rgba(91,108,249,.18);border-radius:8px;width:0}
.cap-knob{position:relative;width:34px;height:28px;border-radius:6px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;cursor:grab;font-size:14px;z-index:2}
.cap-hint{margin-left:12px;font-size:12px;color:var(--t3)}
.cap-q{font-size:16px;font-weight:600;color:var(--ink);text-align:center;padding:14px 0}
.cap-q input{width:96px;margin-left:8px}

/* 强度条 + 规则清单 */
.str{display:flex;gap:5px;margin:8px 0 4px}
.str i{flex:1;height:5px;border-radius:3px;background:#e9ecf5;transition:.2s}
.strtx{font-size:12px;color:var(--t3);margin-bottom:10px}
.rules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:12px;color:var(--t3)}
.rules li{padding-left:18px;position:relative}
.rules li:before{content:"○";position:absolute;left:0;color:var(--t3)}
.rules li.ok{color:var(--green)}
.rules li.ok:before{content:"✓";color:var(--green)}

/* ---------- 通用页面组件（成员 / 日志） ---------- */
.note{border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.8;margin-bottom:16px}
.note-p{background:var(--brand-soft);border-left:3px solid var(--brand);color:var(--t2)}
.note-a{background:#fff8ec;border-left:3px solid var(--amber);color:#8a6324}
.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.toolbar .search{position:relative;flex:0 0 250px}
.toolbar .search .inp{padding-left:32px}
.toolbar .search svg{position:absolute;left:9px;top:10px;width:15px;height:15px;color:var(--t3)}
.fsel{width:auto;min-width:130px}
.tbw{overflow-x:auto}
.tb{width:100%;border-collapse:collapse;font-size:13px}
.tb th,.tb td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tb th{color:var(--t3);font-weight:500;background:#fafbfe;white-space:nowrap}
.tb tbody tr:hover{background:#fcfdff}
.who{display:flex;align-items:center;gap:10px}
.av2{width:30px;height:30px;flex:0 0 30px;border-radius:8px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}
.who .nm{font-weight:500}
.who .un{font-size:12px;color:var(--t3);font-family:ui-monospace,Consolas,monospace}
.tag{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px}
.tag-p{background:var(--brand-soft);color:var(--brand)}
.tag-n{background:#eef7f2;color:var(--green)}
.st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}
.st i{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.st.ok{color:var(--green)}.st.wait{color:var(--amber)}.st.lock{color:var(--red)}.st.off{color:var(--t3)}
.num{font-family:ui-monospace,Consolas,monospace}
.acts{display:flex;gap:12px;flex-wrap:wrap}
.acts a{font-size:12.5px}
.acts a.dis{color:var(--t3);cursor:not-allowed;opacity:.55}
.foot-note{margin-top:16px;font-size:12px;color:var(--t3);line-height:1.9}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.card-h h3{font-size:14px;font-weight:600;margin:0}

/* 弹窗 */
.mask{position:fixed;inset:0;background:rgba(20,24,45,.42);display:none;align-items:center;justify-content:center;z-index:100;padding:20px}
.mask.on{display:flex}
.mpanel{background:#fff;border-radius:14px;width:520px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:0 24px 64px rgba(20,24,45,.24)}
.mhead{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-bottom:1px solid var(--line)}
.mhead h3{font-size:16px;margin:0;font-weight:600}
.mhead .x{border:0;background:transparent;font-size:22px;color:var(--t3);cursor:pointer;line-height:1}
.mbody{padding:20px 22px}
.mfoot{display:flex;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid var(--line)}
.pwdline{display:flex;gap:8px}
.pwdline .inp{flex:1}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.secret{background:#f2faf6;border:1px solid #cfead9;border-radius:10px;padding:14px 16px}
.secret .lb{font-size:12px;color:#0A6B4C;margin-bottom:10px}
.secret .kv{display:flex;align-items:center;gap:10px;margin:8px 0;font-size:13px}
.secret .kv code{background:#fff;border:1px solid #d9ece1;border-radius:6px;padding:5px 10px;font-family:ui-monospace,Consolas,monospace;flex:1;word-break:break-all}

/* 安全日志 */
.alert{display:flex;gap:12px;align-items:flex-start;background:#fff4f4;border:1px solid #f3cccc;border-left:3px solid var(--red);border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#a33030}
.alert svg{width:18px;height:18px;flex:0 0 18px;margin-top:1px}
.alert.ok{background:#f1faf5;border-color:#cfead9;border-left-color:var(--green);color:#0A6B4C}
.evt{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500}
.evt i{width:7px;height:7px;border-radius:50%;display:inline-block}
.link{color:var(--brand);cursor:pointer}
