.auth-identity{font-size:13px;min-width:70px}.auth-identity small{display:block;color:#65758b}.auth-overlay{position:fixed;inset:0;z-index:12000;background:#10243c66;display:flex;align-items:center;justify-content:center;padding:20px}.auth-overlay>section{background:white;border-radius:14px;width:min(900px,100%);max-height:90vh;overflow:auto;padding:24px;color:#172b47}.auth-overlay header{display:flex;justify-content:space-between;align-items:center;gap:20px}.auth-account-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.auth-account-form label,.login-card label{display:flex;flex-direction:column;gap:7px;font-size:14px;color:#42556f}.auth-account-form input,.auth-account-form select,.login-card input{box-sizing:border-box;width:100%;min-height:42px;border:1px solid #d6dfed;border-radius:8px;padding:10px;font:inherit;background:white}.auth-error,#login-error{color:#bd2e36;white-space:pre-wrap}.auth-preview{width:100%;height:480px;border:1px solid #dce4ef}.login-page{margin:0;min-height:100vh;display:grid;place-items:center;background:#f0f4fa;color:#182c46;font:15px/1.7 -apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}.login-card{width:min(410px,calc(100% - 64px));background:white;border:1px solid #dce4ef;border-radius:16px;padding:32px;box-shadow:0 8px 30px #183a6210}.login-brand{color:#2b61d9;font-weight:700}.login-card h1{font-size:25px;margin:15px 0 6px}.login-card p,.login-card small{color:#67778b}.login-card form{display:grid;gap:18px;margin:24px 0}.login-card button{border:0;background:#2860e8;color:white;border-radius:9px;padding:13px;font:inherit;cursor:pointer}.login-card button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}html[data-access="VIEWER"] .export-toolbar,html[data-access="VIEWER"] .export-check,html[data-access="VIEWER"] .upload-zone,html[data-access="VIEWER"] [data-accounting-create],html[data-access="VIEWER"] [data-accounting-download]{display:none!important}@media(max-width:650px){.auth-account-form{grid-template-columns:1fr}.top-actions{flex-wrap:wrap}.auth-overlay{padding:8px}}@media print{html[data-access="VIEWER"] body{display:none!important}}

/* Account workspace. Scoped to auth dialogs; business forms keep their own layout. */
.auth-overlay { background:rgba(10,25,47,.48); backdrop-filter:blur(4px); padding:28px; }
.auth-overlay > .auth-dialog { padding:0; width:min(700px,100%); max-height:90vh; border:1px solid #e1e8f2; border-radius:18px; box-shadow:0 28px 90px #071b3540; overflow:auto; font:14px/1.55 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif; }
.auth-overlay > .auth-dialog-wide { width:min(1040px,100%); }
.auth-dialog svg { width:18px; height:18px; flex:none; vertical-align:middle; }
.auth-dialog .auth-dialog-header { position:sticky; top:0; z-index:2; padding:24px 28px; border-bottom:1px solid #e7edf5; background:#fff; }
.auth-dialog-heading { display:flex; align-items:center; gap:14px; min-width:0; }
.auth-heading-icon { width:46px; height:46px; display:grid; place-items:center; border:1px solid #dfe8ff; background:#eff4ff; border-radius:13px; color:#2c61d7; flex:none; }
.auth-heading-icon svg { width:24px; height:24px; }
.auth-dialog h2 { margin:0; font-size:21px; font-weight:700; letter-spacing:.2px; line-height:1.4; }
.auth-dialog-heading p { margin:4px 0 0; color:#7b889c; font-size:12px; }
.auth-dialog .auth-close { background:#f5f7fa; color:#778398; border:1px solid #e8edf4; width:34px; height:34px; padding:7px; border-radius:9px; display:grid; place-items:center; cursor:pointer; }
.auth-dialog .auth-close:hover { background:#edf1f7; color:#223b60; }
.auth-dialog .auth-dialog-body { padding:0 28px 26px; }
.auth-dialog .auth-error { margin:0 28px 22px; padding:12px 14px; background:#fff2f2; border:1px solid #f7d5d8; border-radius:9px; font-size:13px; }
.auth-dialog .auth-error:empty { display:none; }
.auth-section-nav { display:flex; gap:24px; border-bottom:1px solid #e8edf4; margin-bottom:24px; }
.auth-tab { display:flex; align-items:center; gap:8px; padding:17px 0 14px; border:0; border-bottom:2px solid transparent; background:none; font:inherit; color:#74829a; cursor:pointer; }
.auth-tab.active { color:#295fda; border-bottom-color:#2962e7; font-weight:650; }
.auth-tab:hover { color:#295fda; }
.auth-account-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:28px; }
.auth-account-stats > div { background:#f7f9fc; border:1px solid #e9eef5; border-radius:12px; padding:16px 20px; }
.auth-account-stats > div > span { color:#7a889d; font-size:12px; }
.auth-account-stats b { display:flex; align-items:baseline; gap:9px; margin-top:7px; font-size:27px; line-height:1.1; color:#203956; font-weight:700; }
.auth-account-stats b small { font-weight:400; color:#8b97aa; font-size:11px; }
.auth-list-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.auth-list-heading h3 { margin:0; font-size:16px; }
.auth-list-heading p { font-size:12px; color:#8390a4; margin:4px 0 0; }
.auth-dialog .btn { display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid #dce4ef; border-radius:8px; background:#fff; color:#435873; font:inherit; font-size:13px; padding:9px 16px; cursor:pointer; white-space:nowrap; min-height:38px; }
.auth-dialog .btn:hover { background:#f7f9fc; border-color:#becde2; }
.auth-dialog .btn.primary { background:#2b63e7; border-color:#2b63e7; color:white; box-shadow:0 3px 7px #2860e81a; }
.auth-dialog .btn.primary:hover { background:#2256cf; }
.auth-dialog .btn:disabled { opacity:.55; cursor:wait; }
.auth-list-toolbar { display:flex; gap:12px; margin-bottom:16px; }
.auth-search { display:flex; align-items:center; gap:9px; flex:1; max-width:350px; border:1px solid #e0e7f1; border-radius:9px; padding:0 12px; color:#93a0b4; background:#fff; }
.auth-search input { width:100%; border:0; background:transparent; outline:none; padding:10px 0; font:inherit; font-size:13px; color:#243c5b; min-width:0; }
.auth-search:focus-within { border-color:#769bf1; box-shadow:0 0 0 3px #2b63e710; }
.auth-list-toolbar select { border:1px solid #e0e7f1; border-radius:9px; padding:9px 30px 9px 12px; background:white; color:#65758c; font:inherit; font-size:13px; }
.auth-dialog input::placeholder { color:#a0acbd; }
.auth-account-table { border:1px solid #e7edf4; border-radius:11px; }
.auth-account-table .table { width:100%; border-collapse:collapse; font-size:13px; }
.auth-account-table .table th { background:#f7f9fc; color:#7b889c; font-size:12px; font-weight:500; text-align:left; padding:12px 18px; border:0; }
.auth-account-table .table td { padding:18px; border-top:1px solid #edf1f6; color:#405570; white-space:nowrap; }
.auth-account-table .table th:last-child,.auth-account-table .table td:last-child { text-align:right; }
.auth-account-table .table tr:hover td { background:#fcfdff; }
.auth-account-identity { display:flex; align-items:center; gap:11px; }
.auth-account-avatar { display:grid; place-items:center; width:38px; height:38px; border:1px solid #e2eaff; border-radius:11px; color:#496da9; background:#f0f4fd; font-size:15px; font-weight:650; flex:none; }
.auth-account-identity b { display:block; color:#263d5c; font-size:13px; font-weight:650; }
.auth-account-identity small { display:block; color:#8e9aab; font-size:11px; margin-top:2px; }
.auth-self-badge { color:#8a98ab; border:1px solid #e4eaf2; border-radius:5px; padding:1px 6px; font-size:10px; margin-left:4px; }
.auth-role-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border-radius:6px; font-size:11px; font-weight:500; }
.auth-role-badge svg { width:13px; height:13px; }
.auth-role-badge.full { color:#476bd1; background:#eef3ff; }
.auth-role-badge.viewer { color:#687b91; background:#f0f4f8; }
.auth-status { display:inline-flex; align-items:center; gap:6px; font-size:12px; }
.auth-status i { width:6px; height:6px; border-radius:50%; background:currentColor; }
.auth-status.active { color:#259774; }
.auth-status.inactive { color:#96a0ae; }
.auth-edit-button { border:0; background:transparent; color:#3269dc; padding:6px 0 6px 12px; font:inherit; font-size:12px; cursor:pointer; }
.auth-edit-button:hover { color:#174eaf; text-decoration:underline; }
.auth-notice { display:flex; align-items:flex-start; gap:8px; border:1px solid #e1eafb; background:#f5f8fe; color:#6d809e; border-radius:9px; padding:12px 14px; font-size:12px; }
.auth-notice svg { color:#7395ca; width:16px; height:16px; margin-top:1px; }
.auth-account-note { margin-top:20px; border:0; background:#f7f9fc; }
.auth-success { color:#258461; background:#edf9f3; border:1px solid #d7efe2; border-radius:8px; padding:10px 13px; margin-bottom:18px; }
.auth-empty { text-align:center; padding:40px 20px; color:#7d8ba0; }
.auth-empty small { display:block; margin-top:6px; color:#a1acba; }
.auth-back { display:inline-flex; align-items:center; gap:7px; border:0; background:none; color:#73839b; padding:18px 0; font:inherit; font-size:12px; cursor:pointer; }
.auth-back:hover { color:#2b63e7; }
.auth-back svg { width:15px; height:15px; }
.auth-dialog .auth-managed-form { display:block; margin:0; }
.auth-form-section { padding:0 0 22px; margin:0 0 22px; border-bottom:1px solid #edf1f6; }
.auth-form-section h3 { font-size:14px; margin:0 0 3px; }
.auth-form-section > p { margin:0 0 18px; font-size:12px; color:#8b98aa; }
.auth-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.auth-dialog .auth-account-form label { color:#536782; font-size:12px; gap:7px; }
.auth-account-form small { color:#98a3b2; font-size:11px; }
.auth-field-span { grid-column:1/-1; }
.auth-dialog .auth-account-form input:not([type=radio]),.auth-dialog .auth-account-form select { font-size:13px; min-height:42px; padding:10px 12px; border-color:#dfe6f0; border-radius:8px; color:#29435f; }
.auth-dialog .auth-account-form input:disabled { background:#f5f7fa; color:#8a97a9; }
.auth-dialog input:focus-visible,.auth-dialog select:focus-visible,.auth-dialog button:focus-visible { outline:2px solid #7d9ee7; outline-offset:2px; }
.auth-role-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; border:0; padding:0; margin:0; min-width:0; }
.auth-role-options legend { font-size:12px; color:#536782; padding:0; margin-bottom:9px; }
.auth-dialog .auth-role-card { display:flex; flex-direction:row; align-items:flex-start; gap:10px; border:1px solid #e1e7f1; background:white; border-radius:10px; padding:14px; cursor:pointer; }
.auth-role-card:has(input:checked) { border-color:#6190f0; background:#f5f8ff; box-shadow:0 0 0 1px #6190f020; }
.auth-dialog .auth-role-card input { width:15px; height:15px; min-height:0; padding:0; margin:3px 0 0; flex:none; accent-color:#2b63e7; }
.auth-role-card b { display:block; color:#345174; font-size:13px; margin-bottom:6px; }
.auth-role-card small,.auth-role-card em { display:block; color:#8090a5; font-size:11px; line-height:1.7; font-weight:400; font-style:normal; }
.auth-dialog .auth-state-field { display:block; margin-top:18px; }
.auth-state-field select { display:block; margin-top:8px; max-width:300px; }
.auth-form-actions { display:flex; justify-content:flex-end; gap:10px; position:sticky; bottom:0; z-index:1; margin:24px -28px -26px; padding:16px 28px; background:#fff; border-top:1px solid #e7edf5; }
.auth-count { color:#8a98ac; font-size:12px; border:1px solid #e4eaf3; background:#f8fafc; padding:4px 10px; border-radius:6px; }
.auth-audit-table .table td { font-size:12px; padding-top:14px; padding-bottom:14px; }
.auth-audit-table .table td:last-child { text-align:left; }
.auth-audit-table .table th:last-child { text-align:left; }
.auth-audit-resource { max-width:260px; overflow:hidden; text-overflow:ellipsis; }
.auth-event-badge { display:inline-block; border-radius:5px; padding:3px 7px; font-size:11px; color:#617993; background:#f0f4f8; }
.auth-event-badge.denied { color:#b26969; background:#fff0ef; }
@media(max-width:650px){
 .auth-overlay{padding:10px}.auth-overlay>.auth-dialog{max-height:95vh;border-radius:13px}
 .auth-dialog .auth-dialog-header{padding:18px}.auth-dialog .auth-dialog-body{padding:0 18px 20px}
 .auth-heading-icon{width:38px;height:38px;border-radius:10px}.auth-heading-icon svg{width:21px;height:21px}
 .auth-dialog h2{font-size:18px}.auth-dialog-heading{gap:10px}.auth-dialog-heading p{font-size:11px}
 .auth-account-stats{gap:7px;margin-bottom:22px}.auth-account-stats>div{padding:12px 10px}
 .auth-account-stats b{font-size:23px;gap:5px;flex-wrap:wrap}.auth-account-stats b small{font-size:10px}
 .auth-list-heading{gap:8px}.auth-list-heading p{max-width:190px}.auth-list-heading .btn{padding:9px 11px}
 .auth-search{max-width:none;min-width:0}.auth-list-toolbar{gap:8px}.auth-list-toolbar select{max-width:114px;padding-right:9px}
 .auth-account-table .table td,.auth-account-table .table th{padding:12px}.auth-self-badge{display:none}
 .auth-field-grid,.auth-role-options{grid-template-columns:1fr}.auth-field-span{grid-column:auto}
 .auth-form-actions{bottom:0;margin:20px -18px -20px;padding:14px 18px}
 .auth-dialog .auth-error{margin:0 18px 18px}.auth-dialog .auth-account-form:not(.auth-managed-form){padding-top:18px}
}
