:root{color-scheme:light;--ink:#20252b;--muted:#525d69;--line:#d2d7dd;--paper:#fff;--canvas:#eff1f4;--accent:#273547;--positive:#19522f;--negative:#922919;--radius:18px;font-family:"Microsoft YaHei","PingFang SC",sans-serif;font-size:15px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);min-height:100vh;line-height:1.65}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid #536c8b;outline-offset:3px}[hidden]{display:none!important}
.shell{max-width:1320px;margin:auto;padding:28px 36px 48px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-bottom:22px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;font-weight:700;letter-spacing:.06em}.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:#20252b;background:linear-gradient(145deg,#fff 4%,#d2d8df 48%,#f8f9fa 58%,#aab4bf 100%);border:1px solid #b8c0ca;box-shadow:inset 1px 1px 1px white,0 4px 7px #2b36481c;font-family:Georgia,serif;font-size:22px}.topbar nav{display:flex;align-items:center;gap:20px;font-size:13px}.topbar nav a[aria-current=page]{color:var(--ink);font-weight:700;text-decoration:none}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:0 0 10px}.hero{padding:32px 0 20px}.hero h1{font-size:clamp(27px,3.1vw,36px);letter-spacing:-.04em;line-height:1.35;margin:0 0 8px}.hero p{color:var(--muted);margin:0;font-size:14px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 26px #202a3810;padding:28px}.panel h2{font-size:19px;line-height:1.4;margin:0 0 10px}.panel p{color:var(--muted);margin:0 0 20px;font-size:14px}.auth-layout{max-width:1020px;display:grid;grid-template-columns:1fr 1.05fr;gap:48px;margin:36px auto 0;align-items:start}.intro{padding:40px 20px 30px 0}.intro h1{font-size:36px;line-height:1.4;letter-spacing:-.04em;margin:0 0 20px}.intro p{color:var(--muted);max-width:350px}.steps{padding:0;list-style:none;margin-top:36px;counter-reset:step}.steps li{padding:0 0 26px 44px;position:relative;font-weight:600;font-size:14px}.steps li:before{counter-increment:step;content:"0" counter(step);position:absolute;left:0;top:0;font-size:12px;color:var(--muted);border-top:1px solid #a7b0bc;width:28px;padding-top:3px}.steps small{display:block;color:var(--muted);font-weight:400;margin-top:4px}.form-card{padding:32px}.field{margin:0 0 17px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:7px}.field input,.field select,select{width:100%;padding:11px 12px;border:1px solid #b7c0cb;border-radius:9px;background:#fafbfc;color:var(--ink);min-width:0}.field input:focus{border-color:var(--accent);background:#fff}.field input[aria-invalid=true]{border-color:var(--negative)}.field small{color:var(--muted);font-size:12px;display:block;margin-top:5px}.field-error{display:block;color:var(--negative);font-size:12px;min-height:0}.field-error:not(:empty){margin-top:5px}.primary,.secondary,.danger,.text-button{border-radius:9px;padding:10px 16px;border:1px solid transparent;font-size:13px;font-weight:700;min-height:42px}.primary{background:var(--accent);color:#fff;box-shadow:inset 0 1px 0 #ffffff24}.primary:hover{background:#141e2b}.secondary{background:#f4f6f8;border-color:#bbc4ce;color:#253145}.secondary:hover{background:#e8edf2}.danger{background:#fff4f0;border-color:#ce8879;color:#782013}.danger:hover{background:#fce7df}.text-button{padding:8px 10px;background:transparent;color:var(--accent);border-color:#c4cbd3}.full-width{width:100%}.form-footer{padding-top:18px;margin-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);text-align:center}.notice{padding:12px 16px;border:1px solid #bac4cf;background:#e8edf3;color:#253347;border-radius:10px;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.notice:empty{display:none}.notice.error{color:#782013;background:#fff1ec;border-color:#d99e8f}.notice.success{color:#18542e;background:#eff8f1;border-color:#b4cdbb}.notice:not(:empty){margin:0 0 20px}.hint{font-size:12px;color:var(--muted);margin-top:14px}.result-box{padding:18px;border:1px solid #b9c4cf;background:#f3f6f8;border-radius:12px;margin-bottom:18px}.result-box strong{font-size:21px}.result-box p{margin:6px 0 0;color:var(--muted)}.divider{border:0;border-top:1px solid var(--line);margin:26px 0}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.workspace>*{min-width:0}.workspace .panel{padding:22px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.toolbar h2{margin:0}.toolbar-actions{display:flex;gap:8px;align-items:center}.filterbar{display:flex;gap:12px;align-items:center;margin:22px 0 12px;font-size:13px}.filterbar label{white-space:nowrap;font-weight:600}.filterbar select{width:auto;padding:8px 10px;min-width:150px}.count{color:var(--muted);margin-left:auto;font-size:12px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:11px}table{border-collapse:collapse;width:100%;font-size:13px;min-width:580px}th{background:#f0f3f6;font-size:12px;color:#4e5b69;text-align:left;padding:12px;font-weight:700;white-space:nowrap}td{padding:13px 12px;border-top:1px solid #dce1e6;vertical-align:middle;overflow-wrap:anywhere;max-width:210px}tr[aria-selected=true]{background:#e8eef4}.table-wrap button{min-height:34px;padding:4px 10px;font-size:12px}.table-empty{padding:44px 16px;text-align:center;color:var(--muted)}.badge{display:inline-block;border-radius:6px;padding:3px 7px;font-size:11px;font-weight:700;white-space:nowrap;background:#edf1f5;color:#38495a}.badge.approved{background:#e8f4eb;color:#1c5830}.badge.rejected,.badge.disabled{background:#f9eae6;color:#842716}.badge.pending{background:#f3eee3;color:#665022}.detail{position:sticky;top:20px}.empty-detail{padding:40px 0;color:var(--muted);font-size:13px}.record{margin:22px 0}.record div{padding:10px 0;border-bottom:1px solid #e1e5ea}.record dt{font-size:12px;color:var(--muted);margin-bottom:4px}.record dd{margin:0;font-size:14px;overflow-wrap:anywhere;white-space:pre-wrap}.detail-actions{display:flex;gap:8px;flex-wrap:wrap}.detail-actions button{flex:1;min-width:100px}.password-box{margin-top:26px;padding-top:20px;border-top:1px solid var(--line)}.password-box h3{font-size:14px;margin:0 0 8px}.password-box p{font-size:12px;margin-bottom:12px}.small-caption{font-size:12px;color:var(--muted)}.auth-panel{max-width:450px;margin:20px auto}.auth-panel h2{font-size:22px}.quiet-link{font-size:13px}.footer{padding-top:30px;color:var(--muted);font-size:11px;letter-spacing:.02em}
@media(max-width:1000px){.workspace{grid-template-columns:1fr}.detail{position:static}.record{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.password-box{max-width:440px}.detail-actions{justify-content:flex-start}.detail-actions button{flex:0 1 auto}.auth-layout{gap:28px}.intro h1{font-size:30px}}
@media(max-width:650px){.shell{padding:18px 16px 30px}.topbar{gap:12px;padding-bottom:16px}.brand{font-size:13px;gap:8px}.brand-mark{width:30px;height:30px}.topbar nav{gap:12px;font-size:12px}.auth-layout{display:block;margin-top:18px}.intro{padding:12px 0 0}.intro h1{font-size:27px;margin-bottom:12px}.intro p{max-width:none}.steps{display:none}.form-card,.panel{padding:22px}.hero{padding:24px 0 16px}.workspace .panel{padding:16px}.toolbar{align-items:flex-start}.toolbar-actions{flex-wrap:wrap}.filterbar{flex-wrap:wrap}.count{margin-left:0}.record{display:block}.auth-panel{margin-top:12px}.notice{font-size:13px}.table-wrap{margin-right:0}.topbar nav .desktop-only{display:none}}
@media(prefers-reduced-motion:no-preference){.panel{animation:appear .22s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
