:root{--primary:#6269a8;--primary-dark:#505891;--bg:#f0f1f7;--text:#444b53;--muted:#929aa3;--line:#edf0f3;--side:256px}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--bg);font:14px -apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft Yahei',sans-serif}button,input,select,textarea{font:inherit}button,a,select{touch-action:manipulation}button,a{cursor:pointer}a{color:var(--primary);text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid #838ac7;outline-offset:3px}#sidebar{width:var(--side);position:fixed;inset:0 auto 0 0;background:#fff;overflow:auto;z-index:10;border-right:1px solid #f2f3f7;transition:width .2s}.brand{height:64px;display:flex;align-items:center;gap:10px;white-space:nowrap;padding:0 28px;font-size:20px;letter-spacing:.1px;color:#59659a;border-bottom:1px solid #f5f5f7}.brandmark{font-size:28px;color:#3e81a7;border:3px double #4284a6;clip-path:polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%);width:35px;height:35px;text-align:center;line-height:26px}nav{padding:11px 0 22px}.nav-group button,.nav-single{display:flex;width:100%;align-items:center;gap:17px;background:#fff;color:#53575c;min-height:43px;padding:11px 26px;text-align:left}.nav-icon{width:16px;text-align:center;font-size:18px;line-height:20px}.nav-group button .chev{margin-left:auto;color:#8d9299;font-size:15px;transition:transform .15s}.nav-group.open .chev{transform:rotate(-90deg)}.nav-children{display:none}.nav-group.open .nav-children{display:block}.nav-children a{display:flex;align-items:center;gap:16px;color:#555b62;padding:10px 30px 10px 34px;font-size:13px;min-height:35px}.nav-children a::before{content:'';width:10px;height:10px;border-radius:50%;border:1.5px solid #858a90;flex-shrink:0}.nav-children a.active{color:var(--primary);font-weight:600;background:#f8f9fc}.nav-children a.active::before{border-color:var(--primary)}.nav-single.active{color:var(--primary);font-weight:600}.nav-group button:hover,.nav-children a:hover,.nav-single:hover{background:#f8f9fc}#shell{margin-left:var(--side);min-height:100vh;display:flex;flex-direction:column;transition:margin .2s}header{height:60px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 25px;box-shadow:0 2px 5px #353b6610;position:sticky;top:0;z-index:5}.header-actions{display:flex;align-items:center;gap:17px}.header-actions select{border:0;color:#666f81;background:white;font-size:13px;max-width:170px}.icon-btn{background:transparent;color:#737ca6;padding:6px;line-height:1;font-size:20px}.text-btn{background:transparent;color:#747b95;font-size:12px;padding:6px}.profile{font-size:12px;text-align:right}.profile small{display:block;font-size:10px;color:#7b8790;margin-top:2px}.profile i,.demo-dot{display:inline-block;background:#5eb48e;width:7px;height:7px;border-radius:50%;margin-right:4px}.avatar{height:34px;width:34px;background:#6973aa;color:#fff;display:grid;place-items:center;border-radius:50%;font-size:14px;box-shadow:0 2px 6px #545c8f30}.demo-banner{margin:14px 32px 0;padding:8px 12px;background:#e8ebf4;border:1px solid #e0e4f0;border-radius:3px;color:#7e86a1;font-size:11px;display:flex;align-items:center;gap:8px}.demo-dot{background:#8c94bf;margin:0;width:6px;height:6px}main{padding:25px 32px;flex:1;min-width:0}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.page-head h1{font-size:24px;font-weight:400;color:#31383f;margin:0}.page-head h1 small{font-size:14px;color:#68707c;margin-left:12px}.breadcrumbs{font-size:12px;color:#969baa}.breadcrumbs span{padding:0 9px;color:#a7aeb9}.toolbar{display:flex;align-items:center;gap:6px;margin-bottom:12px}.toolbar .spacer{flex:1}.btn{background:var(--primary);color:white;padding:8px 14px;border:1px solid var(--primary);border-radius:3px;box-shadow:0 2px 4px #4c517820;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;font-size:13px;min-height:34px}.btn:hover{background:var(--primary-dark)}.btn:disabled{opacity:.55;cursor:wait}.btn.light{background:#fff;color:#69727d;border-color:#edf0f4}.btn.danger{background:#c36e73;border-color:#c36e73}.btn.small{padding:5px 10px;min-height:27px;font-size:12px;box-shadow:none}.filter-panel{background:#fff;border-radius:4px;padding:24px;margin-bottom:15px}.filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 26px}.filter-field{display:flex;min-width:0;border:1px solid #e1e4e9;border-radius:3px;min-height:32px}.filter-field label{background:#fff;white-space:nowrap;padding:8px 10px;font-size:11px;border-right:1px solid #edf0f3;font-weight:500}.filter-field input,.filter-field select{width:100%;min-width:0;border:0;padding:6px 9px;color:#5c6571;background:white;font-size:11px;border-radius:0 3px 3px 0}.filter-field input::placeholder{color:#b6bcc5}.filter-field input:focus,.filter-field select:focus{outline:1px solid #9198c8}.filter-actions{display:flex;gap:6px;align-items:center}.filter-actions .btn{font-size:12px;padding:6px 12px;min-height:30px}.table-card{border-radius:4px;background:white;overflow:hidden}.table-scroll{overflow:auto;max-width:100%}.data-table{border-collapse:separate;border-spacing:0;white-space:nowrap;width:100%;font-size:13px}.data-table th{font-size:11px;background:#e9ecf2;color:#515864;text-align:left;padding:14px 13px;font-weight:600;border-bottom:1px solid #edf0f4}.data-table td{padding:18px 13px;border-bottom:1px solid #f3f4f7;color:#646d77;vertical-align:middle;height:58px}.data-table tr:hover td{background:#fafbfe}.data-table td.money{font-variant-numeric:tabular-nums}.data-table .check{width:37px;padding-left:17px}.data-table input[type=checkbox]{accent-color:var(--primary);width:15px;height:15px}.data-table .sticky{position:sticky;right:0;background:#fff;border-left:1px solid #f2f3f6;box-shadow:-5px 0 10px #555b8705}.data-table th.sticky{background:#e9ecf2}.row-actions{display:flex;gap:7px}.row-actions button{background:transparent;color:#848bb0;font-size:13px;padding:2px 3px;white-space:nowrap}.row-actions button:hover{color:#424e99}.status{font-size:11px;display:inline-flex;align-items:center;gap:5px}.status::before{content:'';height:5px;width:5px;background:#88aa9d;border-radius:50%}.status.overdue{color:#c47573}.status.overdue::before{background:#ce8e87}.status.pending{color:#b29d6b}.status.pending::before{background:#c3af81}.status.done{color:#8b94a1}.status.done::before{background:#a4acb8}.pagination{padding:17px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#8d96a5}.page-buttons{display:flex;align-items:center;gap:4px}.page-buttons button{padding:6px 10px;color:#7c85ab;background:#fff;border:1px solid #eceef3;border-radius:2px}.page-buttons button.current{background:var(--primary);color:#fff}.page-buttons button:disabled{opacity:.35;cursor:default}.page-buttons select{border:1px solid #e7eaf0;color:#858d9b;margin-left:8px;padding:5px;background:white}.empty{text-align:center;padding:65px 24px!important;white-space:normal;color:#a3abb7!important}.empty .empty-icon{font-size:30px;display:block;color:#c5cbd9;margin-bottom:10px}.empty p{font-size:12px;margin-top:9px;line-height:1.8}.badge{display:inline-block;background:#f0f1f8;border:1px solid #e8eaf3;padding:3px 7px;border-radius:3px;color:#7e86a7;font-size:11px}.dashboard{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}.card{background:white;border-radius:3px;padding:17px;box-shadow:0 2px 5px #363a5a07;overflow:hidden}.card h3{font-size:16px;color:#4a505a;font-weight:500;margin:0 0 25px}.sales-card{min-height:420px;display:flex;flex-direction:column}.big-value{font-size:42px;font-weight:400;letter-spacing:-1px;color:#343a40;font-variant-numeric:tabular-nums}.sales-card .period{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:180px;color:#969fb5;font-size:15px}.sales-card .period strong{font-size:28px;font-weight:400;color:#a6acb9}.sales-footer{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;font-size:12px;color:#7d8694}.sales-footer strong{display:block;color:#515964;font-size:24px;font-weight:400;margin-top:21px}.dash-right{display:grid;gap:22px}.dash-top{display:grid;grid-template-columns:1fr 1fr;gap:22px}.dash-top .card{min-height:174px}.dash-top h3{font-size:15px;margin-bottom:20px}.spark{height:50px;width:100%;margin-top:20px}.donut{border-radius:50%;width:86px;height:86px;background:conic-gradient(#7b84bb var(--percent),#a6c7e6 0);position:relative;flex-shrink:0}.donut::after{content:'';position:absolute;inset:10px;background:white;border-radius:50%}.collection-metric{display:flex;gap:13px;align-items:center;font-size:11px;line-height:1.9}.legend i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#7b84bb;margin-right:5px}.legend i.pale{background:#a6c7e6}.overdue-card{min-height:265px}.overdue-body{display:grid;grid-template-columns:1.15fr 1fr;gap:15px}.overdue-body .big-value{font-size:29px;word-break:break-word;margin:4px 0 23px;letter-spacing:0}.repay{color:#70b596;font-size:14px;margin-bottom:12px}.repay span{color:#6e7580}.bars{height:155px;display:flex;align-items:end;gap:9px;padding:12px 3px}.bars i{background:#ebedf5;flex:1;min-width:7px;position:relative}.bars i:nth-child(1){background:#7a83ba}.bars i span{position:absolute;bottom:-18px;font-size:9px;color:#a4acbc}.grade-card .grade-list{display:grid;grid-template-columns:1fr 1fr;gap:15px;font-size:12px}.grade-list div{display:flex;justify-content:space-between;gap:10px}.grade-list i{display:inline-block;width:9px;height:9px;border:2px solid #74b89a;border-radius:50%;margin-right:7px}.grade-list div:nth-child(2) i{border-color:#7b84bc}.grade-list div:nth-child(3) i{border-color:#d2b275}.grade-list div:nth-child(4) i{border-color:#cc8b88}.stats-note{font-size:11px;color:#a0a8b5;margin-top:17px}.summary-strip{padding:14px 20px;margin:0 0 15px;background:#fff;border:1px solid #e6e9f2;display:flex;gap:25px;font-size:12px;color:#8a93a2;border-radius:3px}.summary-strip strong{color:#5f699a;margin-left:5px;font-weight:500}footer{display:flex;justify-content:space-between;color:#a7adbb;font-size:11px;padding:20px 32px}dialog{width:min(840px,94vw);max-height:90vh;padding:0;border:0;border-radius:5px;box-shadow:0 15px 100px #262b4b30;color:var(--text)}dialog::backdrop{background:#30395055;backdrop-filter:blur(2px)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:19px 24px;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.modal-head h2{font-weight:500;font-size:18px;margin:0}#modalBody{padding:24px;max-height:67vh;overflow:auto}.modal-foot{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:end;gap:9px;padding:16px 24px;background:#fff}#formError{color:#c37272;font-size:12px;margin-right:auto;max-width:65%;line-height:1.5}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 24px}.form-field label{display:block;font-size:12px;margin-bottom:7px;color:#66717e}.required{color:#c07c7f;margin-right:4px}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #dfe3ec;border-radius:3px;padding:10px;color:#515d6d;background:#fff;min-height:38px}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:1px solid #8c94c2;border-color:#8c94c2}.form-field input[readonly]{background:#f7f8fb;color:#8d97a5}.form-section{grid-column:1/-1;padding:11px 0 5px;border-bottom:1px solid #eef0f5;font-size:14px;color:#66719b}.form-hint{grid-column:1/-1;background:#f3f5fb;color:#8c95a9;font-size:12px;padding:12px;line-height:1.8;border-radius:3px}.form-field.wide{grid-column:1/-1}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e9edf4;border:1px solid #e9edf4;border-radius:3px;overflow:hidden}.detail-grid div{background:white;padding:13px;font-size:12px;display:flex;gap:14px}.detail-grid label{color:#929bab;min-width:80px}.detail-plans{margin-top:22px;overflow:auto}.detail-plans h3{font-size:14px;font-weight:500}.detail-plans th,.detail-plans td{padding:12px}.inline-note{font-size:12px;color:#8b95a7;line-height:1.8;background:#f6f7fb;padding:14px;border-radius:3px;margin:0 0 18px}.loading{padding:100px;text-align:center;color:#929bb0}.error-box{padding:30px;background:white;border-radius:4px;line-height:2}.error-box h2{font-size:18px;font-weight:500}#toast{position:fixed;top:80px;left:50%;transform:translate(-50%,-10px);background:#fff;border:1px solid #e3e7ef;border-radius:4px;box-shadow:0 5px 25px #424e761a;color:#5c7181;padding:13px 22px;z-index:40;opacity:0;pointer-events:none;transition:all .2s;font-size:13px}#toast.show{opacity:1;transform:translate(-50%,0)}body.collapsed{--side:72px}body.collapsed .brand{padding-left:19px;font-size:0}body.collapsed .brandmark{flex-shrink:0}body.collapsed .nav-label,body.collapsed .chev,body.collapsed .nav-children{display:none}body.collapsed .nav-group button,body.collapsed .nav-single{padding-left:26px}.audit-message{padding:20px;color:#959db0;font-size:12px;border-bottom:1px solid #edf0f6;background:#fafbfe}@media(min-width:1500px){.dashboard{grid-template-columns:1.02fr 1fr}.sales-card{min-height:465px}.filters{gap:8px 30px}}@media(max-width:1100px){:root{--side:220px}.brand{font-size:17px;padding:0 20px}main{padding:24px}.demo-banner{margin:14px 24px 0}.header-actions{gap:10px}.filters{gap:8px 12px}.filter-panel{padding:20px}.dashboard{gap:20px}.dash-top{gap:15px}.collection-metric{flex-wrap:wrap}.donut{width:68px;height:68px}.big-value{font-size:35px}}@media(max-width:850px){:root{--side:190px}.brand{padding:0 13px;font-size:15px}.brandmark{width:29px;height:29px;font-size:23px;line-height:21px}.nav-group button,.nav-single{padding-left:20px}.filters{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard{grid-template-columns:1fr}.sales-card{min-height:330px}.sales-card .period{min-height:120px}.header-actions .text-btn{display:none}.demo-banner{line-height:1.6;font-size:10px}.breadcrumbs{display:none}}@media(max-width:600px){:root{--side:0px}#sidebar{width:225px;transform:translateX(-100%)}body.collapsed #sidebar{width:225px;transform:translateX(0);box-shadow:12px 0 50px #343b7133}body.collapsed{--side:0px}body.collapsed .brand{font-size:17px;padding-left:20px}body.collapsed .nav-label,body.collapsed .chev{display:inline}body.collapsed .nav-group.open .nav-children{display:block}.header-actions{gap:9px}.header-actions #homeBtn,.profile{display:none}header{padding:0 15px}.header-actions select{max-width:145px}main{padding:20px 14px}.demo-banner{margin:10px 14px 0;display:block}.demo-dot{margin-right:5px}.filters{grid-template-columns:1fr;gap:8px}.filter-panel{padding:15px}.form-grid{grid-template-columns:1fr}.form-field.wide{grid-column:auto}.detail-grid{grid-template-columns:1fr}.page-head h1{font-size:22px}.toolbar .btn{padding:7px 9px;font-size:12px}.dash-top{gap:12px}.dashboard{gap:16px}.card{padding:15px}.dash-top .card{min-height:185px}.collection-metric{font-size:10px}.summary-strip{flex-wrap:wrap;gap:12px}.pagination{gap:10px;flex-wrap:wrap}footer{padding:20px 14px;font-size:10px}.modal-foot{padding:14px}#modalBody{padding:18px}.sales-footer{gap:8px}.sales-footer strong{font-size:22px}.grade-card .grade-list{font-size:11px}}
.login-page{background:#edf1f4;min-height:100vh;display:grid;place-items:center}.login-wrap{width:350px;max-width:92vw}.login-brand{display:block;text-align:center;color:#454c54;font-size:27px;font-weight:300;margin-bottom:25px;white-space:nowrap}.login-card{padding:30px 26px 24px;background:#fff;border-radius:4px;box-shadow:0 2px 4px #30384b33;display:flex;flex-direction:column}.login-card p{text-align:center;font-size:13px;color:#6d747d;line-height:1.8;margin:3px 10px 22px}.login-card label{font-size:11px;color:#9ba3ad;margin:5px 0}.login-card input{border:1px solid #dce1e7;padding:10px 12px;border-radius:3px;width:100%;margin-bottom:9px}.login-card input:focus{outline:1px solid #727caf}.login-card .btn{align-self:flex-end;min-width:110px;margin-top:8px}.login-card small{font-size:10px;color:#a1a9b7;text-align:center;margin-top:24px}.login-error{color:#be7379;font-size:12px;min-height:18px;line-height:1.6}

[hidden]{display:none!important}
.form-grid.wide,.wide{grid-column:1/-1}.form-grid.wide{display:grid}.muted{color:#97a0af}.detail-subtitle{font-size:14px;font-weight:500;color:#69749a;margin:24px 0 14px}.attachment-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:20px}.attachment-item{border:1px solid #e6e9f1;border-radius:4px;overflow:hidden;display:flex;flex-direction:column;padding:8px;gap:7px;min-width:0}.attachment-item img{width:100%;height:115px;object-fit:contain;background:#f4f6fa}.attachment-item strong{font-size:12px;font-weight:500}.attachment-item small{font-size:10px;color:#929bab;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-file{display:grid;place-items:center;height:100px;background:#f0f2f8;color:#828bb2;font-size:25px}.upload-zone{border:1px dashed #cdd3e4;background:#fafbfe;border-radius:3px;padding:20px;display:flex!important;flex-direction:column;gap:9px;align-items:center;cursor:pointer;margin:0!important}.upload-zone span{border:1px solid #6b74b0;background:#6b74b0;color:white;padding:7px 12px;border-radius:2px;font-size:12px}.upload-zone small{font-size:11px;color:#a2abba}.upload-zone input{width:100%;border:0!important;padding:4px!important;font-size:11px}.upload-zone.dragover{border-color:#6f7bbb;background:#edf0fb}.upload-preview{font-size:11px;color:#8791a6;margin-top:8px;display:flex;align-items:center;gap:10px}.upload-preview img{max-height:70px;max-width:110px;object-fit:contain}.empty-files{font-size:12px;line-height:1.9;color:#9aa4b4;padding:16px;background:#f8f9fc;border-radius:3px}.offline-confirm{display:flex;align-items:center;gap:9px;line-height:1.8;font-size:12px;color:#788295}.offline-confirm input{accent-color:#737db0}.order-picker{max-height:175px;overflow:auto;border:1px solid #e2e6ef;border-radius:3px;padding:8px 12px}.order-picker label{display:flex;align-items:center;gap:9px;font-size:12px;color:#7a8599;padding:9px;border-bottom:1px solid #f1f3f8}.batch-schedule{max-height:330px;overflow:auto;margin-top:15px}.batch-schedule th{position:sticky;top:0;z-index:1}.batch-schedule input{border:1px solid #e1e5ef;border-radius:2px;font-size:12px;padding:7px;max-width:115px;color:#6c788b}.batch-schedule input[type=date]{max-width:145px}.batch-schedule td{padding:8px}.row-actions{gap:5px}.row-actions button{font-size:11px}.batch-notice{margin:0 0 15px;padding:12px 16px;background:#f9fbff;border:1px solid #e1e7f3;border-radius:3px;color:#8692a6;line-height:1.7;font-size:12px}@media(max-width:600px){.attachment-gallery{grid-template-columns:1fr 1fr}.attachment-item img{height:90px}.form-grid.wide{grid-template-columns:1fr}.row-actions{gap:7px}}

.closure-types{display:flex;gap:22px;flex-wrap:wrap;padding:8px 0}.closure-types label{display:flex;align-items:center;gap:7px;font-size:13px;color:#6d7789;margin:0}.closure-types input{width:auto;min-height:0;accent-color:#6974ad}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px;border:1px solid #e7ebf2;padding:12px;border-radius:3px;max-height:320px;overflow:auto}.choice-grid label{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.7;margin:0;padding:5px;color:#738097}.choice-grid input{width:auto;min-height:0;accent-color:#6873ad}@media(max-width:600px){.choice-grid{grid-template-columns:1fr}}
.contact-row,.address-row{display:grid;grid-template-columns:1.15fr 1fr 1fr 1.4fr .8fr auto;gap:7px;margin:8px 0}.contact-row input,.contact-row select,.address-row input,.address-row select{width:100%;min-width:0;padding:8px;border:1px solid #dce0e9;border-radius:4px}.contact-row button,.address-row button{border:0;background:#f5f5fa;color:#a44;border-radius:4px}.replica-tools{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.lookup-inline{display:flex;gap:8px}.lookup-inline input{flex:1}.catalog-thumb{width:60px;height:60px;object-fit:contain}.device-timeline article{border-left:3px solid #777caf;padding:4px 15px;margin:15px 0}.collection-history{max-height:240px;overflow:auto;margin-bottom:15px}.collection-history p{border-bottom:1px solid #eee;padding-bottom:10px}.payment-qr{width:240px;max-width:100%}.filters select[multiple]{min-height:62px}.statistics-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px}@media(max-width:700px){.contact-row,.address-row{grid-template-columns:1fr 1fr}}
.locale-select{max-width:160px;padding:6px;border:0;background:transparent;color:#60738c}.multi-select{position:relative;min-width:0}.multi-trigger{width:100%;height:34px;padding:6px 25px 6px 10px;border:1px solid #e1e5ed;border-radius:3px;text-align:left;background:#fff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#63758b;cursor:pointer}.multi-trigger:after{content:'⌄';position:absolute;right:10px}.multi-menu{position:absolute;left:0;right:0;top:36px;min-width:190px;background:#fff;border:1px solid #dfe5ee;box-shadow:0 6px 18px #24354b22;z-index:25;padding:6px}.multi-menu>input{width:100%;margin-bottom:5px}.multi-menu>[role=listbox]{max-height:210px;overflow:auto}.multi-menu label.multi-option{display:flex;align-items:center;gap:8px;padding:7px 6px;margin:0;cursor:pointer;font-weight:400}.multi-menu label[hidden]{display:none}.multi-menu input[type=checkbox]{width:15px;height:15px;margin:0}.filter-panel{overflow:visible}

/* Touch-friendly admin forms and navigation, including operator workflows. */
.form-field{min-width:0}.form-field small{display:block;line-height:1.6;margin-top:6px}.form-field input[type=search]+select{margin-top:8px}
@media(max-width:600px){
 #shell,main,.panel,.filter-panel{min-width:0;max-width:100%}
 header{height:auto;min-height:60px;padding:8px 12px;gap:8px}.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;min-width:0}
 .header-actions #changeOwnPassword{display:inline-flex;font-size:12px;min-height:44px;padding:8px}.header-actions #fullscreen,.header-actions .avatar{display:none}
 #collapse,.icon-btn{min-width:44px;min-height:44px}#sidebar{padding-bottom:env(safe-area-inset-bottom);z-index:20}
 #mobileMenuBackdrop{display:none;position:fixed;inset:0;background:#20264166;z-index:15}body.collapsed #mobileMenuBackdrop{display:block}
 .toolbar{flex-wrap:wrap;gap:8px}.toolbar .btn,.btn{min-height:44px}.toolbar .spacer{display:none}.toolbar input,.toolbar select{max-width:100%}
 .filter-field input,.filter-field select{min-width:0;min-height:44px;font-size:16px}.filter-actions{flex-wrap:wrap;gap:8px}
 .table-scroll{overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}.row-actions{flex-wrap:wrap}.row-actions button{min-height:40px;padding:8px}
 dialog{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
 #modalForm{display:flex;flex-direction:column;height:100%;min-height:0}.modal-head{flex-shrink:0;padding:12px 16px}.modal-head h2{font-size:17px}
 #modalBody{flex:1;min-height:0;max-height:none;padding:16px;overscroll-behavior:contain}.modal-foot{flex-shrink:0;flex-wrap:wrap;padding:12px 16px calc(12px + env(safe-area-inset-bottom));gap:10px}
 #formError:not(:empty){flex-basis:100%;max-width:100%}.modal-foot .btn{flex:1;min-height:46px}
 .form-grid{gap:18px;grid-template-columns:minmax(0,1fr)}.form-field label{font-size:14px}.form-field input,.form-field select,.form-field textarea,.contact-row input,.contact-row select,.address-row input,.address-row select{font-size:16px;min-height:46px}
 .form-section{font-weight:600;background:#f5f6fb;padding:12px;border-radius:6px}.form-hint{font-size:12px;color:#69758b}
 .contact-row,.address-row{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;background:#f7f8fc;border:1px solid #e7eaf2;border-radius:6px;gap:10px}
 .contact-row [data-contact=account],.address-row [data-address=address]{grid-column:1/-1}.contact-row button,.address-row button{min-height:44px}
 .lookup-inline{flex-wrap:wrap}.lookup-inline input{min-width:0;flex:1 1 160px}.lookup-inline button{min-height:44px}
 .detail-grid div{flex-wrap:wrap;overflow-wrap:anywhere}.attachment-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.upload-zone{padding:14px}
 footer{flex-wrap:wrap;gap:8px}.loading{padding:45px 16px}
}
body:has(dialog[open]){overflow:hidden}
@media(max-width:600px){#mobileMenuBackdrop{left:225px}.table-scroll::before{content:'左右滑动查看完整表格';display:block;position:sticky;left:0;padding:10px 12px;color:#738097;font-size:12px;background:#f8f9fc}}
