/* SRC visual foundation. Presentation only: no data or interaction changes. */
body [hidden]{display:none!important}
:root{--b:#244c69;--n:#132634;--bg:#f3f5f7;--l:#e3e8ed;--m:#607184;--src-ink:#213547;--src-ring:#527f9f;--src-font:"Segoe UI Variable Text","Segoe UI","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif}
body{font-family:var(--src-font);font-size:14px;line-height:1.65;letter-spacing:0;color:var(--src-ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body :is(button,input,select,textarea){font-family:var(--src-font)!important;letter-spacing:0;font-variant-numeric:tabular-nums}
body h1{font-weight:600!important;letter-spacing:-.025em!important;line-height:1.4}
body h2{font-weight:600;letter-spacing:-.015em;line-height:1.5}
body h3{font-size:14px;font-weight:600;line-height:1.6}
body .muted,body small{color:#607184;font-size:12px;line-height:1.75}
body .heading h1{font-size:26px}.heading p{font-size:13px}.heading{margin-bottom:26px}
/* Default button treatment includes dynamically generated, unclassed buttons. */
body button,body .ghost,body .primary{appearance:none;border:1px solid #d6dfe6;border-radius:8px!important;background:#fff;color:#344c5f;min-height:36px;padding:8px 14px!important;font-size:13px!important;font-weight:500!important;line-height:1.4!important;vertical-align:middle;cursor:pointer;box-shadow:0 1px 2px #152b3a06;transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s}
body button:hover:not(:disabled),body .ghost:hover:not(:disabled){background:#f3f7fa;border-color:#a9bdcc;color:#173c57;box-shadow:0 2px 5px #152b3a09}
body button:active:not(:disabled){background:#e9f0f5;box-shadow:inset 0 1px 2px #152b3a0c}
body button.primary{background:#244c69!important;color:#fff!important;border-color:#244c69!important;font-weight:600!important;box-shadow:0 2px 4px #17344c14}
body button.primary:hover:not(:disabled){background:#1b3d56!important;border-color:#1b3d56!important;box-shadow:0 3px 7px #17344c20}
body button.primary:active:not(:disabled){background:#153247!important;box-shadow:inset 0 1px 3px #0002}
body button:disabled{opacity:1!important;color:#8996a1!important;background:#f1f3f5!important;border-color:#e0e6ea!important;box-shadow:none!important;cursor:not-allowed}
body :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid var(--src-ring)!important;outline-offset:3px!important;box-shadow:0 0 0 4px #527f9f16}
body :is(.actions,.toolbar,.ful-toolbar){gap:10px;flex-wrap:wrap}.actions{row-gap:10px}
body td button{min-height:32px;padding:6px 10px!important;font-size:12px!important;margin:3px 2px!important;white-space:normal;text-align:center}
body button[aria-label="关闭弹窗"]{min-width:34px;min-height:34px;padding:4px!important;font-size:21px!important;color:#708190;border-color:transparent;box-shadow:none;background:#f2f5f7}
/* Inputs use the same metrics as buttons; preserve checkboxes and file pickers. */
body input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]),body select,body textarea{border:1px solid #d6dfe6!important;border-radius:8px!important;background:#fff;color:#213547;padding:9px 12px!important;min-height:38px;font-size:13px!important;line-height:1.5;max-width:100%;box-shadow:inset 0 1px 2px #152b3a03;transition:border-color .16s,box-shadow .16s}
body input::placeholder,body textarea::placeholder{color:#778694;opacity:1;font-size:12px}
body input:disabled,body select:disabled,body input[readonly]{background:#f3f5f7!important;color:#6d7d8b!important}
body textarea{min-height:104px;resize:vertical}
body label{font-size:13px;color:#465d6f;line-height:1.7}body .field label{font-size:12px;font-weight:500;margin-bottom:8px}
body input[type=checkbox],body input[type=radio]{width:16px;height:16px;accent-color:#244c69;vertical-align:middle;flex-shrink:0}
body input[type=file]{max-width:100%;font-size:12px;color:#607184}
body input[type=file]::file-selector-button{font:500 12px var(--src-font);color:#344c5f;border:1px solid #d6dfe6;border-radius:7px;background:#f8fafb;padding:8px 12px;margin-right:12px;cursor:pointer}
body input[type=file]::file-selector-button:hover{background:#edf3f7}
body fieldset{border:1px solid #e0e7ed;border-radius:10px;padding:18px;margin:12px 0;min-width:0}body legend{padding:0 8px;color:#415a6d;font-size:13px;font-weight:600}
/* Quiet surfaces and readable data density. */
body .panel,body .card{border-color:#e0e6ec;border-radius:12px;box-shadow:0 2px 8px #172d4204}
body .card{padding:23px 25px}.num{font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-weight:600;font-size:32px}
body table{font-size:13px;font-variant-numeric:tabular-nums}body th{font-size:12px;font-weight:500;color:#5b7082;background:#f7f9fb;padding:14px 18px;letter-spacing:0}
body td{padding:16px 18px;line-height:1.75;color:#2b4255;border-bottom-color:#edf0f3}body tbody tr:hover{background:#f8fbfd}
body td small{font-size:12px;color:#6a7b89}body .tag{font-size:12px;font-weight:500;padding:4px 9px;border-radius:6px;line-height:1.6}
body .top{height:72px;border-bottom-color:#e1e7ec;box-shadow:0 1px 4px #182f4203}.top b{font-size:15px;letter-spacing:.015em}.top #user{font-size:13px}
body aside{background:#132634;border-right-color:#223847}body .asidebrand{font-size:16px;font-weight:600;letter-spacing:.02em}
body .nav{display:block;width:100%;min-height:42px;padding:11px 14px!important;background:transparent;color:#b9c8d3;border:1px solid transparent;box-shadow:none;font-size:13px!important;text-align:left;margin:4px 0}
body .nav:hover:not(:disabled){background:#203c4d;color:#fff;border-color:transparent;box-shadow:none}body .nav.active{background:#28485d!important;color:#fff!important;border-color:#34556a;box-shadow:inset 3px 0 #8fb2ca}
body #work-center .center-tabs button{border-radius:8px!important;background:transparent;box-shadow:none;border-color:transparent;padding:9px 16px!important}
body #work-center .center-tabs button[aria-selected=true]{color:#244c69!important;background:#e9f0f5!important;border-color:#d7e3eb!important;font-weight:600!important}
/* Nested dialogs share one visual system, including LPN and finance tools. */
body dialog{border:1px solid #dce4ea!important;border-radius:16px!important;padding:28px!important;box-shadow:0 24px 80px #10253530,0 3px 14px #1025350a;overscroll-behavior:contain;scrollbar-width:thin}
body dialog::backdrop{background:#0d213c55!important;backdrop-filter:blur(4px)}body dialog h2{font-size:21px;margin:0 0 20px;line-height:1.5}
body dialog h3{margin:22px 0 12px}body dialog .actions{bottom:-28px;padding:18px 0;background:#fff;border-top-color:#e5ebef}
body dialog details{margin:16px 0;border:1px solid #e3e9ee;border-radius:9px;padding:12px 15px;background:#fafcfd}
body summary{cursor:pointer;color:#405e73;font-size:13px;font-weight:500}body details[open]>summary{margin-bottom:12px}
body .business-dialog-head{padding-bottom:18px!important;margin-bottom:22px!important}.business-step{color:#60798b;font-size:11px;letter-spacing:.08em}
body .business-action-card{padding:22px 24px;gap:24px;flex-wrap:wrap}body .business-action-card>div{flex:1 1 240px;min-width:0}body .business-action-card h3{font-size:15px;margin:0 0 6px}body .business-action-card>button{width:auto;flex:0 0 auto;max-width:100%;white-space:normal}body .business-action-card p{overflow-wrap:anywhere}
@media(max-width:700px){body .business-action-card>div{flex:0 1 auto;width:100%}}
body .feedback,body .ful-error,body .fin-msg,body .business-modal-error{font-size:13px;line-height:1.75}
body .login-story{background:#132b3b}body .login-story h1{font-weight:500!important;letter-spacing:0!important;line-height:1.5}
body .loginbox h2{font-size:27px}body .loginbox .field input{height:48px;font-size:14px!important}body .loginbox button.primary{height:46px;font-size:14px!important;border-radius:9px!important;letter-spacing:.06em}
body .login-footnote{color:#657889!important;font-size:12px!important}body .loginbox .brand{font-weight:600}
@media(max-width:700px){body .heading h1{font-size:23px}body .top{height:auto;min-height:64px}body .nav{width:auto;display:inline-block;min-height:40px;flex:0 0 auto}body .card{padding:18px}body dialog{padding:20px!important;border-radius:12px!important}body dialog .actions{bottom:-20px}body .business-action-card{padding:18px}body .actions{justify-content:flex-start}body button{min-height:40px}body td button{min-height:36px}}
@media(prefers-reduced-motion:reduce){body *,body *::before,body *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){body button,body .nav.active{border:1px solid ButtonText!important}body :focus-visible{outline:2px solid Highlight!important}}
/* Single-card login: keep the form centered at desktop and mobile widths. */
body .login{grid-template-columns:minmax(0,1fr);padding:28px 16px;overflow-y:auto;background:#f3f6f9}
body .loginbox{width:440px;max-width:100%;padding:36px;background:#fff;border:1px solid #e1e7ed;border-radius:18px;box-shadow:0 16px 48px #142a4110;margin:auto}
body .loginbox .brand{margin-bottom:30px}
@media(max-width:480px){body .loginbox{padding:28px 22px}}
/* Keep an exit visible even in long, nested detail dialogs. */
body dialog[open]{overflow:auto;overscroll-behavior:contain}
body dialog:not([open]){display:none!important}
body dialog .src-dialog-exit{position:sticky;top:-28px;z-index:20;display:flex;justify-content:flex-end;background:#fff;padding:8px 0;margin:0 0 12px;border-bottom:1px solid #e5ebef}
body dialog .src-dialog-exit button{flex:none;min-width:88px;min-height:40px}
@media(max-width:700px){body dialog .src-dialog-exit{top:-20px}}
