/* RentTrail · 共用基础样式：色板、排版、按钮、表单、徽章、卡片。页面专属样式在 applicant.css / referee.css / agency.css */
:root{
  --bg:#F6F5F1; --ink:#15212B; --soft:#4B5761; --muted:#5A6670;
  --line:#E2E0D8; --line-2:#EEECE6; --field:#8F8B80; --dash:#9C988C;
  --brand:#1E6B55; --brand-dark:#15513F; --brand-tint:#E3F0EA;
  --accent:var(--brand);
  --ok:#1E7A4C; --ok-bg:#E4F3EA; --ok-text:#17603B;
  --warn:#C98A00; --warn-bg:#FDF1D6; --warn-text:#7A4F00;
  --bad:#B3261E; --bad-bg:#FDF3F2; --bad-text:#9F2119;
  --neutral-bg:#F1F0EB; --disabled:#C9C6BC;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--ink);line-height:1.4}
h1,h2,h3,p,ul,ol,fieldset{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
a{color:var(--brand)}a:hover{color:var(--brand-dark)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
button,input,select,textarea{font-family:inherit;color:var(--ink)}
button{cursor:pointer}
.mono{font-family:var(--mono)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* 排版 */
.eyebrow{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.eyebrow.brand{color:var(--brand)}
.h1{font-size:26px;line-height:1.15;font-weight:800;letter-spacing:-.5px}
.h2{font-size:20px;font-weight:800}
.h3{font-size:15px;font-weight:800}
.lead{font-size:14px;line-height:1.5;color:var(--soft)}
.small{font-size:12px;line-height:1.5;color:var(--muted)}
.opt{font-size:13px;font-weight:500;color:var(--muted)}
.section-title{font-size:13px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}

/* 按钮 */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;height:52px;padding:0 22px;border-radius:12px;border:1px solid transparent;background:var(--accent);color:#fff;font-weight:700;font-size:16px;text-decoration:none;white-space:nowrap}
.btn:hover{color:#fff;filter:brightness(.93)}
.btn.sm{height:44px;padding:0 16px;font-size:15px;border-radius:10px}
.btn.ghost{background:#fff;color:var(--ink);border-color:#D6D3C9}.btn.ghost:hover{color:var(--ink);filter:none;background:#FAF9F6}
.btn.dark{background:var(--ink);color:#fff}
.btn.danger{background:#fff;color:var(--bad-text);border-color:#E7C3C0}.btn.danger:hover{color:var(--bad-text);filter:none;background:var(--bad-bg)}
.btn[disabled],.btn.is-disabled{background:var(--disabled);color:var(--soft);cursor:not-allowed;pointer-events:none;filter:none}
.btn.dashed{background:transparent;color:var(--ink);border:1.5px dashed var(--dash)}.btn.dashed:hover{color:var(--ink);filter:none;background:#fff}
.btn.block{width:100%}
.btn:has(input:focus-visible){outline:3px solid var(--brand);outline-offset:2px}
.link{font-size:14px;font-weight:700;padding:10px 0;display:inline-block}
.link.danger{color:var(--bad-text)}
.link.muted{color:var(--soft)}

/* 表单 */
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field>label,.field>.label,legend.label{font-size:14px;font-weight:700}
.input{height:48px;width:100%;border:1px solid var(--field);border-radius:10px;padding:0 14px;font-size:16px;background:#fff;min-width:0}
select.input{padding:0 10px}
textarea.input{height:auto;padding:12px 14px;line-height:1.5;resize:vertical}
.input[readonly]{background:var(--bg)}
.input.is-invalid{border:2px solid var(--bad);background:var(--bad-bg)}
.hint{font-size:12px;line-height:1.5;color:var(--muted)}
.msg{display:none;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;padding:10px 12px;border-radius:10px}
.msg.show{display:flex}
.msg.bad{background:var(--bad-bg);color:var(--bad-text);border:1px solid #F0C9C6}
.msg.warn{background:var(--warn-bg);color:var(--warn-text);border:1px solid #EBD39A}
.msg.ok{background:var(--ok-bg);color:var(--ok-text);border:1px solid #BFE0CB}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.stack{display:flex;flex-direction:column;gap:12px}
.stack-sm{display:flex;flex-direction:column;gap:8px}
.stack-lg{display:flex;flex-direction:column;gap:16px}

/* 选项按钮组：button[aria-pressed] 单选，由 common.js 驱动 */
.seg{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.seg.c1{grid-template-columns:1fr}.seg.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.seg.c4{grid-template-columns:repeat(4,minmax(0,1fr))}
.seg>button{min-height:48px;padding:8px 10px;border-radius:10px;border:1px solid var(--field);background:#fff;font-size:14px;line-height:1.3}
.seg>button[aria-pressed="true"]{border:2px solid var(--accent);background:var(--brand-tint);font-weight:700}
.seg.tight>button{min-height:44px}

/* 徽章与红黄绿形状：绿＝圆点，待查＝方块，红＝三角 */
.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;border-radius:6px;padding:5px 9px;white-space:nowrap;background:var(--neutral-bg);color:var(--soft)}
.badge.ok{background:var(--ok-bg);color:var(--ok-text)}
.badge.warn{background:var(--warn-bg);color:var(--warn-text)}
.badge.bad{background:var(--bad-bg);color:var(--bad-text)}
.dot{width:10px;height:10px;flex:none;display:inline-block;background:var(--ok);border-radius:50%}
.dot.y{background:var(--warn);border-radius:2px}
.dot.r{background:var(--bad);border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%);width:12px;height:11px}

/* 卡片、清单行、状态圈 */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}
.card.flat{padding:0;overflow:hidden}
.row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line-2);text-decoration:none;color:var(--ink);min-height:56px}
.row:last-child{border-bottom:0}
a.row:hover{background:#FAF9F6;color:var(--ink)}
.row.err{background:var(--bad-bg)}
.row .grow{flex:1;min-width:0;display:flex;flex-direction:column}
.row .t{font-size:15px;font-weight:600}
.row .s{font-size:12px;color:var(--muted)}
.row .s.bad{color:var(--bad-text);font-weight:700}
.status{width:22px;height:22px;border-radius:50%;flex:none;border:2px solid var(--disabled);position:relative}
.status.done{background:var(--ok);border-color:var(--ok)}
.status.done::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.status.err{border-color:var(--bad);color:var(--bad);font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center}
.chev{width:9px;height:9px;border:solid var(--muted);border-width:2px 2px 0 0;transform:rotate(45deg);flex:none;margin:0 4px}
.chev.back{transform:rotate(-135deg)}
.file{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.file .ico{width:40px;height:40px;border-radius:8px;background:var(--brand-tint);flex:none;display:flex;align-items:center;justify-content:center;color:var(--brand);font-weight:800}
.file .meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.file .meta b{font-size:14px}.file .meta span{font-size:12px;color:var(--soft)}
.logo-ph{width:36px;height:36px;border-radius:8px;background:#E9E7E0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--muted);flex:none}
.callout{background:var(--brand-tint);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.45;color:#2D3B45}
.callout.dark{background:var(--ink);color:#C9CFD4}
.progress{height:8px;border-radius:4px;background:#E9E7E0;overflow:hidden}
.progress>i{display:block;height:8px;background:var(--brand)}
.progress.warn>i{background:var(--warn)}

/* 开关 */
.switch{width:52px;height:32px;border-radius:16px;border:0;background:var(--disabled);position:relative;flex:none;padding:0}
.switch i{position:absolute;top:3px;left:3px;width:26px;height:26px;border-radius:50%;background:#fff;transition:transform .15s}
.switch[aria-checked="true"]{background:var(--ok)}.switch[aria-checked="true"] i{transform:translateX(20px)}

/* 测试站脚注（统一一处，上线前删除） */
.demo-foot{text-align:center;padding:14px 20px 18px;font-size:12px;color:var(--muted)}
.demo-foot a{font-weight:700}

/* 第 6 步加：错误提示、未登录提示条 */
.callout.err{background:#FBE9E7;color:#7A1C14;border:1px solid #F0C8C3}
.rt-guard{background:#FFF4D6;color:#5C3D00;font-size:13px;text-align:center;padding:8px 14px;border-bottom:1px solid #F0DCA0}
.rt-guard a{color:#5C3D00;font-weight:700}
.input.is-invalid{border-color:var(--red,#B3261E)}
