:root{font-family:'Microsoft YaHei','PingFang SC',sans-serif;color:#16385f;background:#f3f7fc;font-size:14px;line-height:1.6}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.5}button,input,select,textarea{border:1px solid #d4e1f0;border-radius:7px;padding:9px 14px;background:#fff;color:inherit}button:hover{background:#edf4ff}button.primary{background:#1764dc;color:#fff;border-color:#1764dc}input,select,textarea{width:100%}textarea{min-height:100px;resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:28px}h2{font-size:18px}h3{font-size:16px}.header{height:72px;background:white;border-bottom:1px solid #e0e9f4;display:flex;align-items:center;gap:36px;padding:0 max(24px,calc((100vw - 1536px)/2))}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand img{width:40px}.brand small{display:block;letter-spacing:5px;color:#506782;font-size:11px}.nav{display:flex;gap:20px;margin:auto}.nav button{border:0;background:none;padding:21px 10px;border-radius:0;white-space:nowrap}.nav button.active{border-bottom:3px solid #1764dc;color:#1764dc}.account{display:flex;gap:10px;align-items:center;white-space:nowrap}.shell{max-width:1584px;margin:auto;padding:24px}.hero{border:1px solid #dbe7f7;border-radius:12px;background:#ecf6ff url("/static/assets/landscape-v1.087500fe256c.webp") right center/cover no-repeat;padding:26px 30px;display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.hero h1{margin-bottom:4px}.hero p{margin:0;color:#506782}.panel,.kpi{background:white;border:1px solid #e0e9f4;border-radius:11px;box-shadow:0 6px 22px #173e6707;padding:22px;margin-bottom:18px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.kpi{text-align:left;position:relative}.kpi strong{display:block;font-size:32px;color:#123863}.kpi small{color:#506782}.grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px}.categories{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.category{text-align:left;background:#f9fbfe;padding:15px;border:1px solid #e1eaf5;border-radius:7px}.category h3{margin:0 0 12px}.progress{height:5px;background:#e8eff8;margin-top:12px;overflow:hidden;border-radius:6px}.progress progress{display:block;width:100%;height:5px;border:0;accent-color:#2979ef}.row{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.muted,small{color:#506782}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}td,th{padding:12px;border-bottom:1px solid #e8eff7}th{background:#f5f8fc;font-weight:normal;color:#506782}.title{font-weight:600;white-space:normal;min-width:180px}.badge{display:inline-block;border-radius:5px;padding:2px 7px;background:#eaf3ff;color:#2364bc;font-size:12px}.danger{color:#bb3942}.filters{display:flex;gap:10px;margin-bottom:18px}.filters input{max-width:350px}.filters select{max-width:180px}.field{display:block;margin-bottom:16px}.field span{display:block;margin-bottom:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .field{margin:0}.note{padding:12px;background:#eef5fd;border-radius:6px;margin:14px 0}.empty{text-align:center;padding:50px;color:#506782}.footer{font-size:12px;display:flex;justify-content:space-between;color:#506782;margin:24px 0}.login{min-height:100vh;display:grid;grid-template-columns:1.2fr 1fr}.login-art{background:#e6f2ff url("/static/assets/landscape-v1.087500fe256c.webp") center/cover;display:flex;flex-direction:column;justify-content:center;padding:10%;color:#123863}.login-card{align-self:center;width:min(440px,90%);margin:40px auto;background:#fff;padding:36px;border:1px solid #e0e9f4;border-radius:18px}.login-card button{width:100%;margin-top:15px}.login-card h1{font-size:24px}.error{color:#ae2d3c;white-space:pre-wrap;margin:10px 0}.backdrop{position:fixed;inset:0;background:#102c5355;z-index:40}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(780px,100%);background:#f8faff;z-index:41;display:flex;flex-direction:column;box-shadow:-8px 0 35px #16385f22}.drawer-head{padding:22px;background:white;border-bottom:1px solid #dce7f4;display:flex;justify-content:space-between;align-items:center}.drawer-head h2{margin:0}.drawer-body{overflow:auto;padding:24px;flex:1}.drawer-foot{padding:16px 24px;background:white;border-top:1px solid #dce7f4;display:flex;gap:10px;flex-wrap:wrap}.timeline{padding-left:20px;border-left:2px solid #e0eaf6;margin:24px 0}.timeline article{margin:0 0 20px}.timeline p{white-space:pre-wrap;margin:6px 0}.loading{margin:20vh auto;text-align:center}.mobile-nav{display:none}#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#183c62;color:#fff;padding:12px 22px;border-radius:8px;z-index:80;display:none;max-width:90vw}#toast.visible{display:block}.group-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.task-card{display:none}.summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.summary p{margin:0}.full{grid-column:1/-1}.nowrap{white-space:nowrap}
input[type=checkbox]{width:auto;vertical-align:middle}.table-wrap{max-width:100%}.grid>*{min-width:0}
@media(max-width:900px){.header{padding:0 18px;gap:10px}.brand{font-size:12px}.nav{gap:4px}.nav button{padding:22px 5px}.account .name{display:none}.categories{grid-template-columns:repeat(2,1fr)}.group-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.header{height:64px}.nav{display:none}.account{margin-left:auto}.shell{padding:14px 14px 82px}.hero{padding:20px;display:block;background-position:65% center}.hero h1{font-size:23px}.hero .row{margin-top:10px}.grid{display:block}.kpis{grid-template-columns:1fr 1fr;gap:10px}.kpi{padding:15px;margin:0}.kpis{margin-bottom:14px}.kpi strong{font-size:28px}.panel{padding:16px}.categories{gap:8px}.category{padding:10px}.category h3{font-size:14px}.filters{flex-wrap:wrap}.filters input,.filters select{max-width:none}.filters>*{flex:1;min-width:110px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid #dfe7f4;z-index:30;justify-content:space-around;padding:9px 0 calc(9px + env(safe-area-inset-bottom))}.mobile-nav button{border:0;padding:10px 16px;font-size:13px}.mobile-nav .active{color:#1764dc;background:#eaf3ff}.footer{display:block}.table-wrap.tasks{display:none}.task-card{display:block;background:#fff;border:1px solid #e4ecf7;border-radius:8px;padding:14px;margin-bottom:12px}.task-card h3{margin:5px 0}.group-cards,.form-grid{grid-template-columns:1fr}.login{display:block;padding-top:30px}.login-art{display:none}.login-card{padding:25px}.drawer-body{padding:16px}.summary{grid-template-columns:1fr}.header .brand small{letter-spacing:3px}.row{flex-wrap:wrap}.drawer-head h2{font-size:16px}.drawer-foot{padding:12px}.group-table{min-width:640px}}
@media(max-width:640px){.header .brand{min-width:0;flex:1;white-space:normal;font-size:11px;gap:7px}.header .brand img{width:28px;flex-shrink:0}.header .brand small{font-size:9px;letter-spacing:2px;white-space:nowrap}.account{gap:5px}.account button{font-size:12px;padding:6px 8px}.header{padding:0 12px;gap:8px}}
.ledger-tools{margin-bottom:18px}
.task-toolbox{margin-bottom:14px}.task-toolbox>summary{cursor:pointer;min-height:44px;padding:10px 12px;border:1px solid #d4e1f0;border-radius:7px;background:#fff}.task-toolbox[open]>.ledger-tools{margin:10px 0 0}
@media(min-width:641px){.task-toolbox>summary{display:none}}
.unread-count{display:inline-block;min-width:18px;padding:0 4px;border-radius:10px;background:#bb3942;color:white;font-size:11px}.list-pager{margin-top:18px;padding-top:14px;border-top:1px solid #dce7f4}.drawer button[aria-pressed=true]{background:#1764dc;color:white;border-color:#1764dc}.handover-panel{padding:14px;background:#eef5fd;border-radius:8px;margin-bottom:18px}.handover-panel p{margin:12px 0}.handover-panel button{white-space:normal;text-align:left}.drawer #import-result td{white-space:normal;min-width:90px}.drawer #import-result th{white-space:normal}.drawer #import-result{margin-top:20px}
#network-status{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:90;padding:7px 16px;border-radius:8px;background:#183c62;color:#fff;box-shadow:0 3px 16px #16385f22;pointer-events:none;font-size:12px;max-width:90vw}
.quick-views{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.quick-views button{border-radius:20px;padding:7px 15px;background:#f7faff}.quick-views button[aria-pressed=true]{background:#1764dc;color:white;border-color:#1764dc}
.primary-filters input[type=search]{flex:3 1 280px;max-width:none}.advanced-filters{border-top:1px solid #e8eff7;padding:12px 0;margin-bottom:8px}.advanced-filters summary{cursor:pointer;color:#436c9e}.advanced-filters .filters{margin:16px 0 0}
.filter-chips{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 16px}.filter-chips:empty{display:none}.filter-chips button{font-size:12px;padding:5px 9px;background:#eef5fd;border-color:#d8e7f8;max-width:100%;overflow-wrap:anywhere;text-align:left}.filter-chips span{padding-left:6px}
@media(max-width:640px){.quick-views{gap:6px}.quick-views button{padding:6px 11px;font-size:12px}.primary-filters input[type=search]{flex-basis:100%}.primary-filters>select{min-width:0;flex-basis:40%}.advanced-filters .filters>select,.advanced-filters .filters>label{max-width:none;min-width:0;flex-basis:100%}}
.filters{flex-wrap:wrap;align-items:end}.filters>input,.filters>select{flex:1 1 150px}.filters>label{flex:1 1 145px;max-width:210px;font-size:12px;color:#506782}.filters>label input{font-size:14px}.filters>button{white-space:nowrap}
/* Responsive D5 organization, readable forms and long business text. */
:focus-visible{outline:3px solid #1764dc;outline-offset:2px}.header,.shell,.drawer{overflow-wrap:anywhere}.shell>*{min-width:0}.hero{min-height:106px}.hero>div{min-width:0}.hero>button{flex-shrink:0}.hero h1,.hero p{text-shadow:0 1px 8px #fff,0 0 14px #fff}.panel h2{margin-bottom:14px}.panel h3{margin-top:18px}.panel .row h2{margin:0}.panel .row{margin-bottom:14px}.text-button{border:0;background:none;padding:3px;text-align:left;font-weight:600}.group-table .progress{min-width:90px;margin-top:0}.group-mobile,.member-mobile,.mobile-empty{display:none}.organization-card{min-width:0;background:#fff;padding:22px;border:1px solid #e0e9f4;border-radius:11px;margin-bottom:18px}.organization-card h3{margin:0}.organization-card .row{margin-bottom:10px}.organization-card p{font-size:13px;margin-bottom:16px}.organization-card .card-actions{margin:18px 0 0}.compact-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;color:#506782;font-size:12px}.compact-stats strong{display:block;color:#16385f;font-size:22px}.compact-stats .danger{color:#bb3942}.member-roles{white-space:normal;min-width:220px}.member-card{border-bottom:1px solid #e8eff7;padding:13px 0}.member-card p{margin:4px 0}.preserve-text{white-space:pre-wrap}.audit-detail{white-space:pre-wrap;word-break:break-word;font:12px/1.7 monospace}.choice-search{margin-bottom:6px;font-size:12px;background:#f7faff}.task-select-mobile{display:block;color:#506782;font-size:12px;margin-bottom:8px}.drawer-head h2{overflow-wrap:anywhere;min-width:0}.drawer-head button{flex-shrink:0}.drawer-body,.drawer-foot{overscroll-behavior:contain}.drawer-foot{padding-bottom:max(16px,env(safe-area-inset-bottom))}.drawer-body .filters{padding:12px;background:#edf4fd;border-radius:8px}.drawer-body p,.drawer-body small,.print-report p{overflow-wrap:anywhere}.drawer-body [hidden]{display:none!important}.error:empty{display:none}.filters input[type=hidden]{display:none}.table-wrap input[type=checkbox]{width:18px;height:18px}button:disabled{cursor:not-allowed}.report-versions button{width:100%;text-align:left}.report-versions .selected{background:#eaf3ff;border-color:#87b6f6}.report-tools{margin-bottom:18px}.member-filter{max-width:260px}
@media(max-width:1100px){.header{gap:16px}.nav{gap:8px}.nav button{padding-left:5px;padding-right:5px}.account .name{display:none}}
@media(max-width:640px){.hero{min-height:116px;padding:18px}.hero>button{margin-top:12px}.hero p{font-size:12px}.group-desktop,.member-desktop{display:none}.group-mobile,.member-mobile,.mobile-empty{display:block}.organization-card{padding:16px}.group-mobile .organization-card{box-shadow:none;margin-bottom:12px}.group-mobile .organization-card:last-child{margin-bottom:0}.group-cards{gap:0}.compact-stats strong{font-size:21px}.drawer-head{padding:16px}.drawer-body .table-wrap{max-width:100%}.drawer .filters>*{min-width:0;flex-basis:100%;max-width:none}.drawer .form-grid{gap:12px}.drawer-body .note{font-size:13px}.filters>label{max-width:none}.print-report h1{font-size:22px}.print-report .kpi{font-size:12px}.print-report .row>div{gap:6px}.print-report .row button{padding:8px 10px}#toast{bottom:92px;min-width:230px;font-size:13px}.footer{margin-bottom:4px}.login-card .brand{white-space:normal}.member-filter{max-width:none}.task-card h3{overflow-wrap:anywhere}.report-text{word-break:break-word}.drawer-foot button{flex:1}}

/* Authentication recovery keeps the existing form intact under a native modal. */
#session-dialog{width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #dce7f4;border-radius:16px;padding:26px;color:#16385f;background:#fff;box-shadow:0 16px 70px #16385f40;overflow-wrap:anywhere}
#session-dialog::backdrop{background:#102c53aa;backdrop-filter:blur(5px)}
#session-dialog h2{font-size:22px;margin-top:0}#session-dialog p{line-height:1.8}#session-dialog button{width:100%;margin-top:10px;white-space:normal}#session-dialog input{min-width:0}
#connection-banner{position:fixed;top:0;left:0;right:0;background:#fff1d3;border-bottom:1px solid #dcb75c;color:#724d0a;padding:10px 18px;z-index:95;text-align:center;font-size:13px}
@media(max-width:640px){#session-dialog{padding:20px}#session-dialog h2{font-size:19px}}

.report-latest{max-height:260px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;background:white;border:1px solid #ccdcec;padding:12px;margin:12px 0}.report-conflict button{margin:6px 6px 0 0;white-space:normal}

/* Visible keyboard navigation, invalid fields and reduced motion. */
.skip-link{position:fixed;top:8px;left:12px;z-index:110;padding:12px 18px;background:#fff;color:#16385f;border:2px solid #1764dc;border-radius:6px;transform:translateY(-160%)}.skip-link:focus{transform:none}
[aria-invalid=true]{border:2px solid #ae2d3c}#main-content{scroll-margin-top:16px}.drawer-head h2:focus{outline:2px solid #1764dc;outline-offset:4px}.error:focus{outline:2px solid #ae2d3c;outline-offset:4px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* Follow the actual text block, retaining the landscape and the banner's available width. */
.hero>div{display:table;max-width:100%;background:rgba(243,249,255,.94);box-shadow:0 0 12px 10px rgba(243,249,255,.94);border-radius:3px}

/* Modal notices occupy their own row instead of covering focused inputs or actions. */
.drawer>#toast{position:static;transform:none;max-width:none;min-width:0;margin:8px 16px 0;padding:8px 12px;max-height:min(25dvh,120px);overflow:auto;flex-shrink:0;font-size:13px}
@media(max-height:360px){.drawer-head{padding:8px 16px}.drawer-head button{padding:6px 10px}.drawer-foot{padding:8px 12px}.drawer-body{padding:12px 16px}.drawer>#toast{margin:4px 12px 0;padding:6px 10px;max-height:20dvh}}

.history-pager{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.history-pager label{display:flex;gap:8px;align-items:center}.history-pager input{width:85px;min-width:0}.history-controls{margin:16px 0}.history-controls h3:focus-visible{outline:2px solid #1764dc;outline-offset:4px}

.people-pager{margin-top:16px}.people-pager .people-page-form{margin:0}.people-page-form label{display:flex;gap:8px;align-items:center}.people-page-form input{width:86px}.management-filters{margin-top:18px;display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:12px}#management-list-title:focus,#member-heading:focus,#member-detail-heading:focus{outline:3px solid #1764dc;outline-offset:3px}@media(max-width:600px){.management-filters{grid-template-columns:minmax(0,1fr)}}

.management-table td:first-child{white-space:normal;overflow-wrap:anywhere;max-width:220px}
.directory-choice [hidden]{display:none!important}.directory-choice [role=status]{display:block;min-height:1.6em;overflow-wrap:anywhere}.directory-choice [data-directory-selected]{white-space:normal;overflow-wrap:anywhere}.directory-choice-pages{gap:8px;margin-top:6px}.directory-choice-pages button{min-height:40px}.directory-choice select{max-width:100%}
.task-related{margin:24px 0;padding-top:12px;border-top:1px solid #d7e3ef;overflow-wrap:anywhere}.task-related h3:focus{outline:3px solid #1764dc;outline-offset:3px}.related-filter label{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1 1 150px}.related-filter input,.related-filter select{width:100%;min-width:0}.task-related [data-related-status]:empty{display:none}.task-related .note{white-space:normal}.task-related .note p{white-space:pre-wrap}.task-related [aria-busy=true]{opacity:.8}
.related-text{margin:12px 0}.related-text>strong{font-size:13px;color:#506782}.related-text p{margin:6px 0}.related-text summary{cursor:pointer;line-height:1.8;white-space:normal;overflow-wrap:anywhere}.related-text summary:focus-visible{outline:2px solid #1764dc;outline-offset:3px}.related-text details[open]>p{border-left:2px solid #9cbde2;padding-left:12px}
@media(max-width:600px){.management-table table,.management-table tbody{display:block;white-space:normal;width:100%}.management-table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.management-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;padding:16px 0;border-bottom:1px solid #e0e9f4}.management-table tbody td{display:block;white-space:normal;overflow-wrap:anywhere;padding:0;border:0;max-width:none}.management-table tbody td:first-child{font-weight:600}.management-table tbody td:nth-child(2)::before{content:'账号 / 类型：';color:#506782}.management-table tbody td:nth-child(3)::before{content:'状态：';color:#506782}.management-table tbody td:last-child button{min-height:40px}}

/* Mobile worklist: keep task content ahead of secondary tools. */
@media(max-width:640px){
 .task-hero{min-height:0;padding:12px 14px;margin-bottom:10px;display:flex;align-items:center;gap:10px}
 .task-hero h1{font-size:21px}.task-hero p{max-width:150px;font-size:11px}.task-hero>button{margin:0;padding:9px 10px;white-space:nowrap;flex-shrink:0}
 .task-toolbox{margin-bottom:10px}.task-toolbox .ledger-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.task-toolbox .ledger-tools button{padding:9px 8px;white-space:normal}
 .task-list-panel{padding:12px}.task-list-panel .quick-views{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:3px 2px 7px;margin:0 0 8px;scroll-padding:4px}.task-list-panel .quick-views button{flex:none;min-height:40px;white-space:nowrap}
 .task-filter{position:relative}.task-filter .primary-filters{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-bottom:8px}.task-filter .primary-filters>*{min-width:0;max-width:none}.task-filter .primary-filters input{padding:9px 10px}
 .task-filter [data-action=clear-filter]{position:absolute;right:0;top:52px;min-height:42px;padding:8px 12px}
 .task-filter .advanced-filters{padding:0;margin:0 0 8px;border:0}.task-filter .advanced-filters>summary{min-height:44px;padding:10px 76px 10px 2px}.task-filter .advanced-filters .filters{margin-top:8px}
 .task-list-count{gap:8px;margin-bottom:10px}.task-list-count p{margin:0}.task-list-count>div{gap:6px}.task-list-count>div button{padding:7px 10px}
}

/* Preserve current-page recognition when the user forces the color palette. */
@media(forced-colors:active){.mobile-nav [aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em;font-weight:700}}

[data-report-read-status]:not([hidden]){margin:12px 0;padding:12px;border:1px solid currentColor;border-radius:6px;overflow-wrap:anywhere}[data-report-read-status] p{margin:0 0 8px}

/* File status remains readable for long names and narrow drawers. */
.attachment-feedback { min-width:0; overflow-wrap:anywhere; }
.attachment-feedback progress { width:100%; max-width:24rem; }
.attachment-feedback [hidden] { display:none; }
