:root{
  --nav:#102748;--nav2:#17365f;--accent:#1f6feb;--accent2:#0f8a78;
  --bg:#f3f6fa;--card:#fff;--text:#172033;--muted:#6b778c;--line:#e2e8f0;
  --danger:#c23b3b;--warn:#a86600;--shadow:0 8px 24px rgba(20,40,70,.08)
}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--text);background:var(--bg)}
button,input,select,textarea{font:inherit}.hidden{display:none!important}
.login-shell{min-height:100%;display:grid;place-items:center;background:linear-gradient(135deg,#0d2342,#1b4e7c)}
.login-card{width:min(420px,calc(100% - 32px));background:#fff;border-radius:20px;padding:36px;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.brand-mark{width:58px;height:58px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#225ea9,#20a28f);color:#fff;font-weight:800;letter-spacing:.5px}
.brand-mark.small{width:38px;height:38px;border-radius:11px;font-size:13px}
.login-card h1{margin:20px 0 5px}.login-card p{margin:0 0 28px;color:var(--muted)}
label{display:block;font-size:13px;color:#4d5a70;margin:14px 0}label input{margin-top:7px}
input,select,textarea{width:100%;border:1px solid #cfd7e3;border-radius:9px;background:#fff;padding:10px 12px;outline:none;transition:.15s}
input:focus,select:focus,textarea:focus{border-color:#4d8ee8;box-shadow:0 0 0 3px rgba(31,111,235,.12)}
.btn{border:1px solid #cfd7e3;border-radius:9px;background:#fff;padding:9px 15px;cursor:pointer;color:#25334a}
.btn:hover{background:#f7f9fc}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{background:#fff1f1;border-color:#f1c4c4;color:var(--danger)}
.btn:disabled{opacity:.42;cursor:not-allowed}.btn.return-ready{background:#178f55;border-color:#178f55;color:#fff;box-shadow:0 5px 14px rgba(23,143,85,.2)}.btn.return-ready:hover{background:#117846}
.btn.wide{width:100%;padding:12px}.text-btn{border:0;background:none;color:#b8cae1;padding:0;cursor:pointer}.form-error{color:var(--danger);font-size:13px;margin-top:10px}
.app-shell{display:flex;min-height:100%}.sidebar{position:fixed;inset:0 auto 0 0;width:230px;background:var(--nav);color:#fff;padding:20px 14px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 22px}.brand strong{display:block}.brand small{display:block;color:#9fb4cd;margin-top:2px}
.sidebar nav{display:grid;gap:5px}.sidebar nav button{border:0;background:transparent;color:#cbd8e8;text-align:left;padding:11px 13px;border-radius:9px;cursor:pointer}
.sidebar nav button.active,.sidebar nav button:hover{background:var(--nav2);color:#fff}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:16px 10px 0}.sidebar-user small{color:#9fb4cd;display:block;margin:4px 0 11px}
.main{margin-left:230px;width:calc(100% - 230px);padding:0 28px 36px}.topbar{height:92px;display:flex;align-items:center;gap:24px}.topbar h2{margin:0;font-size:23px}.topbar p{margin:4px 0 0;color:var(--muted);font-size:13px}.top-search{margin-left:auto;display:flex;gap:8px;width:min(440px,45vw)}.page{display:none}.page.active{display:block}
.main.topology-active>.topbar .topbar-heading{display:none!important}
.metrics{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:14px;margin-bottom:18px}.metric{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:var(--shadow)}.metric small{color:var(--muted)}.metric b{display:block;font-size:28px;margin-top:7px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.panel-head h3{margin:0}.panel-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick{border:1px solid var(--line);background:#fbfcfe;border-radius:12px;padding:18px;text-align:left;cursor:pointer}.quick:hover{border-color:#8ab4ef;background:#f7fbff}.quick b{display:block;margin-bottom:7px}.quick span{font-size:12px;color:var(--muted);line-height:1.55}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.stat-list{display:grid;gap:8px}.stat-row{display:flex;justify-content:space-between;border-bottom:1px dashed var(--line);padding:8px 0}.stat-row:last-child{border:0}.muted{color:var(--muted);font-size:13px}
.inline-form{display:flex;gap:9px;align-items:center}.inline-form input{max-width:320px}.filter-grid{display:grid;grid-template-columns:2fr 1.2fr repeat(4,1fr);gap:9px}.toolbar{display:flex;align-items:center;gap:9px;margin:12px 0 16px}
.asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:13px}.asset-card{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden;cursor:pointer;transition:.15s}.asset-card:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(25,60,100,.1);border-color:#b8cbea}.asset-photo{height:220px;background:#f7f9fc;display:flex;align-items:center;justify-content:center;color:#9aa8ba;overflow:hidden;padding:10px;position:relative}
.asset-photo img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center center!important;cursor:zoom-in}.asset-info{padding:14px}.asset-info h4{margin:0 0 4px;font-size:16px}.asset-info .id{font-size:12px;color:var(--muted);margin-bottom:10px}.asset-meta{display:grid;grid-template-columns:auto 1fr;gap:5px 10px;font-size:13px}.asset-meta span:nth-child(odd){color:var(--muted)}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:12px;background:#edf4ff;color:#245c9e}.badge.green{background:#e8f7f2;color:#13735f}.badge.warn{background:#fff4da;color:#835600}
.asset-in-transit{margin-left:4px;color:#bd5f08;font-size:11px;font-style:normal;font-weight:850;white-space:nowrap}.asset-transit-note{margin:9px 0 0;color:#9a5b12;font-size:12px;line-height:1.5}.person-search-results{display:grid;gap:4px;margin-top:5px;max-height:180px;overflow:auto}.person-search-option{min-height:34px;padding:6px 9px;border:1px solid #d7e3ee;border-radius:7px;background:#fff;color:#244e77;text-align:left;font-size:13px;font-weight:750;cursor:pointer}.person-search-option:hover{border-color:#4b8bce;background:#eef6ff}.person-search-results small{padding:5px 1px;color:#76899b}
.notice{padding:11px 13px;border-radius:9px;background:#eff6ff;border:1px solid #cfe1fa;margin:13px 0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}th{color:#5a687e;font-weight:600}
.backdrop{position:fixed;inset:0;background:rgba(4,18,36,.38);z-index:90}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(560px,92vw);background:#fff;z-index:100;box-shadow:-10px 0 40px rgba(0,0,0,.18);overflow:auto}.drawer-head,.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}.drawer-head small{color:var(--muted)}.drawer-head h3,.modal-head h3{margin:3px 0 0}.icon-btn{border:0;background:transparent;font-size:23px;cursor:pointer}.detail{padding:20px}.detail-photo{height:250px;background:#edf1f6;border-radius:12px;overflow:hidden;display:grid;place-items:center;color:#9aa8ba}.detail-photo img{width:100%;height:100%;object-fit:contain}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.detail-item{background:#f7f9fc;border-radius:9px;padding:10px 12px}.detail-item small{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.timeline{border-left:2px solid #d8e1ed;margin:10px 0 0 8px;padding-left:17px}.timeline-item{position:relative;margin:0 0 16px}.timeline-item:before{content:"";position:absolute;left:-23px;top:5px;width:9px;height:9px;background:#5c8fd6;border-radius:50%}.timeline-item small{color:var(--muted)}
.modal{position:fixed;z-index:101;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 28px));max-height:90vh;overflow:auto;background:#fff;border-radius:15px;box-shadow:0 24px 80px rgba(0,0,0,.25)}.modal-body{padding:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.toast{position:fixed;right:24px;bottom:24px;z-index:130;background:#18304e;color:#fff;padding:12px 16px;border-radius:9px;box-shadow:var(--shadow);max-width:360px}.toast.error{background:#8f2e2e}.mobile-only{display:none}
@media(max-width:1100px){.metrics{grid-template-columns:repeat(3,1fr)}.filter-grid{grid-template-columns:repeat(3,1fr)}.quick-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){
 .sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main{margin-left:0;width:100%;padding:0 14px 28px}.topbar{height:auto;padding:16px 0;align-items:flex-start;flex-wrap:wrap}.top-search{order:3;width:100%;margin-left:0}.mobile-only{display:block}.metrics{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.filter-grid{grid-template-columns:1fr 1fr}.quick-grid{grid-template-columns:1fr 1fr}.detail-grid{grid-template-columns:1fr}.inline-form{flex-wrap:wrap}.inline-form input{max-width:none;flex:1 1 100%}
}

/* ===== 查询语义、完整导入复核、详情与盘点职责 ===== */
.room-scope-explain{flex:1 1 100%;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}.room-scope-explain span{padding:7px 9px;border-radius:8px;background:#fff;color:#60748d;font-size:11px}.room-scope-explain b{display:block;color:#274f7c;margin-bottom:2px}
.owner-asset-search-panel{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(260px,1fr) auto;gap:12px;align-items:end;margin-top:10px;padding:11px 12px;border:1px dashed #c8d7e9;border-radius:11px;background:#fafcff}.owner-asset-search-panel>div>b,.owner-asset-search-panel>div>span{display:block}.owner-asset-search-panel>div>span{margin-top:4px;color:#6d8097;font-size:12px;line-height:1.45}.owner-asset-search-panel.exclusive-active{border:2px solid #0b61d8;background:#edf5ff}.owner-asset-search-panel.exclusive-active>div>b{color:#0b57d0}.owner-room-filter{margin:0}
select:disabled,button:disabled{cursor:not-allowed}.asset-search-primary select:disabled{background:#eef1f5;color:#8a96a6;border-color:#d9e0e8}

.asset-detail-hero{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;align-items:center;margin-bottom:14px}.asset-photo-cover{position:relative;width:180px;height:150px;border:1px solid #d5e1ee;border-radius:14px;overflow:hidden;background:#f1f5f9;color:#7f8ea2;cursor:pointer;padding:0}.asset-photo-cover img{width:100%;height:100%;object-fit:cover}.photo-count-badge{position:absolute;right:7px;bottom:7px;padding:4px 8px;border-radius:999px;background:rgba(8,36,72,.82);color:#fff;font-size:11px;font-weight:750}.asset-hero-main h3{margin:10px 0 5px;font-size:23px;color:#102f58}.asset-hero-main p{margin:0;color:#647890}.asset-id-copy{display:inline-flex;margin-top:10px;padding:5px 9px;border-radius:7px;background:#eef3f9;color:#355576;font-family:monospace}.asset-hero-tags{display:flex;gap:6px;flex-wrap:wrap}.asset-alert{display:inline-flex;padding:5px 9px;border-radius:999px;background:#edf1f5;color:#526378;font-size:11px;font-weight:800}.asset-alert.ok{background:#e7f5eb;color:#26713c}.asset-alert.danger,.detail-item.danger{background:#fff0ed;color:#b0382c}.asset-alert.warn,.detail-item.warn{background:#fff5dc;color:#99600d}.asset-alert.info,.detail-item.info{background:#eaf3ff;color:#2260a5}.asset-alert.permission.限制{background:#fde8e8;color:#c32929}.asset-alert.permission.审批{background:#fff2c7;color:#986000}.asset-detail-section{margin-top:12px;padding:12px;border:1px solid #dce5f0;border-radius:12px;background:#fff}.asset-detail-section h4{margin:0 0 9px;color:#1b426e}.detail-grid.compact{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.detail-grid.compact .detail-item{padding:8px 9px;min-height:58px;border-radius:8px;background:#f7f9fc}.detail-grid.compact .detail-item.important{background:#edf5ff}.detail-grid.compact .detail-item b{font-size:13px;overflow-wrap:anywhere}.asset-detail-more{margin-top:12px;border:1px solid #dbe4ef;border-radius:10px;padding:10px}.asset-detail-more>summary,.barcode-block>summary{cursor:pointer;color:#315d8d;font-weight:750}.asset-detail-more .detail-grid{margin-top:9px}.barcode-block{margin-top:12px}.photo-gallery-main{height:min(62vh,620px);display:grid;place-items:center;border-radius:12px;background:#0d1725;overflow:hidden}.photo-gallery-main img{max-width:100%;max-height:100%;object-fit:contain}.photo-gallery-thumbs{display:flex;gap:7px;overflow-x:auto;margin-top:10px}.photo-gallery-thumbs button{border:1px solid #d2deeb;background:#fff;border-radius:8px;padding:7px 10px;white-space:nowrap;cursor:pointer}.photo-gallery-thumbs button.active{border-color:#0b61d8;background:#eaf3ff;color:#0b57d0}.modal.modal-photo-gallery{width:min(980px,calc(100vw - 24px))}

.batch-preview-wrap{max-height:none;overflow:visible}.batch-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}.batch-preview-head b,.batch-preview-head span{display:block}.batch-preview-head>div>span{margin-top:3px;color:#6b7f98;font-size:12px}.batch-preview-list{display:grid;gap:10px}.batch-preview-card{border:1px solid #dbe5f0;border-radius:11px;background:#fff;padding:11px}.batch-preview-card.batch-row-error{border-color:#eca79e;background:#fffafa}.batch-preview-card-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}.batch-preview-card-head span,.batch-preview-card-head b{display:block}.batch-preview-card-head>div>span{color:#71839a;font-size:11px}.batch-preview-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px;margin-top:9px}.batch-preview-fields>div{padding:7px 8px;border-radius:7px;background:#f6f8fb;min-width:0}.batch-preview-fields small,.batch-preview-fields b{display:block}.batch-preview-fields small{color:#7a899c;font-size:10px}.batch-preview-fields b{margin-top:2px;font-size:12px;overflow-wrap:anywhere}.batch-preview-errors{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.batch-preview-errors span{padding:4px 7px;border-radius:6px;background:#ffebe8;color:#a83a2e;font-size:11px}.batch-row-editor{max-height:62vh;overflow-y:auto;padding-right:4px}.modal.modal-import-review{width:min(880px,calc(100vw - 24px))}.batch-final-list{display:grid;gap:7px;max-height:55vh;overflow-y:auto;margin:10px 0}.batch-final-list>div{display:grid;grid-template-columns:75px minmax(160px,.8fr) minmax(220px,1.2fr) minmax(260px,1.3fr);gap:8px;align-items:center;padding:9px;border:1px solid #e0e7f0;border-radius:9px}.batch-final-list span,.batch-final-list small{color:#687b92;font-size:11px}.batch-final-list b{color:#173d6b}

.rr-bulk-tools{grid-template-columns:minmax(150px,.6fr) minmax(260px,1fr) auto!important;align-items:end}.rr-bulk-label b,.rr-bulk-label span{display:block}.rr-bulk-label span{margin-top:3px;color:#71839a;font-size:11px}.rr-bulk-tools>label{display:grid;gap:5px;color:#61758e;font-size:11px}.rr-bulk-actions{display:flex;gap:7px;align-items:stretch}.rr-bulk-actions .btn{min-height:42px}.rr-list-head{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(160px,.55fr) minmax(220px,.75fr);gap:9px;padding:7px 10px;color:#6c7f96;font-size:11px;font-weight:750;border-bottom:1px solid #dce5ef}.room-return-row.configure{grid-template-columns:24px minmax(0,1fr) minmax(160px,.55fr) minmax(220px,.75fr)!important;align-items:center!important}.room-return-row.configure .rr-asset-summary{min-width:0}.rr-asset-line{display:grid;grid-template-columns:46px minmax(120px,1fr) minmax(75px,.55fr) minmax(130px,1fr) minmax(110px,.8fr) minmax(85px,.6fr);gap:7px;align-items:center}.rr-asset-line .choice-thumb{width:46px!important;height:42px!important}.rr-asset-line>span{font-size:11px;color:#5e7188;overflow-wrap:anywhere}.rr-asset-line .rr-ownership{color:#6e4c20}.rr-action-field,.rr-target-wrap{display:grid;gap:5px;margin:0;color:#61758e;font-size:11px}.room-return-row.configure .rr-target-wrap.hidden{display:block!important;visibility:hidden}.room-return-row.configure select,.room-return-row.configure input{min-width:0}.ownership-risk{display:inline-flex;margin-top:5px}

.maintenance-history-filters{grid-template-columns:minmax(250px,1fr) 180px auto;align-items:end}.maintenance-history-summary{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.maintenance-history-summary span{padding:7px 10px;border:1px solid #d9e4f1;border-radius:8px;background:#f7faff;color:#62758d;font-size:12px}.maintenance-history-summary b{color:#194a81;font-size:15px}.maintenance-history-list{display:grid;gap:10px}.maintenance-asset-history{border:1px solid #d9e4f0;border-radius:11px;background:#fff;overflow:hidden}.maintenance-asset-history>summary{display:grid;grid-template-columns:58px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;background:#f5f9fe;cursor:pointer}.maintenance-asset-history>summary .maint-thumb{width:58px;height:48px}.maintenance-asset-history>summary b,.maintenance-asset-history>summary span{display:block}.maintenance-asset-history>summary span{color:#6d8097;font-size:11px}.maintenance-history-records{padding:0 12px}.maintenance-history-records article{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:11px 0;border-top:1px dashed #dce5ef}.maintenance-history-no{width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#1b5ca7;font-size:11px;font-weight:800}.maintenance-record-title{display:flex;gap:8px;align-items:center}.maintenance-history-records p{margin:5px 0;color:#263f5e}.maintenance-history-records small{display:block;margin-top:3px;color:#71839a}
.inventory-role-guide{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.inventory-role-guide>div{padding:11px;border:1px solid #d9e5f2;border-radius:10px;background:#f8fbff}.inventory-role-guide b,.inventory-role-guide span{display:block}.inventory-role-guide b{color:#194d86}.inventory-role-guide span{margin-top:4px;color:#687d95;font-size:12px;line-height:1.5}

.linen-kpi-draft{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:14px 0}.linen-kpi-draft>div{padding:12px;border:1px solid #d8e5ee;border-radius:11px;background:#fff}.linen-kpi-draft small,.linen-kpi-draft b,.linen-kpi-draft span{display:block}.linen-kpi-draft b{margin:5px 0;font-size:22px;color:#17548d}.linen-kpi-draft span{color:#74869a;font-size:11px}.linen-tabs{margin-bottom:12px}.linen-pane{padding:2px}.linen-process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.linen-process-grid article{position:relative;padding:15px;border:1px solid #d9e5ef;border-radius:12px;background:#fff}.linen-process-grid h4{margin:8px 0 5px;color:#173f6d}.linen-process-grid p{margin:0 0 9px;color:#667b92;line-height:1.55}.linen-process-grid article>b{font-size:12px;color:#2d6a5d}.linen-step{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e7f3ff;color:#155da9;font-size:11px;font-weight:800}.linen-ledger-example{display:flex;gap:12px;margin-top:11px;padding:11px;border-left:4px solid #39a17b;border-radius:8px;background:#effaf6;color:#496e65}.linen-ledger-example b{white-space:nowrap;color:#17664e}.linen-module-grid.compact{grid-template-columns:repeat(2,1fr)}.linen-module-grid.compact p{min-height:auto}.linen-catalog-fields{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.linen-catalog-fields>div{padding:13px;border:1px solid #dce6ef;border-radius:10px;background:#fff}.linen-catalog-fields b,.linen-catalog-fields span{display:block}.linen-catalog-fields span{margin-top:4px;color:#6a7f94;font-size:12px}

@media(max-width:1050px){.detail-grid.compact{grid-template-columns:repeat(2,1fr)}.rr-bulk-tools{grid-template-columns:1fr 1fr!important}.rr-bulk-actions{grid-column:1/-1}.rr-list-head{display:none}.room-return-row.configure{grid-template-columns:24px minmax(0,1fr)!important}.room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{grid-column:2}.rr-asset-line{grid-template-columns:46px minmax(120px,1fr) repeat(2,minmax(85px,.7fr))}.rr-asset-line>span:nth-of-type(3),.rr-asset-line>span:nth-of-type(4){grid-column:auto}.linen-kpi-draft{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.room-scope-explain,.owner-asset-search-panel,.asset-detail-hero,.linen-process-grid,.linen-catalog-fields,.linen-module-grid.compact,.inventory-role-guide{grid-template-columns:1fr}.asset-photo-cover{width:100%;height:200px}.detail-grid.compact{grid-template-columns:1fr 1fr}.batch-preview-card-head{grid-template-columns:1fr auto}.batch-preview-card-head .btn{grid-column:1/-1}.batch-final-list>div{grid-template-columns:1fr}.maintenance-history-filters{grid-template-columns:1fr}.maintenance-asset-history>summary{grid-template-columns:50px 1fr auto}.maintenance-asset-history>summary .btn{grid-column:2/-1}.linen-kpi-draft{grid-template-columns:1fr 1fr}.rr-bulk-tools{grid-template-columns:1fr!important}.rr-asset-line{grid-template-columns:42px 1fr}.rr-asset-line>span{grid-column:2}.room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{grid-column:1/-1}.room-return-row.configure .rr-target-wrap.hidden{display:none!important}.modal.modal-room-return{height:95vh}.room-return-confirm-check{font-size:12px}}

#maintenanceBody .btn,#usersBody .btn{padding:6px 9px;font-size:12px;margin-right:4px}

.login-logo{display:block;width:min(330px,100%);height:100px;object-fit:contain;object-position:left center;margin:0 0 14px}
.sidebar-logo{width:76px;height:40px;object-fit:contain;object-position:left center;filter:none}
.brand{gap:8px}
.image-backdrop{position:fixed;inset:0;background:rgba(3,10,20,.9);z-index:200;display:flex;align-items:center;justify-content:center;padding:30px}
.image-backdrop img{max-width:96vw;max-height:92vh;object-fit:contain;box-shadow:0 16px 70px rgba(0,0,0,.45)}
.image-close{position:fixed;right:24px;top:18px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:32px;line-height:42px;cursor:pointer;z-index:201}
.detail-photo{cursor:zoom-in;background:#fff}
.detail-photo img{object-fit:contain}
@media(max-width:760px){
  .login-logo{height:82px}
  .sidebar-logo{width:68px;height:36px}
}

.detail-photo img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center center!important}

.room-candidates-wrap{margin-top:14px}
.room-help{font-size:13px;color:var(--muted);margin-bottom:8px}
.room-candidates{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px}
.room-candidate{border:1px solid var(--line);background:#fff;border-radius:10px;padding:12px 13px;text-align:left;cursor:pointer}
.room-candidate:hover{border-color:#8ab4ef;background:#f7fbff}
.room-candidate.selected{border:2px solid var(--accent);background:#eef5ff}
.room-candidate strong{display:block;font-size:16px;margin-bottom:4px}
.room-candidate span{display:block;font-size:12px;color:var(--muted);line-height:1.5}
.selected-room{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid #bcd3f2;background:#f0f6ff;border-radius:10px}
.selected-room small{display:block;color:var(--muted);margin-bottom:3px}
.selected-room strong{font-size:16px}

.form-section-title{font-weight:700;margin:22px 0 10px;padding-top:5px;border-top:1px solid var(--line);color:#26364e}
.form-section-title:first-of-type{margin-top:0;border-top:0}
.form-section-title>span{display:inline-grid;place-items:center;width:24px;height:24px;margin-right:6px;border-radius:999px;background:#e8f1ff;color:#0b57d0;font-size:12px}.form-details{margin:18px 0;border:1px solid #dbe5f0;border-radius:12px;background:#fbfdff;overflow:visible}.form-details>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;color:#26364e;list-style:none}.form-details>summary::-webkit-details-marker{display:none}.form-details>summary span{font-size:12px;color:var(--muted);font-weight:400}.form-details[open]>summary{border-bottom:1px solid #e2eaf3;background:#f3f7fc;border-radius:12px 12px 0 0}.form-details>.form-grid{padding:15px}.procurement-core-grid{padding-bottom:6px}
.form-grid-3{grid-template-columns:repeat(3,1fr)}
.input-action{display:flex;gap:7px;margin-top:7px}
.input-action input{margin-top:0}
.input-action .btn{white-space:nowrap}
.upload-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}
.upload-box{margin:0;border:1px dashed #aebbcf;border-radius:11px;background:#fafcff;padding:16px;cursor:pointer;text-align:center}
.upload-box input{display:none}
.upload-box span{display:block;font-weight:600;color:#2d5f9f;margin-bottom:5px}
.upload-box small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){.form-grid-3{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:1fr}}
@media(max-width:600px){.form-grid-3{grid-template-columns:1fr}}


/* Web V0.4 - Mobile / PWA */
.remember-row{display:flex;align-items:center;gap:8px;margin:4px 0 14px;cursor:pointer}
.remember-row input{width:auto;margin:0}
.remember-row span{font-size:12px;color:var(--muted)}

.sidebar-install{width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.06);color:#d9e7f7;border-radius:8px;padding:9px 10px;margin:0 0 12px;cursor:pointer}
.sidebar-install:hover{background:rgba(255,255,255,.1)}
.sidebar-scrim{display:none}

.online-pill{margin-left:auto;white-space:nowrap;padding:4px 9px;border-radius:999px;background:#e8f7f2;color:#13735f;font-size:12px}
.online-pill.offline{background:#fff1f1;color:#a12f2f}
.top-search{margin-left:0}

.step-title{display:flex;align-items:center;gap:9px;margin:18px 0 10px;color:#33445c}
.step-title b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#eaf2ff;color:#1f6feb;font-size:13px}
.transfer-results{display:grid;gap:8px;margin-top:12px}
.transfer-choice{width:100%;display:flex;align-items:center;gap:12px;text-align:left;border:1px solid var(--line);background:#fff;padding:12px;border-radius:10px;cursor:pointer}
.transfer-choice:hover{border-color:#8ab4ef;background:#f8fbff}
.transfer-choice .tc-main{flex:1;min-width:0}
.transfer-choice strong{display:block;margin-bottom:4px}
.transfer-choice small{display:block;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.transfer-choice .tc-loc{font-size:12px;color:#395a7f;background:#edf4ff;border-radius:999px;padding:4px 8px;white-space:nowrap}
.transfer-selected{margin-top:14px;border-top:1px solid var(--line);padding-top:2px}
.transfer-summary{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #cfe1fa;background:#f5f9ff;border-radius:10px;margin-bottom:12px}
.transfer-summary .ts-body{flex:1}
.transfer-summary strong{display:block}
.transfer-summary small{display:block;color:var(--muted);margin-top:3px}

.mobile-nav{display:none}
.network-banner{position:fixed;z-index:300;left:50%;transform:translateX(-50%);top:12px;background:#8f2e2e;color:white;border-radius:999px;padding:9px 15px;font-size:13px;box-shadow:0 5px 20px rgba(0,0,0,.18)}

@media(max-width:760px){
  body{padding-bottom:74px}
  .app-shell{min-height:calc(100vh - 72px)}
  .sidebar{width:min(82vw,300px);z-index:220;padding-bottom:max(18px,env(safe-area-inset-bottom))}
  .sidebar.open + *{}
  .sidebar-scrim{display:block;position:fixed;inset:0;background:rgba(4,18,36,.42);z-index:210}
  .main{padding:0 12px 28px}
  .topbar{padding:12px 0 10px;gap:10px;position:sticky;top:0;z-index:15;background:rgba(243,246,250,.95);backdrop-filter:blur(8px)}
  .topbar h2{font-size:20px}
  .topbar p{display:none}
  .top-search{order:3;width:100%;gap:6px}
  .top-search input{height:44px}
  .online-pill{margin-left:auto}
  .panel{padding:14px;border-radius:12px;margin-bottom:12px}
  .panel-head{margin-bottom:12px;align-items:flex-start}
  .panel-head h3{font-size:17px}
  .metrics{grid-template-columns:repeat(2,1fr);gap:9px}
  .metric{padding:13px;border-radius:11px}
  .metric b{font-size:24px}
  .quick-grid{grid-template-columns:1fr 1fr;gap:8px}
  .quick{padding:14px 12px}
  .filter-grid{grid-template-columns:1fr}
  .filter-grid input{height:46px}
  .asset-grid{grid-template-columns:1fr;gap:10px}
  .asset-card{display:grid;grid-template-columns:128px 1fr;min-height:132px}
  .asset-photo{height:132px;padding:6px;border-radius:0}
  .asset-info{padding:11px}
  .asset-meta{font-size:12px;gap:4px 8px}
  .asset-info h4{font-size:15px}
  .room-candidates{grid-template-columns:1fr}
  .room-candidate{min-height:72px}
  .selected-room{align-items:flex-start;flex-direction:column}
  .selected-room .btn{width:100%}
  .toolbar{flex-wrap:wrap}
  .btn{min-height:42px}
  .mobile-primary{margin-top:12px;min-height:48px}
  input,select,textarea{font-size:16px;min-height:44px} /* 避免iPhone聚焦时自动放大 */
  .drawer{width:100vw}
  .detail{padding:14px}
  .detail-photo{height:230px}
  .modal{width:calc(100% - 16px);max-height:92vh}
  .modal-body{padding:14px}
  .form-grid{grid-template-columns:1fr}
  .form-grid .full{grid-column:auto}
  .upload-grid{grid-template-columns:1fr}
  .table-wrap{-webkit-overflow-scrolling:touch}
  table{min-width:760px}
  .toast{right:12px;left:12px;bottom:86px;max-width:none;text-align:center}
  .image-backdrop{padding:12px}
  .image-close{right:12px;top:12px}
  .transfer-choice{min-height:70px}
  .transfer-choice .tc-loc{max-width:110px;overflow:hidden;text-overflow:ellipsis}
  .mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:180;background:rgba(255,255,255,.98);border-top:1px solid #dbe3ed;padding:5px 5px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px rgba(20,40,70,.07)}
  .mobile-nav button{border:0;background:transparent;color:#64748b;padding:9px 2px 7px;border-radius:9px;font-size:12px;cursor:pointer}
  .mobile-nav button.active{color:#1f6feb;background:#eef5ff;font-weight:700}
  .login-shell{min-height:100dvh;padding:18px 0}
  .login-card{padding:24px 22px;border-radius:18px}
  .login-logo{height:68px;margin-bottom:4px}
  .login-card h1{font-size:26px;margin-top:12px}
  .login-card p{margin-bottom:20px}
}

@media(max-width:390px){
  .quick-grid{grid-template-columns:1fr}
  .asset-card{grid-template-columns:112px 1fr}
  .asset-photo{height:124px}
}

/* V0.5 */
.room-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.asset-filter-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}
.date-filter{font-size:12px;color:var(--muted)}.date-filter input{margin-top:5px}
.barcode-block{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:center}
.barcode-block small{display:block;text-align:left;color:var(--muted);margin-bottom:8px}
.barcode-block svg{width:100%;max-width:430px;height:76px;background:#fff}.barcode-caption{font-family:monospace;letter-spacing:1px;font-size:13px}
.inventory-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:12px 0}
.inventory-head h4{margin:4px 0;font-size:19px}.inventory-metrics{display:grid;grid-template-columns:repeat(4,78px);gap:8px}
.inventory-metrics>div{background:#f5f8fc;border:1px solid var(--line);border-radius:10px;padding:9px;text-align:center}
.inventory-metrics small{display:block;color:var(--muted)}.inventory-metrics b{display:block;font-size:22px;margin-top:3px}
.inventory-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.inventory-list{display:grid;gap:7px}
.inv-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.inv-item.checked{border-color:#b8dfd1;background:#f4fcf8}.inv-item.missing{border-color:#f0c3c3;background:#fff7f7}.inv-item.unexpected{border-color:#efcf9b;background:#fffaf0}
.inv-item strong,.inv-item small{display:block}.inv-item small{color:var(--muted);margin-top:2px}.inv-state{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px}
.checked .inv-state{background:#dff5eb;color:#167058}.missing .inv-state{background:#fde8e8;color:#a13636}.unexpected .inv-state{background:#fff0d2;color:#8a5b05}
.danger-outline{border-color:#d88;color:#9c3030;background:#fff}
.schema-auth{padding:13px;border:1px solid #dce6f2;background:#f7faff;border-radius:10px;margin-bottom:14px}
.schema-auth p{font-size:12px;color:var(--muted);margin:4px 0 10px}.parameter-groups{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:12px}
.parameter-card{border:1px solid var(--line);border-radius:11px;padding:13px;background:#fff}.parameter-card h4{margin:0 0 3px}.parameter-card p{margin:0 0 9px;font-size:12px;color:var(--muted)}
.parameter-options{display:flex;gap:6px;flex-wrap:wrap;min-height:30px;margin-bottom:10px}.parameter-option{border-radius:999px;background:#eef3f8;padding:4px 8px;font-size:12px}
.parameter-add{display:flex;gap:7px}.parameter-add input{margin:0;min-width:0}.parameter-location-list{margin-top:16px;display:grid;gap:7px}
.parameter-location{display:grid;grid-template-columns:130px 1fr 90px 130px 80px;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}
.parameter-location small{display:block;color:var(--muted)}.parameter-location.disabled{opacity:.55}
@media(max-width:900px){.asset-filter-grid{grid-template-columns:repeat(2,1fr)}.inventory-columns{grid-template-columns:1fr}.parameter-groups{grid-template-columns:1fr}.parameter-location{grid-template-columns:110px 1fr 80px}.parameter-location .pm-area{display:none}}
@media(max-width:760px){.room-actions{width:100%;justify-content:stretch}.room-actions .btn{flex:1 1 140px}.asset-filter-grid{grid-template-columns:1fr}.inventory-head{flex-direction:column}.inventory-metrics{width:100%;grid-template-columns:repeat(4,1fr)}.inventory-metrics>div{padding:8px 4px}.inventory-metrics b{font-size:19px}.parameter-add{flex-direction:column}.parameter-location{grid-template-columns:90px 1fr 72px;gap:7px}}

/* V0.5.2 */
.login-version{display:inline-flex;align-items:center;padding:4px 9px;margin:-10px 0 18px;border-radius:999px;background:#eef4fb;color:#60728c;font-size:11px;line-height:1;border:1px solid #dde8f4}
.login-version.version-warning{background:#fff1e8;color:#9a571d;border-color:#f2cfad}

/* V0.5.3 */
.snapshot-history-box{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.snapshot-history-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:10px;
}
.snapshot-history-head h4{margin:0 0 3px;font-size:17px}
.snapshot-history-head p{margin:0;color:var(--muted);font-size:12px}
.snapshot-batches{display:grid;gap:10px}
.snapshot-batch{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:12px;
}
.snapshot-batch-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
}
.snapshot-batch-top strong{display:block}
.snapshot-batch-top small{display:block;color:var(--muted);margin-top:3px}
.snapshot-assets{
  margin-top:9px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.snapshot-asset-chip{
  padding:5px 8px;
  border-radius:8px;
  background:#f2f6fa;
  font-size:12px;
  color:#42536b;
}
@media(max-width:760px){
  .snapshot-history-head,.snapshot-batch-top{flex-direction:column}
  .snapshot-batch-top .btn{width:100%}
}

/* V0.5.4 */
.location-picker{position:relative}
.location-suggestions{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:150;
  max-height:280px;overflow:auto;background:#fff;border:1px solid #cfdbea;
  border-radius:10px;box-shadow:0 12px 28px rgba(24,45,78,.16);padding:5px
}
.location-suggestion{
  width:100%;display:flex;justify-content:space-between;align-items:center;gap:8px;
  border:0;background:#fff;border-radius:7px;padding:9px 10px;text-align:left;cursor:pointer
}
.location-suggestion:hover{background:#edf5ff}
.location-suggestion strong{display:block;color:#17263c}
.location-suggestion small{display:block;color:var(--muted);margin-top:2px}
.location-suggestion .loc-type{font-size:11px;color:#54708f;white-space:nowrap}
.metric.metric-link{
  border:1px solid var(--line);font:inherit;text-align:left;cursor:pointer;
  transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease
}
.metric.metric-link:hover{transform:translateY(-1px);border-color:#a9c8ef;box-shadow:0 5px 15px rgba(31,111,235,.08)}
.metric.metric-link:focus-visible{outline:2px solid #2a73df;outline-offset:2px}
.metric .metric-go{font-size:11px;color:#6a7e98;margin-top:5px}
.asset-edit-note{
  padding:9px 11px;border-radius:9px;background:#fff8e8;color:#76591d;
  font-size:12px;margin-bottom:12px;border:1px solid #f1ddb0
}
.asset-source-readonly{
  display:grid;align-content:center;gap:4px;min-height:66px;padding:10px 12px;
  border:1px solid #c9dce9;border-radius:9px;background:#f0f7fb;color:#173b5b
}
.asset-source-readonly small{color:#617d92;font-size:12px}
.asset-source-readonly b{font-size:15px}
@media(max-width:760px){.location-suggestions{max-height:220px}}

/* V0.5.5 */
.detail-photo{
  height:auto!important;
  min-height:220px;
  max-height:380px;
  padding:10px;
  display:flex!important;
  align-items:center;
  justify-content:center;
  background:#f4f7fb;
}
.detail-photo img{
  width:auto!important;
  height:auto!important;
  max-width:100%!important;
  max-height:350px!important;
  object-fit:contain!important;
  object-position:center!important;
  cursor:zoom-in;
}
.asset-photo img{
  object-fit:contain!important;
  object-position:center!important;
}
.log-filter-grid{grid-template-columns:2fr 1fr 1fr 1fr 1fr}
.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:14px}
.required-label::after{content:" *";color:#d93025;font-weight:700}
.required-field:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.required-label>input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.required-label>select,.required-label>textarea,
.required-label>.location-picker>input:not([type="hidden"]){border-color:#dc4c4c!important;box-shadow:0 0 0 1px rgba(220,76,76,.12);background-color:#fffafa}
.required-field:not([type="checkbox"]):not([type="radio"]):focus,
.required-label>input:not([type="checkbox"]):not([type="radio"]):focus,
.required-label>select:focus,.required-label>textarea:focus,
.required-label>.location-picker>input:not([type="hidden"]):focus{border-color:#c93030!important;box-shadow:0 0 0 3px rgba(210,55,55,.14)!important;background:#fff}
.required-field.invalid,.required-field:invalid{border-color:#d93025!important;box-shadow:0 0 0 2px rgba(217,48,37,.08)}
.permission-summary{display:grid;gap:10px;margin-top:12px}
.permission-role-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:#fff}
.permission-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}
.permission-tag{padding:4px 8px;border-radius:999px;background:#eef4fb;color:#3e5774;font-size:12px}
.scan-frame{position:relative;background:#111;border-radius:10px;overflow:hidden}
.scan-frame video{display:block;width:100%;max-height:55vh;object-fit:cover}
.scan-line{position:absolute;left:10%;right:10%;top:50%;height:2px;background:#2a73df;box-shadow:0 0 12px #2a73df}
.scan-status{font-size:12px;color:var(--muted);margin-top:8px}
.asset-scan-modal .scan-guide{margin:0 0 8px;color:#45627e;line-height:1.5}.asset-scan-modal .scan-frame{margin-top:8px}.asset-scan-modal #scanStart{margin-top:9px}.scan-manual-fallback{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:12px;padding-top:11px;border-top:1px solid #e1e8f0}.scan-manual-fallback label{display:grid;gap:5px;color:#60758a;font-size:12px}.scan-manual-fallback input{width:100%;min-height:42px}.scan-result{margin-top:12px;padding:11px 12px;border:1px solid #a9c9e8;border-radius:10px;background:#f4f9ff}.scan-result-head{display:flex;align-items:center;justify-content:space-between;color:#195c91;font-weight:800}.scan-result-head b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#2d9a62;color:#fff}.scan-result dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:9px 0}.scan-result dl>div{min-width:0;padding:7px 8px;border-radius:7px;background:#fff}.scan-result dt{color:#72869a;font-size:11px}.scan-result dd{margin:3px 0 0;overflow:hidden;color:#193f63;font-size:14px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.scan-result .wide{width:100%;min-height:42px}
.linen-entry-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0;padding:11px 13px;border:1px solid #cbddec;border-radius:10px;background:#f4f9ff}.linen-entry-guide>div{display:grid;gap:3px;min-width:0}.linen-entry-guide b{color:#174f7e}.linen-entry-guide span{color:#5b748b;font-size:13px;line-height:1.45}.linen-entry-guide .btn{flex:0 0 auto}.linen-catalog-thumb{display:inline-grid;place-items:center;width:46px;height:42px;overflow:hidden;padding:0;border:1px solid #c8d9e8;border-radius:7px;background:#f6f9fc;cursor:pointer}.linen-catalog-thumb img{width:100%;height:100%;object-fit:cover}.linen-current-image{display:flex;align-items:center;gap:10px;margin:7px 0;color:#627b91;font-size:12px}.linen-current-image .linen-catalog-thumb{width:80px;height:65px}
.overview-data-note{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;margin:10px 0 0;padding:9px 11px;border:1px solid #d6e4f0;border-radius:9px;background:#f7fbff;color:#60758a;font-size:12px}.overview-data-note b{color:#235b88;font-weight:750}.overview-data-note small{grid-column:1/-1;color:#71869a}
.asset-scan-header-group{align-items:center}.asset-header-scan{display:none;border-color:#c83a39!important;background:#d94340!important;color:#fff!important;box-shadow:0 4px 12px #c83a3940}.asset-header-scan:hover{background:#b93230!important}.asset-header-scan span{font-size:18px;line-height:1}
@media(max-width:900px){.log-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.log-filter-grid{grid-template-columns:1fr}.detail-photo{min-height:180px}}


/* =========================
   Web V0.6.0 管理后台
   ========================= */
:root{
  --nav:#06245d;
  --nav2:#0a3177;
  --accent:#0b57d0;
  --accent-soft:#edf4ff;
  --bg:#f3f6fb;
  --card:#fff;
  --text:#172033;
  --muted:#6b778c;
  --line:#dfe7f1;
  --danger:#bd2f38;
  --warn:#986100;
  --shadow:0 6px 20px rgba(24,47,82,.07);
}
.sidebar{background:linear-gradient(180deg,#05235a 0%,#082e70 100%)}
.brand{border-bottom:1px solid rgba(255,255,255,.12)}
#nav{padding-top:8px}
.nav-group-label{
  padding:14px 16px 6px;color:rgba(255,255,255,.48);font-size:10px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase
}
#nav button{display:flex;align-items:center;gap:10px}
#nav .nav-icon{display:grid;place-items:center;width:22px;height:22px;font-size:14px;color:#cfe0ff}
#nav button.active .nav-icon{color:#fff}
.topbar{background:rgba(255,255,255,.95);backdrop-filter:blur(10px)}
.dashboard-metrics{grid-template-columns:repeat(4,minmax(150px,1fr))}
.dashboard-metric{min-height:118px;padding:18px}
.dashboard-metric small{font-size:13px}
.dashboard-metric b{font-size:32px;line-height:1;margin:11px 0 8px;display:block}
.dashboard-metric span{font-size:11px;color:var(--muted)}
.dashboard-grid{display:grid;gap:14px;margin-top:14px}
.dashboard-priority-grid{grid-template-columns:minmax(0,1.4fr) minmax(300px,.8fr)}
.dashboard-main-grid{grid-template-columns:1fr 1fr}
.todo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.todo-card{
  position:relative;border:1px solid var(--line);background:#fff;border-radius:12px;padding:14px;text-align:left;cursor:pointer;
  min-height:112px;transition:transform .12s ease,border-color .12s ease
}
.todo-card:hover{transform:translateY(-1px);border-color:#afc9ee}
.todo-card span{display:block;font-size:12px;color:#4d5e76}
.todo-card b{display:block;font-size:28px;margin:7px 0 5px}
.todo-card small{color:var(--muted);line-height:1.35}
.todo-card.danger b{color:#b8323c}.todo-card.warn b{color:#966300}.todo-card.info b{color:#0b57d0}
.age-bars{display:grid;gap:10px}
.age-row{border:0;background:transparent;padding:0;cursor:pointer;text-align:left}
.age-row-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;font-size:12px}
.age-row-label b{font-size:13px}.age-track{height:9px;border-radius:999px;background:#edf1f6;overflow:hidden}
.age-track i{display:block;height:100%;border-radius:999px;background:#7fa9e6;min-width:0}
.age-row.warn .age-track i{background:#d7ad56}.age-row.danger .age-track i{background:#d7797f}
.overdue-list,.activity-list{display:grid;gap:0;max-height:430px;overflow:auto}
.overdue-item{
  display:grid;grid-template-columns:minmax(170px,1fr) minmax(160px,1fr) auto;gap:12px;align-items:center;
  width:100%;border:0;border-bottom:1px solid #edf1f5;background:#fff;padding:12px 4px;text-align:left;cursor:pointer
}
.overdue-item:last-child{border-bottom:0}.overdue-item:hover{background:#f8fbff}
.overdue-item strong,.overdue-item small{display:block}.overdue-item small{color:var(--muted);margin-top:3px}
.overdue-fault{font-size:12px;color:#4f6076;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.days-badge{padding:5px 8px;background:#fff0f0;color:#a82d35;border-radius:999px;font-size:12px;font-weight:700}
.activity-item{display:grid;grid-template-columns:12px 1fr;gap:10px;padding:10px 0;border-bottom:1px solid #edf1f5}
.activity-dot{width:8px;height:8px;border-radius:50%;background:#77a3e2;margin-top:6px}
.activity-body>div{display:flex;gap:8px;align-items:center}.activity-body b{font-size:13px}.activity-body span{font-size:12px;color:#375d92}
.activity-body p{margin:3px 0;font-size:12px;color:#53647a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.activity-body small{color:var(--muted);font-size:11px}
.empty-state{padding:22px;text-align:center;color:var(--muted);font-size:13px}
.schema-notice{
  display:flex;align-items:center;gap:10px;padding:11px 14px;margin-bottom:14px;border:1px solid #edc778;border-radius:10px;
  background:#fff9e9;color:#72520c;font-size:12px
}
.schema-notice strong{white-space:nowrap}.schema-notice span{overflow:hidden;text-overflow:ellipsis}
.dashboard-quick-grid{grid-template-columns:repeat(6,1fr)}
.field-help{display:block;font-size:11px;color:var(--muted);margin-top:4px;font-weight:400}
.photo-manage-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 16px}
.photo-manage-summary>div{padding:11px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}
.photo-manage-summary small,.photo-manage-summary b{display:block}.photo-manage-summary b{margin-top:4px}
.custody-flow-note{padding:12px 14px;border:1px solid #cfddf2;background:#f6f9fe;border-radius:10px;color:#46617f;font-size:12px;line-height:1.5;margin-bottom:14px}
.custody-actions,.custody-tab-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.custody-selected-card{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:10px;border:1px solid var(--line);border-radius:10px;padding:13px;background:#fff}
.custody-selected-card strong,.custody-selected-card small,.custody-selected-card b{display:block}
.custody-selected-card small{color:var(--muted);margin-top:3px}
.custody-asset-summary{padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
.custody-asset-summary strong,.custody-asset-summary span{display:block}.custody-asset-summary span{font-size:12px;color:var(--muted);margin-top:4px}
.people-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:9px;margin-top:14px}
.person-card{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff}
.person-avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#edf4ff;color:#0b57d0;font-weight:800}
.person-card strong,.person-card small{display:block}.person-card small{color:var(--muted);margin-top:3px;font-size:11px}
.person-status{font-size:11px;padding:4px 7px;border-radius:999px;background:#f0f2f5;color:#657284}.person-status.active{background:#e8f6ef;color:#177153}
.error-text{color:#a52d34}
@media(max-width:1180px){
  .todo-grid{grid-template-columns:repeat(2,1fr)}
  .dashboard-quick-grid{grid-template-columns:repeat(3,1fr)}
  .people-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .dashboard-priority-grid,.dashboard-main-grid{grid-template-columns:1fr}
  .dashboard-metrics{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:760px){
  .dashboard-metrics{grid-template-columns:repeat(2,1fr)}
  .dashboard-metric{min-height:100px;padding:14px}
  .dashboard-metric b{font-size:27px}
  .todo-grid{grid-template-columns:1fr 1fr}
  .dashboard-quick-grid{grid-template-columns:1fr 1fr}
  .overdue-item{grid-template-columns:1fr auto}.overdue-fault{grid-column:1/-1}
  .people-grid{grid-template-columns:1fr}
  .custody-selected-card{grid-template-columns:1fr}
  .nav-group-label{padding-left:18px}
}

/* V0.6.0 报废管理 */
.panel-head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.disposal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.disposal-summary-card{
  border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;text-align:left;cursor:pointer
}
.disposal-summary-card:hover{border-color:#afc9ee;background:#fbfdff}
.disposal-summary-card small,.disposal-summary-card b,.disposal-summary-card span{display:block}
.disposal-summary-card small{color:var(--muted)}
.disposal-summary-card b{font-size:28px;margin:6px 0;color:#163b73}
.disposal-summary-card span{font-size:11px;color:var(--muted)}
.disposal-list{display:grid;gap:9px}
.disposal-item{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;
  border:1px solid var(--line);border-radius:10px;background:#fff;padding:13px
}
.disposal-item-main strong,.disposal-item-main small{display:block}
.disposal-item-main small{color:var(--muted);margin-top:3px}
.disposal-item-main p{margin:7px 0 5px;font-size:12px;color:#4f6076}
.disposal-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:#718096}
.disposal-item-actions{display:flex;align-items:center;justify-content:flex-end}
.checkbox-label{display:flex!important;align-items:center;gap:8px;min-height:44px}
.checkbox-label input{width:auto;min-height:auto;margin:0}
@media(max-width:760px){
  .disposal-summary{grid-template-columns:1fr}
  .disposal-item{grid-template-columns:1fr}
  .disposal-item-actions{justify-content:flex-start}
}


/* V0.6.1 左侧导航滚动与单行对齐 */
@media(min-width:761px){
  .sidebar{
    height:100vh;
    min-height:0;
    overflow:hidden;
    padding:16px 12px 14px;
  }
  .sidebar .brand{
    flex:0 0 auto;
    padding:4px 8px 15px;
    margin-bottom:2px;
  }
  .sidebar nav{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    gap:2px;
    padding:5px 4px 10px 0;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.24) transparent;
  }
  .sidebar nav::-webkit-scrollbar{width:5px}
  .sidebar nav::-webkit-scrollbar-track{background:transparent}
  .sidebar nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:99px}
  .sidebar nav button,
  #nav button{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex:0 0 auto;
    width:100%;
    min-width:0;
    min-height:40px;
    gap:10px;
    padding:9px 11px;
    line-height:1.2;
    font-size:14px;
    white-space:nowrap;
    overflow:hidden;
  }
  #nav button>span:not(.nav-icon){
    display:block;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #nav .nav-icon{
    display:flex!important;
    align-items:center;
    justify-content:center;
    flex:0 0 20px;
    width:20px;
    height:20px;
    line-height:1;
  }
  #nav .nav-icon svg{
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  .nav-group-label{
    flex:0 0 auto;
    padding:12px 12px 5px;
    font-size:10px;
  }
  .sidebar-user{
    flex:0 0 auto;
    margin-top:0;
    padding:12px 9px 0;
    background:linear-gradient(180deg,rgba(8,46,112,0),#082e70 14%);
  }
}

/* V0.6.1 资产筛选：保管人 */
#fCustodian{min-width:0}

/* V0.6.2 Dashboard、分页、人员/保管人参数优化 */
.dashboard-main-grid{
  grid-template-columns:minmax(420px,.95fr) minmax(0,1.45fr);
  align-items:stretch;
}
.dashboard-main-grid>.panel{min-width:0}
.dashboard-overdue-panel{min-width:420px}
.dashboard-overdue-panel .overdue-list{min-width:0}
.dashboard-overdue-panel .overdue-item{
  grid-template-columns:minmax(190px,1.15fr) minmax(130px,.85fr) auto;
  min-width:0;
}
.dashboard-overdue-panel .overdue-item>div{min-width:0}
.dashboard-overdue-panel .panel-head>div{min-width:0}

/* 最近动态：缩略图 + 单行管理视图 */
.dashboard-activity-panel{min-width:0}
.activity-list{overflow-x:hidden}
.activity-line{
  display:flex;
  width:100%;
  align-items:center;
  gap:11px;
  border:0;
  border-bottom:1px solid #edf1f5;
  background:#fff;
  padding:9px 0;
  text-align:left;
  cursor:pointer;
  min-width:0;
}
.activity-line:hover{background:#f8fbff}
.activity-thumb{
  flex:0 0 46px;
  width:46px;
  height:46px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#f5f7fa;
  display:grid;
  place-items:center;
  overflow:hidden;
  color:#9aa8ba;
  font-size:10px;
}
.activity-thumb img{width:100%!important;height:100%!important;object-fit:contain!important;background:#fff}
.activity-one-line{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex:1 1 auto;
  white-space:nowrap;
}
.activity-one-line>*{min-width:0}
.activity-type{
  flex:0 0 auto;
  font-size:12px;
  padding:4px 7px;
  border-radius:999px;
  background:#edf4ff;
  color:#245c9e;
}
.activity-one-line strong{flex:0 1 auto;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.activity-id{flex:0 1 auto;max-width:145px;color:#375d92;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.activity-summary{flex:1 1 180px;color:#53647a;font-size:12px;overflow:hidden;text-overflow:ellipsis}
.activity-one-line small{flex:0 0 auto;color:var(--muted);font-size:11px}

/* 资产中心分页 */
.asset-pager{padding:6px 0 2px}
.asset-pager .btn:disabled{opacity:.42;cursor:not-allowed}

/* 基础参数：人员 / 保管人 */
.parameter-person-toolbar{margin-bottom:10px}
.parameter-help{
  padding:9px 12px;
  border-radius:9px;
  border:1px solid #d9e5f5;
  background:#f7faff;
  color:#52677f;
  font-size:12px;
  margin-bottom:12px;
}
.parameter-people-list{display:grid;gap:7px}
.parameter-person-row{
  display:grid;
  grid-template-columns:42px minmax(190px,1fr) auto 82px auto;
  gap:11px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:10px 12px;
}
.parameter-person-row[data-person-row]{cursor:pointer}
.parameter-person-row[data-person-row]:hover{border-color:#8fb3df;background:#f8fbff}
.parameter-person-row.inactive{background:#fafbfc;opacity:.78}
.parameter-person-avatar{
  width:42px;height:42px;border-radius:10px;background:#edf4ff;color:#0b57d0;
  display:grid;place-items:center;font-weight:800
}
.parameter-person-main{min-width:0}
.parameter-person-main strong,.parameter-person-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.parameter-person-main small{color:var(--muted);font-size:11px;margin-top:3px}
.person-asset-count{text-align:center;min-width:66px;border:1px solid #d7e2ef;border-radius:9px;background:#f7faff;padding:5px 8px;cursor:pointer}
.person-asset-count:disabled{cursor:default;opacity:.55}
.person-asset-count b,.person-asset-count small{display:block}
.person-asset-count b{font-size:18px;color:#173e78}
.person-asset-count small{font-size:10px;color:var(--muted)}
.person-asset-count-placeholder{visibility:hidden;pointer-events:none}
.parameter-person-actions{display:flex;gap:6px;justify-content:flex-end}
.person-account-line{color:#355d8b!important}

/* V0.8.3：审批中心、资产筛选分层与产权风险 */
.nav-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d92d20;color:#fff;display:grid;place-items:center;font-size:11px}
.approval-summary{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:12px;margin-bottom:14px}.approval-summary-card{border:1px solid #d6e2f0;border-radius:12px;background:#fff;padding:14px}.approval-summary-card small,.approval-summary-card b{display:block}.approval-summary-card small{color:#687d96}.approval-summary-card b{font-size:28px;color:#174e8f;margin-top:7px}.approval-center-grid{align-items:start}
.ownership-risk{display:block;margin-top:5px;padding:5px 8px;border-radius:7px;background:#fff0ee;color:#b42318;font-size:11px;font-weight:800}
.asset-search-primary{display:grid;grid-template-columns:minmax(210px,1.4fr) repeat(4,minmax(130px,.8fr)) auto auto;gap:8px;align-items:center}.asset-quick-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:10px;padding:9px 11px;border-radius:10px;background:#f5f8fc;border:1px solid #e0e8f2}.asset-quick-filters>span,.toolbar-label{color:#62758d;font-size:12px;font-weight:800}.asset-action-toolbar{margin-top:9px;border-top:1px solid #e5ebf2;padding-top:10px}.dashboard-metrics{grid-template-columns:repeat(5,minmax(140px,1fr))}
@media(max-width:1100px){.asset-search-primary{grid-template-columns:repeat(3,1fr)}.dashboard-metrics{grid-template-columns:repeat(3,1fr)}.parameter-person-row{grid-template-columns:42px minmax(180px,1fr) auto 76px}.parameter-person-actions{grid-column:2/-1}}
@media(max-width:700px){.asset-search-primary,.approval-summary{grid-template-columns:1fr 1fr}.approval-center-grid{grid-template-columns:1fr}.parameter-person-row{grid-template-columns:38px minmax(0,1fr) auto}.parameter-person-avatar{width:38px;height:38px}.parameter-person-row>.person-status{display:none}.person-asset-count{grid-column:3}.parameter-person-actions{grid-column:1/-1;justify-content:flex-start}}
.person-edit-summary{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;margin-bottom:12px}
.person-edit-summary span{color:var(--muted);font-size:12px}

@media(max-width:1180px){
  .dashboard-main-grid{grid-template-columns:minmax(360px,.9fr) minmax(0,1.1fr)}
  .dashboard-overdue-panel{min-width:360px}
  .activity-one-line small{display:none}
  .parameter-person-row{grid-template-columns:42px minmax(160px,1fr) auto 70px}
  .parameter-person-actions{grid-column:2/-1}
}
@media(max-width:900px){
  .dashboard-main-grid{grid-template-columns:1fr}
  .dashboard-overdue-panel{min-width:0}
}
@media(max-width:760px){
  .activity-line{align-items:flex-start}
  .activity-one-line{display:grid;grid-template-columns:auto 1fr;gap:4px 7px;white-space:normal}
  .activity-summary{grid-column:1/-1;white-space:nowrap}
  .activity-one-line small{display:block;grid-column:1/-1}
  .activity-id{max-width:none}
  .parameter-person-row{grid-template-columns:42px minmax(0,1fr) auto}
  .person-asset-count{grid-column:2/3;text-align:left}
  .parameter-person-actions{grid-column:1/-1;justify-content:flex-start}
}


/* V0.6.3 手机照片 / 批量导入 / 调拨联动 */
.workflow-fields{margin:12px 0;padding:14px;border:1px solid #d9e5f4;border-radius:14px;background:#f8fbff}.workflow-inner{margin:0}.workflow-tip{color:#5d6b7d;font-size:13px}.qr-upload-panel{margin-top:16px;padding:14px;border-radius:14px;background:#f3f8ff;border:1px solid #cfe0f6}.qr-upload-layout{display:flex;gap:16px;align-items:center}.qr-upload-layout img{width:170px;height:170px;background:#fff;padding:5px;border-radius:10px;border:1px solid #d8e2ef}.qr-upload-layout b{font-size:17px}.qr-upload-layout p{margin:6px 0;color:#4b607a}.qr-upload-layout small{color:#667085}.qr-status{margin-top:10px;padding:8px 10px;border-radius:8px;background:#fff;color:#174a8b}.batch-guide{padding:12px 14px;background:#fff8e8;border:1px solid #f1dfae;border-radius:12px;margin-bottom:14px;color:#6f5417}.file-btn{position:relative;overflow:hidden;cursor:pointer}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.batch-preview-wrap{max-height:500px;margin-top:14px}.import-error-row{background:#fff5f5}.ok-text{color:#137333;font-weight:700}.batch-export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:720px){.qr-upload-layout{align-items:flex-start}.qr-upload-layout img{width:132px;height:132px}.batch-export-grid{grid-template-columns:1fr}}

/* V0.6.3.1 hotfix: batch import validation states */
.batch-row-error{background:#fff5f5}
.notice.success{background:#eef9f1;border-color:#cfe8d5;color:#176b36}
.notice.warn{background:#fff8e8;border-color:#f1dfae;color:#7a5a12}

/* V0.6.4 资产生命周期 / 采购质保筛选 */
.lifecycle-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:20px 0 10px;padding-top:14px;border-top:1px solid #e5edf8}
.lifecycle-head h4{margin:0 0 3px}.lifecycle-head small{color:#71809a}
.lifecycle-timeline{position:relative;padding-left:2px}
.lifecycle-item{position:relative;display:grid;grid-template-columns:18px 1fr;gap:10px;padding:12px 8px 12px 0;border-bottom:1px solid #edf2f8}
.lifecycle-item:last-child{border-bottom:0}
.lifecycle-dot{width:10px;height:10px;border-radius:50%;margin-top:6px;background:#7b8da9;box-shadow:0 0 0 4px #edf2f8}
.lifecycle-item.flow .lifecycle-dot{background:#2468d8;box-shadow:0 0 0 4px #e5efff}
.lifecycle-item.maintenance .lifecycle-dot{background:#c17800;box-shadow:0 0 0 4px #fff2d8}
.lifecycle-item.disposal .lifecycle-dot{background:#b3261e;box-shadow:0 0 0 4px #fde8e7}
.lifecycle-item.custody .lifecycle-dot{background:#257a4a;box-shadow:0 0 0 4px #e6f4ea}
.lifecycle-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lifecycle-title span{font-size:11px;padding:2px 7px;border-radius:999px;background:#edf2f8;color:#596982}
.lifecycle-title b{font-size:14px}
.lifecycle-summary{margin-top:4px;font-size:13px;color:#24344d;word-break:break-word}
.lifecycle-detail,.lifecycle-time{display:block;margin-top:4px;color:#74839a;line-height:1.5}
@media(max-width:760px){.lifecycle-item{grid-template-columns:14px 1fr}.lifecycle-title{align-items:flex-start}.lifecycle-head{align-items:flex-start}}


/* V0.6.5 批量操作中心 */
.batch-ops-warning{margin:0 0 14px;padding:11px 13px;border:1px solid #d9e5f7;background:#f5f9ff;border-radius:10px;color:#395575;font-size:13px}
.batch-ops-filter{grid-template-columns:2fr repeat(4,1fr)}
.batch-selected-count{margin-left:auto;font-weight:700;color:#0b57d0;background:#edf4ff;border:1px solid #cfe0fb;border-radius:999px;padding:7px 12px;white-space:nowrap}
.batch-ops-table-wrap{max-height:560px}
.batch-ops-table .check-col{width:44px;text-align:center}
.batch-ops-table input[type=checkbox]{width:18px;height:18px;accent-color:#0b57d0;cursor:pointer}
.batch-operation-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.batch-operation-card{margin:0}
.batch-operation-card .panel-head{align-items:flex-start}
#boResultPanel{margin-top:14px}
.badge.red{background:#fff0f0;color:#b42318;border-color:#ffd3d0}
@media(max-width:1180px){.batch-operation-cards{grid-template-columns:1fr}.batch-ops-filter{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.batch-ops-filter{grid-template-columns:1fr}.batch-selected-count{margin-left:0}.batch-ops-table-wrap{overflow:auto}.batch-ops-table{min-width:850px}}


/* ===== V0.6.6 资产工作台 / 搜索卡片 / 图片预览 ===== */
.asset-workspace-tabs{
  display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:8px;
  background:#eef4ff;border:1px solid #d7e4f7;border-radius:12px;
}
.asset-workspace-tabs button{
  appearance:none;border:1px solid transparent;background:transparent;color:#31577f;
  font:inherit;font-weight:600;padding:9px 14px;border-radius:9px;cursor:pointer;
}
.asset-workspace-tabs button:hover{background:#fff;border-color:#c6d8f1}
.asset-workspace-tabs button.active{background:#0b57d0;color:#fff;box-shadow:0 3px 10px rgba(11,87,208,.18)}

.rich-asset-choice{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;min-height:88px}
.choice-thumb{
  width:72px;height:64px;border-radius:8px;background:#f2f5f9;color:#9baabd;
  display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:11px;
}
.choice-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.rich-asset-choice .tc-main small+small{margin-top:3px}
.rich-selected-summary{display:grid!important;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:12px}
.custody-selected-card.rich-selected-summary{grid-template-columns:78px minmax(0,1fr) minmax(180px,.8fr)}
.person-assets-card{width:100%;text-align:left;font:inherit;cursor:pointer}
.person-assets-card:disabled{cursor:default;opacity:.68}
.person-assets-card:not(:disabled):hover{border-color:#8ab4ef;background:#f8fbff}
.person-assets-summary{margin-bottom:10px;padding:10px 12px;border-radius:9px;background:#eef5ff;color:#31577f;font-weight:600}

.upload-box-preview{padding-top:10px}
.upload-preview{
  height:120px;margin-bottom:9px;border-radius:8px;background:#f1f4f8;color:#9aa8ba;
  display:flex;align-items:center;justify-content:center;overflow:hidden;font-size:12px;
}
.upload-preview img{width:100%;height:100%;object-fit:cover;display:block}
input:disabled{background:#f1f4f8;color:#6f7f91}

@media(max-width:760px){
  .asset-workspace-tabs{display:grid;grid-template-columns:1fr}
  .asset-workspace-tabs button{text-align:left}
  .rich-asset-choice{grid-template-columns:64px minmax(0,1fr)}
  .rich-asset-choice .tc-loc{grid-column:2;justify-self:start}
  .choice-thumb{width:64px;height:58px}
  .custody-selected-card.rich-selected-summary{grid-template-columns:64px 1fr}
  .custody-selected-card.rich-selected-summary>div:last-child{grid-column:1/-1}
}


/* ===== V0.6.7 统一资产操作面板 / 资产内批量操作 / 盘点检索 ===== */
.asset-room-index-panel{padding-bottom:14px}
.room-index-strip{display:flex;gap:10px;overflow-x:auto;padding-top:10px;scrollbar-width:thin}
.room-index-chip{min-width:150px;border:1px solid #c9d8ee;background:#f8fbff;border-radius:12px;padding:10px 12px;text-align:left;cursor:pointer;color:#17345f;display:grid;gap:2px}
.room-index-chip:hover{border-color:#0b61d8;background:#edf5ff}.room-index-chip b{font-size:15px;color:#082e67}.room-index-chip span{font-size:13px}.room-index-chip small{color:#6b7f99}
.asset-card.selectable{position:relative;padding-top:0}.asset-card-check{position:absolute;top:10px;right:10px;z-index:5;width:28px;height:28px;border-radius:9px;background:rgba(255,255,255,.94);border:1px solid #b9cbea;display:grid;place-items:center;box-shadow:0 3px 10px rgba(20,55,100,.12);cursor:pointer}.asset-card-check input{width:17px;height:17px;accent-color:#0b61d8}
.batch-action-main{border-color:#0b61d8!important;color:#0b61d8!important;font-weight:700}.integrated-batch-modal #iabResult{margin-top:14px}
.asset-operation-panel{margin-top:16px;border:1px solid #c9dbf5;background:#f7fbff;border-radius:14px;padding:14px}.operation-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.operation-panel-head h4{margin:0;color:#0a2f67}.operation-panel-head small{display:block;margin-top:3px;color:#6c7f99}.asset-operation-panel .detail-actions{margin:0;display:flex;flex-wrap:wrap;gap:8px}
.maint-asset-cell{display:flex;align-items:center;gap:10px;min-width:220px}.maint-asset-cell>div:last-child{display:grid;gap:2px}.maint-asset-cell small{display:block;color:#71829a}.maint-thumb{width:64px;height:52px;border-radius:9px;border:1px solid #d5e0ef;background:#f4f7fb;overflow:hidden;display:grid;place-items:center;font-size:11px;color:#8292aa;flex:0 0 auto}.maint-thumb img{width:100%;height:100%;object-fit:cover}.maintenance-age-tag{display:inline-block;margin-top:5px;padding:3px 7px;border-radius:999px;background:#eef4fb;color:#526b88;font-size:12px}.maintenance-age-tag.overdue{background:#fff0ed;color:#b43b2e}.row-actions{display:flex;flex-wrap:wrap;gap:6px;min-width:180px}
.inventory-history-filters{grid-template-columns:minmax(240px,1.5fr) minmax(150px,.8fr) minmax(170px,1fr) minmax(170px,1fr)}
.config-audit-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;gap:10px;align-items:center}.config-audit-flow>div{border:1px solid #d7e4f5;border-radius:12px;background:#f8fbff;padding:14px;min-height:82px}.config-audit-flow b{display:block;color:#0a376f;margin-bottom:5px}.config-audit-flow span{font-size:13px;color:#657a95}.config-audit-flow i{font-style:normal;color:#7d96b6;font-size:20px}
@media(max-width:900px){.inventory-history-filters{grid-template-columns:1fr 1fr}.config-audit-flow{grid-template-columns:1fr}.config-audit-flow i{transform:rotate(90deg);text-align:center}.asset-operation-panel .detail-actions .btn{flex:1 1 calc(50% - 8px)}}

/* ===== V0.7.2 装修配置需求 / 备料 / 低耗品 ===== */
.inventory-tabs{display:flex;gap:8px;margin-bottom:14px;padding:6px;background:#eaf1fb;border:1px solid #d3e0f2;border-radius:12px;position:sticky;top:0;z-index:9}
.inventory-tabs button{border:0;background:transparent;border-radius:9px;padding:10px 18px;color:#47627f;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.inventory-tabs button.active{background:#fff;color:#0b57d0;box-shadow:0 2px 9px rgba(24,61,112,.10)}
.inventory-pane.hidden{display:none!important}
.config-start-grid{display:grid;grid-template-columns:minmax(220px,1fr) minmax(260px,1.4fr) auto;gap:12px;align-items:end}
.config-start-grid label{display:grid;gap:6px;color:#526a87;font-size:13px}.config-start-grid select{min-height:44px}
.config-logic-note{margin-top:12px;border-left:4px solid #68a0ec;background:#f4f8fe;border-radius:9px;padding:10px 12px;display:flex;gap:10px;align-items:flex-start;color:#55708f}.config-logic-note b{color:#17477f;white-space:nowrap}
.config-metrics{grid-template-columns:repeat(4,minmax(74px,92px))}
.config-check-list{display:grid;gap:10px;margin-top:14px}
.config-check-card{border:1px solid #d8e3f2;border-radius:13px;background:#fff;padding:13px;display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(320px,2fr);gap:14px;align-items:start}
.config-check-card.abnormal{border-color:#f1b9b1;background:#fffafa}.config-check-card.pending{border-color:#f0d29b;background:#fffdf7}.config-check-card.normal{border-color:#c8e2d0;background:#fbfffc}
.config-item-head{display:flex;gap:10px;align-items:flex-start}.config-item-ref{width:74px;height:64px;border:1px solid #d9e4f1;border-radius:9px;background:#f3f6fa;overflow:hidden;display:grid;place-items:center;color:#8999ad;font-size:11px;flex:0 0 auto}.config-item-ref img{width:100%;height:100%;object-fit:cover}
.config-item-title{display:grid;gap:3px}.config-item-title strong{font-size:17px;color:#102d55}.config-item-title small{color:#6c7f98}.config-type-tag{display:inline-flex;width:max-content;padding:3px 8px;border-radius:999px;background:#e9f2ff;color:#225c9d;font-size:12px}.config-type-tag.low{background:#f3ecff;color:#6f48a8}
.config-qty-row{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:8px;margin-top:10px}.config-qty-row>div{border:1px solid #e2e9f3;border-radius:9px;padding:8px;background:#f8fafc}.config-qty-row small{display:block;color:#788aa2}.config-qty-row b{display:block;margin-top:3px;font-size:17px}
.config-actual-control{display:flex;align-items:center;gap:6px}.config-actual-control button{width:34px;height:34px;border:1px solid #c9d6e8;border-radius:8px;background:#fff;cursor:pointer;font-size:18px}.config-actual-control input{width:88px;text-align:center}
.config-asset-mini-list{display:grid;gap:6px;margin-top:8px}.config-asset-mini{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;border:1px solid #e0e8f2;border-radius:9px;padding:6px 8px;background:#fafcff}.config-asset-mini .thumb{width:52px;height:44px;border-radius:7px;background:#eef2f7;overflow:hidden;display:grid;place-items:center;font-size:10px;color:#8a98aa}.config-asset-mini .thumb img{width:100%;height:100%;object-fit:cover}.config-asset-mini small{display:block;color:#6d7f96;margin-top:2px}
.config-edit-grid{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(170px,1fr);gap:8px}.config-edit-grid label{display:grid;gap:5px;font-size:12px;color:#627690}.config-edit-grid .full{grid-column:1/-1}.config-edit-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.config-result-tag{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:700}.config-result-tag.normal{background:#e7f6eb;color:#29733d}.config-result-tag.missing,.config-result-tag.damaged{background:#fff0ed;color:#a83a2e}.config-result-tag.extra{background:#fff5df;color:#9b6513}.config-result-tag.pending{background:#f0f2f5;color:#647489}
.config-item-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:12px}.config-item-card{border:1px solid #d8e2ef;border-radius:12px;padding:11px;background:#fff;display:grid;grid-template-columns:66px 1fr;gap:10px}.config-item-card.inactive{opacity:.58}.config-item-card .config-item-ref{width:66px;height:58px}.config-item-card .actions{grid-column:1/-1;display:flex;gap:6px;justify-content:flex-end}.config-item-card p{margin:3px 0;color:#6a7d94;font-size:12px}
.config-template-list{display:grid;gap:9px}.config-template-card{border:1px solid #d8e3f1;border-radius:12px;padding:12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;background:#fff}.config-template-card.inactive{opacity:.62}.config-template-card strong{display:block;color:#173963;font-size:16px}.config-template-card small{display:block;color:#71839a;margin-top:4px}.config-template-actions{display:flex;gap:6px;flex-wrap:wrap}
.template-detail-list{display:grid;gap:8px;margin-top:12px}.template-detail-row{border:1px solid #dfe7f1;border-radius:10px;padding:9px 10px;display:grid;grid-template-columns:minmax(160px,1.2fr) 90px 120px 150px 80px auto;gap:8px;align-items:center}.template-detail-row.inactive{opacity:.5}.template-detail-row small{color:#73849a}
.config-purchase-qty{font-size:18px;font-weight:800;color:#b25422}.config-task-head{border-bottom:1px solid #e2e9f2;padding-bottom:12px}
@media(max-width:1000px){.config-start-grid{grid-template-columns:1fr 1fr}.config-start-grid .btn{grid-column:1/-1}.config-check-card{grid-template-columns:1fr}.template-detail-row{grid-template-columns:1fr 80px 110px}.template-detail-row>*:nth-child(n+4){grid-column:auto}}
@media(max-width:760px){.inventory-tabs{overflow-x:auto;position:static}.inventory-tabs button{padding:9px 13px}.config-start-grid{grid-template-columns:1fr}.config-qty-row{grid-template-columns:1fr 1fr}.config-edit-grid{grid-template-columns:1fr}.config-check-card{padding:10px}.config-template-card{grid-template-columns:1fr}.template-detail-row{grid-template-columns:1fr 1fr}.template-detail-row .btn{grid-column:1/-1}.config-item-grid{grid-template-columns:1fr}}


/* ===== V0.7.2 装修配置需求 / 备料 ===== */
.demand-create-grid{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) minmax(190px,1fr) minmax(150px,.8fr) minmax(280px,1.5fr) auto;gap:10px;align-items:end}.demand-create-grid label{display:grid;gap:5px;font-size:12px;color:#5f738d}.demand-create-grid .wide{grid-column:span 2}.demand-create-grid select,.demand-create-grid input{min-height:42px}.demand-logic-note{margin-top:12px}.demand-metrics{grid-template-columns:repeat(5,minmax(82px,100px))}.demand-toolbar{position:sticky;top:56px;z-index:7;background:#fff;padding:10px 0;border-bottom:1px solid #edf1f6}.demand-detail-list{display:grid;gap:11px;margin-top:14px}.demand-card{border:1px solid #d9e4f2;border-radius:13px;background:#fff;padding:13px}.demand-card.normal{border-color:#cfe5d6;background:#fcfffd}.demand-card.missing{border-color:#efb9b0;background:#fffafa}.demand-card.pending{border-color:#ebd19c;background:#fffdf7}.demand-card.disabled{opacity:.68;background:#f7f8fa}.demand-item-main{display:grid;gap:10px}.demand-item-title{display:flex;align-items:flex-start;gap:9px}.demand-item-title strong{font-size:17px;color:#143963}.demand-item-title small{display:block;margin-top:3px;color:#6f8197}.demand-qty-grid{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(320px,2fr) minmax(100px,.6fr) minmax(110px,.7fr);gap:8px;align-items:start}.demand-qty-grid>div{border:1px solid #e2e9f2;border-radius:9px;padding:9px;background:#f9fbfd}.demand-qty-grid small{display:block;color:#76889f;margin-bottom:4px}.demand-minimum-input{width:86px;text-align:center;margin-right:5px}.demand-asset-summary{display:flex;gap:13px;flex-wrap:wrap;color:#526b88;margin-bottom:7px}.demand-asset-summary b{color:#173d6c}.demand-reserved-mini{position:relative;padding-right:84px}.demand-asset-state{position:absolute;right:8px;top:50%;transform:translateY(-50%);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.demand-asset-state.reserved{background:#fff1dc;color:#995e0f}.demand-asset-state.arrived{background:#e6f5ea;color:#26733c}.demand-line-controls{display:grid;grid-template-columns:160px minmax(260px,1fr) auto;gap:9px;align-items:end;margin-top:10px;padding-top:10px;border-top:1px dashed #dce5ef}.demand-line-controls label{display:grid;gap:4px;font-size:12px;color:#687c95}.demand-line-controls .wide{min-width:0}.demand-feedback{display:grid;gap:4px;font-size:12px;color:#687c95;margin-top:3px}.demand-feedback textarea{resize:vertical}.demand-empty{padding:28px;text-align:center;border:1px dashed #cbd9ea;border-radius:12px}.demand-asset-picker .demand-candidate{margin-bottom:7px}.demand-candidate.blocked{opacity:.55}.danger-text{color:#b34234!important}.success-text{color:#2b7a45!important}.purchase-feedback-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(230px,1.5fr) auto;gap:7px;align-items:center;padding:4px 0;border-bottom:1px dashed #e1e7ef}.purchase-feedback-row:last-child{border-bottom:0}.purchase-feedback-row input{min-height:34px}.template-detail-row{grid-template-columns:minmax(220px,1fr) 100px 90px auto}
@media(max-width:1250px){.demand-create-grid{grid-template-columns:1fr 1fr 1fr}.demand-create-grid .wide{grid-column:span 2}.demand-create-grid .btn{min-height:42px}.demand-qty-grid{grid-template-columns:1fr 1.8fr 1fr 1fr}.demand-line-controls{grid-template-columns:150px 1fr auto}}
@media(max-width:900px){.demand-create-grid{grid-template-columns:1fr 1fr}.demand-create-grid .wide{grid-column:1/-1}.demand-qty-grid{grid-template-columns:1fr 1fr}.demand-line-controls{grid-template-columns:1fr}.demand-toolbar{position:static}.demand-metrics{grid-template-columns:repeat(3,minmax(75px,1fr))}.purchase-feedback-row{grid-template-columns:1fr}}
@media(max-width:620px){.demand-create-grid{grid-template-columns:1fr}.demand-create-grid .wide{grid-column:auto}.demand-qty-grid{grid-template-columns:1fr}.demand-metrics{grid-template-columns:1fr 1fr}.demand-reserved-mini{padding-right:8px}.demand-asset-state{position:static;transform:none;width:max-content;margin-top:5px}}

/* ===== V0.7.2 盘点取消 / 大批量需求单 / 类别目录 ===== */
.demand-asset-state.moved{background:#fff1f0;color:#b42318;border:1px solid #fecdca}
.inv-status{display:inline-flex;padding:4px 9px;border-radius:999px;font-size:12px;font-weight:700}.inv-status.running{background:#e8f1ff;color:#145db5}.inv-status.done{background:#e6f5ea;color:#277441}.inv-status.cancelled{background:#f1f2f4;color:#6e7784}
.demand-item-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(140px,.8fr)) auto;gap:8px;align-items:center;margin:12px 0;padding:10px;background:#f6f9fd;border:1px solid #dde7f4;border-radius:10px}
.demand-category-group,.config-catalog-group{border:1px solid #d8e3f1;border-radius:12px;background:#fff;overflow:hidden}.demand-category-group+*,.config-catalog-group+*{margin-top:10px}.demand-category-group>summary,.config-catalog-group>summary{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:#eef5ff;color:#173f72;cursor:pointer}.demand-category-group>summary span,.config-catalog-group>summary span{font-size:12px;color:#6b7f98}
.demand-compact-table{overflow-x:auto}.demand-compact-head,.demand-compact-row{display:grid;grid-template-columns:minmax(210px,1.5fr) 76px 116px 135px 76px 110px 70px;gap:8px;align-items:center;min-width:860px}.demand-compact-head{padding:8px 12px;background:#f8fafc;color:#71839a;font-size:12px;font-weight:700;border-bottom:1px solid #e3eaf3}.demand-compact-row{padding:9px 12px;border-bottom:1px solid #edf1f6;font-size:13px}.demand-compact-row:last-child{border-bottom:0}.demand-compact-row.not-needed{opacity:.6;background:#f7f8fa}.demand-compact-row>span:first-child b{display:block;color:#173963}.demand-compact-row>span:first-child small{display:block;margin-top:2px;color:#71839a}.demand-inline-number{width:68px;min-height:32px;padding:5px 7px}.demand-compact-extra{grid-column:1/-1}.demand-row-details{border-top:1px dashed #dce5ef;padding-top:6px}.demand-row-details>summary{cursor:pointer;color:#3569a5;font-size:12px}.demand-detail-fields{display:grid;grid-template-columns:150px minmax(240px,1fr) minmax(240px,1fr);gap:8px;margin-top:8px}.demand-detail-fields label{display:grid;gap:4px;color:#687c95;font-size:12px}.config-catalog-groups{display:grid;gap:10px;margin-top:12px}.config-catalog-group .config-item-grid{padding:0 12px 12px}
@media(max-width:900px){.demand-item-filters{grid-template-columns:1fr 1fr}.demand-item-filters span{grid-column:1/-1}.demand-detail-fields{grid-template-columns:1fr}.config-catalog-groups .config-item-grid{grid-template-columns:1fr}}

/* ===== V0.8.0 状态规则 / 分类 / 标签回收 / 房间退租 / 布草规划 ===== */
.quick-filter-btn.active{background:#e7f0ff;border-color:#0b61d8;color:#0b57d0;font-weight:800;box-shadow:0 0 0 2px rgba(11,97,216,.08)}
.maintenance-methods{border:1px solid #cfdfed;border-radius:12px;padding:12px 14px;min-width:0}.maintenance-methods legend{padding:0 5px;color:#263b50;font-weight:700}.maintenance-method-options{display:flex;gap:12px;flex-wrap:wrap}.maintenance-method-options label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;border:1px solid #d7e5ef;border-radius:10px;background:rgba(255,255,255,.73);cursor:pointer}.maintenance-method-options label:has(input:checked){border-color:#4b75a2;background:#eaf3f8;color:#263b50}.maintenance-method-options input{accent-color:#4b75a2}.maintenance-method-options input:focus-visible{outline:2px solid #4b75a2;outline-offset:3px}
.room-index-chip.selected{background:#e5f0ff;border-color:#0b61d8;box-shadow:0 0 0 2px rgba(11,97,216,.10)}
.lifecycle-tabs{display:flex;gap:7px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:thin}.lifecycle-tabs button{border:1px solid #d2deed;background:#fff;border-radius:999px;padding:6px 10px;color:#566a85;white-space:nowrap;cursor:pointer}.lifecycle-tabs button b{margin-left:3px;color:#193b69}.lifecycle-tabs button.active{background:#0b57d0;border-color:#0b57d0;color:#fff}.lifecycle-tabs button.active b{color:#fff}
.existing-photo-section{margin:12px 0;padding:12px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff}.existing-photo-section>h4{margin:0 0 10px}.existing-photo-group+*{margin-top:12px}.existing-photo-group>b{display:block;margin-bottom:6px;color:#3c526f}.existing-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(94px,1fr));gap:8px}.existing-photo{height:84px;border:1px solid #d3dfed;border-radius:9px;background:#eef3f8;color:#7b8ca2;overflow:hidden;cursor:pointer;padding:0}.existing-photo img{width:100%;height:100%;object-fit:cover!important}.existing-photo:hover{border-color:#4b82ca}
.disposal-filters{display:grid;grid-template-columns:minmax(240px,1fr) 170px auto auto;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid #e5ebf3}.disposal-item{grid-template-columns:76px minmax(0,1fr) auto}.disposal-thumb{width:76px;height:68px;border:1px solid #d6e0ed;border-radius:9px;background:#f1f4f8;color:#8492a5;overflow:hidden;display:grid;place-items:center;font-size:11px}.disposal-thumb img{width:100%;height:100%;object-fit:cover!important}.disposal-item-actions{gap:6px;flex-wrap:wrap}
.parameter-tabs{display:flex;gap:8px;margin-bottom:14px;padding:6px;background:#eaf1fb;border:1px solid #d3e0f2;border-radius:12px;position:sticky;top:0;z-index:9}.parameter-tabs button{border:0;background:transparent;border-radius:9px;padding:10px 18px;color:#47627f;font:inherit;font-weight:700;cursor:pointer}.parameter-tabs button.active{background:#fff;color:#0b57d0;box-shadow:0 2px 9px rgba(24,61,112,.10)}
.location-permission-help{margin:4px 0 12px;padding:10px 12px;border-radius:9px;background:#f3f7fc;color:#5d718b;font-size:12px;line-height:1.8}.location-permission-help b{color:#1c487e}.transfer-approval-list{display:grid;gap:9px}.transfer-approval-row{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:11px;align-items:center;border:1px solid #dae4f0;border-radius:10px;padding:10px;background:#fff}.transfer-approval-row .choice-thumb{width:66px;height:56px}.transfer-approval-row strong,.transfer-approval-row small{display:block}.transfer-approval-row small{margin-top:3px;color:#6d7f96}.transfer-approval-row .transfer-approval-kind{display:inline-flex;width:max-content;margin-top:5px;padding:2px 7px;border-radius:999px;background:#eef4fc;color:#315f95;font-weight:800}.person-type-tag{display:inline-flex;vertical-align:middle;margin-left:5px;padding:2px 7px;border-radius:999px;background:#e7f3ea;color:#28713f;font-size:11px;font-weight:700}.person-type-tag.external{background:#fff2df;color:#9a6115}
.room-return-list{max-height:430px;overflow:auto;display:grid;gap:7px;margin:12px 0}.room-return-row{display:grid!important;grid-template-columns:24px 68px minmax(0,1fr);gap:9px;align-items:center;border:1px solid #dce5f0;border-radius:10px;padding:8px;background:#fff;cursor:pointer}.room-return-row>input{width:18px;min-height:18px;accent-color:#0b57d0}.room-return-row .choice-thumb{width:68px;height:56px}.room-return-row strong,.room-return-row small{display:block}.room-return-row small{margin-top:2px;color:#6e8097}
.linen-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;background:linear-gradient(135deg,#f3f8ff,#eef8f4)}.linen-hero h3{font-size:24px;margin:10px 0 4px;color:#123d70}.linen-hero p{margin:0;color:#5e728c}.linen-state-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;max-width:430px}.linen-state-tags span{padding:7px 10px;border-radius:999px;background:#fff;border:1px solid #cfe0e5;color:#356a65;font-size:12px;font-weight:700}.linen-flow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr) auto);gap:10px;align-items:center;margin:14px 0}.linen-flow>div{min-height:100px;border:1px solid #d7e4ef;border-radius:12px;background:#fff;padding:14px}.linen-flow b,.linen-flow span{display:block}.linen-flow b{color:#174b79;margin-bottom:7px}.linen-flow span{color:#687d94;font-size:13px;line-height:1.55}.linen-flow i{font-style:normal;color:#7c9ab8;font-size:20px}.linen-module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.linen-module-grid .panel{margin:0}.linen-module-grid h3{margin:0 0 7px;color:#173c69}.linen-module-grid p{min-height:48px;color:#687a90;line-height:1.55}.linen-plan-tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:#edf4ff;color:#31659d;font-size:11px}
.linen-flow{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}
@media(max-width:900px){.disposal-filters{grid-template-columns:1fr 1fr}.linen-hero{align-items:flex-start;flex-direction:column}.linen-state-tags{justify-content:flex-start}.linen-flow{grid-template-columns:1fr}.linen-flow i{transform:rotate(90deg);text-align:center}.linen-module-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.disposal-filters{grid-template-columns:1fr}.disposal-item{grid-template-columns:64px minmax(0,1fr)}.disposal-thumb{width:64px;height:58px}.disposal-item-actions{grid-column:1/-1;justify-content:flex-start}.parameter-tabs{overflow-x:auto;position:static}.parameter-tabs button{padding:9px 12px;white-space:nowrap}.transfer-approval-row{grid-template-columns:56px 1fr}.transfer-approval-row .choice-thumb{width:56px;height:50px}.transfer-approval-row .btn{grid-column:1/-1}.linen-module-grid{grid-template-columns:1fr}.room-return-row{grid-template-columns:22px 56px 1fr}.room-return-row .choice-thumb{width:56px;height:50px}}

/* ===== V0.8.1 两级分类 / 处置冻结 / 房间权限 / 退租复核 ===== */
.disposal-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.disposal-summary-card.completed{border-color:#c6d3e3;background:#f7f9fc}.disposal-summary-card.completed b{color:#586a82}.completed-item{background:#f8fafc;border-color:#cfd9e6}.terminal-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#e9edf2;color:#59697d;font-size:11px;font-weight:800}.terminal-asset-panel{border-color:#cbd5e1;background:#f5f7fa}.terminal-asset-panel .operation-panel-head h4{color:#475569}.asset-card.terminal-card{background:#f5f7fa;border-color:#cbd5e1}.asset-card.terminal-card .asset-photo{filter:grayscale(.35)}
.category-maintenance-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:12px;margin-bottom:14px}.category-maintenance-card{border:1px solid #d7e2f0;border-radius:11px;padding:12px;background:#f8fbff}.category-maintenance-card>b,.category-maintenance-card>small{display:block}.category-maintenance-card>small{color:#6d8098;margin:4px 0 10px}.category-map-form{display:grid;grid-template-columns:minmax(145px,.8fr) minmax(160px,1fr) auto;gap:7px}.asset-category-tree{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}.asset-category-group{border:1px solid #dce5f0;border-radius:11px;background:#fff;overflow:hidden}.asset-category-group header{display:flex;justify-content:space-between;gap:8px;padding:9px 11px;background:#edf5ff;color:#173e70}.asset-category-group header span{font-size:11px;color:#6b7f98}.asset-category-group>div{display:flex;gap:6px;flex-wrap:wrap;padding:10px;min-height:50px}.category-chip{border:1px solid #cfdaea;border-radius:999px;background:#fff;color:#435a76;padding:5px 9px;cursor:pointer}.category-chip:hover{border-color:#4d83c8;color:#1357a6;background:#f2f7ff}.unmapped-category-box{margin-top:12px;border:1px solid #efcc96;border-radius:11px;background:#fffaf0;padding:12px}.unmapped-category-box>p{margin:4px 0 10px;color:#86612c;font-size:12px}.unmapped-category-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(180px,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-top:1px dashed #ead6b7}.unmapped-category-row:first-of-type{border-top:0}.batch-category-pair{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:5px}
.asset-setting-tabs{display:flex;gap:6px;margin:12px 0 0;border-bottom:1px solid #d7e2f0}.asset-setting-tabs button{min-height:44px;padding:9px 16px;border:0;border-bottom:3px solid transparent;background:transparent;color:#57708a;font:inherit;font-weight:700;cursor:pointer}.asset-setting-tabs button[aria-selected=true]{border-bottom-color:#5075a1;color:#274f7b}.asset-setting-tabs button:focus-visible{outline:2px solid #5075a1}.asset-setting-intro{margin:12px 0;color:#667d94;font-size:13px;line-height:1.5}[data-asset-category-pane][hidden]{display:none}.asset-recycle-filters{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:10px;margin:12px 0 15px}.asset-recycle-filters label{display:grid;gap:5px;color:#506a83;font-size:13px;font-weight:650}.asset-recycle-filters input{min-width:0;min-height:42px;padding:8px 11px;border:1px solid #b9cede;border-radius:8px;background:#fff;font:inherit}.asset-recycle-filters>span{padding-bottom:11px;color:#627991;font-size:12px}.asset-recycle-list{display:grid;gap:9px}.asset-recycle-list article{display:grid;grid-template-columns:68px minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px;border:1px solid #d9e6ef;border-radius:10px;background:#fff}.asset-recycle-list .choice-thumb{width:68px;height:58px}.asset-recycle-detail-trigger{display:grid;gap:4px;min-width:0;padding:4px;border:0;background:transparent;color:#254d75;text-align:left;cursor:pointer}.asset-recycle-detail-trigger:hover b{text-decoration:underline}.asset-recycle-detail-trigger:focus-visible{outline:2px solid #5075a1}.asset-recycle-detail-trigger small{color:#647b90;font-size:12px;overflow-wrap:anywhere}.asset-recycle-list .pm-asset-restore{min-height:40px}.recycled-asset-detail .notice{margin-top:0}.recycled-asset-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.recycled-asset-facts>div{display:grid;gap:4px;padding:9px;border:1px solid #d9e6ef;border-radius:8px}.recycled-asset-facts small{color:#657c93}.recycled-asset-facts strong{overflow-wrap:anywhere}.recycled-asset-photo{display:grid;gap:7px;margin-top:12px}.recycled-asset-photo .choice-thumb{width:90px;height:76px}
@media(max-width:650px){.asset-recycle-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.asset-recycle-filters>span{grid-column:1/-1;padding-bottom:0}.asset-recycle-list article{grid-template-columns:54px minmax(0,1fr);gap:8px}.asset-recycle-list .choice-thumb{width:54px;height:50px}.asset-recycle-list .pm-asset-restore{grid-column:2;justify-self:end}.recycled-asset-facts{grid-template-columns:1fr}}
.asset-parameter-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.asset-parameter-panel{min-width:0;border:1px solid #d3e3ed;border-radius:12px;background:#f8fbfd;padding:14px}.asset-parameter-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;color:#263b50}.asset-parameter-head b,.asset-parameter-head small,.asset-parameter-row small{display:block}.asset-parameter-head small,.asset-parameter-row small{color:#60768a;font-size:12px}.asset-parameter-list,.asset-parameter-checks{max-height:420px;overflow:auto;display:grid;gap:6px}.asset-parameter-row,.asset-parameter-checks label{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;padding:8px 10px;border:1px solid #d8e6ef;border-radius:9px;background:#fff}.asset-parameter-row>div{min-width:0}.asset-parameter-checks label{cursor:pointer;justify-content:flex-start}.asset-parameter-checks input{width:18px;height:18px;flex:none;accent-color:#4b75a2}.asset-parameter-checks span{flex:1}.asset-parameter-checks small{color:#60768a}.asset-parameter-category{display:grid;gap:5px;margin-bottom:10px}.asset-parameter-category select{min-height:44px}.asset-parameter-actions{display:flex;justify-content:flex-end;margin-top:12px}.asset-parameter-fields{margin:12px 0;padding:14px;border:1px solid #cbdfea;border-radius:11px;background:#f1f7fa}.asset-parameter-fields.full{grid-column:1/-1}.asset-parameter-heading{display:flex;justify-content:space-between;gap:8px;margin-bottom:10px;color:#263b50}.asset-parameter-heading small{color:#60768a}.asset-parameter-fields label{min-width:0}.asset-parameter-fields input,.asset-parameter-fields select{min-height:44px}
@media(max-width:800px){.asset-parameter-layout{grid-template-columns:1fr}.asset-parameter-heading{display:block}.asset-parameter-heading small{display:block}}
.parameter-location-list{gap:12px}.parameter-location-group{border:1px solid #d8e3ef;border-radius:11px;overflow:hidden;background:#fff}.parameter-location-group>header{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;background:#edf5ff;color:#17416f}.parameter-location-group>header span{font-size:12px;color:#6a7f98}.parameter-location{grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) 76px 68px auto;border:0;border-top:1px solid #e5ebf2;border-radius:0;padding:10px 12px}.parameter-location:first-of-type{border-top:0}.parameter-location-actions{display:flex;gap:6px;justify-content:flex-end}.location-permission-tag{display:inline-flex;justify-content:center;border-radius:999px;padding:4px 8px;background:#e7f4eb;color:#28723f;font-size:11px;font-weight:800}.location-permission-tag.restricted{background:#fdeaea;color:#c62828}.location-permission-tag.approval{background:#fff4cf;color:#a66b00}
.room-return-steps{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.room-return-steps span{border:1px solid #d7e1ee;border-radius:9px;padding:9px 11px;background:#f5f7fa;color:#687a91;font-size:12px;font-weight:700}.room-return-steps span.active{border-color:#0b61d8;background:#eaf2ff;color:#0b57d0}.room-return-row.frozen{opacity:.6;background:#f1f3f6;cursor:not-allowed}.room-return-row.review-row{grid-template-columns:32px minmax(0,1fr);cursor:default}.review-no{width:26px;height:26px;border-radius:999px;background:#eaf2ff;color:#0b57d0;display:grid;place-items:center;font-size:12px;font-weight:800}.room-return-review-summary{display:flex;gap:8px;flex-wrap:wrap;padding:11px;border:1px solid #bfd2ee;border-radius:10px;background:#f3f8ff}.room-return-review-summary b{color:#0b4d9e;margin-right:6px}.room-return-review-summary span{padding-left:9px;border-left:1px solid #cdd9e8;color:#4d647f}.room-return-confirm-check{display:flex!important;align-items:flex-start;gap:9px;border:1px solid #efc38e;background:#fff8ec;border-radius:10px;padding:11px;color:#785018;font-weight:700}.room-return-confirm-check input{width:19px;min-height:19px;flex:0 0 auto}.danger-note{margin-top:8px;border-left:4px solid #d65c4c;background:#fff2f0;border-radius:8px;padding:9px 11px;color:#8e3c32;font-size:12px}
.location-permission-inline{font-weight:800}.location-permission-inline.restricted{color:#cf2d2d}.location-permission-inline.approval{color:#b77900}.location-permission-inline.normal{color:inherit}
.role-permission-editor{display:grid;gap:12px}.role-permission-config{border:1px solid #dbe5f0;border-radius:12px;background:#fff;overflow:hidden}.role-permission-config>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;background:#f5f8fc}.role-permission-config>header strong,.role-permission-config>header small{display:block}.role-permission-config>header strong{font-size:15px}.role-permission-config>header small{margin-top:3px;color:var(--muted)}.role-permission-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:10px;padding:12px}.permission-group{display:grid;align-content:start;gap:7px}.permission-group>b{font-size:12px;color:#294d75}.permission-check{display:flex!important;align-items:flex-start;gap:8px;padding:8px 9px;border:1px solid #e1e8f0;border-radius:8px;background:#fbfdff;font-size:12px}.permission-check input{width:17px;min-height:17px;flex:0 0 auto}.permission-check small{display:block;color:var(--muted);margin-top:2px}.role-picker{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:8px;padding:10px;border:1px solid #dbe5f0;border-radius:10px;background:#f8fbff}.role-picker label{display:flex!important;align-items:center;gap:8px}.role-picker input{width:18px;min-height:18px}.person-form-section{border:1px solid #dbe5f0;border-radius:10px;padding:12px;background:#fbfdff}.person-form-section>h4{margin:0 0 9px}.person-identity-lock{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.room-return-row.configure{grid-template-columns:24px 64px minmax(210px,1fr) minmax(150px,.65fr) minmax(190px,.85fr)}.room-return-row.configure .rr-row-controls{display:contents}.room-return-row.configure select{min-width:0}.room-return-row.configure .rr-target-wrap.hidden{display:block!important;visibility:hidden}.room-return-row.review-row{grid-template-columns:32px minmax(0,1fr) minmax(180px,.65fr)}.rr-review-action{font-size:12px;font-weight:800;color:#254f7f}.rr-review-action.danger{color:#b33a2e}
input[readonly]{background:#f2f5f8;color:#53657a}.field-help{display:block;margin-top:4px;color:#73849a;font-size:11px}
@media(max-width:1000px){.disposal-summary{grid-template-columns:repeat(2,1fr)}.category-maintenance-grid{grid-template-columns:1fr}.parameter-location{grid-template-columns:minmax(150px,1fr) minmax(130px,1fr) 72px auto}.parameter-location>.person-status{display:none}}
@media(max-width:700px){.disposal-summary{grid-template-columns:1fr}.category-map-form,.unmapped-category-row,.batch-category-pair{grid-template-columns:1fr}.asset-category-tree{grid-template-columns:1fr}.parameter-location{grid-template-columns:1fr auto}.parameter-location>small{grid-column:1/-1}.parameter-location-actions{grid-column:1/-1;justify-content:stretch}.parameter-location-actions .btn{flex:1}.room-return-review-summary{display:grid}.room-return-review-summary span{padding-left:0;border-left:0}.room-return-steps{grid-template-columns:1fr}}
@media(max-width:800px){.role-permission-grid{grid-template-columns:1fr 1fr}.room-return-row.configure{grid-template-columns:22px 54px minmax(0,1fr)}.room-return-row.configure .rr-row-controls{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.room-return-row.review-row{grid-template-columns:32px 1fr}.rr-review-action{grid-column:2}}
@media(max-width:560px){.role-permission-grid,.role-picker{grid-template-columns:1fr}.room-return-row.configure .rr-row-controls{grid-template-columns:1fr}.room-return-row.configure .rr-target-wrap.hidden{display:none!important}.room-return-row.review-row{grid-template-columns:30px 1fr}}

/* ===== 待办、房间语义、验收入库与紧凑管理界面 ===== */
.sidebar-account-btn{width:100%;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#e6f0fb;border-radius:8px;padding:8px 10px;margin:0 0 10px;cursor:pointer}.sidebar-account-btn:hover{background:rgba(255,255,255,.13)}
.asset-room-selection{margin-top:11px;padding:10px 12px;border:1px solid #a9c8ef;border-radius:11px;background:#f0f6ff;display:flex;align-items:center;justify-content:space-between;gap:12px}.asset-room-selection small,.asset-room-selection strong{display:block}.asset-room-selection small{color:#6c809a;margin-bottom:3px}.asset-room-selection strong{color:#113f78}.room-scope-switch{display:flex;gap:5px;flex-wrap:wrap}.room-scope-switch button{border:1px solid #c5d7ed;background:#fff;color:#496582;border-radius:8px;padding:7px 10px;cursor:pointer}.room-scope-switch button.active{background:#0b61d8;border-color:#0b61d8;color:#fff;box-shadow:0 3px 10px rgba(11,97,216,.18)}
.room-index-chip.inactive{border-style:dashed;background:#f5f6f8;color:#657286}.room-index-chip.inactive span{color:#9a5b16;font-weight:700}
.asset-search-primary{grid-template-columns:minmax(220px,1.7fr) repeat(4,minmax(135px,1fr)) auto auto}.asset-advanced-filters{grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr) minmax(150px,.8fr) minmax(180px,1fr) minmax(150px,.7fr) minmax(165px,.8fr) minmax(165px,.8fr);align-items:end}.asset-advanced-filters>label{margin:0}.compact-filter-field>span,.task-filter-field>span{display:block;margin-bottom:6px;color:#65778e;font-size:12px;font-weight:700}.compact-filter-field input{margin-top:0}.purchase-order-filter{max-width:210px}.filter-active{border-color:#1f6feb!important;background:#eef6ff!important;box-shadow:0 0 0 2px rgba(31,111,235,.11)!important;color:#153e72!important}.active-filter-strip{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 0;padding:8px 10px;border-radius:9px;background:#f2f7fd;color:#58708d;font-size:12px}.active-filter-strip>span{font-weight:800;color:#254f7f}.active-filter-strip b{border:1px solid #c7d9ef;background:#fff;border-radius:999px;padding:4px 8px;font-weight:600;color:#315c8c}
.uniform-filter-grid{align-items:end;padding:12px;border:1px solid #dce5f0;border-radius:11px;background:#f8fafc;gap:10px}.uniform-filter-grid .task-filter-field{margin:0;min-width:0}.uniform-filter-grid input,.uniform-filter-grid select{height:42px;min-height:42px;margin:0}.inventory-history-filters{grid-template-columns:minmax(230px,1.4fr) repeat(3,minmax(155px,1fr))}.log-filter-grid{grid-template-columns:minmax(240px,1.45fr) repeat(4,minmax(145px,1fr))}.all-assets-scope{margin-top:7px;width:max-content}
.procurement-tabs{display:flex;gap:7px;margin-bottom:12px;padding:6px;border:1px solid #d4e1f1;border-radius:11px;background:#eaf1fb}.procurement-tabs button{border:0;background:transparent;color:#4c6682;border-radius:8px;padding:9px 14px;font:inherit;font-weight:750;cursor:pointer;white-space:nowrap}.procurement-tabs button.active{background:#fff;color:#0b57d0;box-shadow:0 2px 9px rgba(24,61,112,.1)}.procurement-intro{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:12px 15px;border-radius:12px;background:linear-gradient(135deg,#f1f7ff,#f4fbf8);border:1px solid #d8e7f4}.procurement-intro b,.procurement-intro span{display:block}.procurement-intro b{font-size:18px;color:#123e72}.procurement-intro div>span{margin-top:3px;color:#667b94;font-size:12px}.procurement-import-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.procurement-import-step{display:grid;grid-template-columns:32px minmax(0,1fr);gap:9px;align-items:center;border:1px solid #dce6f2;border-radius:11px;background:#f8fbff;padding:12px}.procurement-import-step>span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#dceaff;color:#145ab1;font-weight:800}.procurement-import-step b,.procurement-import-step small{display:block}.procurement-import-step small{margin-top:3px;color:#71839a;overflow:hidden;text-overflow:ellipsis}.procurement-import-step .btn{grid-column:1/-1}.procurement-submit-bar{position:sticky;bottom:0;z-index:7;background:rgba(255,255,255,.96);padding:10px;border-top:1px solid #e3eaf2;box-shadow:0 -7px 18px rgba(30,55,90,.06)}#assetCreateForm label{margin-top:7px;margin-bottom:7px}
.modal.modal-wide{width:min(900px,calc(100vw - 24px))}.person-assets-modal{max-height:75vh;overflow-y:auto}
.modal.modal-room-return{width:min(920px,calc(100vw - 24px));height:min(88vh,820px);overflow:hidden;display:flex;flex-direction:column}.modal-room-return .modal-head{flex:0 0 auto}.modal-room-return #modalBody{flex:1;min-height:0;overflow:hidden}.modal-room-return .room-return-modal{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.modal-room-return #rrStep1,.modal-room-return #rrStep2{flex:1;min-height:0;display:flex;flex-direction:column}.modal-room-return .room-return-list{flex:1;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden}.modal-room-return .modal-actions{flex:0 0 auto;flex-wrap:wrap;margin:0;padding-top:12px;border-top:1px solid var(--line);background:#fff}.rr-bulk-tools{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:10px;align-items:end;margin-top:10px}.rr-bulk-tools label{margin:0}.room-return-row.configure{grid-template-columns:22px 56px minmax(0,1fr)!important;align-items:start;cursor:default}.room-return-row.configure .choice-thumb{width:56px;height:50px}.room-return-row.configure .rr-row-controls{grid-column:3;display:grid!important;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr);gap:8px;margin-top:8px}.room-return-row.configure .rr-row-controls label{display:grid;gap:5px;margin:0;color:#61758e;font-size:11px}.room-return-row.configure .rr-row-controls input,.room-return-row.configure .rr-row-controls select{margin:0;min-width:0}.room-return-row.configure .rr-target-wrap.hidden{display:none!important;visibility:visible}.room-return-row strong,.room-return-row small{overflow-wrap:anywhere}.room-return-row.review-row{grid-template-columns:32px minmax(0,1fr) minmax(190px,.65fr)}
.maint-asset-link{border:0;background:transparent;text-align:left;padding:3px;border-radius:9px;cursor:pointer;color:inherit}.maint-asset-link:hover{background:#eef5ff}.maintenance-data-warning{display:block;color:#a15b12;margin-top:5px;white-space:normal;max-width:180px}.person-type-tag.warning{background:#fff0dc;color:#a25c08}.people-scope-tabs,.role-permission-tabs{display:flex;gap:6px;overflow-x:auto;padding:6px;margin:10px 0;border:1px solid #d8e3f1;border-radius:10px;background:#eef4fb}.people-scope-tabs button,.role-permission-tab{border:0;background:transparent;border-radius:8px;padding:7px 11px;color:#49627f;cursor:pointer;white-space:nowrap}.people-scope-tabs button.active,.role-permission-tab.active{background:#fff;color:#0b57d0;box-shadow:0 2px 8px rgba(20,55,100,.1)}.parameter-person-row.account-warning{border-color:#edc485;background:#fffaf0}.account-warning-text{color:#9b5c12!important}.role-permission-config>header{position:sticky;top:0;z-index:2}.role-config-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.role-permission-grid{grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:8px;padding:10px}.permission-group{gap:5px;padding:8px;border:1px solid #e3eaf3;border-radius:9px;background:#fff}.permission-check{position:relative;margin:0!important;min-height:36px;align-items:center!important;padding:6px 28px 6px 8px;line-height:1.35}.permission-check>i{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#e8f1fc;color:#386898;font-style:normal;font-size:11px;cursor:help}.permission-check:hover{border-color:#a9c8ef;background:#f3f8ff}
@media(max-width:1150px){.asset-search-primary{grid-template-columns:repeat(3,minmax(150px,1fr))}.asset-advanced-filters,.log-filter-grid{grid-template-columns:1fr 1fr}.log-keyword-field{grid-column:1/-1}.purchase-order-filter{max-width:none}}
@media(max-width:900px){.asset-room-selection{align-items:flex-start;flex-direction:column}.inventory-history-filters{grid-template-columns:1fr 1fr}.procurement-import-steps{grid-template-columns:1fr}.rr-bulk-tools{grid-template-columns:1fr}}
@media(max-width:620px){.asset-search-primary,.asset-advanced-filters,.uniform-filter-grid{grid-template-columns:1fr}.log-keyword-field{grid-column:auto}.modal.modal-room-return{width:calc(100vw - 12px);height:94vh}.room-return-row.configure{grid-template-columns:22px 50px minmax(0,1fr)!important}.room-return-row.configure .rr-row-controls{grid-column:1/-1;grid-template-columns:1fr}.room-return-row.review-row{grid-template-columns:30px 1fr}.rr-review-action{grid-column:2}.modal-room-return .modal-actions .btn{flex:1 1 130px}.procurement-tabs{overflow-x:auto}.procurement-intro{align-items:flex-start;flex-direction:column}}
@media(max-width:760px){
  .sidebar{height:100dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}
  .sidebar .brand{flex:0 0 auto}
  .sidebar nav{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;overflow-y:auto;overflow-x:hidden;padding-right:3px;scrollbar-width:thin}
  .sidebar nav button{flex:0 0 auto;width:100%;min-height:40px}
  .sidebar-user{flex:0 0 auto;margin-top:0;padding-bottom:max(4px,env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(8,46,112,0),#082e70 14%)}
  .role-permission-config>header{position:static}
}

/* Late overrides: must remain after legacy room-return/import rules. */
.batch-preview-wrap{max-height:none;overflow:visible}
.rr-bulk-tools{grid-template-columns:minmax(150px,.6fr) minmax(260px,1fr) auto!important;align-items:end}
.room-return-row.configure{grid-template-columns:24px minmax(0,1fr) minmax(160px,.55fr) minmax(220px,.75fr)!important;align-items:center!important}
.room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{display:grid;grid-column:auto;gap:5px;margin:0}
.room-return-row.configure .rr-target-wrap.hidden{display:block!important;visibility:hidden}
.rr-asset-line{display:grid;grid-template-columns:46px minmax(120px,1fr) minmax(75px,.55fr) minmax(130px,1fr) minmax(110px,.8fr) minmax(85px,.6fr);gap:7px;align-items:center}
@media(max-width:1050px){.rr-bulk-tools{grid-template-columns:1fr 1fr!important}.rr-bulk-actions{grid-column:1/-1}.room-return-row.configure{grid-template-columns:24px minmax(0,1fr)!important}.room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{grid-column:2}.rr-asset-line{grid-template-columns:46px minmax(120px,1fr) repeat(2,minmax(85px,.7fr))}}
@media(max-width:720px){.rr-bulk-tools{grid-template-columns:1fr!important}.rr-asset-line{grid-template-columns:42px 1fr}.rr-asset-line>span{grid-column:2}.room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{grid-column:1/-1}.room-return-row.configure .rr-target-wrap.hidden{display:none!important}}

/* ===== V0.9.0 布草闭环 / 行李寄存 ===== */
.linen-kpi-draft{grid-template-columns:repeat(6,minmax(0,1fr))}
.linen-action-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:10px 0 14px}
.linen-action-card{min-height:92px;border:1px solid #cadced;border-radius:12px;background:linear-gradient(145deg,#fff,#f4f9ff);padding:14px;text-align:left;cursor:pointer;transition:.16s}
.linen-action-card:hover{border-color:#6ea0dc;transform:translateY(-1px);box-shadow:0 7px 18px rgba(26,77,134,.09)}
.linen-action-card:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.linen-action-card b,.linen-action-card span{display:block}.linen-action-card b{color:#17477b;font-size:15px}.linen-action-card span{margin-top:7px;color:#6c8097;font-size:12px}
.linen-action-card.danger-lite{background:#fff9f7;border-color:#edcbc3}.linen-action-card.danger-lite b{color:#a34639}
.linen-adjust-actions{margin-top:14px}.linen-balance-table td strong,.linen-balance-table td small{display:block}.linen-balance-table td small{margin-top:3px;color:#71839a}.linen-balance-table em{color:#b44a3c;font-style:normal;font-weight:700}
.linen-low-stock{background:#fff8f4}.linen-batch-list{display:grid;gap:9px}.linen-batch-card{display:grid;grid-template-columns:minmax(220px,1.25fr) 110px minmax(220px,1fr) auto;gap:12px;align-items:center;padding:12px;border:1px solid #d9e4f0;border-radius:12px;background:#fff}
.linen-batch-card strong,.linen-batch-card small{display:block}.linen-batch-card strong{margin:6px 0 3px;color:#173f70}.linen-batch-card small{color:#71839a}
.linen-batch-qty b,.linen-batch-qty span{display:block}.linen-batch-qty b{font-size:22px;color:#b45c1e}.linen-batch-qty span{font-size:11px;color:#7a899b}
.linen-batch-items{display:flex;flex-wrap:wrap;gap:5px}.linen-batch-items span{padding:4px 7px;border-radius:999px;background:#eef4fb;color:#45617f;font-size:11px}
.linen-flow-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;margin-bottom:12px;border-radius:10px;background:#eef6ff;border:1px solid #cbdff5}.linen-flow-banner b{color:#0f55a4;font-size:17px}.linen-flow-banner span{color:#637b96;font-size:12px}
.linen-entry-lines{display:grid;gap:8px}.linen-entry-line{display:grid;grid-template-columns:minmax(190px,1.2fr) 90px minmax(130px,.8fr) minmax(180px,1fr) auto;gap:8px;align-items:center;padding:9px;border:1px solid #dfe7f1;border-radius:10px;background:#f9fbfd}.linen-entry-line select,.linen-entry-line input{min-width:0;margin:0}
.compact-filter-row{display:grid;grid-template-columns:minmax(170px,.55fr) minmax(260px,1.5fr) auto auto;gap:9px;align-items:center}.compact-filter-row input,.compact-filter-row select{min-height:42px;margin:0}
.luggage-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#f3f8ff,#fff8ef)}.luggage-hero h3{margin:9px 0 4px;color:#123d70;font-size:24px}.luggage-hero p{margin:0;color:#63778e}.page-primary-actions{display:flex;gap:8px;flex-wrap:wrap}
.luggage-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.luggage-kpis>div{padding:14px;border:1px solid #dbe5ef;border-radius:12px;background:#fff}.luggage-kpis small,.luggage-kpis b{display:block}.luggage-kpis small{color:#71839a}.luggage-kpis b{margin-top:5px;color:#174b82;font-size:24px}
.luggage-order-list{display:grid;gap:9px;margin-top:12px}.luggage-order-card{display:grid;grid-template-columns:minmax(230px,1.2fr) 100px minmax(220px,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #d9e4f0;border-radius:12px;background:#fff;cursor:pointer}.luggage-order-card:hover{border-color:#8fb2dc;background:#fafdff}.luggage-order-main strong,.luggage-order-main small{display:block}.luggage-order-main strong{margin:6px 0;color:#173e70;font-size:17px}.luggage-order-main small{margin-top:3px;color:#71839a}.luggage-count b,.luggage-count span{display:block}.luggage-count b{color:#b05b20;font-size:24px}.luggage-count span{font-size:11px;color:#7a8999}.luggage-tags{display:flex;flex-wrap:wrap;gap:5px}.luggage-tags span{padding:4px 7px;border:1px solid #d3dfed;border-radius:999px;background:#f4f8fd;color:#46617f;font-size:11px}
.luggage-tag-entries{display:grid;gap:8px}.luggage-tag-entry{display:grid;grid-template-columns:minmax(150px,.65fr) minmax(240px,1.35fr) auto;gap:8px;padding:8px;border:1px solid #dfe7f0;border-radius:9px;background:#f9fbfd}.luggage-tag-entry input{margin:0}
.luggage-customer-summary{display:grid;grid-template-columns:1fr auto;gap:20px;padding:14px;border-radius:12px;background:linear-gradient(135deg,#eef6ff,#fff9f0);border:1px solid #d4e2f0}.luggage-customer-summary small,.luggage-customer-summary strong,.luggage-customer-summary span,.luggage-customer-summary b{display:block}.luggage-customer-summary strong{margin:4px 0;font-size:22px;color:#153f72}.luggage-customer-summary b{margin:4px 0;font-size:24px;color:#b35b1d;text-align:right}.luggage-customer-summary span{color:#657b94;font-size:12px}
.luggage-detail-meta{display:flex;flex-wrap:wrap;gap:6px 18px;padding:10px 2px;color:#687d94;font-size:12px}.luggage-detail-tags{display:grid;gap:7px}.luggage-detail-tag{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin:0!important;padding:10px;border:1px solid #dce5ef;border-radius:10px;background:#fff}.luggage-detail-tag>input{width:18px;min-height:18px}.luggage-detail-tag b,.luggage-detail-tag small,.luggage-detail-tag em{display:block}.luggage-detail-tag b{color:#173f70}.luggage-detail-tag small{margin-top:3px;color:#6c8097}.luggage-detail-tag em{margin-top:3px;color:#77879a;font-size:11px;font-style:normal}.luggage-detail-tag>i{font-style:normal;color:#2f7650;font-size:12px;font-weight:700}.luggage-detail-tag.picked{opacity:.62;background:#f3f5f7}.luggage-detail-tag.picked>i{color:#687787}
.luggage-pickup-panel{margin-top:14px;padding:13px;border:1px solid #bfd7f0;border-radius:11px;background:#f4f9ff}.luggage-pickup-panel h3{margin-top:0}.luggage-pickup-history{margin-top:13px;border:1px solid #dce5ef;border-radius:10px;padding:10px}.luggage-pickup-history summary{cursor:pointer;color:#2d6098;font-weight:700}.luggage-pickup-history>div{display:grid;grid-template-columns:minmax(150px,.7fr) minmax(170px,.8fr) minmax(240px,1.5fr);gap:10px;padding:8px 2px;border-top:1px dashed #dce5ef}.luggage-pickup-history>div:first-of-type{margin-top:8px}.luggage-pickup-history small{color:#657a92}
@media(max-width:1050px){.linen-kpi-draft{grid-template-columns:repeat(3,1fr)}.linen-batch-card,.luggage-order-card{grid-template-columns:minmax(220px,1fr) 100px minmax(180px,1fr)}.linen-batch-card .btn,.luggage-order-card .btn{grid-column:1/-1;width:max-content}.linen-entry-line{grid-template-columns:1fr 90px 1fr}.linen-entry-line [data-linen-line-note]{grid-column:1/-1}.luggage-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.linen-kpi-draft,.luggage-kpis{grid-template-columns:1fr 1fr}.linen-batch-card,.luggage-order-card{grid-template-columns:1fr}.linen-batch-card .btn,.luggage-order-card .btn{grid-column:auto}.linen-entry-line,.luggage-tag-entry,.compact-filter-row{grid-template-columns:1fr}.linen-entry-line [data-linen-line-note]{grid-column:auto}.luggage-hero{align-items:flex-start;flex-direction:column}.luggage-customer-summary{grid-template-columns:1fr}.luggage-customer-summary b{text-align:left}.luggage-pickup-history>div{grid-template-columns:1fr}.workspace-tabs.linen-tabs{overflow-x:auto;position:static}.workspace-tabs.linen-tabs button{white-space:nowrap}}

/* V0.9.1 布草 RFID 与 C72 盘点 */
.linen-rfid-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:-5px 0 14px}
.linen-rfid-strip>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid #d8e5ee;border-radius:10px;background:#f8fbff}
.linen-rfid-strip small{color:#677c93}.linen-rfid-strip b{font-size:20px;color:#164f87}
.linen-c72-guide{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;margin:6px 0 14px;border:1px solid #bcded3;border-radius:11px;background:#f0faf6;color:#476d63;line-height:1.55}
.linen-c72-guide b{white-space:nowrap;color:#17684f}.linen-manual-actions{opacity:.94}
.linen-rfid-table td strong,.linen-rfid-table td small{display:block}.linen-rfid-table td small{margin-top:3px;color:var(--muted)}
.linen-inventory-task-list{display:grid;gap:8px}.linen-inventory-task{display:grid;grid-template-columns:minmax(250px,1.5fr) minmax(100px,.5fr) minmax(120px,.6fr) auto;gap:14px;align-items:center;width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff;text-align:left;cursor:pointer}
.linen-inventory-task:hover{border-color:#aac6e7;background:#fbfdff}.linen-inventory-task.running{border-left:4px solid #2f74d0}.linen-inventory-task span b,.linen-inventory-task span small{display:block}.linen-inventory-task span small{margin-top:3px;color:var(--muted);font-size:11px}.linen-inventory-task>i{font-style:normal}
.linen-inventory-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:12px 0}
.linen-inventory-kpis>div{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.linen-inventory-kpis small,.linen-inventory-kpis b{display:block}.linen-inventory-kpis small{color:var(--muted)}.linen-inventory-kpis b{font-size:23px;margin-top:5px;color:#174b7d}
.linen-inventory-columns{display:grid;grid-template-columns:1.2fr .8fr;gap:14px;margin-top:14px}.linen-inventory-columns h4{margin:0 0 8px}.linen-inventory-anomalies,.linen-inventory-missing{display:grid;gap:7px;max-height:420px;overflow:auto}
.linen-inventory-anomaly{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid #efd0bd;border-radius:9px;background:#fff9f5}.linen-inventory-anomaly.resolved{border-color:#cbe0d7;background:#f5fbf8}.linen-inventory-anomaly strong,.linen-inventory-anomaly small,.linen-inventory-anomaly span{display:block}.linen-inventory-anomaly small{margin-top:3px;color:#687b91}.linen-inventory-anomaly span{margin-top:4px;color:#267258;font-size:11px}
.linen-inventory-missing>div{padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fafbfd}.linen-inventory-missing b,.linen-inventory-missing small{display:block}.linen-inventory-missing small{margin-top:3px;color:var(--muted)}
.linen-scan-details{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.linen-scan-details summary{cursor:pointer;color:#365b86;font-weight:700}
.linen-policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.linen-policy-grid article{padding:13px;border:1px solid var(--line);border-radius:10px;background:#f9fbfd}.linen-policy-grid b,.linen-policy-grid span{display:block}.linen-policy-grid b{color:#174b7d}.linen-policy-grid span{margin-top:5px;color:#687b91;font-size:12px;line-height:1.55}
@media(max-width:980px){.linen-inventory-kpis{grid-template-columns:repeat(3,1fr)}.linen-inventory-columns{grid-template-columns:1fr}.linen-inventory-task{grid-template-columns:1fr 100px 120px auto}}
@media(max-width:700px){.linen-rfid-strip{grid-template-columns:1fr 1fr}.linen-inventory-kpis{grid-template-columns:1fr 1fr}.linen-inventory-task{grid-template-columns:1fr 1fr}.linen-inventory-task>i{grid-column:2;grid-row:1;text-align:right}.linen-policy-grid{grid-template-columns:1fr}.linen-c72-guide{flex-direction:column;gap:5px}}

/* ========================================================================== */
/* Web V0.9.3 · PC / Mobile / PWA responsive system                         */
/* ========================================================================== */
html{overflow-x:hidden;scroll-behavior:smooth}
body{min-width:0;overflow-x:hidden}
button,input,select,textarea{min-width:0}
.btn,.icon-btn,.workspace-tabs button,.room-scope-switch button,.mobile-nav button{white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb}
.main{min-width:0}
.page{width:100%;max-width:1680px;margin-inline:auto}
.dashboard-priority-single{grid-template-columns:1fr!important}
.table-wrap{max-width:100%;overflow:auto;overscroll-behavior-inline:contain}
.table-wrap table{width:100%}
.table-wrap thead th{position:sticky;top:0;z-index:1;background:#f5f8fc}
.sidebar nav{scrollbar-width:thin;overscroll-behavior:contain}
.panel-head{min-width:0}
.panel-head>div{min-width:0}
.panel-head h3,.panel-head p{overflow-wrap:anywhere}
.toolbar,.row-actions,.table-actions,.page-primary-actions{min-width:0}
.top-search input{min-width:0}
.pwa-standalone body{padding-top:env(safe-area-inset-top)}
.pwa-standalone .sidebar{padding-top:max(20px,env(safe-area-inset-top))}

@media(max-width:920px), (max-width:1100px) and (hover:none) and (pointer:coarse){
  :root{--mobile-nav-height:64px}
  html,body{min-height:100%;min-height:var(--app-height,100dvh)}
  body{padding:0 0 calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));-webkit-text-size-adjust:100%}
  .app-shell{display:block;min-height:var(--app-height,100dvh)}
  .main{margin-left:0!important;width:100%!important;padding:0 12px 24px!important}

  /* Drawer navigation remains mobile in portrait and landscape. */
  .mobile-only{display:block!important}
  .sidebar{inset:0 auto 0 0!important;width:min(86vw,350px)!important;height:var(--app-height,100dvh)!important;min-height:0!important;padding:calc(16px + env(safe-area-inset-top)) 14px max(12px,env(safe-area-inset-bottom))!important;transform:translateX(-104%)!important;transition:transform .22s ease!important;z-index:270!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;box-shadow:16px 0 42px rgba(4,22,55,.24)}
  .sidebar.open{transform:translateX(0)!important}
  .sidebar .brand{flex:0 0 auto;padding-bottom:14px}
  .sidebar nav{display:flex!important;flex:1 1 auto!important;min-height:0!important;flex-direction:column!important;overflow-y:auto!important;overflow-x:hidden!important;padding:0 3px 10px 0}
  .sidebar nav button{flex:0 0 auto;width:100%;min-height:44px;display:flex;align-items:center;gap:10px}
  .sidebar nav button>span:nth-of-type(2){min-width:0;overflow:hidden;text-overflow:ellipsis}
  .sidebar .nav-count{display:inline-grid;flex:0 0 auto;width:auto;margin-left:auto}
  .sidebar-user{flex:0 0 auto;margin-top:0!important;padding:13px 10px 0!important;background:linear-gradient(180deg,rgba(16,39,72,0),var(--nav) 14%)}
  .sidebar-scrim{position:fixed!important;inset:0!important;display:block;background:rgba(4,18,36,.48)!important;z-index:260!important;backdrop-filter:blur(2px)}

  /* Compact, stable page header. */
  .topbar{position:sticky!important;top:0;z-index:150;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;gap:8px!important;height:auto!important;min-height:64px;padding:10px 0!important;align-items:center!important;background:rgba(243,246,250,.96);backdrop-filter:blur(12px);border-bottom:1px solid rgba(210,221,234,.74)}
  .topbar>.mobile-only{grid-column:1;grid-row:1;width:44px;height:44px;padding:0;display:grid!important;place-items:center;color:#1f6feb}
  .topbar>div:not(.top-search):not(.online-pill){grid-column:2;grid-row:1;min-width:0}
  .topbar h2{font-size:20px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .topbar p{display:none}
  .online-pill{grid-column:3;grid-row:1;margin:0!important}
  .top-search{grid-column:1/-1;grid-row:2;width:100%!important;margin:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px!important}
  .top-search input{height:46px;margin:0;font-size:16px}
  .top-search .btn{min-width:68px;height:46px;padding-inline:16px}

  .page{max-width:none;padding-top:10px}
  .panel{padding:14px!important;margin-bottom:12px;border-radius:13px}
  .panel-head{display:flex;align-items:flex-start!important;gap:10px;flex-wrap:wrap;margin-bottom:12px}
  .panel-head>div{flex:1 1 220px}
  .panel-head h3{font-size:17px;line-height:1.35}
  .panel-head p{font-size:12px;line-height:1.55}
  .panel-head>.btn,.panel-head>.badge{margin-left:auto}
  .btn{min-height:44px;padding:10px 13px;line-height:1.25}
  .btn.mini{min-height:40px;padding:8px 11px}
  input,select,textarea{min-height:44px;font-size:16px}
  label{margin:10px 0}

  /* PWA bottom navigation. */
  .mobile-nav{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;left:0;right:0;bottom:0;z-index:240;min-height:var(--mobile-nav-height);padding:5px 6px calc(5px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid #d7e0eb;box-shadow:0 -7px 24px rgba(23,47,82,.1);backdrop-filter:blur(14px)}
  .mobile-nav button{border:0;background:transparent;color:#66758a;border-radius:11px;padding:5px 2px 4px;display:grid;place-items:center;align-content:center;gap:2px;font-size:12px;cursor:pointer}
  .mobile-nav button i{height:20px;line-height:20px;font-style:normal;font-size:18px;font-weight:800}
  .mobile-nav button span{line-height:18px}
  .mobile-nav button.active{color:#1763d6;background:#edf4ff;font-weight:800}

  /* Grids and forms use two columns on a wide phone/tablet. */
  .metrics,.dashboard-metrics{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px}
  .metric{padding:13px;min-width:0}
  .metric b{font-size:24px}
  .metric span{font-size:11px;overflow-wrap:anywhere}
  .two-col,.approval-center-grid,.category-maintenance-grid,.linen-inventory-columns{grid-template-columns:1fr!important}
  .form-grid,.form-grid-3,.filter-grid,.asset-search-primary,.asset-advanced-filters,.uniform-filter-grid,.inventory-history-filters,.log-filter-grid,.maintenance-history-filters,.batch-ops-filter{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-grid .full,.form-grid-3 .full,.log-keyword-field{grid-column:1/-1!important}
  .inline-form{display:flex!important;flex-wrap:wrap;gap:8px!important;align-items:end!important}
  .inline-form>input:first-child,.inline-form>.location-picker:first-child{flex:1 1 260px;min-width:0}
  .inline-form>select{flex:1 1 150px;min-width:140px}
  .inline-form>.btn{flex:0 1 auto}
  .toolbar{display:flex;gap:8px;margin:10px 0 14px;flex-wrap:wrap;align-items:center}
  .toolbar>.btn{flex:0 1 auto}
  .pager{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap}
  .upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}

  /* Horizontal tab bars are intentional, short, and visibly scrollable. */
  .workspace-tabs,.parameter-tabs,.procurement-tabs,.maintenance-tabs,.inventory-tabs,.linen-tabs,.people-scope-tabs,.role-permission-tabs{position:relative!important;top:auto!important;display:flex!important;max-width:100%;overflow-x:auto!important;overflow-y:hidden;gap:6px;padding:6px;margin:0 0 12px;scroll-snap-type:x proximity;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .workspace-tabs button,.parameter-tabs button,.procurement-tabs button,.maintenance-tabs button,.inventory-tabs button,.linen-tabs button,.people-scope-tabs button,.role-permission-tabs button{flex:0 0 auto;min-height:42px;scroll-snap-align:start}

  /* Every application table becomes a labelled card list on narrow screens. */
  .table-wrap{overflow:visible!important;max-height:none!important}
  table.responsive-card-table{display:block!important;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
  table.responsive-card-table thead{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  table.responsive-card-table tbody{display:grid!important;grid-template-columns:1fr;gap:10px;width:100%}
  table.responsive-card-table tbody tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;width:100%;padding:12px;border:1px solid #d9e3ef;border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(20,50,90,.04)}
  table.responsive-card-table tbody td{display:block!important;min-width:0!important;width:auto!important;padding:0!important;border:0!important;white-space:normal!important;overflow-wrap:anywhere;vertical-align:top}
  table.responsive-card-table tbody td::before{content:attr(data-label);display:block;margin-bottom:4px;color:#748399;font-size:10px;font-weight:750;letter-spacing:.02em}
  table.responsive-card-table tbody td.responsive-card-primary{grid-column:1/-1;padding-bottom:8px!important;border-bottom:1px solid #edf1f6!important}
  table.responsive-card-table tbody td.responsive-card-actions{grid-column:1/-1;padding-top:7px!important;border-top:1px solid #edf1f6!important}
  table.responsive-card-table tbody td.check-col{grid-column:auto;padding:0!important;border:0!important}
  table.responsive-card-table tbody td.responsive-card-message{grid-column:1/-1!important;padding:8px!important;border:0!important}
  table.responsive-card-table tbody td.responsive-card-message::before{display:none}
  table.responsive-card-table .row-actions,table.responsive-card-table .table-actions{display:flex!important;gap:7px;flex-wrap:wrap;align-items:stretch}
  table.responsive-card-table .row-actions .btn,table.responsive-card-table .table-actions .btn{flex:1 1 120px}
  #maintenanceActivePane table.responsive-card-table tbody td.responsive-card-primary{border-bottom:0!important;padding-bottom:0!important}
  #maintenanceActivePane table.responsive-card-table .maint-asset-cell{width:100%;display:grid;grid-template-columns:64px minmax(0,1fr);gap:10px;align-items:center}
  #maintenanceActivePane table.responsive-card-table .maint-thumb{width:64px;height:58px}
  #maintenanceActivePane table.responsive-card-table tbody td.responsive-card-actions .row-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))}

  /* Asset search and room index. */
  .asset-search-primary #fQ{grid-column:1/-1}
  .asset-search-primary .btn{width:100%}
  .purchase-order-filter{max-width:none!important}
  .asset-room-selection{display:grid!important;grid-template-columns:1fr;align-items:start!important;padding:12px}
  .room-scope-switch{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .room-scope-switch button{min-height:44px;padding:8px 6px;white-space:normal;line-height:1.25}
  .room-scope-explain{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .room-scope-explain span{min-width:0;overflow-wrap:anywhere}
  .owner-asset-search-panel{grid-template-columns:1fr!important}
  .asset-quick-filters,.asset-action-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
  .asset-quick-filters>span,.asset-action-toolbar>.toolbar-label{flex:1 1 100%}
  .asset-action-toolbar .btn{flex:1 1 calc(33.333% - 8px)}
  .asset-action-toolbar #assetCount{flex:1 1 100%}
  .asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .asset-card{min-width:0}

  /* Full-screen mobile drawers and bottom-sheet style modals. */
  .backdrop{z-index:300!important;backdrop-filter:blur(2px)}
  .drawer{inset:0!important;z-index:310!important;width:100vw!important;height:var(--app-height,100dvh)!important;max-height:none!important;border-radius:0!important;overflow:auto!important;padding-bottom:env(safe-area-inset-bottom)}
  .drawer-head,.modal-head{padding:calc(13px + env(safe-area-inset-top)) 15px 13px;min-height:62px}
  .drawer .detail{padding:14px 14px calc(22px + env(safe-area-inset-bottom))}
  .modal{inset:auto 0 0 0!important;left:0!important;top:auto!important;transform:none!important;z-index:320!important;width:100vw!important;max-width:none!important;height:min(94dvh,var(--app-height,100dvh))!important;max-height:none!important;border-radius:18px 18px 0 0!important;display:flex;flex-direction:column;overflow:hidden!important}
  .modal.hidden{display:none!important}
  .modal-head{flex:0 0 auto;padding-top:14px;background:#fff}
  .modal>#modalBody{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
  .modal-body{padding:14px 14px calc(12px + env(safe-area-inset-bottom))!important}
  .modal-actions{position:sticky;bottom:0;z-index:6;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin:16px -14px -14px!important;padding:11px 14px calc(11px + env(safe-area-inset-bottom))!important;background:rgba(255,255,255,.98);border-top:1px solid #dfe6ef;box-shadow:0 -6px 18px rgba(22,47,80,.07)}
  .modal-actions .btn{flex:1 1 130px}
  .modal.modal-room-return{height:var(--app-height,100dvh)!important;border-radius:0!important}
  .modal-room-return #modalBody,.modal-room-return .room-return-modal,.modal-room-return #rrStep1,.modal-room-return #rrStep2{min-height:0!important;overflow:hidden!important}
  .modal-room-return .room-return-list{overflow-y:auto!important;overflow-x:hidden!important;padding-right:1px}
  .modal-room-return .modal-actions{position:static;margin:0!important;padding:11px 0 calc(6px + env(safe-area-inset-bottom))!important;box-shadow:none}
  .rr-bulk-tools{grid-template-columns:1fr!important;gap:8px!important}
  .rr-bulk-actions{grid-column:auto!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .rr-bulk-actions .btn{height:44px}
  .room-return-row.configure{grid-template-columns:24px minmax(0,1fr)!important;align-items:start!important;padding:10px!important}
  .room-return-row.configure>.rr-asset-summary{grid-column:2}
  .room-return-row.configure>.rr-action-field,.room-return-row.configure>.rr-target-wrap{grid-column:1/-1!important;display:grid!important;visibility:visible!important}
  .room-return-row.configure .rr-target-wrap.hidden{display:none!important}
  .rr-asset-line{grid-template-columns:48px minmax(0,1fr)!important;gap:6px 9px!important}
  .rr-asset-line .choice-thumb{grid-row:1/3;width:48px!important;height:46px!important}
  .rr-asset-line>span{grid-column:2!important}
  .room-return-row.review-row{grid-template-columns:30px minmax(0,1fr)!important}
  .rr-review-action{grid-column:2!important}

  /* Asset detail has a compact visual hierarchy. */
  .asset-detail-hero{grid-template-columns:150px minmax(0,1fr)!important;gap:13px}
  .asset-photo-cover{width:150px;height:132px}
  .asset-hero-main h3{font-size:20px}
  .detail-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .detail-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .detail-actions .btn{width:100%}
  .photo-gallery-main{height:52dvh}

  /* Complex module cards. */
  .approval-center-grid{gap:12px}
  .transfer-approval-row{grid-template-columns:56px minmax(0,1fr)!important;align-items:start}
  .transfer-approval-row .choice-thumb{width:56px;height:50px}
  .transfer-approval-row>.btn{grid-column:2;width:max-content}
  .disposal-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .disposal-filters,.category-map-form,.unmapped-category-row,.purchase-feedback-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .procurement-import-steps{grid-template-columns:1fr!important}
  .procurement-intro,.linen-hero,.luggage-hero{align-items:flex-start!important;flex-direction:column!important}
  .procurement-submit-bar{bottom:calc(var(--mobile-nav-height) + env(safe-area-inset-bottom));margin-inline:-14px;padding-inline:14px}
  .batch-preview-card-head{grid-template-columns:minmax(0,1fr) auto!important}
  .batch-preview-card-head .btn{grid-column:1/-1}
  .batch-final-list>div{grid-template-columns:1fr 1fr!important}
  .linen-kpi-draft{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .linen-rfid-strip,.linen-inventory-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .linen-batch-card,.luggage-order-card{grid-template-columns:minmax(0,1fr) auto!important;gap:9px!important}
  .linen-batch-card>:nth-child(n+3),.luggage-order-card>:nth-child(n+3){grid-column:1/-1}
  .linen-entry-line{grid-template-columns:1fr 100px!important}
  .linen-entry-line [data-linen-line-note],.linen-entry-line .btn{grid-column:1/-1}
  .compact-filter-row{grid-template-columns:1fr auto auto!important}
  .compact-filter-row>input:first-child{grid-column:1/-1}
  .linen-inventory-task{grid-template-columns:minmax(0,1fr) auto!important;gap:8px!important}
  .linen-inventory-task>*:nth-child(n+3){grid-column:1/-1}
  .luggage-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .luggage-tag-entry{grid-template-columns:1fr auto!important}
  .luggage-tag-entry [data-luggage-tag-desc]{grid-column:1/-1;grid-row:2}
  .luggage-tag-entry [data-remove-luggage-tag]{grid-column:2;grid-row:1}
  .luggage-customer-summary{grid-template-columns:1fr auto!important}
  .luggage-pickup-history>div{grid-template-columns:1fr!important}
  .linen-policy-grid{grid-template-columns:1fr!important}
  .config-audit-flow{grid-template-columns:1fr!important}
  .config-audit-flow i{transform:rotate(90deg);text-align:center}
  .config-start-grid,.demand-create-grid,.demand-item-filters,.demand-qty-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .config-start-grid .btn,.demand-create-grid .wide,.demand-item-filters>span{grid-column:1/-1!important}
  .config-check-card{grid-template-columns:1fr!important}
  .config-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .config-qty-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .demand-line-controls,.demand-detail-fields{grid-template-columns:1fr!important}
  .demand-toolbar{position:static!important}
  .demand-compact-table{overflow:visible!important}
  .demand-compact-head{display:none!important}
  .demand-compact-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;min-width:0!important;gap:8px 12px!important;margin:9px;padding:11px!important;border:1px solid #dce5f0!important;border-radius:11px;background:#fff}
  .demand-compact-row>span{min-width:0;overflow-wrap:anywhere}
  .demand-compact-row>span:first-child{grid-column:1/-1;padding-bottom:7px;border-bottom:1px solid #edf1f5}
  .demand-compact-row>span:not(:first-child)::before{display:block;margin-bottom:3px;color:#748399;font-size:10px;font-weight:750}
  .demand-compact-row>span:nth-child(2)::before{content:'类型'}
  .demand-compact-row>span:nth-child(3)::before{content:'最低需求'}
  .demand-compact-row>span:nth-child(4)::before{content:'当前准备'}
  .demand-compact-row>span:nth-child(5)::before{content:'缺口'}
  .demand-compact-row>span:nth-child(6)::before{content:'状态'}
  .demand-compact-row>span:nth-child(7){grid-column:1/-1}
  .demand-compact-row>span:nth-child(7)::before{content:'操作'}
  .demand-compact-row>span:nth-child(7) .btn{width:100%}
  .demand-compact-extra{grid-column:1/-1!important}
  .template-detail-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .template-detail-row>*:first-child{grid-column:1/-1}
  .template-detail-row .btn{grid-column:1/-1}
  .parameter-groups{grid-template-columns:1fr!important}
  .people-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .role-permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .parameter-location{grid-template-columns:minmax(0,1fr) auto!important}
  .parameter-location>*:not(.location-permission-tag):not(.parameter-location-actions){grid-column:1}
  .parameter-location-actions{grid-column:1/-1;justify-content:stretch}
  .parameter-location-actions .btn{flex:1}
  .parameter-person-row{grid-template-columns:42px minmax(0,1fr) auto!important}
  .parameter-person-actions{grid-column:1/-1!important;justify-content:flex-start!important}
  .activity-line{align-items:flex-start}
  .activity-one-line{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:4px 7px;white-space:normal!important}
  .activity-one-line .activity-summary,.activity-one-line small{grid-column:1/-1;white-space:normal;overflow-wrap:anywhere}
  .activity-one-line small{display:block!important}
  .room-index-strip{overflow:visible!important;flex-wrap:wrap}
  .room-index-chip{flex:1 1 150px;min-width:0!important}
  .maint-asset-cell,.row-actions{min-width:0!important}
}

@media(max-width:620px){
  .main{padding-inline:9px!important}
  .page{padding-top:7px}
  .panel{padding:12px!important}
  .metrics,.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .form-grid,.form-grid-3,.filter-grid,.asset-search-primary,.asset-advanced-filters,.uniform-filter-grid,.inventory-history-filters,.log-filter-grid,.maintenance-history-filters,.batch-ops-filter{grid-template-columns:1fr!important}
  .form-grid .full,.form-grid-3 .full,.log-keyword-field,.asset-search-primary #fQ{grid-column:auto!important}
  .inline-form{grid-template-columns:minmax(0,1fr) auto!important}
  .inline-form>select{grid-column:1/-1}
  .asset-grid{grid-template-columns:1fr!important}
  .asset-card{display:grid;grid-template-columns:112px minmax(0,1fr);min-height:124px}
  .asset-photo{height:124px}
  .upload-grid{grid-template-columns:1fr!important}
  .room-scope-switch,.room-scope-explain{grid-template-columns:1fr!important}
  .asset-action-toolbar .btn{flex:1 1 calc(50% - 8px)}
  table.responsive-card-table tbody tr{grid-template-columns:1fr}
  table.responsive-card-table tbody td,table.responsive-card-table tbody td.responsive-card-primary,table.responsive-card-table tbody td.responsive-card-actions,table.responsive-card-table tbody td.check-col{grid-column:1!important;padding:0 0 7px!important;border:0!important;border-bottom:1px solid #edf1f6!important}
  table.responsive-card-table tbody td.responsive-card-actions{padding-top:2px!important;padding-bottom:0!important;border-bottom:0!important}
  table.responsive-card-table tbody td.responsive-card-message{padding:8px!important;border:0!important}
  #maintenanceActivePane table.responsive-card-table tbody td.responsive-card-actions .row-actions{grid-template-columns:1fr 1fr!important}
  #maintenanceActivePane table.responsive-card-table tbody td.responsive-card-actions .row-actions .btn:first-child{grid-column:1/-1}
  .asset-detail-hero{grid-template-columns:1fr!important}
  .asset-photo-cover{width:100%!important;height:210px!important}
  .detail-grid.compact{grid-template-columns:1fr 1fr!important}
  .batch-final-list>div{grid-template-columns:1fr!important}
  .linen-kpi-draft,.linen-rfid-strip,.linen-inventory-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .linen-batch-card,.luggage-order-card,.linen-entry-line,.compact-filter-row{grid-template-columns:1fr!important}
  .linen-batch-card>*,.luggage-order-card>*,.linen-entry-line>*,.compact-filter-row>*{grid-column:auto!important;grid-row:auto!important}
  .linen-batch-card .btn,.luggage-order-card .btn{width:100%}
  .luggage-customer-summary{grid-template-columns:1fr!important}
  .luggage-customer-summary b{text-align:left}
  .role-permission-grid,.role-picker{grid-template-columns:1fr!important}
  .config-start-grid,.demand-create-grid,.demand-item-filters,.demand-qty-grid,.disposal-filters,.category-map-form,.unmapped-category-row,.purchase-feedback-row{grid-template-columns:1fr!important}
  .config-start-grid .btn,.demand-create-grid .wide,.demand-item-filters>span{grid-column:auto!important}
  .config-item-grid{grid-template-columns:1fr!important}
  .people-grid{grid-template-columns:1fr!important}
  .rr-bulk-actions{grid-template-columns:1fr!important}
  .transfer-approval-row>.btn{grid-column:1/-1;width:100%}
  .modal{height:var(--app-height,100dvh)!important;border-radius:0!important}
  .drawer-head,.modal-head{padding-inline:13px}
  .modal-body{padding-inline:12px!important}
  .modal-actions{margin-inline:-12px!important;padding-inline:12px!important}
}

@media(max-width:390px){
  .top-search .btn{min-width:62px;padding-inline:12px}
  .metric{padding:11px}.metric b{font-size:22px}
  .asset-card{grid-template-columns:98px minmax(0,1fr)}
  .asset-photo{height:118px}
  .detail-grid.compact{grid-template-columns:1fr!important}
  .mobile-nav button{font-size:11px}
}

/* iPhone landscape and other short coarse-pointer viewports. */
@media(max-width:920px) and (orientation:landscape){
  :root{--mobile-nav-height:56px}
  .topbar{grid-template-columns:auto minmax(140px,.8fr) auto minmax(220px,1.2fr)!important;min-height:54px;padding:5px 0!important}
  .topbar>.mobile-only{grid-column:1;grid-row:1;width:42px;height:42px}
  .topbar>div:not(.top-search):not(.online-pill){grid-column:2;grid-row:1}
  .online-pill{grid-column:3;grid-row:1}
  .top-search{grid-column:4;grid-row:1}
  .top-search input,.top-search .btn{height:42px;min-height:42px}
  .page{padding-top:8px}
  .mobile-nav{min-height:var(--mobile-nav-height);padding-top:2px;padding-bottom:calc(2px + env(safe-area-inset-bottom))}
  .mobile-nav button{grid-template-columns:auto auto;gap:5px;padding:2px}
  .mobile-nav button i{font-size:15px;height:18px;line-height:18px}
  .mobile-nav button span{font-size:11px}
  .modal{height:var(--app-height,100dvh)!important;border-radius:0!important}
  .drawer-head,.modal-head{padding-top:9px;padding-bottom:9px;min-height:50px}
}

@media(max-width:620px) and (orientation:landscape){
  .topbar{grid-template-columns:auto minmax(105px,.75fr) minmax(200px,1.25fr)!important}
  .online-pill{display:none}
  .top-search{grid-column:3;grid-row:1}
}

/* ======================================================================== */
/* Web V0.9.3 · visual consistency, compact permission marks and room-first */
/* ======================================================================== */

/* One button language across every business page. */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  min-height:40px;padding:9px 15px;border:1px solid #cbd8e7;border-radius:10px;
  background:linear-gradient(180deg,#fff,#f8fbff);color:#24415f;font-weight:650;
  line-height:1.2;white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;
  box-shadow:0 1px 2px rgba(26,58,95,.05);transition:transform .14s ease,border-color .14s ease,box-shadow .14s ease,background .14s ease
}
.btn:hover:not(:disabled){transform:translateY(-1px);border-color:#9dbce3;background:#f3f8ff;box-shadow:0 5px 14px rgba(29,71,123,.10)}
.btn:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 3px rgba(29,71,123,.08)}
.btn.primary{border-color:#155fd3;background:linear-gradient(135deg,#1e6de0,#0e56c8);color:#fff;box-shadow:0 5px 13px rgba(22,96,211,.20)}
.btn.primary:hover:not(:disabled){border-color:#0e50b8;background:linear-gradient(135deg,#1764d4,#0b4eb8);box-shadow:0 7px 18px rgba(22,96,211,.25)}
.btn.danger-outline{border-color:#efc5c5;background:#fffafa;color:#b73535}
.btn.danger:hover:not(:disabled),.btn.danger-outline:hover:not(:disabled){border-color:#da8f8f;background:#fff0f0;color:#a92929;box-shadow:0 5px 14px rgba(180,52,52,.12)}
.btn.return-ready:hover:not(:disabled){border-color:#117846;background:#117846;color:#fff;box-shadow:0 7px 18px rgba(23,143,85,.24)}
.btn.mini{min-height:34px;padding:7px 11px;border-radius:9px;font-size:12px}
.btn:focus-visible,.workspace-tabs button:focus-visible,.icon-btn:focus-visible,.location-suggestion:focus-visible,.quick:focus-visible,.todo-card:focus-visible,.disposal-summary-card:focus-visible,.linen-action-card:focus-visible,.linen-inventory-task:focus-visible,.room-candidate:focus-visible{outline:3px solid rgba(31,111,235,.24);outline-offset:2px}
.toolbar,.panel-head-actions,.row-actions,.table-actions,.page-primary-actions{gap:8px}
.uniform-filter-grid{display:grid;align-items:end}
.uniform-filter-grid>.btn{height:42px;align-self:end}
.table-actions{display:flex;align-items:center;flex-wrap:wrap}
.toast{z-index:420}
.drawer .detail-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.status-pill{display:inline-flex;align-items:center;width:max-content;padding:4px 9px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:750;line-height:1.25;white-space:nowrap}
.status-pill.normal{border-color:#cde8d7;background:#e8f6ed;color:#187141}
.status-pill.warning{border-color:#f0d99c;background:#fff4d7;color:#9b6200}
.status-pill.muted{border-color:#dce2e9;background:#eef1f5;color:#6c7a8b}
.status-pill.danger{border-color:#f0c8c8;background:#fdeaea;color:#bd2929}

/* Segmented tabs: fixes browser-default buttons on maintenance and linen. */
.workspace-tabs,.maintenance-tabs,.inventory-tabs,.linen-tabs,.parameter-tabs,.procurement-tabs{
  display:flex;align-items:center;gap:5px;width:max-content;max-width:100%;margin:0 0 15px;padding:5px;
  overflow-x:auto;overflow-y:hidden;border:1px solid #d3dfed;border-radius:13px;background:#edf3fa;
  box-shadow:inset 0 1px 2px rgba(31,63,102,.04);scrollbar-width:thin;-webkit-overflow-scrolling:touch
}
.workspace-tabs button,.maintenance-tabs button,.inventory-tabs button,.linen-tabs button,.parameter-tabs button,.procurement-tabs button{
  appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
  min-height:38px;padding:9px 15px;border:1px solid transparent;border-radius:9px;background:transparent;
  color:#4c6480;font:inherit;font-size:13px;font-weight:700;line-height:1.2;cursor:pointer;
  white-space:nowrap;word-break:keep-all;writing-mode:horizontal-tb;transition:background .14s ease,color .14s ease,box-shadow .14s ease
}
.workspace-tabs button:hover,.maintenance-tabs button:hover,.inventory-tabs button:hover,.linen-tabs button:hover,.parameter-tabs button:hover,.procurement-tabs button:hover{background:rgba(255,255,255,.72);color:#174f93}
.workspace-tabs button.active,.maintenance-tabs button.active,.inventory-tabs button.active,.linen-tabs button.active,.parameter-tabs button.active,.procurement-tabs button.active{
  border-color:#dce6f3;background:#fff;color:#0b57c7;box-shadow:0 3px 10px rgba(30,70,120,.11)
}

/* Permission values are always presented as accessible 普 / 审 / 限 marks. */
.location-display{display:inline-flex;align-items:center;gap:6px;max-width:100%;vertical-align:middle;white-space:nowrap}
.location-display-name{min-width:0;font-weight:inherit;white-space:nowrap}
.location-permission-icon{
  display:inline-grid;place-items:center;flex:0 0 auto;width:30px;height:30px;border:1px solid transparent;border-radius:9px;
  font-size:12px;font-weight:850;font-style:normal;line-height:1;letter-spacing:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.58)
}
.location-permission-icon.compact{width:22px;height:22px;border-radius:7px;font-size:11px}
.location-permission-icon.normal{border-color:#cde8d7;background:#e8f6ed;color:#187141}
.location-permission-icon.approval{border-color:#f0d99c;background:#fff4d7;color:#9b6200}
.location-permission-icon.restricted{border-color:#f0c8c8;background:#fdeaea;color:#bd2929}
.asset-alert.permission{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 9px;background:#f3f6fa;color:#4f6278}
.asset-alert.permission.approval{background:#fff8e5;color:#89601a}.asset-alert.permission.restricted{background:#fff0f0;color:#9f3030}
.detail-item.normal,.detail-item.approval,.detail-item.restricted{display:grid;align-content:start}.detail-item.approval{background:#fff8e7}.detail-item.restricted{background:#fff0f0}
.location-suggestion-state{display:flex;align-items:center;justify-content:flex-end;gap:6px}.location-suggestion-state i{padding:3px 7px;border-radius:999px;background:#eef1f5;color:#77879a;font-size:10px;font-style:normal}

/* Stable location rows: information, statuses and actions never compete for implicit columns. */
.parameter-location{
  display:grid;grid-template-columns:minmax(230px,1fr) auto minmax(270px,max-content)!important;
  grid-template-areas:"main badges actions";gap:14px;align-items:center;padding:11px 14px!important
}
.parameter-location-main{grid-area:main;min-width:0;display:grid;gap:4px}.parameter-location-main strong{font-size:16px;color:#122f54}.parameter-location-main small{overflow-wrap:anywhere}
.parameter-location.disabled{opacity:1;background:#f8fafc}.parameter-location.disabled .parameter-location-main strong{color:#33445b}.parameter-location-main .location-disabled-at{color:#9b511e;font-weight:700;font-size:13px}.location-retired-note{color:#64748b;font-size:13px;white-space:nowrap}
.parameter-location-badges{grid-area:badges;display:flex;align-items:center;justify-content:flex-end;gap:8px;min-width:0}
.parameter-location-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:0;flex-wrap:wrap}
.parameter-location-actions .btn{margin:0}
.location-inflight-list{display:grid;gap:8px;max-height:min(54vh,520px);overflow:auto}.location-inflight-list>div{display:grid;gap:4px;padding:10px 12px;border:1px solid #d7e3ef;border-radius:9px;background:#fff}.location-inflight-list b{color:#163a65}.location-inflight-list span{color:#51657e;overflow-wrap:anywhere}
.status-pill.luggage{border:1px solid #cddff7;background:#edf5ff;color:#275e9d}
.person-status{white-space:nowrap}

/* Room-first renovation history is compact enough for PC and becomes cards on PWA. */
.demand-history-table{table-layout:auto;width:100%}
.demand-history-table th,.demand-history-table td{white-space:normal;vertical-align:middle}
.demand-history-table th:first-child{min-width:150px}.demand-history-table th:nth-child(3){min-width:150px}.demand-history-table th:nth-child(5){min-width:230px}
.demand-room-cell{display:grid;gap:3px}.demand-room-cell strong{font-size:14px;color:#143a67}.demand-room-cell small{color:#74849a;font-size:11px}
.demand-plan-date{font-variant-numeric:tabular-nums;color:#284966}
.demand-status-pill{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}
.demand-status-pill.running{background:#eaf3ff;color:#1b5fa8}.demand-status-pill.done{background:#e8f6ed;color:#197043}.demand-status-pill.cancelled{background:#eef1f5;color:#6e7b8c}.demand-status-pill.muted{background:#f2f4f7;color:#687587}
.demand-progress-cell{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.demand-progress-cell span{display:inline-flex;align-items:baseline;gap:3px;padding:4px 7px;border-radius:7px;background:#f2f6fb;color:#65778e;font-size:10px;white-space:nowrap}
.demand-progress-cell span b{color:#1b4777;font-size:12px}.demand-progress-cell span.danger{background:#fff0ee;color:#a4453a}.demand-progress-cell span.danger b{color:#b43128}.demand-progress-cell span.warning{background:#fff7e1;color:#93651d}.demand-progress-cell span.warning b{color:#a26300}
.config-generate-progress{margin:12px 0 0;padding:12px 14px;border:1px solid #c9dcf5;border-radius:11px;background:#f4f8fe;color:#234d7c}
.config-generate-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.config-generate-progress-head span{color:#657b95;font-size:11px;font-variant-numeric:tabular-nums}
.config-generate-progress-track{height:8px;margin:9px 0 7px;border-radius:999px;background:#dce8f7;overflow:hidden}.config-generate-progress-track i{display:block;width:38%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0b61d8,#46a2ff);transform:translateX(-120%);animation:config-generate-moving 1.35s ease-in-out infinite}
.config-generate-progress small{display:block;color:#61758e}.config-generate-progress.done{border-color:#b9dfc8;background:#f0faf4;color:#21623c}.config-generate-progress.done .config-generate-progress-track{background:#d9efdf}.config-generate-progress.done .config-generate-progress-track i{width:100%;transform:none;animation:none;background:#2e9b5f}
.config-generate-progress.failed{border-color:#efc6c1;background:#fff6f5;color:#a33b31}.config-generate-progress.failed .config-generate-progress-track i{animation:none;width:100%;transform:none;background:#d75449}
@keyframes config-generate-moving{0%{transform:translateX(-120%)}55%{transform:translateX(125%)}100%{transform:translateX(270%)}}

/* Remove two legacy empty grid tracks that squeezed PC filters. */
.asset-search-primary{grid-template-columns:minmax(240px,2fr) repeat(3,minmax(125px,1fr)) auto auto!important}
.asset-advanced-filters{grid-template-columns:repeat(6,minmax(125px,1fr))!important}

@media(max-width:1180px){
  .parameter-location{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"main badges" "actions actions"}
  .parameter-location-actions{justify-content:flex-start}
}

@media(max-width:920px), (max-width:1100px) and (hover:none) and (pointer:coarse){
  .workspace-tabs,.maintenance-tabs,.inventory-tabs,.linen-tabs,.parameter-tabs,.procurement-tabs{width:100%;border-radius:12px}
  .workspace-tabs button,.maintenance-tabs button,.inventory-tabs button,.linen-tabs button,.parameter-tabs button,.procurement-tabs button{min-height:42px;padding:9px 13px}
  .parameter-location{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"main badges" "actions actions"!important;gap:9px 10px!important}
  .parameter-location-badges{align-self:start;flex-wrap:wrap}
  .parameter-location-actions{justify-content:stretch!important;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .parameter-location-actions .btn{width:100%;min-width:0;padding-inline:8px}
  .demand-history-table th:nth-child(n){min-width:0}
  .table-wrap{max-width:100%;overflow-x:auto!important;overflow-y:visible!important;-webkit-overflow-scrolling:touch}
}

@media(max-width:620px){
  .btn{min-height:44px}.btn.mini{min-height:40px}
  .parameter-location{grid-template-columns:1fr!important;grid-template-areas:"main" "badges" "actions"!important}
  .parameter-location-badges{justify-content:flex-start}
  .parameter-location-actions{grid-template-columns:1fr 1fr}
  .parameter-location-actions .pm-loc-luggage{grid-column:1/-1}
  .demand-history-table.responsive-card-table .demand-progress-cell{gap:4px}
  .demand-history-table.responsive-card-table .demand-open-task{width:100%}
  .drawer .detail-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}
  .schema-notice{align-items:flex-start;flex-direction:column;line-height:1.55}
  .schema-notice strong{white-space:normal}.schema-notice span{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
}

@media(max-width:390px){.drawer .detail-grid.compact{grid-template-columns:1fr}}

/* Web V0.9.4.1 · production-readiness components retained in V0.9.5 */
.status-pill.warehouse{border:1px solid #c9d8ee;background:#edf3fb;color:#254d7d}
.inventory-warehouse-shortcuts{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}
.inventory-warehouse-shortcuts small{width:100%;color:#6d7e93;font-size:11px}
.category-chip-wrap{display:inline-flex;align-items:stretch;margin:3px;border:1px solid #cedcec;border-radius:999px;overflow:hidden;background:#f6f9fd}
.category-chip-wrap .category-chip{margin:0!important;border:0!important;border-radius:0!important}
.category-delete{appearance:none;width:29px;border:0;border-left:1px solid #d7e1ed;background:#fff;color:#9c4b4b;font-size:16px;cursor:pointer}
.category-delete:hover{background:#fff0f0;color:#b3261e}
.maintenance-vouchers{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px;padding-top:8px;border-top:1px dashed #d9e2ed}
.maintenance-vouchers>small{margin-right:3px}.maintenance-vouchers .choice-thumb{width:42px!important;height:38px!important;padding:0}

.modal-room-return{width:min(1180px,calc(100vw - 24px))!important}
.room-return-list.rr-compact-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:min(58vh,610px);overflow:auto;padding:5px}
.rr-compact-grid .room-return-row.configure{display:grid!important;grid-template-columns:24px minmax(0,1fr) minmax(150px,180px)!important;gap:7px!important;align-items:center!important;padding:8px!important;border:1px solid #dbe5f0!important;border-radius:11px!important;background:#fff}
.rr-compact-grid .rr-asset-summary{min-width:0}
.rr-asset-compact{display:grid;grid-template-columns:44px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 8px;width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}
.rr-asset-compact .choice-thumb{grid-row:1/3;width:44px!important;height:42px!important;border-radius:8px}
.rr-asset-compact strong{align-self:end;color:#143a67;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rr-asset-compact small{align-self:start;color:#74849a;font-size:10px}
.rr-inline-detail{grid-column:1/-1;display:grid;gap:3px;margin-top:6px;padding:7px 8px;border-radius:8px;background:#f6f9fd;color:#52677f;font-size:11px}
.rr-inline-detail.hidden{display:none!important}.rr-inline-detail b{color:#173b65}.rr-inline-detail .ownership-risk{margin:2px 0 0;padding:4px 6px}
.rr-compact-grid .rr-action-field{min-width:0}.rr-compact-grid .rr-action-field select{width:100%;min-width:0;font-size:12px}
.rr-compact-grid .rr-target-wrap{grid-column:2/4}.rr-compact-grid .rr-target-wrap.hidden{display:none!important;visibility:visible!important}
.rr-compact-grid+.room-return-list{margin-top:8px}.rr-list-head:has(+ .rr-compact-grid){display:none!important}
.room-return-list.review .review-row.compact{display:grid!important;grid-template-columns:28px 44px minmax(110px,1fr) minmax(180px,1fr)!important;align-items:center;gap:8px;padding:8px 10px}
.review-row.compact .choice-thumb{width:44px!important;height:40px!important}
.review-row.compact>div:nth-child(3){display:grid;gap:2px}.review-row.compact>div:nth-child(3) small{color:#71839a;font-size:10px}

@media(max-width:900px){
  .room-return-list.rr-compact-grid{grid-template-columns:1fr;max-height:none;padding:0}
  .rr-compact-grid .room-return-row.configure{grid-template-columns:24px minmax(0,1fr)!important}
  .rr-compact-grid .rr-action-field,.rr-compact-grid .rr-target-wrap{grid-column:2/3}
  .room-return-list.review .review-row.compact{grid-template-columns:26px 42px minmax(0,1fr)!important}.review-row.compact .rr-review-action{grid-column:2/4}
}
@media(max-width:620px){
  .parameter-location-actions{grid-template-columns:1fr 1fr!important}.parameter-location-actions .pm-loc-luggage,.parameter-location-actions .pm-loc-warehouse{grid-column:auto!important}
  .rr-compact-grid .room-return-row.configure{padding:7px!important}.rr-bulk-tools{grid-template-columns:1fr!important}
}

/* Web V0.9.5 · compact acceptance, asset policy, channel catalog and unified approvals */
.asset-name-with-policy{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%;vertical-align:middle}
.asset-name-with-policy>span:first-child{min-width:0;overflow-wrap:anywhere}
.asset-transfer-icon{display:inline-grid;place-items:center;flex:0 0 auto;width:21px;height:21px;border:1px solid transparent;border-radius:6px;font-size:11px;font-weight:900;line-height:1}
.asset-transfer-icon.compact{width:18px;height:18px;border-radius:5px;font-size:10px}
.asset-transfer-icon.direct{border-color:#b9dfc8;background:#e9f7ef;color:#167444}
.asset-transfer-icon.approval{border-color:#f0cb85;background:#fff5dd;color:#9a6300}
.asset-transfer-icon.blocked{border-color:#efb1aa;background:#fff0ee;color:#bd3025}
.asset-policy-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid;border-radius:999px;font-size:11px;font-weight:750;white-space:nowrap}
.asset-policy-badge.direct{border-color:#c5e4d2;background:#edf8f2;color:#176840}.asset-policy-badge.approval{border-color:#efd39d;background:#fff7e7;color:#875a0c}.asset-policy-badge.blocked{border-color:#efbeb8;background:#fff2f0;color:#a73229}

#page-procurement .procurement-intro{margin-bottom:8px;padding:9px 12px}.procurement-intro b{font-size:16px}
#page-procurement [data-procurement-pane="single"]{padding:13px 15px}
#assetCreateForm .form-section-title{margin:9px 0 4px;padding:5px 8px;font-size:12px}
#assetCreateForm .form-section-title span{width:21px;height:21px;font-size:11px}
#assetCreateForm .form-grid{gap:5px 10px}
#assetCreateForm label,#assetCreateForm fieldset{margin-top:3px;margin-bottom:3px}
#assetCreateForm input,#assetCreateForm select{min-height:38px}
#assetCreateForm .field-help{margin-top:3px;font-size:10px;line-height:1.35}
.procurement-quantity-field{max-width:150px}.procurement-quantity-field input{width:96px!important;max-width:96px}
.compact-choice-field{min-width:0;padding:0;border:0}.compact-choice-field legend{margin-bottom:5px;color:#304b69;font-size:12px}
.choice-segment{display:flex;min-height:38px;padding:3px;border:1px solid #cbd8e7;border-radius:9px;background:#f4f7fb}
.choice-segment label{flex:1;display:block!important;margin:0!important;cursor:pointer}.choice-segment input{position:absolute;opacity:0;pointer-events:none}
.choice-segment label span{display:flex;align-items:center;justify-content:center;height:30px;padding:0 9px;border-radius:6px;color:#62758d;font-size:12px;font-weight:750;white-space:nowrap}
.choice-segment input:checked+span{background:#fff;color:#0b57c2;box-shadow:0 1px 5px rgba(25,67,120,.16)}
.transfer-policy-segment input[value="需主管确认"]:checked+span{color:#925f00}.transfer-policy-segment input[value="禁止调拨"]:checked+span{background:#fff2f0;color:#b43128}
.ownership-choice input[value="公司"]:checked+span{background:#eaf3ff;color:#075db8}.ownership-choice input[value="业主"]:checked+span{background:#fff3df;color:#955800}
.transfer-policy-segment input[value="可直接调拨"]:checked+span{background:#e9f8ee;color:#16723a}.transfer-policy-segment input[value="需主管确认"]:checked+span{background:#fff5db;color:#925f00}.transfer-policy-segment input[value="禁止调拨"]:checked+span{background:#fff0ee;color:#b43128}
.asset-create-fixed-status{display:grid;align-content:center;gap:3px;min-height:68px;padding:9px 11px;border:1px solid #cfe0f2;border-radius:9px;background:#f3f8ff}.asset-create-fixed-status>span{color:#60758d;font-size:12px}.asset-create-fixed-status>b{color:#168047;font-size:14px}.asset-create-fixed-status>small{color:#6f8197;font-size:10.5px;line-height:1.45}
.energy-batch-source{display:block!important}.energy-batch-source-preview-btn{display:grid;grid-template-rows:76px auto;width:100%;height:100%;padding:0;border:0;background:#fff;cursor:zoom-in}.energy-batch-source-preview-btn>span{position:absolute;top:4px;left:4px;z-index:1;display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:11px;background:rgba(17,69,112,.88);color:#fff;font-size:10px;font-weight:850}.energy-batch-source-preview-btn>small{overflow:hidden;padding:5px 4px;color:#5e778d;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.energy-batch-source-remove{position:absolute;top:3px;right:3px;z-index:3;width:24px;height:24px;min-height:24px;padding:0;border:1px solid #fff;border-radius:50%;background:#c93d35;color:#fff;font-size:17px;font-weight:900;line-height:20px;box-shadow:0 2px 5px rgba(80,20,18,.25);cursor:pointer}.energy-batch-source-remove:hover{background:#a92420}
.rr-scope-tabs .rr-disposed-tab b{background:#d33b32!important;color:#fff!important}.rr-scope-tabs .rr-disposed-tab.active{border-color:#d33b32!important;background:#fff0ef!important;color:#a82d27!important}.rr-luggage-warning{padding:9px 11px;border:1px solid #efc36e;border-radius:9px;background:#fff8e7;color:#805516;font-size:12px;font-weight:750}.rr-report{height:100%;display:flex;flex-direction:column;gap:10px}.rr-report-head{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid #d8e3ef;border-radius:10px;background:#f6f9fc}.rr-report-head div{display:grid;gap:4px}.rr-report-head span{color:#6c7f96;font-size:12px}.rr-report-head>span{align-self:center;padding:5px 9px;border-radius:999px;font-weight:800}.rr-report-head>span.done{background:#e9f7ee;color:#17723b}.rr-report-head>span.pending{background:#fff4dc;color:#936000}.rr-report-list{flex:1;min-height:0;overflow:auto;display:grid;gap:7px}.rr-report-row{display:grid;grid-template-columns:28px minmax(160px,1fr) minmax(110px,.6fr) minmax(220px,1.2fr);gap:9px;align-items:center;padding:10px;border:1px solid #dce5ef;border-radius:9px}.rr-report-row>span{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#eaf2ff;color:#1260bd;font-weight:800}.rr-report-row div{display:grid;gap:3px}.rr-report-row small{color:#71839a;font-size:10.5px}.rr-report-row em{font-style:normal;font-size:10.5px}.rr-report-row em.ok{color:#158044}.rr-report-row em.error{color:#c1362d}@media(max-width:720px){.rr-report-row{grid-template-columns:26px 1fr}.rr-report-row>div:nth-of-type(n+2){grid-column:2}}
#assetCreateForm .form-details{margin-top:7px}.form-details>summary{padding:9px 11px}
.purchase-channel-picker{position:relative}.purchase-channel-suggestions{position:absolute;z-index:35;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow:auto;padding:5px;border:1px solid #c9d8e9;border-radius:9px;background:#fff;box-shadow:0 10px 28px rgba(27,58,99,.15)}
.purchase-supplier-field{display:grid;align-content:start;gap:6px;min-width:0}.purchase-supplier-field>label{color:#60768a;font-size:14px}.purchase-supplier-field .purchase-channel-picker>input{width:100%;padding-right:52px;min-height:48px}.purchase-supplier-add{position:absolute;top:2px;right:2px;width:44px;height:44px;border:0;border-left:1px solid #d3e5f0;border-radius:0 8px 8px 0;background:#eaf3f8;color:#315c83;font-size:25px;cursor:pointer}.purchase-supplier-add:hover{background:#d3e5f0}.purchase-supplier-add:focus-visible{outline:3px solid #426b96;outline-offset:1px}
.purchase-channel-suggestion{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 9px;border:0;border-radius:7px;background:#fff;color:#234464;text-align:left;cursor:pointer}.purchase-channel-suggestion:hover,.purchase-channel-suggestion:focus{background:#edf5ff}.purchase-channel-suggestion small,.purchase-channel-free small{color:#73849a;font-size:10px}
.purchase-channel-free{display:grid;gap:3px;padding:9px;color:#36546f;font-size:11px}

.channel-parameter-create{display:grid;grid-template-columns:minmax(210px,1fr) minmax(220px,1.2fr) auto;gap:8px;margin-bottom:10px}.channel-parameter-create input{min-height:39px}
.channel-parameter-list{display:grid;gap:7px}.channel-parameter-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 10px;border:1px solid #d9e3ef;border-radius:10px;background:#fff}.channel-parameter-row.disabled{background:#f4f6f8;opacity:.72}.channel-parameter-row>div:first-child{display:grid;gap:3px}.channel-parameter-row small{color:#74849a}.channel-parameter-actions{display:flex;gap:5px;flex-wrap:wrap}

.approval-source-list{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:3px 0}.approval-source-chip{display:inline-flex;width:max-content;padding:3px 7px;border:1px solid;border-radius:999px;font-size:10px;font-weight:750}.approval-source-chip.room{border-color:#c4d8ef;background:#eff6ff;color:#285c94}.approval-source-chip.asset{border-color:#efd19a;background:#fff6e4;color:#8d5b05}
.transfer-approval-detail{display:grid;grid-template-columns:58px minmax(0,1fr);gap:11px;margin-bottom:12px;padding:11px;border:1px solid #d5e1ef;border-radius:11px;background:#f7faff}.transfer-approval-detail>.choice-thumb{width:58px!important;height:54px!important}.transfer-approval-detail>div{display:grid;gap:4px}.transfer-approval-detail small{color:#61758c}.approval-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}

.modal-room-return{width:min(1180px,calc(100vw - 18px))!important}
.room-return-steps{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important;margin:0 0 6px!important}
.room-return-steps span{min-height:38px;padding:8px 11px!important;border-radius:8px!important;font-size:14px!important;line-height:1.3}
.modal-room-return .asset-edit-note{margin:0 0 6px;padding:7px 10px;font-size:11px}
.rr-bulk-tools{grid-template-columns:auto minmax(250px,1fr) auto!important;gap:8px!important;align-items:center!important;margin:0 0 6px!important;padding:7px 9px;border:1px solid #d8e4f0;border-radius:9px;background:#f8fbff}
.rr-bulk-label{min-width:118px}.rr-bulk-label b{display:inline;font-size:13px}.rr-bulk-label span{display:block;margin-top:1px!important;font-size:10px!important}
.rr-bulk-tools>label{grid-template-columns:auto minmax(220px,1fr);align-items:center;gap:7px!important;margin:0!important}.rr-bulk-tools>label>span{white-space:nowrap}.rr-bulk-tools input{min-height:36px}.rr-bulk-actions{gap:5px}.rr-bulk-actions .btn{min-height:36px!important;padding:6px 10px;font-size:11px}
.modal-room-return #rrStep1>.toolbar{min-height:38px;margin:0 0 6px;padding:4px 0;gap:6px}.modal-room-return #rrStep1>.toolbar .btn{min-height:34px;padding:5px 10px;font-size:12px}
.room-return-list.rr-compact-grid{grid-template-columns:1fr!important;gap:6px!important;max-height:none;padding:2px!important}
.rr-compact-grid .room-return-row.configure{grid-template-columns:24px minmax(210px,1fr) minmax(180px,215px) minmax(270px,340px)!important;gap:8px!important;align-items:center!important;padding:7px 9px!important;border-radius:9px!important}
.rr-compact-grid .rr-action-field,.rr-compact-grid .rr-target-wrap{grid-column:auto!important;min-width:0}.rr-compact-grid .rr-target-wrap.hidden{display:none!important}
.rr-compact-grid .rr-target-wrap .location-picker,.rr-compact-grid .rr-target-wrap input{width:100%!important;min-width:0!important}.rr-compact-grid .rr-action-field select,.rr-compact-grid .rr-target-wrap input{min-height:36px;font-size:11px}
.rr-asset-compact strong,.review-row.compact strong{display:flex;align-items:center;gap:5px;min-width:0}.rr-asset-compact strong>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:900px){
  .approval-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .rr-bulk-tools{grid-template-columns:1fr 1fr!important}.rr-bulk-label{grid-column:1/-1}.rr-bulk-actions{grid-column:auto!important;justify-content:flex-end}
  .rr-compact-grid .room-return-row.configure{grid-template-columns:24px minmax(0,1fr) minmax(170px,210px)!important}
  .rr-compact-grid .rr-action-field{grid-column:3!important}.rr-compact-grid .rr-target-wrap{grid-column:2/4!important}
}
@media(max-width:680px){
  #page-procurement [data-procurement-pane="single"]{padding:10px}.procurement-quantity-field{max-width:none}.procurement-quantity-field input{width:110px!important}
  .choice-segment{overflow-x:auto}.choice-segment label span{padding-inline:7px;font-size:11px}
  .channel-parameter-create,.channel-parameter-row{grid-template-columns:1fr}.channel-parameter-actions{display:grid;grid-template-columns:repeat(3,1fr)}
  .rr-bulk-tools{grid-template-columns:1fr!important}.rr-bulk-label,.rr-bulk-actions{grid-column:1!important}.rr-bulk-tools>label{grid-template-columns:1fr}.rr-bulk-actions{justify-content:stretch}.rr-bulk-actions .btn{flex:1}
  .rr-compact-grid .room-return-row.configure{grid-template-columns:24px minmax(0,1fr)!important}.rr-compact-grid .rr-action-field,.rr-compact-grid .rr-target-wrap{grid-column:2!important}
  .transfer-approval-detail{grid-template-columns:46px minmax(0,1fr)}.transfer-approval-detail>.choice-thumb{width:46px!important;height:44px!important}
}

/* Web V0.9.6 · grouped asset editor and ownership-aware room-return workbench */
.asset-edit-shell{display:grid;gap:10px}.asset-edit-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.55fr);gap:8px;padding:10px 12px;border:1px solid #cfe0f2;border-radius:11px;background:linear-gradient(135deg,#f2f7ff,#fff)}
.asset-edit-overview>div{display:grid;gap:3px}.asset-edit-overview small{color:#71839a;font-size:10px}.asset-edit-overview b{color:#173f6e;font-size:13px}
.asset-edit-group{padding:11px 12px;border:1px solid #dbe5ef;border-radius:12px;background:#fff}.asset-edit-group>header{display:flex;align-items:center;gap:9px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #e8eef5}
.asset-edit-group>header>span{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;border-radius:8px;background:#e9f2ff;color:#0b5bc8;font-size:12px;font-weight:900}.asset-edit-group>header>div{display:grid;gap:2px}.asset-edit-group h4,.asset-edit-group p{margin:0}.asset-edit-group h4{color:#173d69;font-size:14px}.asset-edit-group p{color:#71839a;font-size:10px}
.asset-edit-group .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px}.asset-photo-entry>div:last-child{display:flex;align-items:center;justify-content:space-between;gap:10px}.asset-photo-entry>div:last-child>small{color:#73849a}

.rr-workbench{gap:0;font-size:13px}.rr-room-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:9px;padding:11px 13px;border:1px solid #ead8ad;border-radius:10px;background:#fff9e9}.rr-room-summary>div:first-child{display:grid;gap:4px}.rr-room-summary>div:first-child b{font-size:16px}.rr-room-summary span{color:#765f2c;font-size:12px;line-height:1.45}.rr-room-summary>div:last-child{display:grid;place-items:center;min-width:58px}.rr-room-summary>div:last-child strong{color:#173f70;font-size:22px}.rr-room-summary>div:last-child small{color:#72839a;font-size:11px}
.rr-scope-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:9px}.rr-scope-tabs button{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:46px;padding:9px 12px;border:1px solid #d6e1ed;border-radius:10px;background:#f6f8fb;color:#536b85;font-size:16px;font-weight:800;cursor:pointer}.rr-scope-tabs button b{display:grid;place-items:center;min-width:30px;height:28px;padding:0 8px;border-radius:999px;background:#e3e9f1;color:#425a74;font-size:14px}.rr-scope-tabs button.active{border-color:#5b92e5;background:#edf5ff;color:#155ab5;box-shadow:0 3px 12px rgba(35,91,164,.1)}.rr-scope-tabs button.active b{background:#1769d3;color:#fff}
.rr-rule-strip{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:9px;padding:8px 10px;border-radius:9px;background:#f7f9fc;color:#526b84;font-size:12px;line-height:1.4}.rr-rule-strip span{display:inline-flex;align-items:center;gap:6px}.rr-rule-strip i{width:8px;height:8px;border-radius:999px;background:#3a8bd8}.rr-rule-strip i.company{background:#1c78ce}.rr-rule-strip i.owner{background:#23915b}.rr-rule-strip i.foreign{background:#db5f55}.rr-rule-strip i.away{background:#d59620}
.rr-bulk-drawer{margin-bottom:7px;border:1px solid #dbe5ef;border-radius:9px;background:#f9fbfd}.rr-bulk-drawer>summary{padding:9px 11px;color:#47617d;font-size:12px;font-weight:750;cursor:pointer}.rr-bulk-drawer[open]>summary{border-bottom:1px solid #e3eaf2}.rr-bulk-drawer .rr-bulk-tools{grid-template-columns:minmax(260px,1fr) auto!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important}.rr-bulk-drawer .rr-bulk-tools>label{display:grid!important;grid-template-columns:auto minmax(220px,1fr)!important}
.rr-selection-toolbar{min-height:34px!important;margin:0 0 6px!important;font-size:12px}.room-return-list.rr-work-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px!important;max-height:none!important;margin:0!important;padding:2px!important;overflow-y:auto}.rr-work-grid .rr-work-card.hidden{display:none!important}
.rr-work-grid .rr-work-card{display:grid!important;grid-template-columns:22px minmax(0,1fr)!important;gap:7px!important;align-items:start!important;margin:0!important;padding:8px!important;border:1px solid #d8e3ef!important;border-radius:11px!important;background:#fff!important;cursor:default!important}.rr-work-grid .rr-work-card>input{margin-top:15px}.rr-card-body{min-width:0;display:grid;gap:6px}
.rr-four-fields{display:grid;grid-template-columns:54px minmax(105px,1.1fr) minmax(120px,1fr) minmax(115px,.9fr);gap:7px;align-items:stretch}.rr-four-fields .rr-photo{width:54px!important;height:54px!important;margin:auto 0;padding:0;border:1px solid #dbe4ee;border-radius:8px;cursor:zoom-in}.rr-field{min-width:0;display:grid;align-content:center;gap:3px;padding:6px 7px;border:1px solid #e5ebf2;border-radius:8px;background:#f9fbfd;color:#425b76;text-align:left}.rr-field small{color:#6f8298;font-size:11px}.rr-field strong{min-width:0;color:#173b64;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.rr-field>span{display:flex;align-items:center;gap:4px;min-height:17px;color:#687d94;font-size:10.5px}.rr-category{appearance:none;width:100%;cursor:pointer}.rr-category:hover{border-color:#92b7e6;background:#f0f6ff}
.rr-relation{display:inline-flex!important;width:max-content;padding:3px 6px;border-radius:999px;background:#eaf3ff!important;color:#2364aa!important;font-size:10px!important}.rr-relation.foreign_owner_current,.rr-relation.owner_unassigned_current{background:#fff0ee!important;color:#ad3b32!important}.rr-relation.owner_away{background:#fff4dc!important;color:#8a5b05!important}
.rr-card-actions{display:grid;grid-template-columns:minmax(165px,.8fr) minmax(210px,1.2fr);gap:8px}.rr-card-actions label{display:grid;gap:4px;margin:0;color:#5f748c;font-size:11px}.rr-card-actions select,.rr-card-actions input{min-height:38px!important;font-size:13px!important}.rr-card-actions .rr-target-wrap.hidden{display:none!important;visibility:visible!important}.rr-card-warning{padding:7px 8px;border-radius:7px;background:#fff0ee;color:#aa3b32;font-size:11px}.rr-work-card .rr-inline-detail{margin:0;padding:7px 8px;font-size:12px}.rr-auto-check{display:grid;place-items:center;width:22px;height:22px;margin-top:15px;border-radius:6px;background:#218c58;color:#fff;font-size:14px;font-weight:900}.rr-fixed-action{display:grid;gap:3px;padding:9px 11px;border:1px solid #c8e3d4;border-radius:9px;background:#eff9f3}.rr-fixed-action small{color:#5d806c;font-size:11px}.rr-fixed-action strong{color:#17673d;font-size:14px}.rr-fixed-action span{color:#567463;font-size:11px}.rr-auto-action{box-shadow:inset 3px 0 #2f9b65}
.room-return-list.rr-review-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:none!important;padding:2px}.rr-review-card{display:grid;grid-template-columns:27px 48px repeat(3,minmax(78px,1fr));gap:7px;align-items:center;padding:9px;border:1px solid #dce5ef;border-radius:10px;background:#fff}.rr-review-card .choice-thumb{width:48px!important;height:46px!important}.rr-review-card>div{min-width:0;display:grid;gap:3px}.rr-review-card small{color:#6f8298;font-size:10.5px}.rr-review-card strong{color:#183d67;font-size:12px;overflow-wrap:anywhere}.rr-review-card .rr-review-action{grid-column:3/-1;padding:7px 8px;border-radius:7px;background:#edf5ff;color:#245e9d;font-size:12px}.rr-review-card .rr-review-action.danger{background:#fff1ef;color:#ad3b32}

@media(max-width:1000px){.asset-edit-group .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-return-list.rr-work-grid,.room-return-list.rr-review-grid{grid-template-columns:1fr}.rr-workbench #rrStep1{overflow:auto}}
@media(max-width:680px){.asset-edit-overview,.asset-edit-group .form-grid{grid-template-columns:1fr}.asset-edit-group{padding:9px}.asset-photo-entry>div:last-child{align-items:stretch;flex-direction:column}.rr-room-summary{grid-template-columns:1fr auto}.rr-scope-tabs{grid-template-columns:1fr}.rr-rule-strip{display:grid;gap:5px}.rr-bulk-drawer .rr-bulk-tools,.rr-bulk-drawer .rr-bulk-tools>label{grid-template-columns:1fr!important}.rr-four-fields{grid-template-columns:44px minmax(0,1fr) minmax(0,1fr)}.rr-four-fields .rr-photo{grid-row:1/3;width:44px!important;height:44px!important}.rr-four-fields .rr-field:nth-child(4){grid-column:2/4}.rr-card-actions{grid-template-columns:1fr}.rr-review-card{grid-template-columns:24px 40px minmax(0,1fr)}.rr-review-card>div{grid-column:3}.rr-review-card .rr-review-action{grid-column:2/4}}

/* Web V0.9.7 · staged configuration, module logs, safe luggage pickup and multi-photo intake */
.form-section-title small{margin-left:auto;color:#73849a;font-size:10px;font-weight:500}
.upload-box-preview{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;cursor:default}.upload-box-preview>b{color:#23496f;text-align:left}.upload-trigger{display:inline-flex!important;align-items:center;justify-content:center;min-height:32px!important;margin:0!important;padding:5px 10px;border-radius:8px;background:#eaf3ff;color:#1e5fa8!important;font-size:11px!important;font-weight:750;cursor:pointer}.upload-trigger input{display:none}.upload-box-preview>.draft-photo-qr{grid-column:2}.upload-box-preview>.multi-photo-preview,.upload-box-preview>small{grid-column:1/-1}
.multi-upload-field{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:10px;border:1px dashed #b8c9dc;border-radius:10px;background:#f9fbfe}.multi-upload-field>b{color:#315170;font-size:12px}.multi-upload-field input[type=file]{grid-column:1}.multi-upload-field>.btn{grid-column:2}.multi-upload-field>.multi-photo-preview,.multi-upload-field>small{grid-column:1/-1}
.multi-photo-preview{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:7px;min-height:64px!important;height:auto!important;padding:6px;border:1px solid #e0e8f1;border-radius:9px;background:#fff;color:#8190a1;font-size:10px;place-items:stretch!important;overflow:visible!important}.photo-thumb{display:block;width:100%;min-height:58px;padding:0;border:1px solid #d8e2ed;border-radius:8px;background:#eef3f8;overflow:hidden;cursor:zoom-in}.photo-thumb img{display:block;width:100%;height:58px;object-fit:cover;object-position:center}.photo-ref-chip{display:grid;place-items:center;min-height:58px;border-radius:8px;background:#edf5ff;color:#2a649f}

.config-workflow-steps{display:grid;grid-template-columns:repeat(6,minmax(95px,1fr));gap:6px;margin:10px 0}.config-workflow-step{position:relative;display:flex;align-items:center;gap:7px;min-height:38px;padding:6px 9px;border:1px solid #dae3ed;border-radius:10px;background:#f5f7fa;color:#758397;font-size:10px;font-weight:750}.config-workflow-step i{display:grid;place-items:center;flex:0 0 auto;width:23px;height:23px;border-radius:999px;background:#e3e8ee;color:#647386;font-style:normal}.config-workflow-step.done{border-color:#bedfc9;background:#edf8f1;color:#257142}.config-workflow-step.done i{background:#299557;color:#fff}.config-workflow-step.active{border-color:#79a9e9;background:#eef5ff;color:#175dab;box-shadow:0 3px 11px rgba(25,88,169,.1)}.config-workflow-step.active i{background:#176ad2;color:#fff}.config-workflow-terminal{grid-column:1/-1;padding:8px 10px;border:1px solid #ebc5c0;border-radius:9px;background:#fff2f0;color:#a33d34;font-size:11px;font-weight:750}
.config-role-notice{margin-bottom:8px;padding:8px 10px;border-left:3px solid #3d87dd;border-radius:7px;background:#eff6ff;color:#365d86;font-size:11px;line-height:1.5}.config-stage-pill{display:inline-flex;align-items:center;width:max-content;margin-left:8px;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800;white-space:nowrap}.config-stage-pill.running{background:#eaf3ff;color:#1b5fa8}.config-stage-pill.pending{background:#fff4db;color:#8f6008}.config-stage-pill.done{background:#e8f6ed;color:#197043}.config-stage-pill.cancelled{background:#fff0ee;color:#a64036}.config-current-owner{display:block;margin-top:4px;color:#6c7e92}
.config-workflow-group{border:1px solid #d8e3ef;border-radius:12px;background:#fff;overflow:hidden}.config-workflow-group+*{margin-top:9px}.config-workflow-group>summary{display:flex;justify-content:space-between;padding:10px 13px;background:#edf5ff;color:#193f6c;cursor:pointer}.config-workflow-group>summary span{color:#6d7f94;font-size:11px}.config-workflow-lines{display:grid;gap:8px;padding:9px}.config-workflow-line{border:1px solid #dbe4ee;border-radius:11px;background:#fff;overflow:hidden}.config-workflow-line.optional{opacity:.76}.config-workflow-line>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;border-bottom:1px solid #e5ebf2;background:#fafcfe}.config-workflow-line>header>div{display:flex;align-items:center;gap:7px;min-width:0;flex-wrap:wrap}.config-workflow-line>header b{color:#183e69;font-size:13px}.config-workflow-line>header small{flex-basis:100%;margin-left:44px;color:#718297;font-size:10px}.config-item-code{display:inline-flex;align-items:center;justify-content:center;min-width:37px;padding:3px 6px;border-radius:6px;background:#e9f2ff;color:#1d62ae;font-size:10px;font-weight:900;vertical-align:middle}
.config-line-sections{display:grid;grid-template-columns:1fr 1.08fr 1fr}.config-line-section{min-width:0;padding:9px 10px;border-right:1px solid #e5ebf2}.config-line-section:last-child{border-right:0}.config-line-section.readonly{background:#f3f5f7;color:#738094}.config-line-section.readonly input,.config-line-section.readonly select{border-color:#dfe4e9;background:#e9edf1;color:#798593;opacity:1}.config-line-section.editable{background:#fff}.config-line-section.request.editable{box-shadow:inset 0 3px #428be0}.config-line-section.stock.editable{box-shadow:inset 0 3px #3a9b66}.config-line-section.purchase.editable{box-shadow:inset 0 3px #dc9129}.config-line-section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}.config-line-section-title b{color:#244b74;font-size:11px}.config-line-section-title span{padding:2px 5px;border-radius:999px;background:#e9eef4;color:#66778a;font-size:8.5px}.config-line-section.editable .config-line-section-title span{background:#e8f4ff;color:#1a65b3}.config-line-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:7px}.config-line-fields label{display:grid;gap:3px;margin:0;color:#687b91;font-size:9px}.config-line-fields label.wide{grid-column:1/-1}.config-line-fields input,.config-line-fields select{min-width:0;min-height:32px;padding:5px 7px;font-size:10px}.config-check-label{display:flex!important;align-items:center!important;gap:5px}.config-check-label input{width:16px!important;min-height:16px!important}.config-shortage-readout{display:grid;align-content:center;gap:2px;padding:5px 7px;border:1px solid #e0e7ef;border-radius:7px;background:#fff}.config-shortage-readout small{color:#7b8a9b;font-size:8.5px}.config-shortage-readout b{color:#ad4438;font-size:12px}.config-live-stock{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;padding:6px 7px;border-radius:7px;background:#edf8f1;color:#31724b;font-size:10px}.config-live-stock .btn{margin-left:auto}.config-live-warning{margin-bottom:6px;padding:5px 7px;border-radius:7px;background:#fff0ee;color:#ad4238;font-size:9px}.config-linked-assets{display:grid;gap:5px;max-height:120px;margin-bottom:7px;overflow:auto}.config-linked-assets .config-asset-mini{padding:5px}.config-linked-assets .thumb{width:36px!important;height:34px!important}.config-linked-assets .demand-asset-state{font-size:8px;padding:2px 5px}
.config-essential-tag{display:inline-flex;width:max-content;padding:4px 7px;border-radius:999px;background:#eaf3ff;color:#28629f;font-size:9px;font-weight:800}.config-essential-tag.optional{background:#f1f3f5;color:#6b7581}

.approval-config-panel{margin-top:12px}.config-todo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.config-todo-card{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px;border:1px solid #d8e3ef;border-radius:11px;background:#fff}.config-todo-progress{display:grid;place-items:center;gap:3px}.config-todo-progress b{color:#1762b7;font-size:17px}.config-todo-progress span{display:block;width:35px;height:4px;border-radius:4px;background:#dce9f8}.config-todo-card>div:nth-child(2){display:grid;gap:3px;min-width:0}.config-todo-card small{color:#6f8196;font-size:10px}.log-module-tag{display:inline-flex;padding:4px 7px;border-radius:999px;background:#edf4fc;color:#2f6297;font-size:9px;font-weight:750;white-space:nowrap}

.luggage-pickup-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:9px}.luggage-pickup-history>div.luggage-pickup-history-grid{display:grid;padding:0;border:0}.luggage-pickup-record{padding:9px;border:1px solid #dbe5ef;border-radius:9px;background:#fff}.luggage-pickup-record.forced{border-color:#efc2bc;background:#fff9f8}.luggage-pickup-record header{display:flex;align-items:center;justify-content:space-between;gap:8px}.pickup-method-pill{padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800}.pickup-method-pill.verified{background:#e8f6ed;color:#247044}.pickup-method-pill.forced{background:#fff0ee;color:#ad3d34}.luggage-pickup-record>div{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px}.luggage-pickup-record>div span{display:grid;gap:2px;color:#354f69;font-size:10px}.luggage-pickup-record small{color:#7b8a9b;font-size:8px}.luggage-pickup-record p{margin:6px 0 0;color:#5c7189;font-size:9px;overflow-wrap:anywhere}.pickup-risk-note{margin-top:7px;padding:6px;border-radius:6px;background:#fff0ee;color:#a23c33;font-size:8.5px;line-height:1.5}.risk-warning{display:grid;gap:5px;margin-bottom:12px;padding:12px;border:1px solid #efb8b0;border-radius:10px;background:#fff3f1;color:#9f3c33}.risk-warning span{font-size:11px;line-height:1.6}.risk-confirm-check{display:flex!important;align-items:flex-start;gap:8px;padding:10px;border:1px solid #d9e3ed;border-radius:9px;background:#f8fafc}.risk-confirm-check input{flex:0 0 auto;width:18px!important;height:18px!important;margin-top:1px}

@media(max-width:1100px){.config-line-sections{grid-template-columns:1fr}.config-line-section{border-right:0;border-bottom:1px solid #e5ebf2}.config-line-section:last-child{border-bottom:0}.config-workflow-steps{grid-template-columns:repeat(3,1fr)}.config-todo-list{grid-template-columns:1fr}.log-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.log-keyword-field{grid-column:1/-1}}
@media(max-width:680px){.config-workflow-steps{display:flex;overflow-x:auto;padding-bottom:4px}.config-workflow-step{flex:0 0 126px}.config-workflow-terminal{flex:0 0 100%}.config-workflow-line>header{align-items:flex-start}.config-workflow-line>header small{margin-left:0}.config-line-fields{grid-template-columns:1fr}.config-line-fields label.wide{grid-column:auto}.config-todo-card{grid-template-columns:42px minmax(0,1fr)}.config-todo-card>.btn{grid-column:1/-1;width:100%}.luggage-pickup-history-grid{grid-template-columns:1fr}.luggage-pickup-record>div{grid-template-columns:1fr 1fr}.upload-box-preview{grid-template-columns:1fr}.upload-box-preview>.draft-photo-qr{grid-column:1}.multi-upload-field{grid-template-columns:1fr}.multi-upload-field>.btn{grid-column:1}.log-filter-grid{grid-template-columns:1fr!important}}

/* Web V0.9.8.1 · append-only photo intake and high-visibility room-return workbench */
.rr-workbench .rr-work-card .rr-target-wrap[hidden],
.rr-workbench .rr-work-card .rr-target-wrap.hidden{display:none!important;visibility:hidden!important}
.rr-card-actions.rr-actions-single{grid-template-columns:minmax(0,1fr)!important}

@media(min-width:1001px){
  .modal.modal-room-return{width:min(1420px,calc(100vw - 14px))!important;height:calc(100dvh - 14px)!important;max-height:calc(100dvh - 14px)!important}
  .modal-room-return .modal-head{min-height:56px;padding:11px 20px}
  .modal-room-return .modal-head h3{font-size:20px}
  .modal-room-return .modal-body{padding:12px 18px!important}
  .rr-workbench .room-return-steps{margin-bottom:4px!important;gap:5px!important}
  .rr-workbench .room-return-steps span{min-height:32px!important;padding:6px 10px!important;font-size:13px!important}
  .rr-workbench .rr-room-summary{min-height:50px;margin-bottom:5px;padding:7px 10px}
  .rr-workbench .rr-room-summary>div:first-child{gap:2px}.rr-workbench .rr-room-summary>div:first-child b{font-size:14px}.rr-workbench .rr-room-summary span{font-size:11px}
  .rr-workbench .rr-room-summary>div:last-child{min-width:50px}.rr-workbench .rr-room-summary>div:last-child strong{font-size:19px}
  .rr-workbench .rr-scope-tabs{gap:6px;margin-bottom:5px}.rr-workbench .rr-scope-tabs button{min-height:38px;padding:6px 10px;font-size:14px}.rr-workbench .rr-scope-tabs button b{min-width:26px;height:24px;font-size:12px}
  .rr-workbench .rr-rule-strip{flex-wrap:nowrap;gap:10px;margin-bottom:5px;padding:6px 9px;font-size:10.5px;overflow-x:auto}
  .rr-workbench .rr-bulk-drawer{margin-bottom:4px}.rr-workbench .rr-bulk-drawer>summary{padding:6px 9px;font-size:11px}
  .rr-workbench .rr-selection-toolbar{min-height:30px!important;margin-bottom:4px!important;padding:2px 0}.rr-workbench .rr-selection-toolbar .btn{min-height:30px;padding:4px 9px;font-size:11px}
  .room-return-list.rr-work-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:max-content;align-content:start;gap:6px!important;min-height:0!important;padding:1px 3px 1px 1px!important}
  .rr-work-grid .rr-work-card{grid-template-columns:20px minmax(0,1fr)!important;gap:5px!important;padding:6px!important;border-radius:9px!important}
  .rr-work-grid .rr-work-card>input{width:17px;min-height:17px;margin-top:13px}.rr-work-grid .rr-auto-check{width:20px;height:20px;margin-top:13px}
  .rr-workbench .rr-card-body{gap:4px}.rr-workbench .rr-four-fields{grid-template-columns:46px minmax(90px,1.05fr) minmax(105px,1fr) minmax(100px,.9fr);gap:5px}
  .rr-workbench .rr-four-fields .rr-photo{width:46px!important;height:46px!important;border-radius:7px}
  .rr-workbench .rr-field{gap:2px;padding:4px 5px;border-radius:7px}.rr-workbench .rr-field small{font-size:9.5px}.rr-workbench .rr-field strong{font-size:12px;line-height:1.25}.rr-workbench .rr-field>span{min-height:14px;font-size:9px}
  .rr-workbench .rr-relation{padding:2px 5px;font-size:8.5px!important}
  .rr-workbench .rr-card-actions{grid-template-columns:minmax(145px,.8fr) minmax(190px,1.2fr);gap:5px}.rr-workbench .rr-card-actions label{gap:2px;font-size:10px}.rr-workbench .rr-card-actions select,.rr-workbench .rr-card-actions input{min-height:32px!important;padding:6px 8px;font-size:12px!important}
  .rr-workbench .rr-fixed-action{gap:2px;padding:6px 8px}.rr-workbench .rr-fixed-action small,.rr-workbench .rr-fixed-action span{font-size:9.5px}.rr-workbench .rr-fixed-action strong{font-size:12px}
  .modal-room-return .modal-actions{padding-top:8px}.modal-room-return .modal-actions .btn{min-height:38px;padding:7px 13px}
}

/* Web V0.9.8.2 · room-return photo lightbox and three-row compact overview */
.image-backdrop{z-index:500!important;outline:0}
.image-close{z-index:503!important}
.image-backdrop:not(.hidden)~.toast{z-index:520}
.image-preview-stage{position:relative;display:grid;place-items:center;max-width:calc(100vw - 150px);max-height:94vh}
.image-preview-stage img{display:block;max-width:100%;max-height:92vh;transition:opacity .12s}
.image-preview-stage img.loading{opacity:.3}
.image-counter{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);min-width:54px;padding:5px 10px;border-radius:999px;background:rgba(3,16,33,.76);color:#fff;font-size:12px;font-weight:750;text-align:center;box-shadow:0 4px 16px rgba(0,0,0,.25)}
.image-counter:empty{display:none}
.image-nav{position:fixed;top:50%;z-index:502;width:52px;height:52px;transform:translateY(-50%);border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:38px;line-height:46px;cursor:pointer}.image-nav:hover,.image-nav:focus-visible{background:rgba(255,255,255,.25);outline:2px solid rgba(255,255,255,.72)}
.image-prev{left:22px}.image-next{right:22px}
.photo-preview-trigger{position:relative;cursor:zoom-in!important;overflow:hidden}
.photo-preview-trigger::after{content:'放大';position:absolute;right:3px;bottom:3px;padding:2px 4px;border-radius:4px;background:rgba(8,32,61,.78);color:#fff;font-size:8px;line-height:1.2;opacity:0;transition:opacity .12s;pointer-events:none}
.photo-preview-trigger:hover::after,.photo-preview-trigger:focus-visible::after{opacity:1}

.rr-overview-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:6px;align-items:stretch;margin-bottom:5px}
.rr-room-context{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;min-height:38px;padding:5px 9px;border:1px solid #ead8ad;border-radius:8px;background:#fff9e9}
.rr-room-context>div{display:flex;align-items:center;gap:7px;min-width:0}.rr-room-context b{min-width:0;color:#173b66;font-size:13px;white-space:nowrap}.rr-room-context small{color:#7a6433;font-size:10px;white-space:nowrap}.rr-total-pill{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#fff;color:#3f5e7f;font-size:10px;font-weight:750;white-space:nowrap}
.rr-overview-row .room-return-steps{align-self:stretch;margin:0!important;gap:5px!important}.rr-overview-row .room-return-steps span{display:flex;align-items:center;min-height:38px!important;padding:5px 9px!important;font-size:12px!important}
.rr-scope-rule-row{display:grid;grid-template-columns:minmax(380px,.92fr) minmax(0,1.08fr);gap:5px;align-items:stretch;margin-bottom:4px}
.rr-workbench .rr-scope-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:5px!important;margin:0!important}.rr-workbench .rr-scope-tabs button{min-height:36px!important;padding:5px 9px!important;font-size:13px!important;border-radius:8px!important}.rr-workbench .rr-scope-tabs button b{min-width:24px!important;height:22px!important;padding:0 6px!important;font-size:11px!important}
.rr-workbench .rr-rule-strip{align-content:center;flex-wrap:nowrap!important;gap:12px!important;min-height:36px;margin:0!important;padding:5px 8px!important;font-size:10px!important;white-space:nowrap;overflow-x:auto}.rr-workbench .rr-rule-strip i{width:7px;height:7px}
.rr-workbench #rrStep1{overflow:hidden!important}

@media(min-width:1001px){
  .modal-room-return .modal-head{min-height:48px!important;padding:8px 18px!important}.modal-room-return .modal-head h3{font-size:19px!important}
  .modal-room-return .modal-body{padding-top:8px!important}
}
@media(max-width:720px){
  .image-backdrop{padding:10px!important}.image-preview-stage{max-width:calc(100vw - 22px);max-height:calc(100dvh - 90px)}.image-preview-stage img{max-height:calc(100dvh - 90px)}
  .image-nav{top:auto;bottom:18px;width:46px;height:46px;transform:none;font-size:32px;line-height:40px}.image-prev{left:calc(50% - 62px)}.image-next{right:calc(50% - 62px)}.image-counter{bottom:68px}
  .rr-overview-row{grid-template-columns:1fr;gap:4px}.rr-room-context{min-height:38px}.rr-room-context small{overflow:hidden;text-overflow:ellipsis}.rr-overview-row .room-return-steps span{min-height:32px!important;font-size:11px!important}
  .rr-scope-rule-row{grid-template-columns:1fr;gap:4px}.rr-workbench .rr-scope-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.rr-workbench .rr-scope-tabs button{min-width:0;padding:5px 6px!important;font-size:11px!important}.rr-workbench .rr-scope-tabs button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Web V0.9.9 · Excel-style configuration catalog, template and staged task */
.config-sheet-wrap,.config-process-sheet{position:relative;overflow:auto;border:1px solid #cbd8e6;border-radius:10px;background:#fff;box-shadow:0 2px 9px rgba(22,61,101,.05)}
.config-sheet-wrap table,.config-process-sheet table{width:100%;border-collapse:separate;border-spacing:0}
.config-sheet-wrap th,.config-sheet-wrap td,.config-process-sheet th,.config-process-sheet td{border-right:1px solid #d6e0ea;border-bottom:1px solid #d6e0ea;vertical-align:middle}.config-sheet-wrap tr>*:last-child,.config-process-sheet tr>*:last-child{border-right:0}.config-sheet-wrap tbody tr:last-child>*,.config-process-sheet tbody tr:last-child>*{border-bottom:0}
.config-catalog-sheet{min-width:920px;font-size:12px}.config-catalog-sheet thead th,.config-template-sheet thead th{position:sticky;top:0;z-index:3;padding:9px 8px;background:#dfeaf6;color:#244868;text-align:left;white-space:nowrap}.config-catalog-sheet td{padding:5px 6px;background:#f8fbfe}.config-catalog-sheet tbody tr:nth-child(even) td{background:#eef5fb}.config-catalog-sheet tr.inactive{opacity:.62}.config-catalog-sheet th:nth-child(1){width:16%}.config-catalog-sheet th:nth-child(2){width:13%}.config-catalog-sheet th:nth-child(3){width:12%}.config-catalog-sheet th:nth-child(4){width:28%}.config-catalog-sheet th:nth-child(5){width:13%}.config-catalog-sheet input,.config-catalog-sheet select,.config-template-sheet input,.config-template-sheet select{width:100%;min-width:0;min-height:34px;padding:6px 8px;border-color:#c8d5e3;background:#fff;font-size:12px}.config-catalog-sheet .row-actions,.config-template-sheet .row-actions{flex-wrap:nowrap}
.config-template-sheet-editor{display:grid;gap:10px}.config-template-sheet{min-width:1050px;font-size:12px}.config-template-sheet td{padding:6px 7px;background:#f9fbfd}.config-template-sheet tbody tr:nth-child(even) td{background:#eef5fb}.config-template-draft td{background:#fff9e8!important}.config-template-sheet th:nth-child(1){width:12%}.config-template-sheet th:nth-child(2){width:12%}.config-template-sheet th:nth-child(3){width:9%}.config-template-sheet th:nth-child(4){width:27%}.config-template-sheet th:nth-child(5){width:11%}.config-template-sheet th:nth-child(6){width:12%}
.config-process-sheet{max-height:62vh}.config-process-sheet table{min-width:1880px;font-size:11px}.config-process-sheet thead th{position:sticky;z-index:5;padding:8px 7px;background:#dbe8f5;color:#244868;text-align:left;white-space:nowrap}.config-process-sheet thead tr:first-child th{top:0;height:36px;background:#c9dbee;color:#173e65;text-align:center;font-size:11px}.config-process-sheet thead tr:nth-child(2) th{top:36px;height:38px;background:#e7eff7}.config-process-sheet td{height:48px;padding:5px 6px;background:#fff}.config-process-sheet input,.config-process-sheet select{width:100%;min-width:0;min-height:33px;padding:5px 7px;border-color:#cbd7e3;background:#fff;font-size:11px}.config-process-sheet input[type=checkbox]{width:18px;min-height:18px}.config-process-sheet .phase-readonly{background:#edf0f3;color:#75818e}.config-process-sheet .phase-readonly input,.config-process-sheet .phase-readonly select{border-color:#d9dee3;background:#e2e6ea;color:#76818d;opacity:1}.config-process-sheet .phase-editable{background:#fffdf4}.config-process-sheet .config-sheet-line.optional{opacity:.72}.config-process-sheet .config-sheet-action{min-width:118px;background:#f8fbfe;text-align:center}.config-process-sheet .config-sheet-action .config-result-tag{display:flex;width:max-content;margin:0 auto 5px}.config-done-cell{text-align:center}
.config-process-sheet td:nth-child(1){width:105px;min-width:105px}.config-process-sheet td:nth-child(2){width:95px;min-width:95px}.config-process-sheet td:nth-child(3){width:72px;min-width:72px}.config-process-sheet td:nth-child(4){width:175px;min-width:175px}.config-process-sheet td:nth-child(5){width:88px;min-width:88px}.config-process-sheet td:nth-child(6){width:94px;min-width:94px}.config-process-sheet td:nth-child(7){width:160px;min-width:160px}.config-process-sheet td:nth-child(8){width:150px;min-width:150px}.config-process-sheet td:nth-child(9),.config-process-sheet td:nth-child(10){width:82px;min-width:82px}.config-process-sheet td:nth-child(11),.config-process-sheet td:nth-child(14){width:155px;min-width:155px}.config-process-sheet td:nth-child(12){width:128px;min-width:128px}.config-process-sheet td:nth-child(13){width:92px;min-width:92px}.config-process-sheet td:nth-child(15){width:64px;min-width:64px}
.config-process-sheet .config-sticky{position:sticky;z-index:2;background:#f8fbfe}.config-process-sheet td.config-sticky.category{left:0}.config-process-sheet td.config-sticky.priority{left:105px}.config-process-sheet td.config-sticky.code{left:200px}.config-process-sheet td.config-sticky.name{left:272px;box-shadow:5px 0 8px rgba(25,62,96,.08)}
.config-process-sheet thead tr:nth-child(2) th:nth-child(1){left:0}.config-process-sheet thead tr:nth-child(2) th:nth-child(2){left:105px}.config-process-sheet thead tr:nth-child(2) th:nth-child(3){left:200px}.config-process-sheet thead tr:nth-child(2) th:nth-child(4){left:272px;box-shadow:5px 0 8px rgba(25,62,96,.08)}.config-process-sheet thead tr:nth-child(2) th:nth-child(-n+4){z-index:7}
.config-sheet-group th{position:static!important;padding:6px 9px!important;color:#234d75!important;text-align:left!important;font-size:11px!important}.config-sheet-group.tone-0 th{background:#dceaf7!important}.config-sheet-group.tone-1 th{background:#f5e3e3!important}.config-sheet-group.tone-2 th{background:#e2f0e6!important}.config-sheet-group.tone-3 th{background:#f4ecd8!important}
.config-source-stack{display:grid;gap:4px}.config-source-pill{display:inline-flex;width:max-content;max-width:100%;padding:3px 6px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.config-source-pill.linked{background:#e6f5eb;color:#257047}.config-source-pill.manual{background:#eaf2fb;color:#2d6092}.config-source-stack small{font-size:9px}.config-source-stack .btn{width:max-content}.config-live-count{display:block;color:#217044;font-size:15px;text-align:center}
@media(max-width:720px){.config-process-sheet{max-height:68vh}.config-process-sheet table{font-size:10px}.config-sheet-wrap{margin-inline:-3px}.config-catalog-sheet{min-width:820px}.config-template-sheet{min-width:900px}}
@media(min-width:721px) and (max-width:900px){.rr-scope-rule-row{grid-template-columns:1fr}}

/* Web V0.10.0 · merged configuration workspace, category master and row semantics */
.config-master-section{display:block;margin-top:14px;border:1px solid #c8d7e6;border-radius:13px;background:#edf4fa;overflow:hidden}
.config-master-section>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;background:linear-gradient(135deg,#dceaf6,#eef5fb);color:#173f68;cursor:pointer;list-style:none}.config-master-section>summary::-webkit-details-marker{display:none}.config-master-section>summary::after{content:'展开 / 收起';padding:3px 8px;border:1px solid #b6cade;border-radius:999px;background:#fff;color:#55718e;font-size:10px}.config-master-section>summary b{font-size:15px}.config-master-section>summary span{margin-left:auto;color:#55718e;font-size:11px}.config-master-section>.panel{margin:12px}
.config-category-create{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:8px;max-width:700px;margin-bottom:10px}.config-category-create input{min-height:38px}
.config-category-list{overflow:auto;border:1px solid #d2deea;border-radius:9px;background:#fff}.config-category-table{width:100%;min-width:620px;border-collapse:collapse}.config-category-table th{padding:8px;background:#e5eef7;color:#355777;text-align:left;font-size:11px}.config-category-table td{padding:6px 8px;border-top:1px solid #e0e7ee;font-size:12px}.config-category-table th:first-child,.config-category-table td:first-child{width:100px;text-align:center}.config-category-table th:nth-child(3),.config-category-table td:nth-child(3){width:110px;text-align:center}.config-category-table th:last-child,.config-category-table td:last-child{width:110px}.config-category-table input{width:100%;min-height:34px}
.config-add-many{display:flex;align-items:flex-end;justify-content:flex-end;gap:7px;flex-wrap:wrap}.config-add-many label{display:grid;gap:3px;color:#58708a;font-size:10px}.config-add-many input{width:78px;min-height:36px;text-align:center}
.config-catalog-sheet{min-width:900px}.config-catalog-sheet th:nth-child(1){width:29%}.config-catalog-sheet th:nth-child(2){width:18%}.config-catalog-sheet th:nth-child(3){width:18%}.config-catalog-sheet th:nth-child(4){width:12%}.config-catalog-sheet th:nth-child(5){width:11%}.config-catalog-sheet th:nth-child(6){width:12%}
.config-catalog-sheet .config-auto-code{background:#e9eef3;color:#34506c;font-weight:800;cursor:not-allowed}
.config-catalog-sheet tr.priority-urgent td,.config-template-sheet tr.priority-urgent td{background:#fff0f0!important}.config-catalog-sheet tr.priority-urgent td:first-child,.config-template-sheet tr.priority-urgent td:first-child{box-shadow:inset 4px 0 #d83a3a}.config-catalog-sheet tr.priority-urgent input,.config-catalog-sheet tr.priority-urgent select,.config-template-sheet tr.priority-urgent input,.config-template-sheet tr.priority-urgent select{border-color:#e4aaaa;background:#fff8f8}
.config-catalog-sheet tr.not-required td,.config-template-sheet tr.not-required td{background:#eceff2!important;color:#7c8791}.config-catalog-sheet tr.not-required input,.config-catalog-sheet tr.not-required select,.config-template-sheet tr.not-required input,.config-template-sheet tr.not-required select{border-color:#d6dbe0;background:#e4e7ea;color:#737d86}.config-catalog-sheet tr.not-required,.config-template-sheet tr.not-required{opacity:.68}.config-catalog-sheet tr.priority-urgent.not-required td:first-child,.config-template-sheet tr.priority-urgent.not-required td:first-child{box-shadow:inset 4px 0 #d83a3a}
.config-process-sheet .config-sheet-line.priority-urgent td.config-sticky.priority{background:#ffe4e4!important;color:#a92323;font-weight:850}.config-process-sheet .config-sheet-line.priority-urgent td.config-sticky.category{box-shadow:inset 4px 0 #d83a3a}.config-process-sheet .config-sheet-line.optional{opacity:.58;filter:saturate(.72)}
.config-template-sheet th:nth-child(7){width:12%}
@media(max-width:720px){.config-master-section>summary{align-items:flex-start;flex-wrap:wrap}.config-master-section>summary span{order:3;width:100%;margin-left:0}.config-master-section>.panel{margin:8px}.config-category-create{grid-template-columns:1fr}.config-add-many{justify-content:flex-start}.config-catalog-sheet{min-width:780px}}

/* Web V0.10.2 · 备料表二级标签与单一添加入口 */
.prep-tabs{width:100%;margin:0 0 14px;padding:6px;border-color:#c8d8ea;background:#f7faff}
.prep-tabs button{min-height:40px;padding-inline:18px}
.prep-tabs button.active{border-color:#0b63d8;background:#0b63d8;color:#fff;box-shadow:0 4px 12px rgba(11,99,216,.20)}
.prep-tabs button.active:hover{background:#0957be;color:#fff}
.prep-pane-off{display:none!important}
.prep-master-shell{display:block}
@media(max-width:720px){.prep-tabs{width:100%}.prep-tabs button{padding-inline:13px}}

/* Web V0.11.0 · 寄存 / 遗留双工作区与退房遗留物闭环 */
.guest-item-tabs{width:100%;margin-bottom:14px;background:#f4f8fd}
.guest-item-tabs button{min-width:128px}
.tab-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:7px;padding:0 6px;border-radius:999px;background:#d92d20;color:#fff;font-size:10px;font-weight:850}
.guest-item-pane{min-width:0}.lost-found-hero{background:linear-gradient(135deg,#eef7ff,#fff6eb)}
.lost-found-filter-row{grid-template-columns:minmax(240px,1.5fr) minmax(145px,.7fr) minmax(160px,.8fr) auto auto}
.lost-found-order-card{grid-template-columns:minmax(245px,1.25fr) 96px minmax(250px,1.2fr) auto}
.lost-found-order-middle{display:grid;gap:5px;min-width:0}.lost-found-order-middle small{color:#6d8096;font-size:11px;overflow-wrap:anywhere}
.lost-found-register-items{display:grid;gap:11px}.lost-found-register-item{padding:12px;border:1px solid #d6e2ef;border-radius:12px;background:#f8fbff}
.lost-found-register-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.lost-found-register-item-head b{color:#174571}
.lost-found-register-item .form-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lost-found-register-item .form-grid .wide{grid-column:span 2}.lost-found-photo-field{display:grid;align-content:start;gap:5px}.lost-found-photo-field input{padding:7px;background:#fff}.lost-found-photo-field small{color:#6c8096;font-size:10px}
.lost-found-order-summary{margin-bottom:8px}.lost-found-select-all{display:flex;align-items:center;gap:8px;width:max-content;margin:10px 0;padding:7px 10px;border:1px solid #cddbea;border-radius:9px;background:#f7faff;color:#315c89;font-size:12px;font-weight:750}.lost-found-select-all input{width:18px;height:18px;margin:0}
.lost-found-item-list{display:grid;gap:10px}.lost-found-item-card{padding:12px;border:1px solid #d6e2ef;border-radius:12px;background:#fff}.lost-found-item-card.terminal{opacity:.72;background:#f5f7f9}
.lost-found-item-card>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center}.lost-found-item-card>header>input{width:19px;height:19px;margin:0}.lost-found-item-card>header b,.lost-found-item-card>header small{display:block}.lost-found-item-card>header b{color:#163f6e}.lost-found-item-card>header small{margin-top:3px;color:#71839a;font-size:10px}.lost-found-item-card>p{margin:9px 0;color:#5f7289;font-size:12px;overflow-wrap:anywhere}
.lost-found-item-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.lost-found-item-meta>span{display:grid;gap:3px;min-width:0;padding:8px;border-radius:8px;background:#f4f8fc;color:#2e4e70;font-size:11px;overflow-wrap:anywhere}.lost-found-item-meta small{color:#7a899b;font-size:9px}
.lost-found-outcome{margin-top:8px}.lost-found-outcome>span{background:#fff8e9}
.lost-found-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 4px 2px;color:#637991;font-size:11px}.lost-found-pager>div{display:flex;gap:7px}
.lost-found-item-photos{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.lost-found-item-photos button{display:grid;place-items:center;width:58px;height:50px;padding:0;overflow:hidden;border:1px solid #ccd9e7;border-radius:8px;background:#edf3f9;color:#46617e;cursor:zoom-in}.lost-found-item-photos img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.lost-found-item-history{margin-top:9px;padding-top:8px;border-top:1px dashed #dce5ee}.lost-found-item-history summary{color:#346496;font-size:11px;font-weight:750;cursor:pointer}
.lost-found-timeline{display:grid;gap:8px;margin-top:9px}.lost-found-timeline>div{display:grid;grid-template-columns:12px minmax(0,1fr);gap:7px}.lost-found-timeline i{width:9px;height:9px;margin-top:4px;border:2px solid #76a5d7;border-radius:50%;background:#fff}.lost-found-timeline p,.lost-found-timeline b,.lost-found-timeline small,.lost-found-timeline span{display:block;margin:0}.lost-found-timeline p{padding-bottom:7px;border-bottom:1px dashed #e1e8f0;color:#425d79;font-size:11px}.lost-found-timeline small{margin-top:2px;color:#7a8998;font-size:9px}.lost-found-timeline span{margin-top:3px;color:#61758b}
.lost-found-detail-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid #dce5ef}
.form-subgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-subgrid>.full{grid-column:1/-1}.form-subgrid.hidden{display:none!important}
.lost-found-register-modal,.lost-found-detail-modal{min-width:0}.lost-found-detail-modal img{max-width:100%}

@media(max-width:900px){
  .lost-found-filter-row{grid-template-columns:1fr 1fr!important}.lost-found-filter-row>input:first-child{grid-column:1/-1}.lost-found-filter-row>.btn{width:100%}
  .lost-found-order-card{grid-template-columns:minmax(0,1fr) auto!important}.lost-found-order-card>:nth-child(n+3){grid-column:1/-1}.lost-found-order-card>.btn{width:max-content}
  .lost-found-register-item .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.lost-found-register-item .form-grid .wide{grid-column:1/-1!important}
  .lost-found-item-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .guest-item-tabs{position:static!important;display:flex!important;width:100%;overflow-x:auto!important;scroll-snap-type:x proximity}.guest-item-tabs button{flex:0 0 auto;min-height:42px;scroll-snap-align:start}
  .lost-found-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .lost-found-filter-row{grid-template-columns:1fr!important}.lost-found-filter-row>*{grid-column:1!important;width:100%}
  .lost-found-order-card{grid-template-columns:1fr!important}.lost-found-order-card>*{grid-column:1!important}.lost-found-order-card>.btn{width:100%}
  .lost-found-register-item .form-grid{grid-template-columns:1fr!important}.lost-found-register-item .form-grid>*{grid-column:1!important}
  .form-subgrid{grid-template-columns:1fr}.form-subgrid>*{grid-column:1!important}
  .lost-found-order-summary{grid-template-columns:1fr!important}.lost-found-order-summary b{text-align:left}
  .lost-found-detail-actions{justify-content:stretch}.lost-found-detail-actions .btn{flex:1 1 calc(50% - 8px);min-width:135px}
  .lost-found-pager{align-items:stretch;flex-direction:column}.lost-found-pager>div{display:grid;grid-template-columns:1fr 1fr}.lost-found-pager .btn{width:100%}
}
@media(max-width:480px){
  .lost-found-item-meta{grid-template-columns:1fr}.lost-found-item-card>header{grid-template-columns:auto minmax(0,1fr)}.lost-found-item-card>header>.status-pill{grid-column:2}
  .lost-found-detail-actions .btn{flex:1 1 100%;width:100%}
  .lost-found-register-item-head{align-items:flex-start}
}

/* Web V0.11.1 · 客人遗留紧凑工作台、当前账户登记与逐件扫码照片 */
.guest-item-tabs{margin-bottom:9px;padding:4px}.guest-item-tabs button{min-height:36px;padding:7px 15px}
.lost-found-hero{gap:14px;padding:12px 15px;border-color:#cddded;background:linear-gradient(135deg,#edf6ff 0%,#f8fbff 58%,#fff8ee 100%)}
.lost-found-hero h3{margin:5px 0 2px;font-size:20px}.lost-found-hero p{max-width:840px;font-size:12px;line-height:1.45}.lost-found-hero .badge{padding:3px 7px;font-size:9px}
.lost-found-hero .page-primary-actions{gap:6px}.lost-found-hero .btn{min-height:36px;padding:7px 12px}
.lost-found-kpis{gap:7px;margin:9px 0}.lost-found-kpis>div{padding:8px 11px;border-radius:9px}.lost-found-kpis small{font-size:10px}.lost-found-kpis b{margin-top:2px;font-size:20px;line-height:1.1}
.lost-found-work-panel{padding:10px 11px}.lost-found-filter-row{gap:7px}.lost-found-filter-row input,.lost-found-filter-row select{min-height:36px;padding-block:7px}.lost-found-filter-row .btn{min-height:36px;padding:7px 11px}
.lost-found-order-list{gap:7px;margin-top:9px}.lost-found-order-card{gap:9px;padding:9px 10px;border-radius:10px}.lost-found-order-main strong{margin:4px 0;font-size:14px}.lost-found-order-main small{margin-top:2px;font-size:10px}.lost-found-order-card .status-pill{padding:3px 7px;font-size:9px}.lost-found-order-card .luggage-count b{font-size:20px}.lost-found-order-middle{gap:3px}.lost-found-order-middle small{font-size:10px}.lost-found-order-card .luggage-tags span{padding:3px 6px;font-size:10px}.lost-found-order-card>.btn{min-height:33px;padding:6px 9px}
.lost-found-boundary-note{margin-top:9px;padding:8px 11px}.lost-found-boundary-note b,.lost-found-boundary-note span{font-size:11px}
.lost-found-register-modal{padding:12px}.lost-found-register-identity{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:5px 9px;align-items:center;margin-bottom:9px;padding:8px 10px;border:1px solid #bdd4ee;border-radius:9px;background:linear-gradient(135deg,#eaf4ff,#f8fbff);color:#214f7d}.lost-found-register-identity span{font-size:10px}.lost-found-register-identity b{font-size:13px}.lost-found-register-identity small{color:#667d96;font-size:10px;text-align:right}
.lost-found-register-core{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px 9px}.lost-found-register-core .wide{grid-column:span 2!important}
.lost-found-register-modal label,.lost-found-action-modal label{margin:3px 0;font-size:10px}.lost-found-register-modal input,.lost-found-register-modal select,.lost-found-action-modal input,.lost-found-action-modal select{min-height:35px;margin-top:3px;padding:6px 8px}.lost-found-register-modal textarea,.lost-found-action-modal textarea{margin-top:3px;padding:7px 8px}
.lost-found-register-section-head{margin:11px 0 7px;padding:8px 2px 0;border-top:1px solid #dce6f0}.lost-found-register-section-head h3{margin:0;font-size:14px}.lost-found-register-section-head p{margin-top:2px;font-size:10px}.lost-found-register-section-head .btn{min-height:33px;padding:6px 9px}
.lost-found-register-items{gap:8px}.lost-found-register-item{padding:9px;border-radius:10px;background:#f7fafd}.lost-found-register-item-head{margin-bottom:6px}.lost-found-register-item-head b{font-size:12px}.lost-found-register-item-head .btn{min-height:29px;padding:4px 8px}.lost-found-register-item .form-grid{gap:7px 8px}.lost-found-register-item label>small{color:#71849a;font-size:9px}
.lost-found-photo-field{gap:6px;padding:8px;border:1px dashed #c6d8ea;border-radius:9px;background:#fff}.lost-found-photo-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.lost-found-photo-head b{color:#345b82;font-size:11px}.lost-found-photo-head small{font-size:9px;text-align:right}.lost-found-photo-actions{display:flex;gap:6px;flex-wrap:wrap}.lost-found-photo-actions .btn{min-height:31px;margin:0;padding:5px 9px}.lost-found-photo-actions .file-btn input{position:absolute;inset:0;opacity:0;margin:0;padding:0;cursor:pointer}.lost-found-photo-preview{min-height:42px;padding:5px}.lost-found-photo-preview .photo-thumb{width:48px;height:42px}.lost-found-photo-qr{margin-top:0;padding:8px;border-radius:9px}.lost-found-photo-qr .qr-upload-layout{gap:10px}.lost-found-photo-qr .qr-upload-layout img{width:112px;height:112px}.lost-found-photo-qr .qr-upload-layout b{font-size:13px}.lost-found-photo-qr .qr-upload-layout p{margin:3px 0;font-size:10px}.lost-found-photo-qr .qr-upload-layout small{font-size:9px}.lost-found-photo-qr .qr-status{margin-top:5px;padding:5px 7px;font-size:9px}
.lost-found-sticky-actions{margin-top:10px;padding-top:9px;border-top:1px solid #dce6ef}.lost-found-sticky-actions .btn{min-height:35px;padding:7px 12px}
.lost-found-detail-modal{padding:12px}.lost-found-order-summary{padding:10px}.lost-found-order-summary strong{font-size:17px}.lost-found-order-summary b{font-size:19px}.lost-found-detail-modal .luggage-detail-meta{padding:7px 2px;font-size:10px}.lost-found-select-all{margin:6px 0;padding:5px 8px}.lost-found-item-list{gap:7px}.lost-found-item-card{padding:9px;border-radius:9px}.lost-found-item-card>header{gap:7px}.lost-found-item-card>p{margin:6px 0;font-size:10px}.lost-found-item-meta{gap:5px}.lost-found-item-meta>span{padding:6px;font-size:10px}.lost-found-item-history{margin-top:6px;padding-top:6px}.lost-found-detail-actions{gap:6px;margin-top:9px;padding-top:9px}.lost-found-detail-actions .btn{min-height:33px;padding:6px 9px}
.lost-found-action-modal{padding:13px}.lost-found-action-modal .form-grid{gap:8px}.lost-found-action-modal .asset-edit-note,.lost-found-action-modal .risk-warning{margin-bottom:9px;padding:9px 10px}.lost-found-action-modal .form-subgrid{gap:7px}.lost-found-action-modal .modal-actions{margin-top:11px}
:is(.lost-found-register-modal,.lost-found-detail-modal,.lost-found-action-modal) .required-label::after{content:none!important;display:none!important}
:is(.lost-found-register-modal,.lost-found-detail-modal,.lost-found-action-modal) .required-label::before{content:'*';display:inline;color:#d92d20;margin-right:3px;font-weight:850}

@media(max-width:900px){
  .lost-found-register-core{grid-template-columns:repeat(2,minmax(0,1fr))!important}.lost-found-register-core .wide{grid-column:1/-1!important}
  .lost-found-register-identity{grid-template-columns:auto 1fr}.lost-found-register-identity small{grid-column:1/-1;text-align:left}
}
@media(max-width:700px){
  .guest-item-tabs{margin-bottom:7px}.lost-found-hero{padding:10px 11px}.lost-found-hero h3{font-size:18px}.lost-found-hero .page-primary-actions{width:100%}.lost-found-hero .page-primary-actions .btn{flex:1}
  .lost-found-kpis{margin:7px 0}.lost-found-kpis>div{padding:7px 9px}.lost-found-work-panel{padding:8px}
  .lost-found-register-modal,.lost-found-detail-modal,.lost-found-action-modal{padding:9px!important}.lost-found-register-core{grid-template-columns:1fr!important}.lost-found-register-core>*{grid-column:1!important}.lost-found-register-item{padding:8px}.lost-found-photo-head{align-items:flex-start;flex-direction:column;gap:2px}.lost-found-photo-head small{text-align:left}
  .lost-found-photo-qr .qr-upload-layout{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:start}.lost-found-photo-qr .qr-upload-layout img{width:96px;height:96px}.lost-found-photo-qr .qr-status{grid-column:2}
  .lost-found-sticky-actions{position:sticky;bottom:-9px;z-index:3;margin-inline:-9px;padding:8px 9px calc(8px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);box-shadow:0 -6px 15px rgba(35,66,99,.07)}
}
@media(max-width:480px){
  .lost-found-photo-actions{display:grid;grid-template-columns:1fr 1fr}.lost-found-photo-actions .btn{width:100%;text-align:center}.lost-found-photo-qr .qr-upload-layout{grid-template-columns:82px minmax(0,1fr)}.lost-found-photo-qr .qr-upload-layout img{width:82px;height:82px}
}

/* Web V0.11.4 · 全局模糊选房、通信线路标签表单与明文技术配置 */
.network-asset-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;border-color:#cbddec;background:linear-gradient(135deg,#edf7ff 0%,#f7fbff 52%,#eefaf5 100%)}
.network-asset-hero h3{margin:6px 0 3px;color:#123f70;font-size:22px}.network-asset-hero p{max-width:920px;margin:0;color:#627991;font-size:12px;line-height:1.5}.network-asset-hero .badge{font-size:10px}
.network-asset-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:10px 0}.network-asset-kpis>button,.network-asset-kpis>div{min-width:0;padding:11px 12px;border:1px solid #d5e2ed;border-radius:11px;background:#fff;text-align:left;box-shadow:0 4px 14px rgba(22,58,92,.04)}.network-asset-kpis>button{cursor:pointer;color:inherit}.network-asset-kpis>button:hover{border-color:#83aee0;background:#f7fbff}.network-asset-kpis>button.danger-lite{border-color:#efd0c9;background:#fff8f6}.network-asset-kpis small,.network-asset-kpis b,.network-asset-kpis span{display:block}.network-asset-kpis small{color:#6e8196;font-size:10px}.network-asset-kpis b{margin:3px 0;color:#174d83;font-size:23px;line-height:1.12}.network-asset-kpis .danger-lite b{color:#b33a2e}.network-asset-kpis span{color:#8190a1;font-size:9px}
.network-asset-workbench{padding:13px 14px}.network-asset-filter-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(125px,.65fr)) auto auto;gap:7px}.network-asset-filter-grid input,.network-asset-filter-grid select,.network-asset-filter-grid .btn{min-height:38px;padding:7px 9px}.network-list-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:12px 2px 8px;padding-top:9px;border-top:1px solid #e0e8ef}.network-list-head>div{display:flex;align-items:baseline;gap:9px}.network-list-head b{color:#173f6b}.network-list-head span,.network-list-head small{color:#71849a;font-size:10px}
.network-asset-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.network-line-card{min-width:0;padding:12px;border:1px solid #d5e1ec;border-radius:12px;background:#fff;box-shadow:0 3px 12px rgba(19,54,89,.04);cursor:pointer;transition:.15s}.network-line-card:hover,.network-line-card:focus-visible{border-color:#83aee0;box-shadow:0 7px 20px rgba(19,54,89,.09);outline:none;transform:translateY(-1px)}.network-line-card.overdue{border-color:#e7b7ad;box-shadow:inset 4px 0 #c64c3c}.network-line-card>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.network-line-title{display:flex;align-items:center;gap:9px;min-width:0}.network-type-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#e8f3ff,#e9f8f2);color:#1765ae;font-size:20px;font-weight:800}.network-line-title h4,.network-line-title p{margin:0}.network-line-title h4{color:#153f6c;font-size:15px}.network-line-title p{margin-top:3px;color:#6d8197;font-size:10px;overflow-wrap:anywhere}.network-line-status{display:flex;align-items:flex-end;gap:5px;flex-direction:column}.network-status-pill,.network-due-badge{display:inline-flex;width:max-content;max-width:100%;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800;white-space:nowrap}.network-status-pill.active{background:#e5f5ed;color:#19704c}.network-status-pill.inactive{background:#eef1f4;color:#647080}.network-due-badge.ok{background:#e7f5eb;color:#25723e}.network-due-badge.auto{background:#e7f3ff;color:#1c62a6}.network-due-badge.warn{background:#fff3d6;color:#8f5b00}.network-due-badge.danger{background:#ffe9e5;color:#b63b2f}.network-due-badge.muted{background:#eef1f4;color:#66717e}
.network-line-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.network-line-grid>div{min-width:0;padding:7px 8px;border-radius:8px;background:#f6f9fc}.network-line-grid small,.network-line-grid b{display:block}.network-line-grid small{color:#7a8b9d;font-size:8px}.network-line-grid b{margin-top:2px;color:#2e4e70;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.network-line-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px dashed #dce5ed}.network-line-tags{display:flex;gap:4px;flex-wrap:wrap;min-width:0}.network-line-tags span{padding:3px 6px;border-radius:6px;background:#edf4fa;color:#4b6b8b;font-size:8px}.network-line-card .row-actions{display:flex;gap:5px;flex-wrap:nowrap}.network-line-card .btn{min-height:30px;padding:5px 8px;font-size:10px}
.network-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:120px;color:#688098;font-size:12px}.network-loading i{width:19px;height:19px;border:3px solid #d7e5f2;border-top-color:#1f6feb;border-radius:50%;animation:network-spin .8s linear infinite}@keyframes network-spin{to{transform:rotate(360deg)}}.network-security-note{margin-top:9px}
.modal.modal-network{width:min(1100px,calc(100vw - 22px));max-height:94vh}.modal-network .modal-head{padding:13px 18px}.modal-network .modal-body{padding:12px 14px}.network-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:9px;padding:11px 13px;border:1px solid #c8dced;border-radius:11px;background:linear-gradient(135deg,#edf6ff,#f8fcff)}.network-detail-hero h3{margin:6px 0 3px;color:#153f6c;font-size:20px}.network-detail-hero p{margin:0;color:#617b94;font-size:11px}.network-detail-hero p b{color:#1f6feb}.network-detail-section{margin-top:8px;padding:10px 11px;border:1px solid #d9e4ed;border-radius:10px;background:#fff}.network-detail-section h4{margin:0 0 7px;color:#174974;font-size:13px}.network-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.network-detail-grid>div{min-width:0;padding:7px 8px;border-radius:8px;background:#f5f8fb}.network-detail-grid small,.network-detail-grid b{display:block}.network-detail-grid small{color:#7a899b;font-size:8px}.network-detail-grid b{margin-top:2px;color:#294968;font-size:10px;line-height:1.35;overflow-wrap:anywhere}.network-detail-note{margin:7px 0 0;padding:7px 9px;border-radius:7px;background:#fff8e9;color:#765d31;font-size:10px}.network-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.network-secret-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:7px}.network-secret-row{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0;padding:7px 8px;border:1px solid #dbe4ed;border-radius:8px;background:#fbfcfe}.network-secret-row span{display:grid;gap:2px;min-width:0}.network-secret-row small{color:#77889a;font-size:8px}.network-secret-row code{max-width:190px;color:#234a72;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.network-secret-row code.revealed{color:#9e3d2e;font-weight:800;user-select:all}.network-secret-row em{color:#8a96a3;font-size:8px;font-style:normal}.network-secret-row .btn{min-height:28px;padding:4px 7px;font-size:9px}.network-secret-tip{margin:6px 0 0;color:#7d8996;font-size:8px}.network-payment-table td small{display:block;margin-top:2px;color:#7b8b9d;font-size:9px}.network-document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:7px}.network-document-grid button{position:relative;display:grid;place-items:center;min-height:80px;padding:8px;border:1px dashed #b9cede;border-radius:9px;background:#f4f9fd;color:#3f6487;overflow:hidden;cursor:zoom-in}.network-document-grid button img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}.network-document-grid button span,.network-document-grid button small{display:block}.network-document-grid button small{margin-top:4px;color:#76899b;font-size:8px}.network-audit-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.network-audit-strip>div{padding:6px 8px;border-radius:7px;background:#f6f8fa}.network-audit-strip small,.network-audit-strip b{display:block}.network-audit-strip small{color:#84909d;font-size:8px}.network-audit-strip b{margin-top:2px;color:#51677d;font-size:9px}.network-audit-strip p{grid-column:1/-1;margin:0;color:#5d7186;font-size:10px}
.network-form-intro,.network-payment-context{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:9px 11px;border:1px solid #c7dcec;border-radius:9px;background:#eef7ff}.network-form-intro b,.network-form-intro span,.network-payment-context b,.network-payment-context span{display:block}.network-form-intro b,.network-payment-context b{color:#174b7e}.network-form-intro span,.network-payment-context span{color:#687f96;font-size:10px}.network-form-section{margin-top:7px;border:1px solid #d8e3ec;border-radius:10px;background:#fbfdff;overflow:hidden}.network-form-section>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 11px;list-style:none;cursor:pointer;color:#1d4b78}.network-form-section>summary::-webkit-details-marker{display:none}.network-form-section>summary span{color:#778a9e;font-size:9px}.network-form-section[open]>summary{border-bottom:1px solid #dfe8ef;background:#f1f6fa}.network-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 8px;padding:8px 10px}.network-form-grid label{min-width:0;margin:0;color:#526a81;font-size:9px}.network-form-grid input,.network-form-grid select,.network-form-grid textarea{min-height:35px;margin-top:3px;padding:6px 8px;font-size:11px}.network-form-grid .full{grid-column:1/-1}.network-form-grid label>small{display:block;margin-top:3px;color:#7a8998;font-size:8px}.network-switch{display:flex!important;align-items:center;gap:7px;min-height:35px;margin-top:12px!important;padding:7px 9px;border:1px solid #d5e1ea;border-radius:8px;background:#f6f9fc}.network-switch input{width:17px!important;min-height:17px!important;margin:0!important}.network-switch span{font-size:10px;font-weight:750}.network-clear-secret{display:flex!important;align-items:center;gap:4px;margin-top:3px;color:#8b5b53;font-size:8px}.network-clear-secret input{width:13px!important;min-height:13px!important;margin:0!important}.network-upload-box{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:7px;align-items:center;margin:8px 10px 10px;padding:9px;border:1px dashed #b9ccdd;border-radius:9px;background:#f8fbfd}.network-upload-box>div:first-child b,.network-upload-box>div:first-child span{display:block}.network-upload-box>div:first-child b{color:#345e85;font-size:11px}.network-upload-box>div:first-child span{margin-top:3px;color:#74879a;font-size:8px}.network-upload-box .upload-trigger{margin:0;padding:6px 9px;border:1px solid #c9d7e4;border-radius:8px;background:#fff;color:#315d86;font-size:9px;cursor:pointer}.network-upload-box .upload-trigger input{display:none}.network-upload-box .qr-upload-panel,.network-upload-box .upload-preview,.network-upload-box>small{grid-column:1/-1}.network-upload-box .upload-preview{min-height:45px}.network-sticky-actions{position:sticky;bottom:-12px;z-index:5;margin:9px -14px -12px;padding:9px 14px calc(9px + env(safe-area-inset-bottom));border-top:1px solid #dbe4ec;background:rgba(255,255,255,.97);box-shadow:0 -6px 18px rgba(27,58,91,.06)}
.network-form-tabs{position:sticky;top:-12px;z-index:4;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:3px 0 7px;background:linear-gradient(180deg,#f8fbff 78%,rgba(248,251,255,0))}.network-form-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:7px 10px;border:1px solid #cbdceb;border-radius:10px;background:#fff;color:#456680;font-size:13px;font-weight:750;cursor:pointer}.network-form-tabs button b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#edf3f8;color:#4d6f8c;font-size:12px}.network-form-tabs button.active{border-color:#2c76c7;background:linear-gradient(135deg,#eaf4ff,#f7fbff);color:#135a9d;box-shadow:0 3px 10px rgba(32,105,179,.13)}.network-form-tabs button.active b{background:#216bc0;color:#fff}.network-form-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid #d7e4ef;background:linear-gradient(90deg,#e8f3fd,#f6faff);color:#154b7f}.network-form-section-head b{font-size:15px}.network-form-section-head span{color:#6c8297;font-size:11px}.network-form-pane{margin-top:2px}.network-plain-tech-row{align-items:flex-start}.network-plain-tech-row code{max-width:none!important;white-space:normal!important;overflow-wrap:anywhere;user-select:all;color:#173f68!important}.batch-filter-location{min-width:0}.batch-filter-location>input{width:100%}

/* 通信线路表单：提高可读性，同时保留三列紧凑录入 */
.modal.modal-network{width:min(1180px,calc(100vw - 22px))}.modal-network .modal-head{min-height:56px;padding:14px 20px}.modal-network .modal-head h2,.modal-network .modal-head h3,.modal-network .modal-head strong{font-size:19px}.network-edit-modal{background:linear-gradient(180deg,#f8fbff 0,#fff 180px)}
.network-form-intro,.network-payment-context{margin-bottom:11px;padding:12px 14px;border-color:#b9d4ee;border-left:4px solid #2673c9;border-radius:11px;background:linear-gradient(135deg,#eaf5ff,#f8fbff)}.network-form-intro b,.network-payment-context b{font-size:15px}.network-form-intro span,.network-payment-context span{font-size:12px;line-height:1.5}
.network-form-section{margin-top:11px;border-color:#cfdeeb;border-radius:12px;background:#fff;box-shadow:0 4px 14px rgba(34,78,121,.055)}.network-form-section>summary{padding:12px 14px;background:linear-gradient(90deg,#eef6fd,#f8fbfe);color:#154b7f}.network-form-section>summary b{font-size:15px}.network-form-section>summary span{font-size:11px;line-height:1.4}.network-form-section[open]>summary{border-bottom-color:#d7e4ef;background:linear-gradient(90deg,#e8f3fd,#f6faff)}
.network-form-grid{gap:10px 12px;padding:13px 14px}.network-form-grid label{color:#365a7a;font-size:12px;font-weight:700;line-height:1.3}.network-form-grid input,.network-form-grid select,.network-form-grid textarea{min-height:42px;margin-top:5px;padding:9px 10px;border-color:#c8d8e7;border-radius:9px;background:#fff;color:#173b5e;font-size:14px;font-weight:500}.network-form-grid textarea{line-height:1.5}.network-form-grid input:focus,.network-form-grid select:focus,.network-form-grid textarea:focus{border-color:#4f91da;box-shadow:0 0 0 3px rgba(58,132,214,.13)}.network-form-grid input[readonly]{background:#eef4f9;color:#315b7f;cursor:not-allowed}.network-form-grid label>small{margin-top:5px;color:#657e96;font-size:10.5px;font-weight:500;line-height:1.4}
.network-switch{min-height:42px;margin-top:17px!important;padding:9px 11px;border-color:#c9d9e7;border-radius:9px;background:#f5f9fc}.network-switch input{width:19px!important;min-height:19px!important}.network-switch span{color:#284e72;font-size:13px}.network-clear-secret{gap:6px;margin-top:5px;color:#82564e;font-size:10.5px;font-weight:600}.network-clear-secret input{width:15px!important;min-height:15px!important}
.network-payment-rule{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid #bcd8ef;border-radius:10px;background:#edf7ff}.network-payment-rule b,.network-payment-rule span{display:block}.network-payment-rule b{color:#16548a;font-size:13px}.network-payment-rule span{margin-top:3px;color:#5e7891;font-size:11px;font-weight:500;line-height:1.45}.network-payment-rule strong{flex:0 0 auto;padding:7px 10px;border-radius:8px;background:#fff;color:#175b98;font-size:12px;white-space:nowrap}.network-payment-tip{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 11px;padding:10px 13px;border:1px solid #bfe0c8;border-radius:10px;background:#f0fbf3}.network-payment-tip b{color:#19733c;font-size:13px}.network-payment-tip span{color:#4e725d;font-size:11px}
.network-upload-box{gap:9px;margin:11px 14px 14px;padding:12px;border-color:#afc8dd;border-radius:10px;background:#f7fbfe}.network-upload-box>div:first-child b{font-size:13px}.network-upload-box>div:first-child span{font-size:10.5px;line-height:1.4}.network-upload-box .upload-trigger{min-height:38px;padding:8px 11px;font-size:12px;font-weight:700}.network-upload-box>.btn{min-height:38px;font-size:12px}.network-sticky-actions{padding:11px 16px calc(11px + env(safe-area-inset-bottom))}.network-sticky-actions .btn{min-height:41px;padding:9px 17px;font-size:13px}.btn.primary-lite{border-color:#a9ccef;background:#edf6ff;color:#1464ad}
.network-detail-grid small,.network-secret-row small,.network-audit-strip small{font-size:10px}.network-detail-grid b,.network-secret-row code,.network-audit-strip b{font-size:12px}.network-secret-row em,.network-secret-tip{font-size:10px}.network-audit-strip{grid-template-columns:repeat(2,minmax(0,1fr))}

@media(max-width:1180px){.network-asset-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.network-asset-filter-grid{grid-template-columns:2fr repeat(3,1fr)}.network-asset-filter-grid>*:nth-child(n+6){width:100%}.network-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.network-asset-list{grid-template-columns:1fr}.network-asset-filter-grid{grid-template-columns:1fr 1fr}.network-asset-filter-grid>input:first-child{grid-column:1/-1}.network-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.network-secret-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.network-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
  .network-asset-hero{align-items:flex-start;flex-direction:column;padding:11px 12px}.network-asset-hero h3{font-size:19px}.network-asset-hero .page-primary-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.network-asset-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.network-asset-kpis>button,.network-asset-kpis>div{padding:9px}.network-asset-workbench{padding:9px}.network-asset-filter-grid{grid-template-columns:1fr}.network-asset-filter-grid>*{grid-column:1!important;width:100%}.network-list-head{align-items:flex-start;flex-direction:column;gap:3px}.network-line-card{padding:10px}.network-line-card>header{align-items:stretch;flex-direction:column}.network-line-status{align-items:flex-start;flex-direction:row;flex-wrap:wrap}.network-line-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.network-line-card>footer{align-items:stretch;flex-direction:column}.network-line-card .row-actions{display:grid;grid-template-columns:repeat(3,1fr)}.network-line-card .btn{width:100%}
  .modal.modal-network{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px);border-radius:12px}.modal-network .modal-head{padding:10px 12px}.modal-network .modal-body{padding:8px}.network-detail-hero{align-items:flex-start;flex-direction:column}.network-detail-grid,.network-secret-grid,.network-form-grid,.network-audit-strip{grid-template-columns:1fr}.network-audit-strip p,.network-form-grid .full{grid-column:1}.network-form-intro,.network-payment-context,.network-payment-rule,.network-payment-tip{align-items:flex-start;flex-direction:column}.network-payment-rule strong{width:100%;white-space:normal}.network-form-tabs{top:-8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.network-form-tabs button{min-height:40px;padding:6px;font-size:11.5px}.network-form-tabs button b{width:21px;height:21px;font-size:10px}.network-form-section-head{align-items:flex-start;flex-direction:column;gap:2px}.network-upload-box{grid-template-columns:1fr 1fr;margin-inline:8px}.network-upload-box>div:first-child{grid-column:1/-1}.network-upload-box .upload-trigger,.network-upload-box>.btn{width:100%;text-align:center}.network-sticky-actions{bottom:-8px;margin:8px -8px -8px;padding-inline:8px}.network-sticky-actions .btn{flex:1}.network-payment-table{min-width:0!important}
}
@media(max-width:390px){.network-asset-kpis{grid-template-columns:1fr 1fr}.network-line-grid{grid-template-columns:1fr}.network-secret-row code{max-width:150px}.network-line-card .row-actions{grid-template-columns:1fr}}

/* Web V0.11.5 · 菜单分组、固定线路标签弹窗、放大台账与独立快捷筛选 */
#nav .nav-group-label{color:rgba(255,255,255,.68);font-size:11px;letter-spacing:.08em}
#nav .nav-group-label:not(:first-child){margin-top:5px;border-top:1px solid rgba(255,255,255,.09)}

.network-asset-hero h3{font-size:24px}.network-asset-hero p{font-size:13.5px}.network-asset-hero .badge{font-size:11px}
.network-asset-kpis{gap:10px;margin:12px 0}.network-asset-kpis>button,.network-asset-kpis>div{min-height:86px;padding:13px 14px;border-radius:12px}
.network-asset-kpis>button{transition:border-color .15s,background .15s,box-shadow .15s,transform .15s}
.network-asset-kpis>button:hover{transform:translateY(-1px)}
.network-asset-kpis>button.active{border-color:#2a76c9;background:linear-gradient(135deg,#e9f4ff,#f8fbff);box-shadow:0 0 0 2px rgba(42,118,201,.12),0 6px 16px rgba(24,83,139,.08)}
.network-asset-kpis>button.danger-lite.active{border-color:#c95143;background:#fff4f1;box-shadow:0 0 0 2px rgba(201,81,67,.11),0 6px 16px rgba(139,49,39,.07)}
.network-asset-kpis small{font-size:12px;font-weight:650}.network-asset-kpis b{margin:5px 0;font-size:27px}.network-asset-kpis span{font-size:11px;line-height:1.35}

.network-asset-workbench{padding:15px 16px}.network-asset-filter-grid{gap:9px}.network-asset-filter-grid input,.network-asset-filter-grid select,.network-asset-filter-grid .btn{min-height:42px;padding:8px 11px;font-size:14px}
.network-list-head{margin-top:14px;padding-top:11px}.network-list-head b{font-size:18px}.network-list-head span,.network-list-head small{font-size:12px;line-height:1.4}
.network-asset-list{grid-template-columns:repeat(auto-fit,minmax(min(520px,100%),1fr));gap:11px}.network-line-card{padding:14px;border-radius:13px}
.network-type-icon{flex-basis:39px;width:39px;height:39px;font-size:22px}.network-line-title h4{font-size:18px}.network-line-title p{margin-top:4px;font-size:12.5px;line-height:1.4}
.network-status-pill,.network-due-badge{padding:5px 8px;font-size:11px}.network-line-grid{gap:8px;margin:12px 0}.network-line-grid>div{padding:9px 10px}.network-line-grid small{font-size:11px}.network-line-grid b{margin-top:3px;font-size:13px;line-height:1.4}
.network-line-card>footer{padding-top:10px}.network-line-tags{gap:6px}.network-line-tags span{padding:4px 7px;font-size:10.5px}.network-line-card .btn{min-height:34px;padding:6px 10px;font-size:12px}.network-loading{font-size:13px}.network-security-note b,.network-security-note span{font-size:12.5px;line-height:1.5}

.modal.modal-network-edit{height:min(760px,calc(100dvh - 24px));max-height:min(760px,calc(100dvh - 24px));overflow:hidden;display:flex;flex-direction:column}
.modal-network-edit .modal-head{flex:0 0 auto}.modal-network-edit #modalBody{flex:1 1 auto;min-height:0;overflow:hidden}.modal-network-edit .network-edit-modal{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.modal-network-edit .network-form-pane{flex:0 0 auto}.modal-network-edit .network-sticky-actions{flex:0 0 auto;margin-top:auto}
.network-form-tabs button{font-size:14px}.network-form-tabs button b{font-size:13px}.network-form-section-head b{font-size:16px}.network-form-section-head span{font-size:12px}

.network-detail-hero{padding:14px 16px}.network-detail-hero h3{font-size:23px}.network-detail-hero p{font-size:13px;line-height:1.45}.network-detail-section{margin-top:10px;padding:13px 14px}.network-detail-section h4{margin-bottom:9px;font-size:16px}.network-detail-grid{gap:8px}.network-detail-grid>div{padding:9px 10px}.network-detail-grid small,.network-secret-row small,.network-audit-strip small{font-size:11.5px}.network-detail-grid b,.network-secret-row code,.network-audit-strip b{margin-top:3px;font-size:14px;line-height:1.45}.network-detail-note{padding:9px 11px;font-size:12px;line-height:1.5}.network-secret-grid{gap:8px;margin-top:9px}.network-secret-row{padding:9px 10px}.network-secret-tip{font-size:11.5px;line-height:1.5}.network-payment-table th,.network-payment-table td{font-size:12.5px}.network-payment-table td small{font-size:11px}.network-document-grid button small{font-size:10.5px}.network-audit-strip p{font-size:12px;line-height:1.5}

@media(max-width:700px){
  #nav .nav-group-label{font-size:11px}
  .network-asset-hero h3{font-size:21px}.network-asset-hero p{font-size:12.5px}.network-asset-kpis>button,.network-asset-kpis>div{min-height:80px;padding:11px}.network-asset-kpis small{font-size:11px}.network-asset-kpis b{font-size:24px}.network-asset-kpis span{font-size:10px}
  .network-line-title h4{font-size:17px}.network-line-title p{font-size:12px}.network-line-grid small{font-size:10.5px}.network-line-grid b{font-size:12.5px}
  .modal-network-edit #modalBody{overflow:hidden!important}.modal-network-edit .network-edit-modal{height:100%;padding:9px!important}.network-form-tabs button{font-size:12.5px}.network-form-section-head b{font-size:15px}.network-form-section-head span{font-size:11px}
  .network-detail-hero h3{font-size:21px}.network-detail-hero p{font-size:12px}.network-detail-section h4{font-size:15px}.network-detail-grid small,.network-secret-row small,.network-audit-strip small{font-size:11px}.network-detail-grid b,.network-secret-row code,.network-audit-strip b{font-size:13px}
}

/* Web V0.11.6 · 业务导入双确认、统一导出与审批边界 */
.modal.modal-business-import{width:min(920px,calc(100vw - 24px));max-height:92vh}.business-import-modal,.business-import-review,.business-import-final{display:grid;gap:13px}
.business-import-rule,.business-import-summary,.business-import-step{display:flex;align-items:center;gap:12px;padding:13px 15px;border:1px solid #c9dced;border-radius:12px;background:linear-gradient(135deg,#edf7ff,#f9fcff)}
.business-import-rule,.business-import-summary{align-items:flex-start;flex-direction:column;gap:4px}.business-import-rule b,.business-import-summary b{color:#174e7e;font-size:16px}.business-import-rule span,.business-import-summary span{color:#5f7890;font-size:13px;line-height:1.55}
.business-import-summary.ok{border-color:#b9ddc6;background:#f1fbf4}.business-import-summary.ok b{color:#19703c}.business-import-summary.warn{border-color:#edc3ba;background:#fff6f4}.business-import-summary.warn b{color:#af3e32}
.business-import-step i{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#1f6fc5;color:#fff;font-size:15px;font-style:normal;font-weight:850}.business-import-step b,.business-import-step span{display:block}.business-import-step b{color:#1c4e7c;font-size:15px}.business-import-step span{margin-top:3px;color:#6a7e92;font-size:12px}
.business-import-file{position:relative;display:grid;place-items:center;min-height:110px;margin:0;padding:18px;border:2px dashed #9ebedb;border-radius:13px;background:#f8fbfe;color:#315e87;font-weight:750;cursor:pointer}.business-import-file:hover{border-color:#397fc5;background:#f1f8ff}.business-import-file input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.business-import-file span{pointer-events:none;overflow-wrap:anywhere;text-align:center}
.business-import-preview-list{display:grid;gap:7px;max-height:52vh;overflow:auto;padding-right:4px}.business-import-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:10px 12px;border:1px solid #d8e3ed;border-radius:10px;background:#fff}.business-import-row>div span,.business-import-row>div b{display:block}.business-import-row>div span{color:#77899b;font-size:11px}.business-import-row>div b{margin-top:3px;color:#244f75;font-size:13px;line-height:1.45}.business-import-row>strong{align-self:center;color:#1d7643;font-size:12px}.business-import-row.has-error{border-color:#efb8ae;background:#fff9f7}.business-import-row.has-error>strong{color:#b43c30}.business-import-row p{grid-column:1/-1;display:flex;gap:5px;flex-wrap:wrap;margin:0}.business-import-row p span{padding:4px 7px;border-radius:6px;background:#ffe9e5;color:#a7372c;font-size:11px}
.business-import-confirm{display:flex;align-items:flex-start;gap:9px;margin:0;padding:12px 14px;border:1px solid #b8d2eb;border-radius:10px;background:#f2f8ff;color:#274f75;font-size:13px;font-weight:750;line-height:1.45}.business-import-confirm.final{border-color:#e5b8ae;background:#fff6f4;color:#87372e}.business-import-confirm input{flex:0 0 auto;width:18px;min-height:18px;margin:1px 0 0}
@media(max-width:700px){.modal.modal-business-import{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px)}.business-import-rule b,.business-import-summary b{font-size:15px}.business-import-rule span,.business-import-summary span{font-size:12px}.business-import-preview-list{max-height:48vh}.business-import-row{grid-template-columns:1fr}.business-import-row>strong{justify-self:start}.business-import-modal .modal-actions,.business-import-review .modal-actions,.business-import-final .modal-actions{display:grid;grid-template-columns:1fr}.business-import-modal .modal-actions .btn,.business-import-review .modal-actions .btn,.business-import-final .modal-actions .btn{width:100%}}

/* Web V0.13.0 · 能耗收单、复核、月度分析与房间能耗参数 */
.energy-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:linear-gradient(128deg,#eef8ff 0%,#f8fcff 57%,#f0fbf6 100%);border-color:#bad8ec}.energy-hero-copy{min-width:0}.energy-hero-copy h3{margin:7px 0 3px;color:#123f6b;font-size:25px}.energy-hero-copy p{margin:0;color:#5d778f;font-size:13.5px;line-height:1.5}.energy-hero-controls{display:flex;align-items:flex-end;gap:10px;flex:0 0 auto}.energy-hero-controls>label{display:grid;gap:4px;color:#55728d;font-size:12px;font-weight:700}.energy-hero-controls input{min-width:155px;min-height:42px;font-size:14px}.energy-hero-controls .page-primary-actions{display:flex;gap:7px;flex-wrap:wrap}.energy-hero-controls .btn{min-height:42px;font-size:13px}
.energy-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:54px;margin:12px 0 14px;padding:5px}.energy-tabs button{display:flex;align-items:center;justify-content:center;gap:7px;height:44px;min-height:44px;padding:7px 14px;font-size:14px}.energy-tabs button b{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#e5edf5;color:#46647e;font-size:11px}.energy-tabs button.active b{background:#fff;color:#1469bb}.energy-pane{min-height:320px}
.energy-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;margin-bottom:12px}.energy-kpis>button{min-width:0;min-height:96px;padding:12px 13px;border:1px solid #d2e0eb;border-radius:13px;background:#fff;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.energy-kpis>button:hover{transform:translateY(-1px);border-color:#78add9;box-shadow:0 7px 18px rgba(34,91,139,.09)}.energy-kpis>button.warn{background:#fffaf1;border-color:#eed7a8}.energy-kpis>button.danger-lite{background:#fff5f3;border-color:#efc0b7}.energy-kpis small,.energy-kpis b,.energy-kpis span{display:block}.energy-kpis small{color:#648099;font-size:11.5px;font-weight:750}.energy-kpis b{margin:6px 0 4px;color:#124f85;font-size:24px;line-height:1.05}.energy-kpis .warn b{color:#a16c12}.energy-kpis .danger-lite b{color:#b13d32}.energy-kpis span{overflow:hidden;color:#8193a4;font-size:10.5px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.energy-overview-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px}.energy-ranking-panel,.energy-anomaly-panel{min-width:0;padding:15px}.energy-overview-grid .panel-head{margin:0 0 11px}.energy-overview-grid .panel-head h3{font-size:17px}.energy-overview-grid .panel-head p{font-size:11.5px}.energy-overview-grid .panel-head select{min-width:112px;min-height:37px;font-size:13px}.energy-ranking-list,.energy-anomaly-list{display:grid;gap:7px}.energy-ranking-list>button,.energy-anomaly-list>button{display:grid;align-items:center;width:100%;min-height:57px;padding:9px 11px;border:1px solid #d8e4ee;border-radius:10px;background:#f9fbfd;color:#244e73;text-align:left;cursor:pointer}.energy-ranking-list>button{grid-template-columns:34px minmax(0,1fr) auto;gap:9px}.energy-ranking-list>button:hover,.energy-anomaly-list>button:hover{border-color:#8eb9dd;background:#f1f8fe}.energy-rank-no{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e2effb;color:#1c66a7;font-size:12px;font-weight:850}.energy-ranking-list b,.energy-ranking-list small{display:block}.energy-ranking-list b{font-size:14px}.energy-ranking-list small{margin-top:2px;color:#74899c;font-size:11px}.energy-ranking-list strong{color:#15588f;font-size:15px}.energy-anomaly-list>button{grid-template-columns:minmax(0,1fr) auto;gap:9px}.energy-anomaly-list b,.energy-anomaly-list span,.energy-anomaly-list small{display:block}.energy-anomaly-list b{font-size:14px}.energy-anomaly-list span{margin-top:3px;color:#637d94;font-size:11.5px}.energy-anomaly-list small{margin-top:3px;color:#8796a4;font-size:10.5px}.energy-anomaly-level{align-self:center;padding:5px 8px;border-radius:8px;background:#fff0ed;color:#b44135;font-size:11px;font-weight:800}.energy-analysis-disclaimer{margin-top:9px;padding:8px 10px;border-radius:8px;background:#f5f8fb;color:#778a9b;font-size:11px;line-height:1.45}
.energy-progress-panel,.energy-ledger-panel{padding:15px 16px}.energy-progress-head{align-items:flex-start;margin:0 0 11px}.energy-progress-head h3,.energy-ledger-head h3{font-size:18px}.energy-progress-head p,.energy-ledger-head span,.energy-ledger-head small{font-size:11.5px}.energy-type-toggles{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.energy-type-toggles label{display:flex;align-items:center;gap:5px;min-height:35px;padding:5px 8px;border:1px solid #d0dfeb;border-radius:8px;background:#fff;color:#355b7c;font-size:12px;font-weight:700}.energy-type-toggles input{width:16px;height:16px;margin:0}.energy-progress-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.energy-progress-summary>div{padding:10px 12px;border:1px solid #d7e4ee;border-radius:10px;background:#f6faff}.energy-progress-summary small,.energy-progress-summary b{display:block}.energy-progress-summary small{color:#668198;font-size:11px}.energy-progress-summary b{margin-top:4px;color:#16558c;font-size:19px}.energy-progress-columns{display:grid;grid-template-columns:1.25fr .75fr;gap:13px}.energy-progress-columns>div{min-width:0;padding:12px;border:1px solid #d9e5ee;border-radius:11px;background:#fbfcfe}.energy-progress-columns h4{margin:0 0 7px;color:#214f77;font-size:15px}.energy-progress-columns>div>p{margin:-3px 0 8px;color:#74889b;font-size:11px}.energy-progress-list{display:grid;gap:6px;max-height:52vh;overflow:auto}.energy-progress-list>button,.energy-progress-list>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;min-height:47px;padding:8px 10px;border:1px solid #dce6ee;border-radius:9px;background:#fff;text-align:left}.energy-progress-list>button{cursor:pointer}.energy-progress-list>button:hover{border-color:#84b3db;background:#f3f9ff}.energy-progress-list b,.energy-progress-list small{display:block}.energy-progress-list b{color:#244f74;font-size:13px}.energy-progress-list small{margin-top:2px;color:#7a8c9c;font-size:10.5px}.energy-progress-list span{color:#bc493c;font-size:11px;font-weight:750}.energy-progress-list.account span{color:#a67220}
.energy-filter-grid{display:grid;grid-template-columns:minmax(260px,2fr) repeat(4,minmax(125px,1fr)) auto auto;gap:8px}.energy-filter-grid input,.energy-filter-grid select,.energy-filter-grid .btn{min-height:41px;font-size:13px}.energy-ledger-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:14px 0 9px;padding-top:11px;border-top:1px solid #dbe5ed}.energy-ledger-head>div{display:flex;align-items:baseline;gap:8px}.energy-ledger-head small{color:#75899c;text-align:right}.energy-bill-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(440px,100%),1fr));gap:9px}.energy-bill-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:12px;min-width:0;padding:12px;border:1px solid #d7e3ed;border-radius:12px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s}.energy-bill-card:hover{border-color:#78acd5;box-shadow:0 7px 17px rgba(30,81,124,.08)}.energy-bill-card.is-void{opacity:.67}.energy-bill-card.is-warning{border-color:#edc799;background:#fffaf2}.energy-bill-photo{display:grid;place-items:center;width:92px;height:100px;overflow:hidden;border-radius:9px;background:#edf3f8;color:#7390a7;font-size:11px}.energy-bill-photo img{width:100%;height:100%;object-fit:cover}.energy-bill-main{min-width:0}.energy-bill-main>header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.energy-bill-main h4{margin:0;color:#174c78;font-size:16px}.energy-bill-main header p{margin:3px 0 0;color:#70869a;font-size:11.5px}.energy-status{flex:0 0 auto;padding:4px 7px;border-radius:7px;background:#eaf4ff;color:#1d68a8;font-size:10.5px;font-weight:800}.energy-status.is-warning{background:#fff0d9;color:#a56a0d}.energy-status.is-done{background:#eaf8ef;color:#287447}.energy-status.is-void{background:#f2f3f4;color:#727b83}.energy-bill-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.energy-bill-meta>span{min-width:0;padding:7px 8px;border-radius:8px;background:#f3f7fa}.energy-bill-meta small,.energy-bill-meta b{display:block}.energy-bill-meta small{color:#7c8f9f;font-size:9.5px}.energy-bill-meta b{overflow:hidden;margin-top:2px;color:#315a7d;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.energy-bill-main>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:7px;border-top:1px dashed #d9e3eb;color:#7a8d9d;font-size:10.5px}.energy-bill-main>footer strong{color:#185d94;font-size:15px}.energy-bill-main .row-actions{display:flex;gap:5px}.energy-bill-main .btn{min-height:32px;padding:5px 8px;font-size:11.5px}
.modal.modal-energy{width:min(920px,calc(100vw - 24px));max-height:92vh}.energy-edit-modal,.energy-detail-modal,.energy-review-modal{font-size:14px}.energy-form-intro{display:flex;align-items:center;justify-content:space-between;gap:11px;margin-bottom:9px;padding:9px 11px;border:1px solid #bad7ec;border-radius:10px;background:#edf7ff}.energy-form-intro b{color:#165282;font-size:15px}.energy-form-intro span{color:#667f95;font-size:11.5px;line-height:1.45}.energy-form-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.energy-form-tabs button{min-height:43px;border:1px solid #cbdce9;border-radius:9px;background:#f6f9fc;color:#48677f;font-size:13px;font-weight:750;cursor:pointer}.energy-form-tabs button.active{border-color:#2976c4;background:#eaf4ff;color:#155f9e;box-shadow:0 0 0 2px rgba(41,118,196,.09)}.energy-form-pane{min-height:290px}.energy-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.energy-form-grid label{min-width:0;color:#365a79;font-size:12.5px;font-weight:700}.energy-form-grid label.full,.energy-form-grid .full{grid-column:1/-1}.energy-form-grid input,.energy-form-grid select,.energy-form-grid textarea{width:100%;min-height:42px;margin-top:4px;padding:8px 10px;font-size:14px}.energy-form-grid textarea{line-height:1.5}.energy-account-preview,.energy-period-help{padding:9px 11px;border:1px solid #d6e2ec;border-radius:9px;background:#f6f9fc;color:#5e778e;font-size:12px;line-height:1.5}.energy-photo-required{padding:11px;border:2px solid #d93025;border-radius:10px;background:#fffafa}.energy-note-label{display:grid}.energy-sticky-actions{position:sticky;bottom:-12px;z-index:4;margin:12px -14px -14px;padding:11px 14px;background:rgba(255,255,255,.96);border-top:1px solid #d7e2eb;backdrop-filter:blur(8px)}.energy-sticky-actions .btn{min-height:40px;font-size:13px}.energy-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px;border-radius:11px;background:linear-gradient(135deg,#eaf5ff,#f8fcff)}.energy-detail-head h3{margin:0;color:#174d78;font-size:21px}.energy-detail-head p{margin:4px 0 0;color:#668198;font-size:12px}.energy-detail-section{margin-top:10px;padding:12px 13px;border:1px solid #d8e4ed;border-radius:11px}.energy-detail-section h4{margin:0 0 8px;color:#245478;font-size:15px}.energy-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.energy-detail-grid>div{min-width:0;padding:8px 9px;border-radius:8px;background:#f4f8fb}.energy-detail-grid small,.energy-detail-grid b{display:block}.energy-detail-grid small{color:#768b9e;font-size:10.5px}.energy-detail-grid b{overflow-wrap:anywhere;margin-top:3px;color:#2e5678;font-size:13.5px}.energy-detail-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.energy-detail-photo{overflow:hidden;border:1px solid #d5e2ec;border-radius:9px;background:#f5f8fa;cursor:pointer}.energy-detail-photo img{display:block;width:100%;height:120px;object-fit:cover}.energy-detail-photo span{display:block;overflow:hidden;padding:6px 7px;color:#5a748b;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.energy-review-context{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-bottom:9px}.energy-review-context>div{padding:8px 9px;border-radius:8px;background:#f3f7fa}.energy-review-context small,.energy-review-context b{display:block}.energy-review-context small{color:#74899c;font-size:10.5px}.energy-review-context b{margin-top:3px;color:#285473;font-size:13px}.energy-review-warning{padding:9px 11px;border:1px solid #efd49f;border-radius:9px;background:#fff9ed;color:#836121;font-size:12px;line-height:1.5}.energy-review-summary{margin-top:9px;color:#405f79;font-size:13px}.energy-review-modal label{display:grid;margin-top:9px;color:#355a79;font-size:12.5px;font-weight:700}.energy-review-modal select,.energy-review-modal textarea{min-height:41px;margin-top:4px;font-size:14px}.location-utility-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;grid-column:1/-1;padding:10px;border:1px solid #c8dce9;border-radius:10px;background:#f3f9fd}.location-utility-fields>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:8px;grid-column:1/-1}.location-utility-fields>div:first-child b{color:#1e5e91;font-size:13px}.location-utility-fields>div:first-child span{color:#6b8296;font-size:11px}
@media(max-width:1200px){.energy-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.energy-filter-grid{grid-template-columns:2fr repeat(3,1fr)}.energy-filter-grid>*:nth-child(n+6){width:100%}.energy-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.energy-hero{align-items:stretch;flex-direction:column}.energy-hero-controls{align-items:stretch;flex-direction:column}.energy-hero-controls>label input{width:100%}.energy-hero-controls .page-primary-actions{display:grid;grid-template-columns:repeat(4,1fr)}.energy-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-overview-grid,.energy-progress-columns{grid-template-columns:1fr}.energy-filter-grid{grid-template-columns:1fr 1fr}.energy-filter-grid>input:first-child{grid-column:1/-1}.energy-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-detail-grid,.energy-review-context,.location-utility-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.energy-hero{padding:13px}.energy-hero-copy h3{font-size:21px}.energy-hero-copy p{font-size:12.5px}.energy-hero-controls .page-primary-actions{grid-template-columns:1fr 1fr}.energy-tabs{height:50px}.energy-tabs button{height:40px;min-height:40px;padding:5px;font-size:12px}.energy-kpis>button{min-height:86px;padding:10px}.energy-kpis b{font-size:21px}.energy-overview-grid .panel,.energy-progress-panel,.energy-ledger-panel{padding:10px}.energy-progress-summary{grid-template-columns:1fr 1fr}.energy-filter-grid,.energy-form-grid,.energy-detail-grid,.energy-review-context,.location-utility-fields{grid-template-columns:1fr}.energy-filter-grid>*{grid-column:1!important}.energy-bill-card{grid-template-columns:74px minmax(0,1fr);gap:9px;padding:9px}.energy-bill-photo{width:74px;height:92px}.energy-bill-meta{grid-template-columns:1fr 1fr}.modal.modal-energy{width:calc(100vw - 10px);height:calc(100dvh - 10px);max-height:calc(100dvh - 10px)}.energy-form-pane{min-height:0}.energy-detail-photos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Web V0.11.7 · 客人遗留字号、紧凑登记与转寄存/转资产双确认 */
.lost-found-register-modal{padding:10px 12px;font-size:14px}.lost-found-register-identity{margin-bottom:7px;padding:7px 10px}.lost-found-register-identity span{font-size:12px}.lost-found-register-identity b{font-size:15px}.lost-found-register-identity small{font-size:11px;line-height:1.35}
.lost-found-register-core{gap:6px 8px}.lost-found-register-modal label{margin:1px 0;color:#355876;font-size:12.5px;font-weight:700;line-height:1.3}.lost-found-register-modal input,.lost-found-register-modal select,.lost-found-register-modal textarea{min-height:40px;margin-top:3px;padding:8px 9px;border-radius:8px;color:#173c60;font-size:14px;font-weight:500}.lost-found-register-modal textarea{line-height:1.4}
.lost-found-register-section-head{margin:8px 0 6px;padding-top:7px}.lost-found-register-section-head h3{font-size:16px}.lost-found-register-section-head p{font-size:11.5px}.lost-found-register-section-head .btn{min-height:36px;font-size:12.5px}.lost-found-register-items{gap:7px}.lost-found-register-item{padding:8px 9px}.lost-found-register-item-head{margin-bottom:5px}.lost-found-register-item-head b{font-size:14px}.lost-found-register-item-head .btn{min-height:31px;font-size:11.5px}
.lost-found-register-item .lost-found-register-item-grid{grid-template-columns:repeat(12,minmax(0,1fr))!important;gap:6px 8px}.lost-found-register-item-grid .lf-field-name{grid-column:span 4!important}.lost-found-register-item-grid .lf-field-category{grid-column:span 2!important}.lost-found-register-item-grid .lf-field-quantity{grid-column:span 1!important}.lost-found-register-item-grid .lf-field-storage{grid-column:span 3!important}.lost-found-register-item-grid .lf-field-custodian{grid-column:span 2!important}.lost-found-register-item-grid .lost-found-photo-field{grid-column:1/-1!important}.lost-found-register-item label>small{margin-top:2px;font-size:10.5px;line-height:1.25}
.lost-found-photo-field{gap:5px;padding:7px 8px}.lost-found-photo-head b{font-size:13px}.lost-found-photo-head small{font-size:11px}.lost-found-photo-actions .btn{min-height:34px;font-size:12px}.lost-found-photo-preview{min-height:38px}.lost-found-sticky-actions{margin-top:8px;padding-top:8px}.lost-found-sticky-actions .btn{min-height:38px;font-size:13px}

.lost-found-detail-modal{padding:12px 14px}.lost-found-order-summary{padding:11px 12px}.lost-found-order-summary small{font-size:12px}.lost-found-order-summary strong{font-size:20px}.lost-found-order-summary b{font-size:22px}.lost-found-order-summary span{font-size:13px}.lost-found-detail-modal .luggage-detail-meta{gap:8px;padding:8px 3px;font-size:12.5px;line-height:1.45}.lost-found-select-all{font-size:13px}.lost-found-item-list{gap:8px}.lost-found-item-card{padding:10px 11px}.lost-found-item-card>header b{font-size:15px;line-height:1.4}.lost-found-item-card>header small{font-size:12px}.lost-found-item-card>header .status-pill{font-size:11px}.lost-found-item-card>p{margin:7px 0;font-size:13px;line-height:1.45}.lost-found-item-meta{gap:6px}.lost-found-item-meta>span{padding:7px 8px;font-size:13px;line-height:1.4}.lost-found-item-meta small{font-size:11px}.lost-found-item-history summary{font-size:13px;font-weight:750}.lost-found-timeline p{font-size:13px;line-height:1.45}.lost-found-timeline small{font-size:11px}.lost-found-timeline span{font-size:12px}.lost-found-detail-actions .btn{min-height:37px;padding:7px 11px;font-size:13px}

.lost-found-action-modal{padding:13px 15px}.lost-found-action-modal label{font-size:13px;font-weight:700;line-height:1.4}.lost-found-action-modal input,.lost-found-action-modal select,.lost-found-action-modal textarea{min-height:41px;margin-top:4px;padding:8px 10px;font-size:14px}.lost-found-action-modal textarea{line-height:1.5}.lost-found-action-modal .asset-edit-note,.lost-found-action-modal .risk-warning{font-size:13px;line-height:1.5}.lost-found-action-modal .risk-warning b{font-size:15px}.lost-found-action-modal .risk-warning span{font-size:12.5px}.lost-found-contact-modal{font-size:14px}.lost-found-contact-modal .risk-confirm-check{font-size:13px;font-weight:650}.lost-found-contact-modal .modal-actions .btn{min-height:40px;font-size:13px}

.lost-found-conversion-modal{display:grid;gap:10px}.lost-found-conversion-step{display:flex;align-items:center;gap:11px;padding:11px 13px;border:1px solid #b8d4ec;border-radius:11px;background:linear-gradient(135deg,#eaf5ff,#f8fbff)}.lost-found-conversion-step.final{border-color:#e3beb5;background:linear-gradient(135deg,#fff2ef,#fffafa)}.lost-found-conversion-step i{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:50%;background:#1e6fc5;color:#fff;font-size:15px;font-style:normal;font-weight:850}.lost-found-conversion-step.final i{background:#bc4a3d}.lost-found-conversion-step b,.lost-found-conversion-step span{display:block}.lost-found-conversion-step b{color:#194d7c;font-size:16px}.lost-found-conversion-step.final b{color:#943c33}.lost-found-conversion-step span{margin-top:2px;color:#647d94;font-size:12.5px;line-height:1.45}
.lost-found-conversion-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.lost-found-conversion-context.asset{grid-template-columns:repeat(4,minmax(0,1fr))}.lost-found-conversion-context>span{min-width:0;padding:8px 10px;border-radius:9px;background:#f2f7fb}.lost-found-conversion-context small,.lost-found-conversion-context b{display:block}.lost-found-conversion-context small{color:#75889c;font-size:11px}.lost-found-conversion-context b{margin-top:3px;color:#244c72;font-size:13.5px;overflow-wrap:anywhere}.lost-found-conversion-customer{grid-template-columns:1fr 2fr!important;gap:8px!important}.lost-found-conversion-list{display:grid;gap:7px;max-height:42vh;overflow:auto;padding-right:3px}.lost-found-luggage-map{display:grid;grid-template-columns:minmax(280px,1.45fr) minmax(160px,.6fr) minmax(190px,.75fr);gap:8px;align-items:end;padding:9px;border:1px solid #d5e2ed;border-radius:10px;background:#fbfdff}.lost-found-conversion-source{display:grid;grid-template-columns:minmax(0,1.4fr) 60px minmax(120px,.8fr);gap:6px;min-width:0}.lost-found-conversion-source>div{min-width:0;padding:7px 8px;border-radius:8px;background:#f1f6fa}.lost-found-conversion-source small,.lost-found-conversion-source b{display:block}.lost-found-conversion-source small{color:#78899a;font-size:10.5px}.lost-found-conversion-source b{margin-top:2px;color:#244a6e;font-size:13px;line-height:1.35;overflow-wrap:anywhere}.lost-found-conversion-review-row{display:grid;grid-template-columns:minmax(300px,1.5fr) minmax(130px,.5fr) minmax(180px,.7fr);gap:8px;padding:9px;border:1px solid #d5e2ed;border-radius:10px;background:#fff}.lost-found-conversion-review-row>span{padding:7px 8px;border-radius:8px;background:#f5f8fb}.lost-found-conversion-review-row>span small,.lost-found-conversion-review-row>span b{display:block}.lost-found-conversion-review-row>span small{color:#77899c;font-size:10.5px}.lost-found-conversion-review-row>span b{margin-top:2px;color:#244a6e;font-size:13px}.lost-found-conversion-modal .business-import-confirm{font-size:13px}

@media(max-width:900px){
  .lost-found-register-item .lost-found-register-item-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.lost-found-register-item-grid>*{grid-column:auto!important}.lost-found-register-item-grid .lf-field-name,.lost-found-register-item-grid .lost-found-photo-field{grid-column:1/-1!important}
  .lost-found-conversion-context.asset{grid-template-columns:repeat(2,minmax(0,1fr))}.lost-found-luggage-map,.lost-found-conversion-review-row{grid-template-columns:1fr 1fr}.lost-found-luggage-map .lost-found-conversion-source,.lost-found-conversion-review-row .lost-found-conversion-source{grid-column:1/-1}
}
@media(max-width:700px){
  .lost-found-register-modal label,.lost-found-action-modal label{font-size:12.5px}.lost-found-register-modal input,.lost-found-register-modal select,.lost-found-action-modal input,.lost-found-action-modal select,.lost-found-action-modal textarea{font-size:14px}.lost-found-register-item .lost-found-register-item-grid{grid-template-columns:1fr!important}.lost-found-register-item-grid>*{grid-column:1!important}
  .lost-found-detail-modal{padding:9px!important}.lost-found-order-summary strong{font-size:18px}.lost-found-item-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.lost-found-detail-actions{display:grid;grid-template-columns:1fr 1fr}.lost-found-detail-actions .btn{width:100%}
  .lost-found-conversion-context,.lost-found-conversion-context.asset,.lost-found-conversion-customer,.lost-found-luggage-map,.lost-found-conversion-review-row{grid-template-columns:1fr!important}.lost-found-luggage-map .lost-found-conversion-source,.lost-found-conversion-review-row .lost-found-conversion-source{grid-column:1}.lost-found-conversion-source{grid-template-columns:1fr 64px}.lost-found-conversion-source>div:last-child{grid-column:1/-1}.lost-found-conversion-modal .modal-actions{display:grid;grid-template-columns:1fr}.lost-found-conversion-modal .modal-actions .btn{width:100%}
}
@media(max-width:460px){.lost-found-item-meta{grid-template-columns:1fr}.lost-found-detail-actions{grid-template-columns:1fr}.lost-found-conversion-source{grid-template-columns:1fr}}

/* Web V0.11.8 · 遗留处置检索、本人待办与固定资产来源 */
.lost-found-filter-row{grid-template-columns:minmax(230px,1.35fr) repeat(3,minmax(150px,.72fr)) auto auto}
.approval-summary{grid-template-columns:repeat(5,minmax(0,1fr))!important}.approval-lost-found-panel{margin-bottom:12px}.lost-found-todo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.lost-found-todo-card{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid #d6e3ee;border-left:4px solid #2a73bd;border-radius:11px;background:#fff}.lost-found-todo-card.urgent{border-color:#edc4bb;border-left-color:#c34b3e;background:#fffafa}.lost-found-todo-state{display:grid;justify-items:start;gap:3px}.lost-found-todo-state b{color:#174d81;font-size:22px;line-height:1}.lost-found-todo-state small{color:#74869a;font-size:11px}.lost-found-todo-card>div:nth-child(2){display:grid;gap:4px;min-width:0}.lost-found-todo-card>div:nth-child(2) strong{color:#234c72;font-size:14px}.lost-found-todo-card>div:nth-child(2) small{color:#6e8296;font-size:11.5px;line-height:1.4;overflow-wrap:anywhere}
.lost-found-fixed-source{display:grid;align-content:center;min-height:67px;padding:8px 10px;border:1px solid #bcd6ed;border-radius:9px;background:#edf7ff}.lost-found-fixed-source small,.lost-found-fixed-source b,.lost-found-fixed-source span{display:block}.lost-found-fixed-source small{color:#668099;font-size:11px}.lost-found-fixed-source b{margin-top:3px;color:#16558e;font-size:14px}.lost-found-fixed-source span{margin-top:2px;color:#71869a;font-size:10.5px}.lost-found-fixed-source.missing{border-color:#e3afa5;background:#fff4f1}.lost-found-fixed-source.missing b,.lost-found-fixed-source.missing span{color:#aa3f33}

@media(max-width:1050px){.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}.lost-found-todo-list{grid-template-columns:1fr}}
@media(max-width:700px){.lost-found-filter-row{grid-template-columns:1fr 1fr!important}.approval-summary{grid-template-columns:1fr 1fr!important}.lost-found-todo-card{grid-template-columns:78px minmax(0,1fr)}.lost-found-todo-card>.btn{grid-column:1/-1;width:100%}}
@media(max-width:460px){.lost-found-filter-row{grid-template-columns:1fr!important}.lost-found-filter-row>*{grid-column:1!important}.lost-found-todo-card{grid-template-columns:1fr}.lost-found-todo-state{grid-template-columns:auto auto auto;align-items:center;justify-content:start}.lost-found-todo-card>.btn{grid-column:1}}

/* Web V0.11.9 · 通信线路导入指引、合同字段说明与缴费提醒预览 */
.business-import-guide{border:1px solid #c9ddec;border-radius:12px;background:#fbfdff;overflow:hidden}.business-import-guide>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;list-style:none;cursor:pointer;background:linear-gradient(90deg,#edf6ff,#f8fbff)}.business-import-guide>summary::-webkit-details-marker{display:none}.business-import-guide>summary b{color:#174f80;font-size:15px}.business-import-guide>summary span{color:#71869a;font-size:11.5px}.business-import-guide-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:10px 12px 7px}.business-import-guide-list>div{min-width:0;padding:8px 9px;border-radius:8px;background:#f2f7fb}.business-import-guide-list b,.business-import-guide-list span{display:block}.business-import-guide-list b{color:#24567f;font-size:12.5px}.business-import-guide-list span{margin-top:3px;color:#637b91;font-size:11.5px;line-height:1.45}.business-import-example{margin:0 12px 8px;padding:9px 10px;border-left:4px solid #2a73bd;border-radius:8px;background:#eaf5ff}.business-import-example small,.business-import-example b{display:block}.business-import-example small{color:#6c8297;font-size:10.5px}.business-import-example b{margin-top:3px;color:#1e4d78;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.business-import-guide>p{margin:0 12px 11px;color:#59758e;font-size:11.5px;line-height:1.45}
.network-billing-guide,.network-billing-explain,.network-billing-behavior{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.network-billing-guide>div,.network-billing-explain>div,.network-billing-behavior>div{min-width:0;padding:9px 10px;border:1px solid #cfe0ee;border-radius:9px;background:#f3f8fc}.network-billing-guide b,.network-billing-guide span,.network-billing-explain b,.network-billing-explain span,.network-billing-behavior small,.network-billing-behavior b{display:block}.network-billing-guide b{color:#185383;font-size:12px}.network-billing-guide span{margin-top:3px;color:#5f7890;font-size:10.5px;line-height:1.45}.network-billing-behavior{padding:9px;border:1px solid #bdd8ee;border-radius:10px;background:#edf7ff}.network-billing-behavior>div{border:0;background:#fff}.network-billing-behavior small{color:#70869b;font-size:10.5px}.network-billing-behavior b{margin-top:3px;color:#265273;font-size:11.5px;line-height:1.45}.network-switch-explained{align-items:flex-start!important;margin-top:0!important}.network-switch-explained>span{display:grid;gap:2px;min-width:0}.network-switch-explained>span>b{font-size:12.5px}.network-switch-explained>span>small{color:#647d94;font-size:10.5px;font-weight:500;line-height:1.4}.network-billing-explain{margin-top:9px}.network-billing-explain>div{background:linear-gradient(135deg,#eff7fd,#f9fcff)}.network-billing-explain b{color:#1d527d;font-size:12.5px}.network-billing-explain span{margin-top:3px;color:#607a91;font-size:11.5px;line-height:1.45}
.network-payment-tip>div b,.network-payment-tip>div span{display:block}.network-payment-tip>strong{flex:0 0 auto;padding:7px 10px;border-radius:8px;background:#fff;color:#1d6b3b;font-size:12px;line-height:1.4}.network-payment-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;padding:10px;border:1px solid #b9d8ee;border-radius:10px;background:#edf7ff}.network-payment-preview>div{padding:8px 9px;border-radius:8px;background:#fff}.network-payment-preview small,.network-payment-preview b{display:block}.network-payment-preview small{color:#6f8599;font-size:10.5px}.network-payment-preview b{margin-top:3px;color:#155b94;font-size:13px}.network-payment-preview p{grid-column:1/-1;margin:0;padding:7px 8px;color:#4d6c85;font-size:11.5px;line-height:1.45}.network-payment-preview p.warn{border-radius:7px;background:#fff4e5;color:#875c1d}.network-payment-actual-confirm{display:flex!important;align-items:flex-start;gap:9px;padding:10px 11px;border:1px solid #b9dcc5;border-radius:10px;background:#f1fbf4;color:#255f3a!important}.network-payment-actual-confirm input{flex:0 0 auto;width:19px!important;min-height:19px!important;margin:1px 0 0!important}.network-payment-actual-confirm span{display:grid;gap:2px}.network-payment-actual-confirm b{font-size:12.5px}.network-payment-actual-confirm small{color:#567a63;font-size:10.5px;font-weight:500;line-height:1.4}
@media(max-width:900px){.network-billing-guide,.network-billing-explain,.network-billing-behavior{grid-template-columns:1fr}.business-import-guide-list{grid-template-columns:1fr}}
@media(max-width:700px){.business-import-guide>summary{align-items:flex-start;flex-direction:column;gap:2px}.network-payment-preview{grid-template-columns:1fr}.network-payment-preview p{grid-column:1}.network-payment-tip>strong{width:100%;box-sizing:border-box}.network-billing-guide>div,.network-billing-explain>div,.network-billing-behavior>div{padding:8px 9px}}

/* Web V0.12.0 · 备料表去目录化：配置表/模板内直接维护物品行 */
.prep-tabs{grid-template-columns:repeat(4,minmax(150px,1fr))}.prep-tabs button{font-size:14px}
#demandCreatePanel .panel-head p,[data-prep-pane="progress"] .panel-head p{font-size:12.5px;line-height:1.5}
.config-process-sheet table{min-width:2020px;font-size:12px}.config-process-sheet thead tr:first-child th{font-size:12px}.config-process-sheet input,.config-process-sheet select{min-height:36px;padding:6px 8px;font-size:12px}
.config-process-sheet td:nth-child(1){width:130px;min-width:130px}.config-process-sheet td:nth-child(2){width:105px;min-width:105px}.config-process-sheet td:nth-child(3){width:80px;min-width:80px}.config-process-sheet td:nth-child(4){width:210px;min-width:210px}
.config-process-sheet td.config-sticky.priority{left:130px}.config-process-sheet td.config-sticky.code{left:235px}.config-process-sheet td.config-sticky.name{left:315px}.config-process-sheet thead tr:nth-child(2) th:nth-child(2){left:130px}.config-process-sheet thead tr:nth-child(2) th:nth-child(3){left:235px}.config-process-sheet thead tr:nth-child(2) th:nth-child(4){left:315px}
.config-process-sheet td.config-sticky input,.config-process-sheet td.config-sticky select{font-weight:700;color:#173f67}.config-process-sheet td.config-sticky.name input{font-weight:750}
.config-template-sheet{min-width:1280px;font-size:13px}.config-template-sheet input,.config-template-sheet select{min-height:38px;padding:7px 9px;font-size:13px}.config-template-sheet th:nth-child(4){width:22%}.config-template-sheet th:nth-child(7){width:17%}.config-template-sheet th:nth-child(8){width:11%}.config-template-sheet tr.inactive{opacity:.55}
.config-template-actions .cfg-use-template{order:-1}.config-category-table td,.config-category-table th{font-size:13px}
@media(max-width:720px){.prep-tabs{display:flex;overflow-x:auto}.prep-tabs button{flex:0 0 auto;min-width:130px}.config-process-sheet table{font-size:11px}.config-template-sheet{min-width:1120px}}

/* Web V0.12.1 · 备料表批量草稿、仓库资产分页检索 */
.demand-toolbar{flex-wrap:wrap}.demand-draft-tools{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 9px;border:1px solid #bfd5ec;border-radius:10px;background:#eef6ff}.demand-add-count{display:flex;align-items:center;gap:6px;margin:0;color:#526f8d;font-size:12px;font-weight:700}.demand-add-count input{width:68px;min-height:36px;text-align:center}.demand-select-all{display:flex;align-items:center;gap:6px;margin:0;padding:6px 8px;color:#244e78;font-size:13px;font-weight:750;cursor:pointer}.demand-select-all input,.config-select-cell input{width:19px!important;min-height:19px!important;accent-color:#0b63d8}.config-draft-status{display:block;margin:0 auto 5px;color:#35754b;font-size:11px;font-weight:750}.config-draft-status.unsaved{color:#9a6516}
.config-process-sheet table{min-width:2070px;font-size:13px}.config-process-sheet input,.config-process-sheet select{font-size:13px}.config-process-sheet .config-select-head,.config-process-sheet .config-select-cell{box-sizing:border-box;width:44px!important;min-width:44px!important;text-align:center;position:sticky;left:0;z-index:8;background:#e3edf7}.config-process-sheet .config-select-cell{z-index:4;background:#f4f8fc}.config-process-sheet td:nth-child(1){width:44px;min-width:44px}.config-process-sheet td:nth-child(2){width:130px;min-width:130px}.config-process-sheet td:nth-child(3){width:105px;min-width:105px}.config-process-sheet td:nth-child(4){width:80px;min-width:80px}.config-process-sheet td:nth-child(5){width:210px;min-width:210px}.config-process-sheet td.config-sticky.category{left:44px}.config-process-sheet td.config-sticky.priority{left:174px}.config-process-sheet td.config-sticky.code{left:279px}.config-process-sheet td.config-sticky.name{left:359px}.config-process-sheet thead tr:nth-child(2) th:nth-child(1){left:44px}.config-process-sheet thead tr:nth-child(2) th:nth-child(2){left:174px}.config-process-sheet thead tr:nth-child(2) th:nth-child(3){left:279px}.config-process-sheet thead tr:nth-child(2) th:nth-child(4){left:359px}.config-process-sheet tbody .required-field{border-width:2px!important}
.demand-asset-picker-modal{display:flex;flex-direction:column;min-height:min(680px,78vh)}.demand-picker-guide{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:11px 13px;border:1px solid #c8dcef;border-radius:10px;background:#edf6ff}.demand-picker-guide b{flex:0 0 auto;color:#164f83;font-size:14px}.demand-picker-guide span{color:#56728f;font-size:13px;line-height:1.5}.demand-picker-search{display:grid;grid-template-columns:minmax(280px,1fr) 150px auto;gap:9px}.demand-picker-search input,.demand-picker-search select{min-height:42px;font-size:14px}.demand-picker-result-info{padding:10px 2px 7px;color:#647b91;font-size:12px}.demand-asset-picker{display:grid;gap:9px;max-height:52vh;overflow:auto;padding:2px 5px 2px 1px}.demand-candidate{display:grid;grid-template-columns:66px 72px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;box-sizing:border-box;padding:10px 11px;border:1px solid #d5e1ed;border-radius:11px;background:#fff}.demand-candidate:hover{border-color:#91b7e4;background:#f9fcff}.demand-candidate.blocked{opacity:.58;background:#f4f5f7}.demand-candidate-check{display:grid;justify-items:center;gap:3px;margin:0;color:#5e748b;font-size:11px}.demand-candidate-check input{width:19px;min-height:19px}.demand-candidate .choice-thumb{width:72px;height:64px}.demand-candidate-main{display:grid;gap:4px;min-width:0;padding:3px 0;border:0;background:transparent;text-align:left;font:inherit;cursor:pointer;color:#173e66}.demand-candidate-main:hover strong{text-decoration:underline;color:#075fc7}.demand-candidate-main strong{font-size:14px;line-height:1.35;overflow-wrap:anywhere}.demand-candidate-main small{display:block;color:#5f748a;font-size:12px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}.demand-candidate-detail{white-space:nowrap}.demand-picker-pager{justify-content:center;margin:9px 0 0}.demand-picker-actions{position:sticky;bottom:0;margin-top:auto;padding-top:12px;background:#fff}.demand-picker-actions #dapSelectedInfo{margin-right:auto;font-weight:750;color:#245b91}.drawer.from-demand-picker{z-index:340!important}
@media(max-width:760px){.demand-draft-tools{width:100%}.demand-add-count{flex:1 1 auto}.demand-picker-search{grid-template-columns:1fr 1fr}.demand-picker-search input{grid-column:1/-1}.demand-candidate{grid-template-columns:48px 64px minmax(0,1fr)}.demand-candidate .choice-thumb{width:64px;height:58px}.demand-candidate-detail{grid-column:2/-1;justify-self:start}.demand-picker-guide{display:grid;gap:4px}.demand-asset-picker{max-height:none}.demand-asset-picker-modal{min-height:0}.config-process-sheet table{font-size:12px}}
@media(max-width:480px){.demand-picker-search{grid-template-columns:1fr}.demand-picker-search input{grid-column:1}.demand-candidate{grid-template-columns:42px minmax(0,1fr)}.demand-candidate .choice-thumb{grid-column:2}.demand-candidate-main,.demand-candidate-detail{grid-column:2}.demand-picker-actions{display:grid;grid-template-columns:1fr 1fr}.demand-picker-actions #dapSelectedInfo{grid-column:1/-1}}

/* Web V0.12.2 · 登录可靠性与新建配置表对齐 */
.login-password-field{display:block;position:relative;margin-top:7px}.login-password-field input{margin-top:0!important;padding-right:72px}.login-password-field button{position:absolute;right:7px;top:50%;transform:translateY(-50%);height:30px;min-width:54px;padding:0 10px;border:0;border-radius:7px;background:#edf4ff;color:#1759a1;font-size:13px;font-weight:750;cursor:pointer}.login-password-field button:hover,.login-password-field button:focus-visible{background:#dceaff;outline:2px solid rgba(31,111,235,.22)}.login-progress{margin-top:10px;padding:9px 11px;border:1px solid #bed6ef;border-radius:8px;background:#eef6ff;color:#285d91;font-size:12.5px;line-height:1.45}
.demand-create-grid>.required-label::after{content:none!important;display:none!important}.demand-create-grid>label{align-self:end;margin:0;display:grid;grid-template-rows:18px 44px;gap:6px}.demand-create-grid>label>input,.demand-create-grid>label>select,.demand-create-grid>label>.location-picker{height:44px;min-height:44px;margin:0}.demand-create-grid>label>.location-picker>input{height:44px;min-height:44px;margin:0}.demand-create-grid>.btn{align-self:end;height:44px;min-height:44px;margin:0}
@media(max-width:620px){.demand-create-grid>label{grid-template-rows:auto 44px}}

/* V0.13.0 能耗动态卡片状态与实际DOM对齐 */
.energy-anomaly-list>button{grid-template-columns:auto minmax(0,1fr) auto}.energy-anomaly-list>button.severe{border-color:#efb2a8;background:#fff7f5}.energy-anomaly-list>button>strong{color:#9c4238;font-size:14px}
.energy-progress-list>button{grid-template-columns:minmax(0,1fr) auto auto}.energy-progress-list>div{grid-template-columns:minmax(0,1fr) auto}.energy-progress-list strong{color:#b54c3f;font-size:11px}.energy-progress-list i{padding:4px 7px;border-radius:7px;background:#eaf4ff;color:#1764a6;font-size:10.5px;font-style:normal;font-weight:800}
.energy-bill-card.void{opacity:.67}.energy-bill-card.warn{border-color:#edc799;background:#fffaf2}.energy-bill-main header small{display:block;margin-top:3px;color:#70869a;font-size:11.5px}.energy-bill-main>header>strong{color:#155b91;font-size:17px}.energy-status.warn{background:#fff0d9;color:#a56a0d}.energy-status.done{background:#eaf8ef;color:#287447}.energy-status.void{background:#f2f3f4;color:#727b83}
.energy-detail-photo span,.energy-detail-photo small{display:block;overflow:hidden;padding:5px 7px;color:#5a748b;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.energy-detail-photo small{padding-top:0}.energy-review-context{grid-template-columns:minmax(0,1.5fr) auto minmax(0,1fr);align-items:center}.energy-review-context>div,.energy-review-context>strong,.energy-review-context>span{padding:8px 9px;border-radius:8px;background:#f3f7fa}.energy-review-context>strong{color:#155b91;font-size:18px}.energy-review-context>span{color:#60798e;font-size:12px}
@media(max-width:820px){.energy-review-context{grid-template-columns:1fr 1fr}.energy-review-context>span{grid-column:1/-1}}
@media(max-width:600px){.energy-anomaly-list>button{grid-template-columns:auto minmax(0,1fr)}.energy-anomaly-list>button>strong{grid-column:2}.energy-progress-list>button{grid-template-columns:minmax(0,1fr) auto}.energy-progress-list>button>i{grid-column:1/-1;text-align:center}.energy-review-context{grid-template-columns:1fr}.energy-review-context>span{grid-column:1}}

.approval-energy-panel{margin-bottom:12px}.energy-todo-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.energy-todo-card{display:grid;grid-template-columns:minmax(250px,1.25fr) auto minmax(190px,.8fr) auto;align-items:center;gap:10px;padding:11px 12px;border:1px solid #d5e3ed;border-left:4px solid #2c75bd;border-radius:11px;background:#fff}.energy-todo-card.warn{border-color:#edd1a8;border-left-color:#d08a20;background:#fffcf5}.energy-todo-card>div{min-width:0}.energy-todo-card>div b,.energy-todo-card>div small{display:block}.energy-todo-card>div b{margin-top:5px;color:#214e75;font-size:14px}.energy-todo-card>div small{margin-top:3px;color:#74899b;font-size:11px}.energy-todo-card>strong{color:#175c93;font-size:17px}.energy-todo-card>span:not(.energy-status){color:#607a90;font-size:11.5px;line-height:1.4}.energy-todo-card>.btn{min-height:35px}
.approval-summary{grid-template-columns:repeat(6,minmax(0,1fr))!important}
@media(max-width:1200px){.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}.energy-todo-list{grid-template-columns:1fr}}
@media(max-width:700px){.approval-summary{grid-template-columns:1fr 1fr!important}.energy-todo-card{grid-template-columns:minmax(0,1fr) auto}.energy-todo-card>span:not(.energy-status){grid-column:1/-1}.energy-todo-card>.btn{grid-column:1/-1;width:100%}}

/* Web V0.13.1 · 房态联动、自动单位与 DeepSeek 票据识别 */
.energy-auto-readout{display:grid;align-content:center;min-height:66px;box-sizing:border-box;padding:8px 10px;border:1px solid #cfe0ec;border-radius:9px;background:#f4f9fd}.energy-auto-readout small,.energy-auto-readout b,.energy-auto-readout span{display:block}.energy-auto-readout small{color:#71869a;font-size:11px}.energy-auto-readout b{margin-top:3px;color:#17613d;font-size:14px}.energy-auto-readout span{margin-top:2px;color:#70859a;font-size:10.5px;line-height:1.35}
.energy-ai-box{margin-top:10px;padding:12px 13px;border:1px solid #a8c9ea;border-radius:12px;background:linear-gradient(135deg,#edf7ff,#f9fcff)}.energy-ai-box.disabled{filter:saturate(.55);opacity:.8}.energy-ai-box>header{display:flex;align-items:center;justify-content:space-between;gap:12px}.energy-ai-box>header>div{display:flex;align-items:center;gap:10px}.energy-ai-mark{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:linear-gradient(135deg,#126bd1,#6846d9);color:#fff;font-size:13px;font-weight:900}.energy-ai-box header b,.energy-ai-box header small{display:block}.energy-ai-box header b{color:#174d80;font-size:15px}.energy-ai-box header small{margin-top:2px;color:#657f97;font-size:11px}.energy-ai-box>p{margin:9px 0;color:#607a91;font-size:11.5px;line-height:1.5}
.energy-ai-result{min-height:48px;padding:10px;border-radius:9px;background:rgba(255,255,255,.85);color:#6a8195;font-size:12px}.energy-ai-result-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px}.energy-ai-result-head b{color:#17603c}.energy-ai-result-head span{font-size:10.5px}.energy-ai-result-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.energy-ai-result-grid>div{min-width:0;padding:7px 8px;border:1px solid #d5e4ef;border-radius:7px;background:#fff}.energy-ai-result-grid small,.energy-ai-result-grid b{display:block}.energy-ai-result-grid small{color:#758b9e;font-size:10px}.energy-ai-result-grid b{margin-top:3px;color:#254f73;font-size:12px;overflow-wrap:anywhere}.energy-ai-warnings{display:grid;gap:4px;margin-top:8px}.energy-ai-warnings span{padding:6px 8px;border-radius:7px;background:#fff4df;color:#8c641e;font-size:11px}.energy-ai-loading{display:flex;align-items:center;gap:9px;color:#245c8b}.energy-ai-loading i{width:18px;height:18px;border:2px solid #b6d2e9;border-top-color:#176ec0;border-radius:50%;animation:energy-ai-spin .8s linear infinite}.energy-ai-error{display:grid;gap:3px;color:#a43d34}.energy-ai-error span,.energy-ai-error small{font-size:11px;line-height:1.4}.energy-ai-filled{border-color:#2b7ccc!important;box-shadow:0 0 0 3px rgba(43,124,204,.12)!important;background:#f5faff!important}
@keyframes energy-ai-spin{to{transform:rotate(360deg)}}
@media(max-width:700px){.energy-ai-box>header{align-items:flex-start;flex-direction:column}.energy-ai-box>header .btn{width:100%}.energy-ai-result-grid{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.energy-ai-result-grid{grid-template-columns:1fr}}

/* Web V0.13.2 · 能耗票据优先录入与上传初始化修复 */
.energy-capture-intro{margin-bottom:8px;padding:10px 12px;background:linear-gradient(100deg,#e8f4ff,#f3f9ff 58%,#eefaf6)}.energy-capture-intro>div{display:grid;gap:2px}.energy-capture-intro b{font-size:16px}.energy-capture-intro .badge{flex:0 0 auto;padding:6px 10px;background:#fff;color:#1766aa;font-size:11.5px}
.energy-capture-tabs button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;font-size:14px}.energy-capture-tabs button>b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#dce7f1;color:#60788f;font-size:12px}.energy-capture-tabs button.active>b{background:#176ed0;color:#fff}.energy-capture-tabs button>span{font-weight:800}
.energy-capture-pane,.energy-review-pane{min-height:0}.energy-capture-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:9px}.energy-capture-flow>div{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 9px;border:1px solid #d7e3ed;border-radius:9px;background:#f7fafc}.energy-capture-flow>div.current{border-color:#9fc6ed;background:#edf7ff}.energy-capture-flow i{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:#dfe8f0;color:#587087;font-size:11px;font-style:normal;font-weight:900}.energy-capture-flow .current i{background:#176ed0;color:#fff}.energy-capture-flow span,.energy-capture-flow b,.energy-capture-flow small{display:block;min-width:0}.energy-capture-flow b{color:#275475;font-size:12.5px}.energy-capture-flow small{margin-top:1px;color:#72879a;font-size:10px;line-height:1.3}
.energy-photo-drop{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:13px 14px;border-color:#e15b50;background:linear-gradient(135deg,#fffafa,#fff 58%,#f5faff)}.energy-photo-copy{display:flex;align-items:center;gap:11px;min-width:0}.energy-photo-copy>div{display:grid;gap:3px;min-width:0}.energy-photo-copy b{color:#244f72;font-size:15px}.energy-photo-copy span{color:#687f93;font-size:11.5px;line-height:1.45}.energy-photo-copy small{color:#257044;font-size:11px;font-weight:750}.energy-photo-icon{display:grid!important;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:13px;background:linear-gradient(145deg,#176fd0,#274d9e);color:#fff!important;font-size:13px!important;font-weight:900;box-shadow:0 7px 16px rgba(25,91,165,.2)}
.energy-photo-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.energy-upload-primary,.energy-upload-secondary{min-height:42px!important;padding:8px 13px!important;font-size:13px!important;font-weight:800!important;white-space:nowrap}.energy-upload-primary{background:#176bd0!important;color:#fff!important;box-shadow:0 5px 12px rgba(23,107,208,.2)}.energy-upload-secondary{border-color:#a8c7e3;background:#fff;color:#205c91}.energy-photo-drop>.qr-upload-panel,.energy-photo-drop>.multi-photo-preview,.energy-photo-drop>small{grid-column:1/-1}.energy-photo-drop>.multi-photo-preview{min-height:76px!important;padding:7px;background:#f8fbfe}.energy-photo-drop>small{color:#5f778d;font-size:11px;font-weight:700}.energy-photo-drop .photo-thumb,.energy-photo-drop .photo-thumb img{height:68px}.energy-photo-drop .photo-thumb{min-height:68px}
.energy-capture-pane .energy-ai-box{margin-top:9px;padding:10px 12px}.energy-capture-pane .energy-ai-box>p{margin:7px 0}.energy-capture-pane .energy-ai-result{min-height:38px;padding:8px 9px}.energy-review-ready{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px;padding:9px 11px;border:1px solid #b8d8c3;border-radius:9px;background:#f0faf3}.energy-review-ready b{color:#216d3e;font-size:13.5px}.energy-review-ready span{color:#5f7d69;font-size:11.5px;line-height:1.4}.energy-review-pane .energy-form-grid{gap:7px 9px}.energy-review-pane .energy-account-preview,.energy-review-pane .energy-period-help{padding-block:7px}.energy-review-pane .energy-auto-readout{min-height:61px}.energy-review-pane .energy-note-label textarea{min-height:58px}.energy-sticky-actions{justify-content:flex-end;gap:8px}.energy-sticky-actions .btn.primary{min-width:158px}
@media(max-width:760px){.energy-capture-flow{grid-template-columns:1fr}.energy-capture-flow>div{padding:7px 9px}.energy-photo-drop{grid-template-columns:1fr}.energy-photo-actions{justify-content:stretch}.energy-photo-actions>*{flex:1}.energy-photo-drop>.qr-upload-panel,.energy-photo-drop>.multi-photo-preview,.energy-photo-drop>small{grid-column:1}.energy-review-ready{align-items:flex-start;flex-direction:column;gap:3px}}
@media(max-width:520px){.energy-capture-intro{align-items:flex-start}.energy-capture-tabs button{gap:5px;padding:5px;font-size:12px}.energy-capture-tabs button>b{width:21px;height:21px}.energy-photo-copy{align-items:flex-start}.energy-photo-icon{flex-basis:43px;width:43px;height:43px;border-radius:11px;font-size:11px!important}.energy-photo-actions{display:grid;grid-template-columns:1fr}.energy-sticky-actions{display:grid;grid-template-columns:1fr 1fr}.energy-sticky-actions .btn{width:100%}.energy-sticky-actions .btn.primary{min-width:0}}

/* Web V0.13.3 · 能耗逐票批量识别、户号回填与双层去重 */
.modal.modal-energy-batch{width:min(1540px,calc(100vw - 20px));max-height:94vh}.energy-batch-modal{padding:12px;font-size:14px}.energy-capture-tabs [data-energy-batch-tab]{position:relative}.energy-capture-tabs [data-energy-batch-tab]>i{display:grid;place-items:center;min-width:24px;height:20px;padding:0 5px;border-radius:10px;background:#dce9f5;color:#275d89;font-size:10px;font-style:normal}.energy-capture-tabs [data-energy-batch-tab].active>i{background:#176ed0;color:#fff}
.energy-batch-pane{min-height:0}.energy-batch-drop{grid-template-columns:minmax(0,1fr) auto}.energy-batch-source-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(86px,1fr));gap:7px;grid-column:1/-1;max-height:214px;overflow:auto;padding:8px;border:1px solid #d4e1ec;border-radius:10px;background:#f7fafc}.energy-batch-source{position:relative;display:grid;grid-template-rows:86px auto;min-width:0;overflow:hidden;padding:0;border:2px solid #cfdeea;border-radius:9px;background:#fff;cursor:zoom-in}.energy-batch-source img{width:100%;height:86px;object-fit:cover}.energy-batch-source>span{position:absolute;top:4px;left:4px;display:grid;place-items:center;min-width:22px;height:22px;padding:0 4px;border-radius:11px;background:rgba(17,69,112,.88);color:#fff;font-size:10px;font-weight:850}.energy-batch-source>small{overflow:hidden;padding:5px 4px;color:#5e778d;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.energy-batch-source.recognizing{border-color:#2a76ca;box-shadow:0 0 0 3px rgba(42,118,202,.12)}.energy-batch-source.ready{border-color:#60af79}.energy-batch-source.error{border-color:#e0a04b}.energy-batch-source.saved{border-color:#5fa878;opacity:.72}
.energy-batch-ai-state{display:grid;grid-template-columns:minmax(250px,1fr) minmax(300px,1.5fr) auto;align-items:center;gap:13px;margin-top:9px;padding:10px 12px;border:1px solid #b8d3ec;border-radius:11px;background:linear-gradient(100deg,#edf7ff,#f8fbff)}.energy-batch-ai-state.disabled{opacity:.75}.energy-batch-ai-state>div:first-child{display:flex;align-items:center;gap:9px}.energy-batch-ai-state p,.energy-batch-ai-state p b,.energy-batch-ai-state p small{display:block;margin:0}.energy-batch-ai-state p b{color:#174f80;font-size:14px}.energy-batch-ai-state p small{margin-top:2px;color:#667f96;font-size:11px}.energy-batch-progress{display:grid;gap:5px}.energy-batch-progress>span{color:#315d82;font-size:12px;font-weight:750}.energy-batch-progress>i{height:8px;overflow:hidden;border-radius:5px;background:#dce8f2}.energy-batch-progress>i>em{display:block;width:0;height:100%;border-radius:5px;background:linear-gradient(90deg,#1371d4,#46a879);transition:width .25s ease}
.energy-batch-review-toolbar{position:sticky;top:-12px;z-index:8;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;margin-bottom:8px;padding:9px 10px;border:1px solid #c8dce9;border-radius:10px;background:rgba(245,250,254,.97);backdrop-filter:blur(8px)}.energy-batch-review-toolbar>label{display:flex;align-items:center;gap:7px;color:#234f74;font-size:13px;font-weight:800}.energy-batch-review-toolbar input{width:19px;height:19px;margin:0;accent-color:#176ed0}.energy-batch-review-toolbar>div{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap;color:#627b91;font-size:11.5px}.energy-batch-review-toolbar>div span,.energy-batch-review-toolbar>div strong{padding:4px 7px;border-radius:7px;background:#fff}.energy-batch-review-toolbar .ok{color:#247346}.energy-batch-review-toolbar .warn{color:#94651b}.energy-batch-review-toolbar .danger{color:#af4338}.energy-batch-review-toolbar strong{color:#175f9e}
.energy-batch-column-head,.energy-batch-row{display:grid;grid-template-columns:minmax(225px,1.15fr) 112px 100px minmax(235px,1.25fr) 105px 105px 126px 126px;gap:7px;align-items:start}.energy-batch-column-head{padding:0 9px 6px;color:#698096;font-size:10.5px;font-weight:800}.energy-batch-rows{display:grid;gap:7px;max-height:59vh;overflow:auto;padding:1px 3px 3px}.energy-batch-row{position:relative;padding:8px;border:1px solid #d3e0eb;border-left:4px solid #6ca0ce;border-radius:10px;background:#fff}.energy-batch-row.ready{border-left-color:#4da66b;background:#fbfffc}.energy-batch-row.duplicate{border-color:#efb3ab;border-left-color:#cf5145;background:#fff7f6}.energy-batch-row.incomplete,.energy-batch-row.manual{border-left-color:#d99a38;background:#fffcf5}.energy-batch-row.saved{border-left-color:#5eaa76;background:#f1f8f3;opacity:.74}.energy-batch-row.running{border-left-color:#2474c5;background:#f6fbff}.energy-batch-row>label{display:grid;gap:3px;min-width:0;margin:0}.energy-batch-row>label>small{overflow:hidden;color:#5f7890;font-size:10px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.energy-batch-row input,.energy-batch-row select{width:100%;min-height:38px;margin:0;padding:6px 7px;border-radius:8px;font-size:13px}.energy-batch-row .required-field{border-width:2px}.energy-batch-room .location-picker{min-width:0}.energy-batch-room .location-suggestions{z-index:30;min-width:300px}.energy-batch-room>span{overflow:hidden;color:#2f729d;font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}
.energy-batch-ticket{display:grid;grid-template-columns:auto 64px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0}.energy-batch-ticket>label input{width:19px;height:19px;margin:0;accent-color:#176ed0}.energy-batch-thumb{display:grid;place-items:center;width:64px;height:56px;overflow:hidden;padding:0;border:1px solid #cbdbe7;border-radius:7px;background:#eef4f8;cursor:zoom-in}.energy-batch-thumb img{width:100%;height:100%;object-fit:cover}.energy-batch-ticket>div{display:grid;gap:2px;min-width:0}.energy-batch-ticket b{color:#224e73;font-size:12px}.energy-batch-ticket small{overflow:hidden;color:#76899b;font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.energy-batch-status{width:max-content;padding:3px 6px;border-radius:6px;background:#eaf3fb;color:#2c6595;font-size:9px;font-style:normal;font-weight:850}.energy-batch-status.ready,.energy-batch-status.saved{background:#e9f7ed;color:#267346}.energy-batch-status.duplicate{background:#fee9e7;color:#b53f35}.energy-batch-status.incomplete,.energy-batch-status.manual{background:#fff0d7;color:#956315}.energy-batch-remove{align-self:start;width:25px;height:25px;padding:0;border:1px solid #e6b9b3;border-radius:7px;background:#fff;color:#b24b42;font-size:17px;line-height:1;cursor:pointer}.energy-batch-row-note{display:flex;align-items:center;gap:7px;grid-column:1/-1;min-height:24px;padding:5px 8px;border-top:1px dashed #d9e3ec;color:#62798e;font-size:10.5px}.energy-batch-row-note b{color:#b43d34}.energy-batch-row-note span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.energy-batch-row-note .btn{margin-left:auto;white-space:nowrap}
.energy-batch-dedupe-note{display:flex;align-items:flex-start;gap:10px;margin-top:8px;padding:8px 10px;border:1px solid #c6dced;border-radius:9px;background:#eef7ff}.energy-batch-dedupe-note b{flex:0 0 auto;color:#175e97;font-size:12px}.energy-batch-dedupe-note span{color:#5b748b;font-size:11px;line-height:1.45}.energy-batch-actions{margin-inline:-12px;margin-bottom:-12px}.energy-batch-actions #ebbSave{min-width:190px}
@media(max-width:1160px){.energy-batch-column-head{display:none}.energy-batch-row{grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(130px,1fr))}.energy-batch-ticket{grid-row:span 2}.energy-batch-room{grid-column:span 2}.energy-batch-ai-state{grid-template-columns:1fr auto}.energy-batch-progress{grid-column:1/-1;grid-row:2}.energy-batch-rows{max-height:none}}
@media(max-width:760px){.modal.modal-energy-batch{width:calc(100vw - 8px);height:calc(100dvh - 8px);max-height:calc(100dvh - 8px)}.energy-batch-modal{padding:8px}.energy-batch-drop{grid-template-columns:1fr}.energy-batch-source-preview{grid-template-columns:repeat(3,minmax(0,1fr));max-height:190px}.energy-batch-ai-state{grid-template-columns:1fr}.energy-batch-ai-state>.btn{width:100%}.energy-batch-progress{grid-column:1;grid-row:auto}.energy-batch-review-toolbar{top:-8px;grid-template-columns:1fr auto}.energy-batch-review-toolbar>div{grid-column:1/-1;grid-row:2;justify-content:flex-start}.energy-batch-row{grid-template-columns:1fr 1fr}.energy-batch-ticket{grid-column:1/-1;grid-row:auto}.energy-batch-room{grid-column:1/-1}.energy-batch-row-note{grid-column:1/-1}.energy-batch-actions{margin-inline:-8px;margin-bottom:-8px}}
@media(max-width:480px){.energy-batch-source-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-batch-review-toolbar{grid-template-columns:1fr}.energy-batch-review-toolbar>.btn{width:100%}.energy-batch-review-toolbar>div{grid-row:auto}.energy-batch-row{grid-template-columns:1fr}.energy-batch-room,.energy-batch-row-note{grid-column:1}.energy-batch-ticket{grid-template-columns:auto 58px minmax(0,1fr) auto}.energy-batch-thumb{width:58px;height:52px}.energy-batch-row-note span{white-space:normal}.energy-batch-dedupe-note{display:grid}.energy-batch-actions{grid-template-columns:1fr}.energy-batch-actions .btn{grid-column:1!important}}

/* Web V0.13.4 · 房间导入导出、备料表紧凑命令栏与自动保存 */
.demand-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.demand-icon-button svg,.demand-print-icon svg{flex:0 0 17px;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.demand-commandbar{position:sticky;top:56px;z-index:9;display:flex!important;align-items:stretch;gap:7px;max-width:100%;margin:8px 0 9px;padding:7px;border:1px solid #d6e2ee;border-radius:12px;background:rgba(255,255,255,.97);box-shadow:0 5px 16px rgba(27,68,109,.07);overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap!important;scrollbar-width:thin}
.demand-tool-group{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;min-width:0;padding:4px 8px;border:1px solid #dbe5ee;border-radius:9px;background:#f8fafc}.demand-entry-tools{border-color:#c8dced;background:#eef7ff}.demand-function-tools{border-color:#cce3d4;background:#f2faf5}.demand-workflow-tools{background:#fff}.demand-system-tools{padding-inline:4px;background:#f6f7f9}.demand-commandbar .btn{min-height:36px;margin:0;padding:7px 10px;font-size:13px}.demand-commandbar .demand-add-count{gap:5px;font-size:11px}.demand-commandbar .demand-add-count input{width:54px;min-height:34px;height:34px;padding:5px}.demand-commandbar .demand-select-all{padding:5px 3px;font-size:12px}.demand-commandbar .demand-select-all input{width:18px!important;min-height:18px!important}
.demand-autosave-status{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 7px;border-radius:7px;background:#fff;color:#577087;font-size:11px;font-weight:750;white-space:nowrap}.demand-autosave-status i{display:block;width:8px;height:8px;border-radius:50%;background:#8fa5b7}.demand-autosave-status.saved{color:#287347}.demand-autosave-status.saved i{background:#42a363}.demand-autosave-status.pending{color:#22649a}.demand-autosave-status.pending i{background:#2c79c8}.demand-autosave-status.waiting{color:#966414}.demand-autosave-status.waiting i{background:#d99b36}.demand-autosave-status.saving{color:#1c67a4}.demand-autosave-status.saving i{border:2px solid #b7d2e8;border-top-color:#176dcc;background:transparent;animation:energy-ai-spin .75s linear infinite}.demand-autosave-status.error{color:#b33d35;background:#fff4f3}.demand-autosave-status.error i{background:#d65349}
.demand-print-icon{display:grid!important;place-items:center;width:38px;min-width:38px!important;height:36px;padding:0!important;color:#254f73}.demand-print-icon:hover{border-color:#2878c5;background:#edf6ff;color:#1767ad}
#cfgActive{padding:16px 18px}.config-task-head{gap:13px}.config-task-head+.config-workflow-steps{margin-top:9px}.demand-item-filters{margin:8px 0;padding:8px}.demand-detail-list{margin-top:8px}.config-process-sheet{border-radius:10px}
.prep-progress-panel{padding-top:14px}.prep-history-filterbar{display:grid;grid-template-columns:minmax(220px,1.45fr) minmax(220px,1.15fr) minmax(145px,.78fr) minmax(145px,.78fr) auto auto;align-items:end;gap:8px;margin-bottom:11px;padding:9px;border:1px solid #d8e4ef;border-radius:11px;background:#f7fafc}.prep-history-filterbar .task-filter-field{display:grid;gap:4px;min-width:0;margin:0;color:#587087;font-size:11px;font-weight:750}.prep-history-filterbar input,.prep-history-filterbar select{height:38px;min-height:38px;margin:0;padding-block:6px}.prep-history-actions{display:flex;gap:6px;align-items:center}.prep-history-actions .btn{height:38px;min-height:38px;padding:6px 10px}.prep-history-count{align-self:center;min-width:max-content;white-space:nowrap}.prep-progress-panel>.table-wrap{margin-top:0}.demand-history-table th,.demand-history-table td{padding-block:9px}
.parameter-location-io{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.parameter-location-io .btn{min-height:38px}.parameter-location-io+#locationCreateForm{margin-top:0}
@media(max-width:1280px){.prep-history-filterbar{grid-template-columns:minmax(210px,1.35fr) minmax(210px,1.1fr) 145px 145px auto}.prep-history-count{grid-column:1/-1}}
@media(max-width:920px), (max-width:1100px) and (hover:none) and (pointer:coarse){.demand-commandbar{position:static}.prep-history-filterbar{grid-template-columns:1fr 1fr}.prep-history-actions{align-self:end}.prep-history-count{grid-column:auto;justify-self:end}}
@media(max-width:620px){#cfgActive{padding:12px 9px}.demand-commandbar{margin-inline:-2px;padding:5px}.demand-tool-group{padding:3px 6px}.prep-history-filterbar{grid-template-columns:1fr}.prep-history-actions{display:grid;grid-template-columns:1fr 1fr}.prep-history-actions .btn{width:100%}.prep-history-count{grid-column:1;justify-self:start}.parameter-location-io{width:100%;display:grid;grid-template-columns:1fr 1fr}.parameter-location-io .btn{width:100%}}

/* Web V0.13.6 · 能耗200票批量识别、百分比进度、图片放大与台账重构 */
.energy-tabs{height:auto;min-height:64px}.energy-tabs button{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-content:center;column-gap:7px;row-gap:1px;height:54px;min-height:54px}.energy-tabs button>span{font-size:14px;font-weight:850}.energy-tabs button>b{align-self:center}.energy-tabs button>small{grid-column:1/-1;color:#7a8da0;font-size:10.5px;font-weight:600}.energy-tabs button.active>small{color:#4d7397}
.energy-ledger-explain{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px;padding:10px 12px;border:1px solid #bdd8ed;border-radius:10px;background:linear-gradient(100deg,#edf7ff,#f8fcff)}.energy-ledger-explain>div{display:grid;gap:2px}.energy-ledger-explain b{color:#175785;font-size:14px}.energy-ledger-explain span{color:#5f7890;font-size:12px;line-height:1.45}.energy-ledger-explain>small{flex:0 0 auto;padding:6px 9px;border-radius:7px;background:#fff;color:#236393;font-size:11px;font-weight:750}
.energy-ledger-quick{display:flex;align-items:center;gap:7px;margin-bottom:9px;padding:7px;overflow-x:auto;border:1px solid #d7e3ed;border-radius:10px;background:#f7fafc;scrollbar-width:thin}.energy-ledger-quick button{flex:0 0 auto;min-height:35px;padding:6px 11px;border:1px solid #ccdae6;border-radius:8px;background:#fff;color:#365b78;font-size:12px;font-weight:750;cursor:pointer}.energy-ledger-quick button:hover{border-color:#74a9d5;background:#f0f7ff}.energy-ledger-quick button.active{border-color:#176ed0;background:#176ed0;color:#fff;box-shadow:0 4px 10px rgba(23,110,208,.18)}.energy-ledger-quick button.danger-lite:not(.active){border-color:#efc0ba;background:#fff7f6;color:#a8483f}
.energy-filter-grid{grid-template-columns:minmax(220px,1.45fr) 150px repeat(4,minmax(122px,.78fr)) auto;align-items:end;padding:9px;border:1px solid #dce6ee;border-radius:10px;background:#fbfcfe}.energy-filter-grid>label{display:grid;gap:4px;min-width:0;color:#5b748b;font-size:10.5px;font-weight:750}.energy-filter-grid>label input,.energy-filter-grid>label select{width:100%;margin:0}.energy-filter-query{min-width:220px}.energy-filter-actions{display:flex;align-items:center;gap:6px}.energy-filter-actions .btn{white-space:nowrap}.energy-ledger-head{margin-top:10px}.energy-bill-amount{display:grid;justify-items:end;flex:0 0 auto}.energy-bill-amount small{color:#70879a;font-size:10px}.energy-bill-amount strong{margin-top:2px;color:#155b91;font-size:18px}.energy-bill-main>header>strong{display:none}
.energy-batch-progress>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.energy-batch-progress>div>span{color:#315d82;font-size:12px;font-weight:750}.energy-batch-progress>div>strong{min-width:48px;color:#1168b5;font-size:16px;text-align:right}.energy-batch-source-preview{grid-template-columns:repeat(auto-fill,minmax(78px,1fr));max-height:250px}.energy-batch-source{grid-template-rows:76px auto}.energy-batch-source img{height:76px}
@media(max-width:1320px){.energy-filter-grid{grid-template-columns:minmax(220px,1.4fr) 150px repeat(3,minmax(120px,1fr))}.energy-filter-actions{grid-column:span 2}.energy-filter-actions .btn{flex:1}}
@media(max-width:820px){.energy-tabs{min-height:61px}.energy-tabs button{height:51px;min-height:51px;padding-inline:5px}.energy-tabs button>span{font-size:12.5px}.energy-tabs button>small{font-size:9.5px}.energy-ledger-explain{align-items:flex-start;flex-direction:column;gap:6px}.energy-ledger-explain>small{flex:auto}.energy-filter-grid{grid-template-columns:1fr 1fr}.energy-filter-query{grid-column:1/-1}.energy-filter-actions{grid-column:1/-1}.energy-batch-source-preview{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:600px){.energy-tabs{height:auto}.energy-tabs button{height:54px;min-height:54px}.energy-tabs button>small{display:none}.energy-filter-grid{grid-template-columns:1fr}.energy-filter-grid>*{grid-column:1!important}.energy-filter-actions{display:grid;grid-template-columns:1fr 1fr}.energy-ledger-quick{margin-inline:-1px}.energy-bill-amount strong{font-size:16px}.energy-batch-source-preview{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Web V0.13.6 · 能耗应收开关、支付闭环与三工作区辨识 */
.energy-tabs{gap:8px;padding:0;background:transparent}.energy-tabs button{grid-template-columns:30px minmax(0,auto) auto;grid-template-rows:auto auto;column-gap:8px;min-height:66px;height:66px;border:1px solid #d5e2ed;border-radius:12px;background:#fff}.energy-tabs button>i{display:grid;grid-row:1/3;place-items:center;width:28px;height:28px;border-radius:9px;background:#e8f2fb;color:#1766aa;font-size:13px;font-style:normal;font-weight:900}.energy-tabs button>span{align-self:end;text-align:left}.energy-tabs button>b{align-self:end}.energy-tabs button>small{grid-column:2/4;align-self:start;text-align:left}.energy-tabs button.active.ledger{border-color:#6ca8dc;background:#eef7ff}.energy-tabs button.active.progress{border-color:#e3b665;background:#fff8e9;color:#815817}.energy-tabs button.active.progress>i{background:#e5a83e;color:#fff}.energy-tabs button.active.overview{border-color:#9a8bd6;background:#f5f2ff;color:#554493}.energy-tabs button.active.overview>i{background:#7663bd;color:#fff}
.energy-pane-guide{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px;padding:11px 13px;border:1px solid #bdd8ed;border-left:5px solid #2676bd;border-radius:10px;background:linear-gradient(100deg,#edf7ff,#f9fcff)}.energy-pane-guide>div,.energy-pane-guide:not(:has(>div)){min-width:0}.energy-pane-guide b,.energy-pane-guide span{display:block}.energy-pane-guide b{color:#175785;font-size:15px}.energy-pane-guide span{margin-top:2px;color:#58758e;font-size:12.5px;line-height:1.45}.energy-pane-guide>small{flex:0 0 auto;padding:6px 9px;border-radius:7px;background:#fff;color:#236393;font-size:11.5px;font-weight:750}.energy-pane-guide.missing{border-color:#ead19f;border-left-color:#d49425;background:linear-gradient(100deg,#fff8e9,#fffdf8)}.energy-pane-guide.missing b{color:#8b5c11}.energy-pane-guide.analysis{border-color:#d4ccef;border-left-color:#7663bd;background:linear-gradient(100deg,#f4f1ff,#fbfaff)}.energy-pane-guide.analysis b{color:#564594}
.energy-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.energy-progress-panel>.energy-pane-guide{margin-bottom:12px}.energy-missing-main{padding:12px;border:1px solid #e5d3ac;border-radius:11px;background:#fffdf8}.energy-missing-main h4{margin:0;color:#75531b;font-size:15px}.energy-missing-main>p{margin:3px 0 9px;color:#806d4d;font-size:11.5px}.energy-progress-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:56vh}.energy-progress-list>.empty-state{grid-column:1/-1}.energy-progress-list>button{border-left:4px solid #daa33d}
.energy-filter-grid{grid-template-columns:minmax(225px,1.4fr) 145px repeat(5,minmax(112px,.72fr)) auto}.energy-bill-card{display:block;padding:12px 13px}.energy-bill-main>header{min-height:48px}.energy-bill-meta{grid-template-columns:1.25fr .7fr .85fr 1.1fr}.energy-bill-main>footer>div{display:flex;align-items:center;gap:5px}.energy-payment-pill{display:inline-flex;align-items:center;width:max-content;padding:4px 7px;border-radius:7px;font-size:10.5px;font-weight:850}.energy-payment-pill.paid{background:#e9f7ed;color:#267346}.energy-payment-pill.unpaid{background:#fff0dc;color:#96610f}.energy-payment-text.paid{color:#247346!important}.energy-payment-text.unpaid{color:#a16712!important}.energy-detail-badges{display:flex;gap:6px;margin-bottom:7px}.energy-detail-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.energy-detail-grid>div>span{display:block;margin-top:3px;color:#71879a;font-size:10.5px;line-height:1.35}.energy-review-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.energy-review-summary>div{padding:8px 9px;border-radius:8px;background:#f4f8fb}.energy-review-summary small,.energy-review-summary b{display:block}.energy-review-summary p{margin:3px 0 0;line-height:1.45}.btn.success{border-color:#329158;background:#238447;color:#fff}.btn.success:hover{background:#1c703c}.energy-payment-modal{display:grid;gap:11px;font-size:14px}.energy-payment-confirm{padding:12px 13px;border:1px solid #b7dcc4;border-radius:11px;background:#f0faf3}.energy-payment-confirm.danger{border-color:#efc0b8;background:#fff6f4}.energy-payment-confirm b,.energy-payment-confirm span{display:block}.energy-payment-confirm b{color:#216b3d;font-size:16px}.energy-payment-confirm.danger b{color:#a13e34}.energy-payment-confirm span{margin-top:4px;color:#365d76;font-size:13px;font-weight:750}.energy-payment-confirm p{margin:6px 0 0;color:#607a6b;font-size:12px;line-height:1.5}.energy-payment-confirm.danger p{color:#80635e}.energy-payment-modal>label{display:grid;gap:4px;color:#355a79;font-size:12.5px;font-weight:700}.energy-payment-modal textarea{font-size:14px}.energy-payment-modal .risk-confirm-check{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #e8c2bb;border-radius:9px;background:#fff9f7;color:#8b4038}.energy-payment-modal .risk-confirm-check input{flex:0 0 auto;width:18px;height:18px;margin:1px 0 0}
.location-utility-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.energy-service-switches{display:flex;align-items:center;gap:8px;grid-column:1/-1;flex-wrap:wrap}.energy-service-switches label{display:flex!important;align-items:center;gap:7px;min-width:145px;min-height:40px;margin:0!important;padding:7px 11px;border:1px solid #bcd5e9;border-radius:9px;background:#fff;color:#225b86!important;font-size:13px!important;font-weight:800!important}.energy-service-switches input{flex:0 0 auto;width:18px!important;height:18px!important;min-height:18px!important;margin:0!important;accent-color:#176ed0}.location-utility-history-note{grid-column:1/-1;margin:0;padding:7px 9px;border-left:4px solid #5d9bcf;border-radius:7px;background:#eaf4fc;color:#4d6f89;font-size:11.5px;line-height:1.45}
@media(max-width:1380px){.energy-filter-grid{grid-template-columns:minmax(220px,1.4fr) 145px repeat(3,minmax(120px,1fr))}.energy-filter-actions{grid-column:span 2}.energy-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.energy-progress-list{grid-template-columns:1fr}.energy-filter-grid{grid-template-columns:1fr 1fr}.energy-filter-query{grid-column:1/-1}.energy-filter-actions{grid-column:1/-1}.energy-bill-meta{grid-template-columns:1fr 1fr}.energy-detail-grid{grid-template-columns:1fr 1fr}.energy-review-summary{grid-template-columns:1fr}.location-utility-fields{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.energy-tabs{display:grid;grid-template-columns:1fr}.energy-tabs button{height:58px;min-height:58px}.energy-tabs button>small{display:block}.energy-pane-guide{align-items:flex-start;flex-direction:column}.energy-pane-guide>small{flex:auto}.energy-kpis{grid-template-columns:1fr 1fr}.energy-filter-grid,.energy-bill-meta,.energy-detail-grid,.location-utility-fields{grid-template-columns:1fr}.energy-filter-grid>*{grid-column:1!important}.energy-filter-actions{display:grid;grid-template-columns:1fr 1fr}.energy-payment-modal .modal-actions{display:grid;grid-template-columns:1fr}.energy-payment-modal .modal-actions .btn{width:100%}.energy-service-switches{display:grid;grid-template-columns:1fr}.energy-service-switches label{min-width:0}}

/* Web V0.13.6 · 能耗核对分组、紧凑行、保存进度与票据缩放拖动 */
.image-preview-stage{width:calc(100vw - 150px);height:94vh;max-width:none;max-height:none;overflow:hidden;touch-action:none;user-select:none}
.image-preview-stage img{max-width:100%;max-height:92vh;transform:translate3d(0,0,0) scale(1);transform-origin:center center;transition:opacity .12s,transform .12s;will-change:transform;user-select:none;-webkit-user-drag:none}
.image-preview-stage.is-zoomed{cursor:grab}.image-preview-stage.is-dragging{cursor:grabbing}.image-preview-stage.is-dragging img{transition:opacity .12s}
.image-zoom-toolbar{position:absolute;top:14px;left:14px;z-index:504;display:flex;align-items:center;gap:5px;padding:6px;border:1px solid rgba(255,255,255,.22);border-radius:10px;background:rgba(3,16,33,.78);color:#fff;box-shadow:0 6px 20px rgba(0,0,0,.28);backdrop-filter:blur(7px)}
.image-zoom-toolbar button{display:grid;place-items:center;min-width:34px;height:32px;padding:0 8px;border:1px solid rgba(255,255,255,.2);border-radius:7px;background:rgba(255,255,255,.12);color:#fff;font-size:18px;font-weight:800;cursor:pointer}.image-zoom-toolbar button:hover,.image-zoom-toolbar button:focus-visible{background:rgba(255,255,255,.25);outline:2px solid rgba(255,255,255,.55)}.image-zoom-toolbar button:nth-of-type(3){font-size:11px}.image-zoom-toolbar strong{min-width:49px;font-size:12px;text-align:center}.image-zoom-toolbar span{padding:0 5px;color:#d8e5f1;font-size:10.5px;white-space:nowrap}

.modal.modal-energy-batch{display:flex;flex-direction:column;width:min(1580px,calc(100vw - 12px));height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);overflow:hidden}.modal-energy-batch .modal-head{flex:0 0 auto;min-height:48px;padding:9px 16px}.modal-energy-batch #modalBody{flex:1;min-height:0;overflow:hidden}.energy-batch-modal{box-sizing:border-box;display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden;padding:8px 10px!important}.energy-batch-modal>.energy-capture-intro{flex:0 0 auto;margin-bottom:5px;padding:7px 10px}.energy-batch-modal>.energy-form-tabs{flex:0 0 auto;margin-bottom:5px}.energy-batch-modal>.energy-form-tabs button{min-height:39px;height:39px}.energy-batch-pane{min-height:0}.energy-batch-pane[data-energy-batch-pane="upload"]{overflow:auto}.energy-batch-pane[data-energy-batch-pane="review"]{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.energy-batch-review-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;margin-bottom:5px;padding:6px 9px;border:1px solid #bdd8ec;border-radius:8px;background:linear-gradient(100deg,#edf7ff,#f9fcff)}.energy-batch-review-guide>div{min-width:0}.energy-batch-review-guide b,.energy-batch-review-guide span{display:block}.energy-batch-review-guide b{color:#185682;font-size:12.5px}.energy-batch-review-guide span{margin-top:1px;color:#607b91;font-size:10.5px}.energy-batch-review-guide>strong{flex:0 0 auto;color:#397092;font-size:10.5px}
.energy-batch-review-filters{display:flex;align-items:center;gap:5px;flex:0 0 auto;margin-bottom:5px;padding:5px;overflow-x:auto;border:1px solid #d4e1eb;border-radius:9px;background:#f7fafc;scrollbar-width:thin}.energy-batch-filter-label{flex:0 0 auto;padding-left:3px;color:#72869a;font-size:9.5px;font-weight:800}.energy-batch-review-filters>i{flex:0 0 1px;width:1px;height:24px;margin:0 3px;background:#cad8e4}.energy-batch-review-filters button{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-height:32px;padding:5px 9px;border:1px solid #cad9e5;border-radius:7px;background:#fff;color:#46647d;font-size:11.5px;font-weight:780;cursor:pointer}.energy-batch-review-filters button b{display:grid;place-items:center;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:#e9f0f6;color:#49677f;font-size:9.5px}.energy-batch-review-filters button.active{border-color:#176ed0;background:#176ed0;color:#fff;box-shadow:0 3px 9px rgba(23,110,208,.18)}.energy-batch-review-filters button.active b{background:#fff;color:#1762a4}.energy-batch-review-filters button.ai:not(.active){border-color:#abd8b9;background:#f1faf4;color:#287246}.energy-batch-review-filters button.manual:not(.active),.energy-batch-review-filters button.incomplete:not(.active){border-color:#ead1a3;background:#fff9ec;color:#916116}.energy-batch-review-filters button.duplicate:not(.active){border-color:#edbbb5;background:#fff6f5;color:#ad463c}
.energy-batch-review-toolbar{position:static;flex:0 0 auto;grid-template-columns:auto minmax(0,1fr) auto;min-height:38px;margin-bottom:4px;padding:5px 8px}.energy-batch-review-toolbar>label{font-size:11.5px}.energy-batch-review-toolbar input{width:17px;height:17px}.energy-batch-review-toolbar>div{gap:5px;font-size:10px}.energy-batch-review-toolbar>div span,.energy-batch-review-toolbar>div strong{padding:2px 5px}.energy-batch-review-toolbar>.btn{min-height:31px;padding:5px 9px;font-size:10.5px}
.energy-batch-column-head{flex:0 0 auto;padding:0 6px 3px;font-size:9.5px}.energy-batch-rows{flex:1;min-height:0;max-height:none;gap:4px;padding:1px 2px 3px;overscroll-behavior:contain}.energy-batch-row{gap:5px;padding:5px 6px;border-radius:8px}.energy-batch-row.room-ai:not(.duplicate):not(.saved){box-shadow:inset 0 0 0 1px rgba(61,157,91,.12)}.energy-batch-row.room-unresolved:not(.duplicate){border-left-color:#d8952d;background:#fffaf0}.energy-batch-row>label{gap:2px}.energy-batch-row>label>small{font-size:9px}.energy-batch-row input,.energy-batch-row select{min-height:32px;height:32px;padding:4px 6px;border-radius:6px;font-size:11.5px}.energy-batch-ticket{grid-template-columns:auto 52px minmax(0,1fr) auto;gap:5px}.energy-batch-ticket>label input{width:17px;height:17px}.energy-batch-thumb{width:52px;height:44px;border-radius:6px}.energy-batch-ticket>div{gap:1px}.energy-batch-ticket b{font-size:10.5px}.energy-batch-ticket small{font-size:8.5px}.energy-batch-status{padding:2px 5px;font-size:8px}.energy-batch-remove{width:22px;height:22px;border-radius:5px;font-size:15px}.energy-room-source{display:inline-flex;margin-left:3px;padding:2px 5px;border-radius:5px;font-size:8px;font-style:normal;font-weight:850;vertical-align:middle}.energy-room-source.ai{background:#e5f6ea;color:#247143}.energy-room-source.manual{background:#fff0d5;color:#966315}.energy-room-source.unresolved{background:#fee9df;color:#ad4c2e}.energy-batch-room>span{font-size:8.5px}.energy-batch-row-note{min-height:18px;padding:3px 6px;font-size:9px}.energy-batch-dedupe-note{flex:0 0 auto;margin-top:4px;padding:5px 8px}.energy-batch-dedupe-note b{font-size:10.5px}.energy-batch-dedupe-note span{font-size:9.5px}
.energy-batch-actions{flex:0 0 auto;align-items:center;flex-wrap:nowrap;min-height:54px;margin:5px -10px -8px!important;padding:7px 10px!important}.energy-batch-actions .btn{flex:0 0 auto;min-height:36px}.energy-batch-save-progress{display:grid;grid-template-columns:minmax(240px,1fr) auto;align-items:center;gap:4px 9px;flex:1;min-width:300px;max-width:650px;padding:6px 8px;border:1px solid #9fc5e7;border-radius:8px;background:#eef7ff}.energy-batch-save-progress.hidden{display:none!important}.energy-batch-save-progress>div{display:flex;align-items:center;justify-content:space-between;gap:8px;grid-column:1/-1}.energy-batch-save-progress span{overflow:hidden;color:#235f90;font-size:10.5px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.energy-batch-save-progress strong{color:#1266ad;font-size:13px}.energy-batch-save-progress>i{height:7px;overflow:hidden;border-radius:4px;background:#d5e5f2}.energy-batch-save-progress>i>em{display:block;width:0;height:100%;border-radius:4px;background:linear-gradient(90deg,#176ed0,#39a562);transition:width .2s}.energy-batch-save-progress>small{color:#53738d;font-size:9.5px;white-space:nowrap}
@media(max-width:900px){.image-preview-stage{width:100vw;height:100vh}.image-zoom-toolbar{top:auto;bottom:18px;left:50%;transform:translateX(-50%)}.image-preview-stage .image-counter{top:16px;bottom:auto}.image-zoom-toolbar span{display:none}.energy-batch-review-guide{align-items:flex-start}.energy-batch-review-guide>strong{display:none}.energy-batch-row{grid-template-columns:1fr 1fr}.energy-batch-ticket,.energy-batch-room,.energy-batch-row-note{grid-column:1/-1}.energy-batch-actions{flex-wrap:wrap}.energy-batch-save-progress{order:-1;flex-basis:100%;max-width:none}}
@media(max-width:520px){.image-zoom-toolbar{bottom:12px}.image-zoom-toolbar button{min-width:31px;height:30px}.energy-batch-review-guide span{line-height:1.35}.energy-batch-review-toolbar{grid-template-columns:1fr auto}.energy-batch-review-toolbar>div{grid-column:1/-1;grid-row:2}.energy-batch-row{grid-template-columns:1fr}.energy-batch-room,.energy-batch-row-note{grid-column:1}.energy-batch-save-progress{min-width:0}.energy-batch-actions #ebbSave{min-width:0;flex:1}}

/* Web V0.13.7 · Chainway R1 桌面 RFID 工作台 */
.r1-workbench{overflow:hidden}.r1-workbench-head{align-items:flex-start}.r1-bridge-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.r1-status,.r1-run-state{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border-radius:16px;font-size:11.5px;font-weight:850;white-space:nowrap}.r1-status:before{width:8px;height:8px;margin-right:6px;border-radius:50%;background:currentColor;content:""}.r1-status.offline{background:#f2f3f5;color:#727b85}.r1-status.ready{background:#fff3db;color:#96620e}.r1-status.online{background:#e8f7ed;color:#227342}.r1-safety-strip{display:flex;align-items:center;gap:11px;margin-bottom:10px;padding:10px 12px;border:1px solid #bad8ea;border-left:5px solid #1670be;border-radius:10px;background:linear-gradient(100deg,#eaf6ff,#f7fbff)}.r1-safety-strip b{flex:0 0 auto;color:#155987}.r1-safety-strip span{flex:1;color:#526f86;font-size:12px;line-height:1.45}.r1-safety-strip .text-btn{flex:0 0 auto}.r1-mode-tabs{margin-bottom:10px}.r1-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:10px}.r1-metrics>div{min-height:78px;padding:13px 15px}.r1-metrics>div:nth-child(1){border-top:4px solid #e19a2c}.r1-metrics>div:nth-child(2){border-top:4px solid #347fbe}.r1-metrics>div:nth-child(3){border-top:4px solid #3d9a5c}.r1-metrics>div:nth-child(4){border-top:4px solid #c64f45}.r1-metrics span{display:block;color:#6d8295;font-size:11px}.r1-metrics b{display:block;margin-top:3px;color:#194f79;font-size:25px}.r1-pane{min-height:260px}.r1-bind-grid{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(430px,.95fr);gap:11px}.r1-source-card,.r1-bind-card,.r1-lookup-card,.r1-diagnostic-grid>div{min-width:0;padding:13px;border:1px solid #d3e1ec;border-radius:12px;background:#fbfdff}.r1-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}.r1-section-head h4,.r1-lookup-card h4,.r1-diagnostic-grid h4{margin:0;color:#1c557f;font-size:16px}.r1-section-head p,.r1-lookup-card>p,.r1-diagnostic-grid>div>p{margin:3px 0 0;color:#72869a;font-size:11.5px}.r1-filter-grid{display:grid;grid-template-columns:minmax(170px,1.25fr) minmax(135px,.8fr) minmax(150px,1fr) auto;gap:7px}.r1-filter-grid input,.r1-filter-grid select{min-width:0;height:39px;font-size:12.5px}.r1-selection-bar{margin:8px 0;padding:7px 8px;border-radius:9px;background:#f0f6fb}.r1-selection-bar .muted{margin-left:auto}.r1-asset-results{display:grid;gap:6px;max-height:540px;overflow:auto;padding-right:3px}.r1-asset-row{display:grid;grid-template-columns:20px 54px minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px 8px;border:1px solid #d6e2ec;border-radius:9px;background:#fff}.r1-asset-row:hover{border-color:#7eafd4}.r1-asset-row.queued{background:#f3f8f5;opacity:.78}.r1-asset-row>input{width:18px;height:18px;margin:0;accent-color:#176ed0}.r1-asset-thumb,.r1-current-photo{display:grid;place-items:center;overflow:hidden;border:1px solid #d3e0e9;border-radius:8px;background:#eef3f7;color:#8698a7;font-size:10px}.r1-asset-thumb{width:54px;height:49px}.r1-asset-thumb img,.r1-current-photo img{width:100%;height:100%;object-fit:contain}.r1-asset-main{display:grid;gap:2px;min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.r1-asset-main b,.r1-asset-main span,.r1-asset-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r1-asset-main b{color:#244f70;font-size:12.5px}.r1-asset-main span{color:#56748c;font-size:10.5px}.r1-asset-main small{color:#788c9c;font-size:10px}.r1-row-actions{display:flex;align-items:center}.r1-defaults{display:grid;grid-template-columns:1fr 1.15fr 1fr auto;align-items:end;gap:7px;margin-bottom:9px;padding:9px;border:1px solid #c8ddea;border-radius:9px;background:#eff7fc}.r1-defaults label{display:grid;gap:3px;min-width:0;color:#37617f;font-size:10.5px;font-weight:750}.r1-defaults input,.r1-defaults select{min-width:0;height:36px;margin:0;font-size:12px}.r1-defaults input[type=range]{height:18px;padding:0}.r1-current-asset{display:grid;grid-template-columns:82px minmax(0,1fr);gap:11px;min-height:105px;margin-bottom:8px;padding:10px;border:2px solid #7baed3;border-radius:11px;background:linear-gradient(110deg,#ecf7ff,#fff)}.r1-current-asset.empty{display:grid;place-items:center;align-content:center;border-style:dashed;color:#6f8394;text-align:center}.r1-current-asset.empty span,.r1-current-asset.empty small{display:block;grid-column:1/-1}.r1-current-photo{width:82px;height:82px}.r1-current-asset>div:last-child{display:grid;align-content:center;gap:3px;min-width:0}.r1-current-asset small{color:#6e8799;font-size:10px}.r1-current-asset b{overflow:hidden;color:#1d527a;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.r1-current-asset strong{color:#176ab0;font-size:18px}.r1-current-asset span{overflow:hidden;color:#60788b;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.r1-reader-state{display:grid;gap:2px;margin-bottom:7px;padding:9px 11px;border:1px solid #d5e1ea;border-left:5px solid #8196a6;border-radius:9px;background:#f6f9fb}.r1-reader-state b{color:#365d7b;font-size:13px}.r1-reader-state span{overflow-wrap:anywhere;color:#6d8294;font-size:10.5px}.r1-reader-state.reading{border-left-color:#d7952d;background:#fffaf0}.r1-reader-state.stable{border-left-color:#237bbb;background:#eef8ff}.r1-reader-state.binding{border-left-color:#6758b5;background:#f4f1ff}.r1-reader-state.success{border-left-color:#32935a;background:#effaf3}.r1-reader-state.danger{border-color:#e5b1ac;border-left-color:#c8493e;background:#fff5f4}.r1-tag-display{display:grid;grid-template-columns:1.2fr 1.2fr .65fr;gap:6px;margin-bottom:7px}.r1-tag-display>div{min-width:0;padding:7px 8px;border-radius:8px;background:#eef3f7}.r1-tag-display small,.r1-tag-display strong{display:block}.r1-tag-display small{color:#7b8e9e;font-size:9px}.r1-tag-display strong{overflow:hidden;margin-top:2px;color:#315b7b;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.r1-stability{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(120px,1fr);align-items:center;gap:8px;margin:7px 0;color:#52718a;font-size:10.5px}.r1-stability i,.r1-progress i{display:block;height:7px;overflow:hidden;border-radius:5px;background:#dbe6ee}.r1-stability em,.r1-progress em{display:block;width:0;height:100%;border-radius:5px;background:linear-gradient(90deg,#2777bd,#3ba566);transition:width .2s}.r1-run-state.paused{background:#eff1f3;color:#697781}.r1-run-state.running{background:#e7f7ed;color:#227341}.r1-run-state.running:before{width:7px;height:7px;margin-right:6px;border-radius:50%;background:#2c9b57;box-shadow:0 0 0 5px rgba(44,155,87,.13);content:""}.r1-run-actions{gap:6px;margin-top:7px}.r1-progress{display:grid;grid-template-columns:auto minmax(100px,1fr) auto;align-items:center;gap:8px;margin:8px 0;padding:7px 9px;border-radius:8px;background:#edf5fb;color:#3b6685;font-size:10.5px}.r1-progress b{color:#1f6aa4;font-size:12px}.r1-queue-list{display:grid;gap:4px;max-height:190px;overflow:auto}.r1-queue-item{display:grid;grid-template-columns:25px minmax(0,1fr) auto;align-items:center;gap:7px;padding:6px 8px;border:1px solid #dae4ec;border-radius:8px;background:#fff}.r1-queue-item.current{border-color:#77abd0;background:#eef8ff}.r1-queue-item>span{display:grid;place-items:center;width:23px;height:23px;border-radius:12px;background:#e5edf4;color:#547088;font-size:10px;font-weight:850}.r1-queue-item.current>span{background:#2878bc;color:#fff}.r1-queue-item b,.r1-queue-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.r1-queue-item b{color:#2e5878;font-size:11.5px}.r1-queue-item small{margin-top:1px;color:#788b9a;font-size:9.5px}.r1-lookup-card{min-height:340px;text-align:center}.r1-lookup-card>.r1-reader-state{max-width:700px;margin:20px auto 10px;text-align:left}.r1-lookup-result{max-width:700px;margin:0 auto}.r1-lookup-found{padding:18px;border:1px solid #add6ba;border-radius:11px;background:#f1faf4}.r1-lookup-found h3{margin:8px 0 3px;color:#225d3a}.r1-lookup-found>b{color:#176eaa;font-size:19px}.r1-lookup-found p{color:#5c788b;font-size:12px}.r1-lookup-found.linen{border-color:#b7ccea;background:#f2f7fd}.r1-lookup-found.warning{border-color:#e7c893;background:#fff9ed}.r1-lookup-found.unregistered{border-color:#bcd6e8;background:#f0f8fd}.r1-diagnostic-grid{display:grid;grid-template-columns:minmax(330px,.8fr) minmax(420px,1.2fr);gap:10px}.r1-diagnostic-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.r1-diagnostic-list>span{min-width:0;padding:8px;border-radius:8px;background:#eef4f8}.r1-diagnostic-list small,.r1-diagnostic-list b{display:block}.r1-diagnostic-list small{color:#7a8d9d;font-size:9px}.r1-diagnostic-list b{overflow:hidden;margin-top:3px;color:#315b79;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.r1-diagnostic-tags{display:grid;gap:5px;max-height:350px;overflow:auto;margin-top:10px}.r1-diagnostic-tags>div:not(.muted){display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid #d6e2eb;border-radius:8px;background:#fff}.r1-diagnostic-tags>div>span{display:grid;place-items:center;width:24px;height:24px;border-radius:12px;background:#e6f0f8;color:#276997;font-size:10px;font-weight:850}.r1-diagnostic-tags b,.r1-diagnostic-tags small{display:block}.r1-diagnostic-tags b{overflow:hidden;color:#295473;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11.5px;text-overflow:ellipsis;white-space:nowrap}.r1-diagnostic-tags small{color:#75899a;font-size:9.5px}.r1-diagnostic-tags strong{color:#276e9d;font-size:11px;text-align:right}.r1-help-rules{display:grid;gap:8px;margin-top:10px}.r1-help-rules p{margin:0;padding:10px;border-radius:9px;background:#f2f7fb;color:#48677f;font-size:12px;line-height:1.55}
@media(max-width:1180px){.r1-bind-grid{grid-template-columns:1fr}.r1-asset-results{max-height:360px}.r1-defaults{grid-template-columns:1fr 1fr 1fr auto}}
@media(max-width:760px){.r1-workbench{padding:10px}.r1-workbench-head,.r1-safety-strip{align-items:flex-start;flex-direction:column}.r1-bridge-actions{width:100%}.r1-bridge-actions .btn{flex:1}.r1-mode-tabs{display:grid;grid-template-columns:1fr}.r1-metrics{grid-template-columns:1fr 1fr}.r1-metrics>div{min-height:68px;padding:10px}.r1-filter-grid,.r1-defaults,.r1-diagnostic-grid{grid-template-columns:1fr}.r1-filter-grid .btn,.r1-defaults .btn{width:100%}.r1-asset-row{grid-template-columns:20px 45px minmax(0,1fr)}.r1-asset-thumb{width:45px;height:44px}.r1-row-actions{grid-column:3}.r1-tag-display{grid-template-columns:1fr}.r1-current-asset{grid-template-columns:68px minmax(0,1fr)}.r1-current-photo{width:68px;height:68px}.r1-run-actions{display:grid;grid-template-columns:1fr 1fr}.r1-run-actions .btn{width:100%}.r1-diagnostic-list{grid-template-columns:1fr 1fr}}
@media(max-width:460px){.r1-metrics{grid-template-columns:1fr 1fr}.r1-selection-bar{display:grid;grid-template-columns:1fr 1fr}.r1-selection-bar #r1AddSelected{grid-column:1/-1}.r1-selection-bar .muted{grid-column:1/-1;margin-left:0}.r1-current-asset{grid-template-columns:1fr}.r1-current-photo{width:100%;height:120px}.r1-run-actions{grid-template-columns:1fr}.r1-progress{grid-template-columns:1fr auto}.r1-progress i{grid-column:1/-1;grid-row:2}.r1-diagnostic-list{grid-template-columns:1fr}}

/* Web V0.13.8 · 全局紧凑页头、能耗账期分析与台账操作重构 */
.topbar{box-sizing:border-box;height:64px!important;min-height:64px;padding:8px 0!important;gap:12px;border-bottom:1px solid #dbe5ee;background:rgba(255,255,255,.97)}
.topbar-heading{min-width:0}.topbar-heading h2{font-size:22px;line-height:1.2}.topbar-heading p{display:none!important}.page-header-actions{display:flex;align-items:center;justify-content:flex-end;min-width:0;margin-left:auto}.page-header-action-group{display:flex;align-items:center;gap:7px;min-width:0}.page-header-action-group .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:40px;padding:7px 12px;white-space:nowrap}.page-header-action-group .btn>span{font-size:16px;line-height:1}.page-header-action-group .icon-action{width:40px;padding:0;font-size:19px}.online-pill{margin-left:0;padding:4px 8px;font-size:11px}
.energy-tabs{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important;height:52px!important;min-height:52px!important;margin:0 0 10px!important;padding:0!important}.energy-tabs button{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;height:52px!important;min-height:52px!important;padding:7px 12px!important;border-radius:11px!important}.energy-tabs button>i{display:grid;place-items:center;width:27px;height:27px;border-radius:8px;font-size:12px}.energy-tabs button>span{align-self:auto!important;font-size:14px}.energy-tabs button>b{align-self:auto!important}.energy-tabs button.active{box-shadow:0 4px 12px rgba(31,93,147,.08)}
.energy-analysis-toolbar{display:flex;align-items:flex-end;gap:8px;margin-bottom:9px;padding:9px 11px}.energy-analysis-toolbar label{display:grid;gap:3px;color:#5c748b;font-size:10.5px;font-weight:800}.energy-analysis-toolbar input{width:165px;min-height:39px;margin:0;font-size:14px;font-weight:750}.energy-analysis-toolbar .btn{min-height:39px}.energy-analysis-toolbar>span{align-self:center;margin-left:auto;color:#607a90;font-size:12px;font-weight:700}
.energy-cost-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px;margin-bottom:8px}.energy-cost-kpis>button{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:9px;min-height:92px;padding:11px 12px}.energy-cost-kpis .energy-kpi-icon{display:grid;grid-row:1/4;place-items:center;align-self:center;width:38px;height:38px;border-radius:11px;color:#fff;font-size:17px;font-style:normal;font-weight:900}.energy-kpi-icon.total{background:linear-gradient(135deg,#315f97,#213d68)}.energy-kpi-icon.electric{background:linear-gradient(135deg,#397fd1,#175fae)}.energy-kpi-icon.water{background:linear-gradient(135deg,#40b1d0,#2389b1)}.energy-kpi-icon.gas{background:linear-gradient(135deg,#eda94a,#cd7a1f)}.energy-cost-kpis small{align-self:end}.energy-cost-kpis b{margin:3px 0 1px;font-size:22px}.energy-cost-kpis em{overflow:hidden;color:#74899a;font-size:10.5px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}
.energy-analysis-alerts{display:flex;align-items:center;gap:6px;margin-bottom:9px;overflow-x:auto}.energy-analysis-alerts button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:33px;padding:5px 9px;border:1px solid #d3e1eb;border-radius:9px;background:#fff;color:#486880;font-size:11px;font-weight:750;cursor:pointer}.energy-analysis-alerts button:hover{border-color:#77a9d3;background:#f4f9fd}.energy-analysis-alerts button>span{display:grid;place-items:center;width:19px;height:19px;border-radius:6px;background:#e7f1fa;color:#24679f;font-size:10px}.energy-analysis-alerts button b{color:#155e96;font-size:13px}.energy-analysis-alerts button small{color:#8b671d}.energy-analysis-alerts .danger-lite{border-color:#efc1bb;background:#fff7f5;color:#a74439}.energy-analysis-alerts .danger-lite>span{background:#fde9e6;color:#b54136}
.energy-chart-grid{display:grid;grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr);gap:9px;margin-bottom:9px}.energy-chart-grid>.panel{min-width:0;margin:0;padding:12px}.energy-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.energy-section-title>div{display:flex;align-items:center;gap:8px;min-width:0}.energy-section-title h3,.energy-section-title h4{margin:0;color:#244f72;font-size:16px}.energy-section-title>small{color:#72879a;font-size:10.5px}.section-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:#e7f2fb;color:#1c68a7;font-size:13px;font-weight:900}.section-icon.warn{background:#fff0d8;color:#a66b0c}.section-icon.danger{background:#fde9e6;color:#b64036}
.energy-composition-chart{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:14px;min-height:178px}.energy-donut{display:grid;place-items:center;width:138px;height:138px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(25,70,108,.07)}.energy-donut>div{display:grid;place-items:center;align-content:center;width:88px;height:88px;border-radius:50%;background:#fff;box-shadow:0 2px 9px rgba(24,70,105,.12);text-align:center}.energy-donut strong,.energy-donut small{display:block}.energy-donut strong{color:#184f79;font-size:16px}.energy-donut small{margin-top:2px;color:#7890a2;font-size:9.5px}.energy-composition-legend{display:grid;gap:7px}.energy-composition-legend>div{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;align-items:center;gap:7px;padding:7px 8px;border-radius:8px;background:#f5f8fb}.energy-composition-legend i,.energy-trend-legend i{display:block;width:8px;height:8px;border-radius:3px}.energy-composition-legend i.electric,.energy-trend-legend i.electric,.energy-trend-stack i.electric{background:#2f78d0}.energy-composition-legend i.water,.energy-trend-legend i.water,.energy-trend-stack i.water{background:#31a4c5}.energy-composition-legend i.gas,.energy-trend-legend i.gas,.energy-trend-stack i.gas{background:#e39a35}.energy-composition-legend span{color:#5a758c;font-size:11px}.energy-composition-legend b{color:#244f71;font-size:11.5px}.energy-composition-legend small{color:#8294a3;font-size:9.5px}
.energy-trend-chart{display:grid;grid-template-rows:auto 1fr;min-height:178px}.energy-trend-legend{display:flex;justify-content:flex-end;gap:12px;margin-bottom:4px}.energy-trend-legend span{display:flex;align-items:center;gap:4px;color:#73879a;font-size:9.5px}.energy-trend-columns{display:grid;grid-template-columns:repeat(6,minmax(52px,1fr));align-items:end;gap:8px;height:150px;padding:5px 5px 0;border-bottom:1px solid #d8e3eb;background:repeating-linear-gradient(to top,transparent 0,transparent 36px,#eef3f7 37px)}.energy-trend-column{display:grid;grid-template-rows:19px 108px 20px;align-items:end;justify-items:center;min-width:0;height:147px}.energy-trend-column>strong{overflow:hidden;width:100%;color:#60798e;font-size:9px;text-align:center;text-overflow:ellipsis;white-space:nowrap}.energy-trend-stack{display:flex;align-items:stretch;justify-content:flex-end;flex-direction:column-reverse;width:min(38px,70%);height:104px}.energy-trend-stack i{display:block;flex:0 0 auto;min-height:0;border-radius:3px 3px 0 0}.energy-trend-column>small{align-self:center;color:#667f93;font-size:10px;font-weight:750}
.energy-ranking-workbench,.energy-anomaly-panel{margin:0 0 9px;padding:12px}.energy-ranking-types{display:flex;gap:5px}.energy-ranking-types button{min-height:32px;padding:5px 10px;border:1px solid #cfdee9;border-radius:8px;background:#fff;color:#4d6b82;font-size:11.5px;font-weight:800;cursor:pointer}.energy-ranking-types button.active{border-color:#2475bb;background:#eaf4ff;color:#155f9d}.energy-ranking-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.energy-ranking-pair>section{min-width:0;padding:9px;border:1px solid #dce6ee;border-radius:10px;background:#fbfcfe}.energy-ranking-pair h4{display:flex;align-items:center;gap:6px;margin:0 0 7px;color:#315a79;font-size:13px}.energy-ranking-pair h4 span{display:grid;place-items:center;width:21px;height:21px;border-radius:6px;background:#e6f1fa;color:#1867a6}.energy-ranking-pair>section+section h4 span{background:#eaf7ef;color:#277648}.energy-ranking-list{gap:5px}.energy-ranking-list>button{min-height:48px;padding:7px 9px}.energy-ranking-list>button>div>i{display:block;height:4px;margin-top:4px;overflow:hidden;border-radius:3px;background:#e3ebf1}.energy-ranking-list>button>div>i>em{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#2f79c2,#62a9dc)}.energy-ranking-list.bottom>button>div>i>em{background:linear-gradient(90deg,#4eab77,#91c8a6)}.energy-rank-no.bottom{background:#e7f6ec;color:#267548}.energy-anomaly-panel .energy-anomaly-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.energy-anomaly-panel .energy-anomaly-list>button{min-height:60px;padding:8px 10px}
.energy-progress-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.energy-progress-toolbar>div:first-child{display:flex;align-items:center;gap:8px}.energy-progress-toolbar h3{margin:0;color:#244f71;font-size:17px}.energy-progress-controls{display:flex;align-items:flex-end;gap:8px}.energy-progress-controls>label{display:grid;gap:3px;color:#5b758c;font-size:10.5px;font-weight:800}.energy-progress-controls>label input{width:155px;min-height:36px;margin:0}.energy-missing-main{padding-top:9px;border-top:1px solid #dce6ee}.energy-section-title.compact{margin-bottom:7px}.energy-section-title.compact h4{font-size:14px}.energy-section-title.compact small{max-width:72%;text-align:right}.energy-progress-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:none}
.energy-ledger-panel{padding:11px 12px}.energy-ledger-quick{margin:0 0 8px}.energy-filter-grid{padding:8px}.energy-ledger-head{margin:9px 0 7px;padding-top:8px}.energy-ledger-head h3{font-size:16px}.energy-bill-list{gap:7px}.energy-bill-card{display:block!important;padding:10px 11px}.energy-bill-card-head{display:grid;grid-template-columns:minmax(150px,1fr) 125px auto;align-items:center;gap:10px}.energy-bill-identity{display:flex;align-items:center;gap:9px;min-width:0}.energy-bill-type-icon{display:grid;place-items:center;flex:0 0 36px;width:36px;height:36px;border-radius:10px;color:#fff;font-size:15px;font-weight:900}.energy-bill-type-icon.electric{background:#347cca}.energy-bill-type-icon.water{background:#2b9bbd}.energy-bill-type-icon.gas{background:#dc8b2c}.energy-bill-identity>div{min-width:0}.energy-bill-identity small,.energy-bill-identity h4{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.energy-bill-identity small{color:#70879a;font-size:10px}.energy-bill-identity h4{margin:2px 0 0;color:#174d78;font-size:16px}.energy-bill-period{display:grid;justify-items:start;padding:5px 9px;border-left:1px solid #dfe7ed}.energy-bill-period small{color:#70869a;font-size:9.5px}.energy-bill-period strong{margin-top:1px;color:#144f7d;font-size:18px;line-height:1.15}.energy-bill-period span{margin-top:2px;color:#7890a2;font-size:9.5px}.energy-bill-amount{min-width:88px}.energy-bill-amount strong{margin:0;color:#145b91;font-size:21px}.energy-bill-meta{grid-template-columns:1.25fr .65fr .85fr;margin:7px 0 6px}.energy-bill-meta>span{padding:6px 8px}.energy-bill-meta small{font-size:9px}.energy-bill-meta b{font-size:11px}.energy-bill-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:6px;border-top:1px dashed #dbe4eb}.energy-card-state-actions{display:flex;align-items:center;gap:5px}.energy-card-action{min-height:31px;padding:5px 9px;border:1px solid transparent;border-radius:8px;font-size:11px;font-weight:850;cursor:pointer}.energy-card-action.review{border-color:#8bb9df;background:#e9f4ff;color:#115f9f}.energy-card-action.review:hover{background:#d8ebfd}.energy-card-action.payment{border-color:#e6bd79;background:#fff3dd;color:#99620d}.energy-card-action.payment:hover{background:#ffe8bd}.energy-card-detail{min-height:31px!important}.energy-bill-card.warn{border-color:#edc99c;background:#fffaf2}
@media(max-width:1100px){.energy-chart-grid{grid-template-columns:1fr}.energy-composition-chart{grid-template-columns:160px minmax(0,1fr)}.energy-anomaly-panel .energy-anomaly-list{grid-template-columns:1fr}.energy-progress-toolbar{align-items:flex-start;flex-direction:column}.energy-progress-controls{width:100%;justify-content:space-between}.energy-filter-grid{grid-template-columns:1fr 1fr!important}.energy-filter-query{grid-column:1/-1}.energy-filter-actions{grid-column:1/-1}.energy-ranking-pair{grid-template-columns:1fr}}
@media(max-width:900px){.topbar{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;height:auto!important;min-height:58px!important;padding:7px 0!important}.topbar>.mobile-only{grid-column:1;grid-row:1}.topbar-heading{grid-column:2!important;grid-row:1!important}.online-pill{grid-column:3!important;grid-row:1!important}.page-header-actions{grid-column:1/-1;grid-row:2;width:100%;overflow-x:auto}.page-header-action-group{width:max-content}.page-header-action-group .btn{min-height:36px}.energy-cost-kpis{grid-template-columns:1fr 1fr!important}.energy-progress-list{grid-template-columns:1fr}}
@media(max-width:620px){.energy-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;height:48px!important;min-height:48px!important}.energy-tabs button{height:48px!important;min-height:48px!important;padding:5px!important;gap:5px!important}.energy-tabs button>i{width:23px;height:23px}.energy-tabs button>span{font-size:11.5px}.energy-tabs button>b{min-width:19px;height:19px;padding:0 4px;font-size:9px}.energy-analysis-toolbar{display:grid;grid-template-columns:1fr auto}.energy-analysis-toolbar label input{width:100%}.energy-analysis-toolbar>span{grid-column:1/-1;margin-left:0}.energy-cost-kpis{grid-template-columns:1fr!important}.energy-analysis-alerts{margin-inline:-2px}.energy-composition-chart{grid-template-columns:1fr;justify-items:center}.energy-composition-legend{width:100%}.energy-trend-columns{gap:3px;padding-inline:1px}.energy-trend-column{grid-template-rows:16px 108px 20px}.energy-trend-column>strong{font-size:7.5px}.energy-ranking-types{width:100%;overflow-x:auto}.energy-ranking-types button{flex:1;white-space:nowrap}.energy-ranking-workbench>.energy-section-title{align-items:flex-start;flex-direction:column}.energy-progress-controls{align-items:stretch;flex-direction:column}.energy-progress-controls>label input{width:100%}.energy-type-toggles{display:grid;grid-template-columns:repeat(2,1fr)}.energy-type-toggles .btn{width:100%}.energy-section-title.compact{align-items:flex-start;flex-direction:column}.energy-section-title.compact small{max-width:none;text-align:left}.energy-bill-card-head{grid-template-columns:minmax(0,1fr) auto}.energy-bill-period{grid-column:1;padding:5px 0 0;border-top:1px solid #e1e8ee;border-left:0}.energy-bill-amount{grid-column:2;grid-row:1/3}.energy-bill-meta{grid-template-columns:1fr!important}.energy-bill-card>footer{align-items:stretch;flex-direction:column}.energy-card-state-actions{display:grid;grid-template-columns:1fr 1fr}.energy-card-action{width:100%}.energy-card-detail{width:100%}.page-header-action-group .btn{padding-inline:10px}.online-pill{display:none!important}}
@media(max-width:920px), (max-width:1100px) and (hover:none) and (pointer:coarse){.topbar>.page-header-actions{grid-column:1/-1!important;grid-row:2!important;width:100%;margin:0!important;overflow-x:auto}.topbar>.topbar-heading{grid-column:2!important;grid-row:1!important}.topbar>.online-pill{grid-column:3!important;grid-row:1!important}}

/* Web V0.13.9 · 能耗全部房间视角与账单、复核、支付三段进度 */
.energy-room-panel{padding:11px 12px}.energy-room-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:8px}.energy-room-heading{display:flex;align-items:center;gap:9px;min-width:230px}.energy-room-heading>div{min-width:0}.energy-room-heading h3{margin:0;color:#214f75;font-size:17px}.energy-room-heading small{display:block;margin-top:2px;color:#70869a;font-size:10.5px;white-space:nowrap}.energy-room-filters{display:grid;grid-template-columns:minmax(220px,1.5fr) 150px 130px auto;align-items:end;gap:7px;min-width:min(760px,68%)}.energy-room-filters label{display:grid;gap:3px;min-width:0;color:#5b748b;font-size:10.5px;font-weight:800}.energy-room-filters input,.energy-room-filters select{width:100%;min-height:38px;margin:0;font-size:12.5px}.energy-room-filter-actions{display:flex;gap:6px}.energy-room-filter-actions .btn{min-height:38px;white-space:nowrap}.energy-room-summary{display:flex;align-items:center;gap:7px;margin:0 0 8px;padding:6px 8px;border:1px solid #dae5ed;border-radius:9px;background:#f8fafc}.energy-room-summary>span{padding:4px 8px;border-radius:7px;background:#fff;color:#60798f;font-size:10.5px}.energy-room-summary b{margin-left:3px;color:#1c6098;font-size:12px}.energy-room-summary .active{background:#edf8f1;color:#387151}.energy-room-summary .active b{color:#247443}.energy-room-summary .inactive{background:#f1f3f5;color:#717b84}.energy-room-summary .inactive b{color:#59636c}
.energy-room-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.energy-room-list>.empty-state{grid-column:1/-1}.energy-room-card{min-width:0;padding:10px 11px;border:1px solid #d5e2ec;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .15s}.energy-room-card:hover{transform:translateY(-1px);border-color:#6fa8d6;box-shadow:0 6px 16px rgba(30,81,124,.08)}.energy-room-card.inactive{background:#f8f9fa;opacity:.82}.energy-room-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:7px}.energy-room-card>header>div{display:flex;align-items:center;gap:8px;min-width:0}.energy-room-icon{display:grid;place-items:center;flex:0 0 31px;width:31px;height:31px;border-radius:9px;background:#e8f3fc;color:#1769ac;font-size:16px;font-weight:900}.energy-room-card h4{overflow:hidden;margin:0;color:#174f7b;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.energy-room-card header small{display:block;overflow:hidden;margin-top:1px;color:#7a8d9e;font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.energy-room-state{flex:0 0 auto;padding:4px 7px;border-radius:7px;font-size:10px;font-weight:850}.energy-room-state.active{background:#e8f7ee;color:#267346}.energy-room-state.inactive{background:#e9ecef;color:#68747d}.energy-room-utilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.energy-room-utility{min-width:0;padding:7px 8px;border:1px solid #dae5ed;border-top:3px solid #347cca;border-radius:9px;background:#f9fbfd}.energy-room-utility.water{border-top-color:#2b9bbd}.energy-room-utility.gas{border-top-color:#dc8b2c}.energy-room-utility.disabled{border-top-color:#adb8c0;background:#f2f4f5}.energy-room-utility.empty{background:#fcfdfe}.energy-room-utility>header{display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:4px}.energy-room-utility>header>span{display:grid;place-items:center;width:19px;height:19px;border-radius:6px;background:#e6f1fb;color:#236da9;font-size:9px;font-weight:900}.energy-room-utility.water>header>span{background:#e6f6fa;color:#23839f}.energy-room-utility.gas>header>span{background:#fff1df;color:#a86915}.energy-room-utility>header b{color:#355d7b;font-size:10.5px}.energy-room-utility>header small{color:#71879a;font-size:9px;font-weight:750}.energy-room-latest{display:flex;align-items:baseline;justify-content:space-between;gap:5px;margin:6px 0}.energy-room-latest strong{overflow:hidden;color:#155b91;font-size:16px;text-overflow:ellipsis;white-space:nowrap}.energy-room-latest small{overflow:hidden;color:#778a9a;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.energy-room-utility>footer{display:flex;align-items:center;gap:4px;min-height:20px}.energy-room-utility>footer i{font-style:normal}.energy-room-utility .energy-status,.energy-room-utility .energy-payment-pill{padding:3px 5px;font-size:8.5px}.energy-room-empty{display:grid;align-content:center;min-height:46px;padding:5px 0}.energy-room-empty strong,.energy-room-empty small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.energy-room-empty strong{color:#718496;font-size:12px}.energy-room-empty small{margin-top:3px;color:#929faa;font-size:8.5px}.energy-room-card>footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;padding-top:6px;border-top:1px dashed #dae4eb}.energy-room-card>footer>span{overflow:hidden;color:#75899a;font-size:9.5px;text-overflow:ellipsis;white-space:nowrap}.energy-room-card>footer>span b{color:#a46a10}.energy-room-card>footer .btn{min-height:29px;padding:4px 8px;font-size:10px;white-space:nowrap}
.modal.modal-energy-room-history{width:min(1460px,calc(100vw - 26px));height:min(900px,calc(100dvh - 26px));max-height:calc(100dvh - 26px)}.energy-room-history-modal{display:flex;flex-direction:column;min-height:0;height:100%;padding:11px 12px}.energy-room-history-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;padding:9px 11px;border:1px solid #c9ddea;border-radius:10px;background:linear-gradient(100deg,#eef7ff,#fbfdff)}.energy-room-history-head>div:first-child{display:flex;align-items:center;gap:9px;min-width:0}.energy-room-history-head h3{margin:0;color:#174f7b;font-size:18px}.energy-room-history-head p{margin:2px 0 0;color:#6f8598;font-size:10.5px}.energy-room-history-alerts{display:flex;gap:6px}.energy-room-history-alerts span{padding:6px 8px;border-radius:8px;background:#fff5e5;color:#8e621c;font-size:10.5px}.energy-room-history-alerts b{margin-left:4px;font-size:13px}.energy-room-history-latest{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px}.energy-room-history-latest .energy-room-utility{padding:8px 10px}.energy-room-history-latest .energy-room-latest strong{font-size:18px}.energy-room-history-section{display:flex;flex:1;min-height:0;flex-direction:column;padding:9px;border:1px solid #d9e4ec;border-radius:10px;background:#fbfcfe}.energy-room-history-list{display:grid;gap:5px;overflow:auto}.energy-history-row{display:grid;grid-template-columns:115px 105px minmax(95px,.75fr) minmax(95px,.75fr) 130px minmax(320px,1.45fr);align-items:center;gap:7px;padding:7px 8px;border:1px solid #d8e3eb;border-left:4px solid #4585bd;border-radius:9px;background:#fff}.energy-history-row.done{border-left-color:#43a169}.energy-history-row.void{border-left-color:#9ba5ad;background:#f5f6f7;opacity:.75}.energy-history-period strong,.energy-history-period small,.energy-history-value small,.energy-history-value b,.energy-history-value strong{display:block}.energy-history-period strong{color:#174f7b;font-size:15px}.energy-history-period small{overflow:hidden;margin-top:2px;color:#8997a3;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap}.energy-history-type{display:flex;align-items:center;gap:6px}.energy-history-type .energy-bill-type-icon{flex-basis:28px;width:28px;height:28px;border-radius:8px;font-size:11px}.energy-history-type b{color:#315a79;font-size:11.5px}.energy-history-value small{color:#8293a1;font-size:8.5px}.energy-history-value strong{margin-top:2px;color:#155b91;font-size:14px}.energy-history-value b{margin-top:2px;color:#3d617d;font-size:11px}.energy-history-states{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.energy-history-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.energy-history-actions .btn{min-width:0;min-height:30px;padding:4px 5px;font-size:9.5px;white-space:nowrap}.energy-history-actions .btn:disabled{border-color:#dce3e8;background:#f1f3f5;color:#9aa5ad;cursor:not-allowed}.energy-room-history-modal>.modal-actions{flex:0 0 auto;margin:8px -12px -11px}
.energy-progress-summary{grid-template-columns:repeat(5,minmax(0,1fr))}.energy-progress-summary>div{position:relative;min-height:72px;padding:9px 11px}.energy-progress-summary>div>span{display:block;margin-top:2px;color:#778b9c;font-size:9.5px}.energy-progress-summary>div.complete{border-color:#bcdcc7;background:#f1faf4}.energy-progress-summary>div.complete b{color:#247346}.energy-progress-summary>div.warn{border-color:#ebcea0;background:#fff9ee}.energy-progress-summary>div.warn b{color:#a66a0d}.energy-progress-summary>div>i{display:block;height:4px;margin-top:6px;overflow:hidden;border-radius:4px;background:#dce9e1}.energy-progress-summary>div>i>em{display:block;height:100%;border-radius:4px;background:#43a267}.energy-progress-filters{display:flex;align-items:center;gap:6px;margin-bottom:8px;padding:6px;border:1px solid #d8e4ec;border-radius:9px;background:#f7fafc;overflow-x:auto}.energy-progress-filters button{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;min-height:33px;padding:5px 9px;border:1px solid #d2dee8;border-radius:8px;background:#fff;color:#48687f;font-size:11px;font-weight:800;cursor:pointer}.energy-progress-filters button b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#e7eef4;color:#49677d;font-size:9px}.energy-progress-filters button.active{border-color:#cf8e27;background:#fff3da;color:#8c5b0e}.energy-progress-filters button.active b{background:#d9972c;color:#fff}.energy-incomplete-list{display:grid!important;grid-template-columns:1fr!important;gap:6px!important;max-height:none!important}.energy-incomplete-item{display:grid;grid-template-columns:minmax(260px,1.2fr) minmax(330px,1.1fr) minmax(250px,.9fr);align-items:center;gap:9px;padding:8px 9px;border:1px solid #e4c892;border-left:4px solid #d49325;border-radius:9px;background:#fffdf8}.energy-incomplete-identity{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0}.energy-incomplete-identity .energy-bill-type-icon{flex-basis:34px;width:34px;height:34px;border-radius:9px;font-size:13px}.energy-incomplete-identity>div{min-width:0}.energy-incomplete-identity h4,.energy-incomplete-identity small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.energy-incomplete-identity h4{margin:0;color:#245170;font-size:13px}.energy-incomplete-identity small{margin-top:2px;color:#7c8e9c;font-size:9.5px}.energy-incomplete-identity>strong{color:#185d93;font-size:14px}.energy-progress-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.energy-progress-steps>span{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;column-gap:5px;min-height:34px;padding:5px 6px;border-radius:8px;background:#f2f4f6;color:#7b878f}.energy-progress-steps>span>i{display:grid;grid-row:1/3;place-items:center;width:19px;height:19px;border-radius:10px;background:#cbd3d9;color:#fff;font-size:8px;font-style:normal;font-weight:900}.energy-progress-steps>span b{font-size:9.5px}.energy-progress-steps>span small{font-size:8px}.energy-progress-steps>span.done{background:#eaf7ee;color:#287246}.energy-progress-steps>span.done>i{background:#48a36a}.energy-progress-steps>span.missing{background:#fff0db;color:#98620e}.energy-progress-steps>span.missing>i{background:#d99a32}.energy-progress-steps>span.waiting{background:#f1f3f5;color:#8b959c}.energy-progress-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex-wrap:wrap}.energy-progress-row-actions .btn{min-height:31px;padding:4px 7px;font-size:9.5px}.energy-progress-no-action{color:#929ea8;font-size:10px}
@media(max-width:1250px){.energy-room-toolbar{align-items:stretch;flex-direction:column}.energy-room-filters{width:100%;min-width:0}.energy-history-row{grid-template-columns:100px 95px 95px 95px 120px minmax(290px,1fr)}.energy-incomplete-item{grid-template-columns:minmax(230px,1fr) minmax(310px,1fr)}.energy-progress-row-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:960px){.energy-room-list{grid-template-columns:1fr}.energy-room-filters{grid-template-columns:1fr 1fr}.energy-room-query{grid-column:1/-1}.energy-room-filter-actions{grid-column:1/-1}.energy-history-row{grid-template-columns:100px 100px 1fr 1fr}.energy-history-states{grid-column:3/5}.energy-history-actions{grid-column:1/-1}.energy-incomplete-item{grid-template-columns:1fr}.energy-progress-row-actions{grid-column:auto}.energy-progress-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:620px){.energy-room-panel{padding:8px}.energy-room-heading small{white-space:normal}.energy-room-filters{grid-template-columns:1fr}.energy-room-filters>*{grid-column:1!important}.energy-room-filter-actions{display:grid;grid-template-columns:1fr 1fr}.energy-room-utilities,.energy-room-history-latest{grid-template-columns:1fr}.energy-room-card>footer{align-items:stretch;flex-direction:column}.energy-room-card>footer>span{white-space:normal}.energy-room-card>footer .btn{width:100%}.modal.modal-energy-room-history{width:calc(100vw - 8px);height:calc(100dvh - 8px);max-height:calc(100dvh - 8px)}.energy-room-history-head{align-items:flex-start;flex-direction:column}.energy-room-history-alerts{width:100%}.energy-room-history-alerts span{flex:1}.energy-history-row{grid-template-columns:1fr 1fr}.energy-history-states{grid-column:1/-1}.energy-history-actions{grid-template-columns:1fr 1fr}.energy-progress-summary{grid-template-columns:1fr 1fr}.energy-progress-summary>div.complete{grid-column:span 2}.energy-incomplete-identity{grid-template-columns:34px minmax(0,1fr)}.energy-incomplete-identity>strong{grid-column:2}.energy-progress-steps{grid-template-columns:1fr}.energy-progress-row-actions{display:grid;grid-template-columns:1fr 1fr}.energy-progress-row-actions .btn{width:100%}}
.energy-history-row.warn{border-left-color:#d59631;background:#fffaf1}

/* Web V14.0 · 全站可读字号、房间卡片精简与能耗历史闭环 */
.app-shell small,.modal small,.drawer small{font-size:12px!important;line-height:1.4}.app-shell .badge,.modal .badge,.drawer .badge,.app-shell .btn.mini,.modal .btn.mini,.drawer .btn.mini,.nav-count,.energy-status,.energy-payment-pill,.energy-batch-status{font-size:12px!important;line-height:1.3}
.energy-tabs button{min-height:52px}.energy-tabs button>span{font-size:15px!important}.energy-tabs button>b{min-width:24px;height:24px;font-size:12px!important}.energy-room-panel{padding:14px 15px}.energy-room-heading{min-width:200px}.energy-room-heading h3{font-size:20px}.energy-room-filters label{font-size:13px}.energy-room-filters input,.energy-room-filters select{min-height:42px;font-size:14px}.energy-room-filter-actions .btn{min-height:42px;font-size:13px}.energy-room-summary{gap:9px;padding:8px 10px}.energy-room-summary>span{padding:6px 10px;font-size:13px}.energy-room-summary b{font-size:15px}
.energy-room-list{gap:11px}.energy-room-card{position:relative;padding:12px 13px;border-radius:12px}.energy-room-card:focus-visible{outline:3px solid rgba(31,111,235,.24);border-color:#397fc7}.energy-room-card>header{margin-bottom:9px}.energy-room-card h4{font-size:17px}.energy-room-card header small{margin-top:3px;font-size:12px!important}.energy-room-state{padding:5px 8px;font-size:12px!important}.energy-room-utilities{gap:8px}.energy-room-utility{padding:9px 10px}.energy-room-utility>header{grid-template-columns:24px minmax(0,1fr) auto;gap:6px}.energy-room-utility>header>span{width:23px;height:23px;font-size:12px}.energy-room-utility>header b{font-size:13px}.energy-room-utility>header small{font-size:12px!important}.energy-room-latest{margin:8px 0}.energy-room-latest strong{font-size:19px}.energy-room-latest small{font-size:13px!important}.energy-room-utility>footer{gap:6px;min-height:24px}.energy-room-utility .energy-status,.energy-room-utility .energy-payment-pill{padding:4px 7px;font-size:12px!important}.energy-room-empty{min-height:52px}.energy-room-empty strong{font-size:14px}.energy-room-empty small{margin-top:4px;font-size:12px!important}.energy-room-card>footer{display:none!important}
.energy-room-history-head{padding:11px 13px}.energy-room-history-head h3{font-size:21px}.energy-room-history-head p{margin-top:4px;font-size:13px}.energy-room-history-alerts span{padding:7px 10px;font-size:13px}.energy-room-history-alerts b{font-size:15px}.energy-room-history-latest{gap:9px;margin-bottom:10px}.energy-room-history-latest .energy-room-latest strong{font-size:20px}.energy-room-history-section{padding:11px}.energy-room-history-section .energy-section-title h4{font-size:18px}.energy-room-history-section .energy-section-title small{font-size:13px!important}.energy-room-history-list{gap:8px}.energy-history-row{grid-template-columns:125px 105px 100px 100px 130px 145px minmax(330px,1.4fr);gap:9px;padding:10px 11px}.energy-history-period strong{font-size:17px}.energy-history-period small{margin-top:3px;font-size:12px!important}.energy-history-type .energy-bill-type-icon{width:32px;height:32px;flex-basis:32px;font-size:13px}.energy-history-type b{font-size:14px}.energy-history-value small{font-size:12px!important}.energy-history-value strong{font-size:17px}.energy-history-value b{font-size:14px}.energy-history-states{gap:6px}.energy-history-states .energy-status,.energy-history-states .energy-payment-pill{padding:5px 7px}.energy-history-photo{display:flex;align-items:center}.energy-history-photo-link,.energy-existing-photo-link{min-height:34px;padding:6px 9px;border:1px solid #9fc2e2;border-radius:8px;background:#eef7ff;color:#145f99;font-size:13px;font-weight:800;cursor:zoom-in}.energy-history-photo-link:hover,.energy-existing-photo-link:hover{border-color:#367fbd;background:#e2f1ff}.energy-history-no-photo{color:#8796a3;font-size:12px}.energy-history-actions{gap:6px}.energy-history-actions .btn{min-height:34px;padding:6px 7px;font-size:12px!important}
.energy-fixed-room{display:flex;align-items:center;gap:11px;margin-bottom:12px;padding:12px 14px;border:1px solid #bcd5e9;border-radius:11px;background:linear-gradient(100deg,#edf7ff,#fbfdff)}.energy-fixed-room .energy-room-icon{width:38px;height:38px;flex-basis:38px;font-size:19px}.energy-fixed-room>div{min-width:0}.energy-fixed-room small,.energy-fixed-room b,.energy-fixed-room span{display:block}.energy-fixed-room small{color:#6f8394}.energy-fixed-room b{margin:2px 0;color:#174f7b;font-size:18px}.energy-fixed-room span{color:#61788c;font-size:13px}.energy-manual-note{display:flex;align-items:center;gap:10px;margin-bottom:11px;padding:9px 11px;border-left:4px solid #2e83c7;border-radius:8px;background:#eef7ff;color:#496b84}.energy-manual-note b{flex:0 0 auto;color:#175b91;font-size:14px}.energy-manual-note span{font-size:13px}.energy-manual-note.review{border-left-color:#d69328;background:#fff8e9}.energy-manual-note.review b{color:#8f5c0d}.energy-manual-form label{font-size:13px}.energy-manual-form input,.energy-manual-form select,.energy-manual-form textarea{font-size:14px}.energy-manual-form .energy-account-preview{min-height:42px;padding:10px 12px;font-size:13px}.energy-manual-photo{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;margin-top:12px;padding:11px 12px;border:1px solid #d5e2ec;border-radius:10px;background:#f8fbfd}.energy-manual-photo>div:first-child b,.energy-manual-photo>div:first-child span{display:block}.energy-manual-photo>div:first-child b{color:#244f70;font-size:14px}.energy-manual-photo>div:first-child span{margin-top:3px;color:#6b8091;font-size:13px}.energy-manual-photo .energy-photo-actions{grid-column:2;grid-row:1}.energy-manual-photo .qr-upload-panel,.energy-manual-photo .multi-photo-preview,.energy-manual-photo>small,.energy-manual-photo>.energy-existing-photo-link,.energy-manual-photo>.energy-history-no-photo{grid-column:1/-1}.energy-manual-photo>small{color:#748696}.energy-manual-modal>.modal-actions .btn{min-height:40px;font-size:13px}
.energy-operation-modal{padding:14px}.energy-operation-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 15px;border:1px solid #bfd7ea;border-radius:11px;background:linear-gradient(105deg,#edf7ff,#fff)}.energy-operation-head small{color:#60798e;font-size:13px!important}.energy-operation-head h3{margin:4px 0 0;color:#155b91;font-size:25px}.energy-operation-head>div:last-child{display:flex;gap:7px}.energy-operation-section{margin-top:12px;padding:12px;border:1px solid #d9e4ec;border-radius:11px}.energy-operation-section h4{margin:0 0 10px;color:#214f72;font-size:17px}.energy-operation-list{display:grid;gap:8px}.energy-operation-item{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;padding:10px;border:1px solid #dbe5ec;border-left:4px solid #4c8bc0;border-radius:9px;background:#fff}.energy-operation-item>i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e9f3fb;color:#206ba6;font-size:16px;font-style:normal;font-weight:900}.energy-operation-item.review{border-left-color:#45a36b}.energy-operation-item.review>i{background:#e9f7ee;color:#287748}.energy-operation-item.payment{border-left-color:#d4942d}.energy-operation-item.payment>i{background:#fff3df;color:#986313}.energy-operation-item.void{border-left-color:#b7514a}.energy-operation-item.void>i{background:#fdeceb;color:#a4433b}.energy-operation-item header{display:flex;align-items:center;justify-content:space-between;gap:10px}.energy-operation-item header b{color:#254f6d;font-size:14px}.energy-operation-item time{color:#61798c;font-size:13px}.energy-operation-item p{margin:5px 0;color:#445f73;font-size:13px;line-height:1.45}.energy-operation-item small{color:#718596;font-size:12px!important}
@media(max-width:1200px){.energy-history-row{grid-template-columns:110px 100px minmax(90px,1fr) minmax(90px,1fr) 130px}.energy-history-states{grid-column:1/3}.energy-history-actions{grid-column:3/-1}}
@media(max-width:700px){.energy-room-panel{padding:10px}.energy-room-heading h3{font-size:18px}.energy-room-summary{overflow-x:auto}.energy-room-summary>span{flex:0 0 auto}.energy-room-card{padding:10px}.energy-room-utility{padding:9px}.energy-history-row{grid-template-columns:1fr 1fr}.energy-history-photo,.energy-history-states,.energy-history-actions{grid-column:1/-1}.energy-history-actions{grid-template-columns:1fr 1fr}.energy-history-photo-link{width:100%}.energy-manual-photo{grid-template-columns:1fr}.energy-manual-photo .energy-photo-actions{grid-column:1;grid-row:auto}.energy-operation-item header{align-items:flex-start;flex-direction:column}.energy-operation-head{align-items:flex-start;flex-direction:column}}

/* Web V14.1 · 待办四条预览与资产查询精简 */
.compact-panel-head{align-items:center!important;min-height:32px;margin-bottom:8px!important}.compact-panel-head h3{font-size:19px;line-height:1.3}.asset-room-index-panel,.asset-query-panel{padding:14px 16px;margin-bottom:12px}.asset-room-index-workbench{display:grid;grid-template-columns:minmax(560px,.95fr) minmax(180px,1.05fr);align-items:start;gap:10px}.asset-room-search-row{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:8px;margin:0}.asset-room-search-row input,.asset-room-search-row .btn{min-height:42px}.asset-room-index-workbench .room-index-strip{align-items:flex-start;gap:7px;min-width:0;padding:0}.asset-room-index-workbench .room-index-strip:empty{display:none}.asset-room-index-workbench .room-index-chip{min-width:132px;padding:7px 10px;border-radius:9px;gap:1px}.asset-room-index-workbench .room-index-chip b{font-size:14px}.asset-room-index-workbench .room-index-chip span{font-size:12px}.asset-room-selection{justify-content:flex-start;margin-top:8px;padding:7px 9px;gap:10px}.asset-room-selection-summary{display:flex;align-items:center;gap:6px;flex:0 0 auto}.asset-room-selection-summary small{margin:0;padding-right:7px;border-right:1px solid #bfd1e7;font-size:12px!important}.asset-room-selection-summary strong{font-size:14px}.room-scope-switch{flex-wrap:nowrap}.room-scope-switch button{min-height:36px;padding:6px 10px;font-size:13px}.asset-query-panel .asset-search-primary{grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(145px,1fr)) auto auto!important;gap:7px}.asset-query-panel .asset-search-primary>*{min-height:42px}.asset-advanced-filters{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important;gap:8px;margin-top:8px;padding:9px}.asset-advanced-filters .purchase-order-filter{max-width:none}.owner-room-filter{margin:0;padding:0}.owner-room-filter.exclusive-active{padding:6px;border:1px solid #8fb9e7;border-radius:9px;background:#eef6ff}.owner-room-filter .location-picker{min-width:0}.owner-room-filter input{min-height:38px}.asset-command-toolbar{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid #e1e8f0;flex-wrap:wrap}.asset-command-toolbar .asset-quick-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0;padding:0 8px 0 0;border:0;border-right:1px solid #d9e3ed;border-radius:0;background:transparent}.asset-command-toolbar .asset-action-toolbar{display:flex;align-items:center;gap:6px;flex:1 1 640px;margin:0;padding:0;border:0;flex-wrap:wrap}.asset-command-toolbar .btn{min-height:38px;padding:6px 10px}.asset-command-toolbar #assetCount{margin-left:auto;white-space:nowrap}.approval-lost-found-panel,.approval-energy-panel,.approval-config-panel,.approval-center-grid>.panel{padding:14px 15px}.approval-lost-found-panel,.approval-energy-panel{margin-bottom:10px}.approval-config-panel{margin-top:10px}.approval-center-grid{gap:10px}.approval-more-bar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:7px 9px;border:1px dashed #b9cee2;border-radius:9px;background:#f3f8fd;color:#5b7187}.approval-more-bar span{font-size:12px}.approval-more-bar .btn{min-height:32px}.modal.modal-approval-more{width:min(1320px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}.approval-more-modal{display:flex;min-height:0;flex-direction:column}.approval-full-count{flex:0 0 auto;margin-bottom:9px;padding:8px 10px;border-radius:8px;background:#edf5fc;color:#245b87;font-size:13px;font-weight:800}.approval-full-list{flex:1;min-height:0;max-height:68vh;overflow:auto;padding-right:4px}.approval-full-list+.modal-actions{flex:0 0 auto;margin-top:10px}
@media(max-width:1050px){.asset-room-index-workbench{grid-template-columns:1fr}.asset-room-index-workbench .room-index-strip{padding-top:2px}.asset-query-panel .asset-search-primary{grid-template-columns:repeat(3,minmax(150px,1fr))!important}.asset-query-panel .asset-search-primary #fQ{grid-column:1/-1}.asset-command-toolbar{align-items:stretch}.asset-command-toolbar .asset-quick-filters{border-right:0}.asset-room-selection{align-items:flex-start;flex-direction:column}.room-scope-switch{width:100%}.room-scope-switch button{flex:1}}
@media(max-width:620px){.asset-room-index-panel,.asset-query-panel{padding:11px}.asset-room-search-row{grid-template-columns:1fr 1fr}.asset-room-search-row input{grid-column:1/-1}.asset-room-search-row .btn{width:100%}.asset-room-selection{padding:8px}.asset-room-selection-summary{width:100%}.room-scope-switch{display:grid!important;grid-template-columns:1fr!important}.asset-query-panel .asset-search-primary{grid-template-columns:1fr!important}.asset-query-panel .asset-search-primary #fQ{grid-column:auto}.asset-command-toolbar .asset-quick-filters,.asset-command-toolbar .asset-action-toolbar{display:grid;width:100%;grid-template-columns:1fr 1fr}.asset-command-toolbar .btn{width:100%}.asset-command-toolbar #assetCount{grid-column:1/-1;margin:0}.approval-more-bar{align-items:stretch;flex-direction:column}.approval-more-bar .btn{width:100%}.approval-full-list{max-height:none}}
.approval-summary{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:8px;margin-bottom:10px}.approval-summary-card{padding:10px 12px}.approval-summary-card b{margin-top:3px;font-size:24px}
@media(max-width:1050px){.approval-summary{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:620px){.approval-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Web V14.2 · 最近一期能耗待办与直接处理 */
.energy-progress-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.energy-progress-summary>div{min-height:76px}.energy-progress-summary>div>span{font-size:12px!important}.energy-progress-steps.latest{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-progress-steps.latest>span b{font-size:12px}.energy-progress-steps.latest>span small{font-size:12px!important}.energy-progress-controls{justify-content:flex-end}.energy-progress-row-actions .btn{min-height:36px;padding:6px 10px}
@media(max-width:620px){.energy-progress-summary{grid-template-columns:1fr 1fr}.energy-progress-steps.latest{grid-template-columns:1fr 1fr}}

/* Web V14.3 · 能耗快捷确认、可撤销记录与平均单房趋势 */
.energy-analysis-alerts{display:none!important}.energy-cost-kpis em{font-size:13px!important}.energy-room-utilities,.energy-room-history-latest{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.energy-progress-filters .recent{margin-left:auto}.energy-progress-row-actions .photo{border-color:#9fc2e2;background:#eef7ff;color:#145f99;cursor:zoom-in}
.energy-trend-types{flex:0 0 auto}.energy-trend-chart{min-height:205px}.energy-trend-columns{height:178px}.energy-trend-column{grid-template-rows:24px 108px 22px 18px;height:174px}.energy-trend-column>strong{font-size:12px!important}.energy-trend-column>small{font-size:12px!important}.energy-trend-column>em{align-self:start;color:#71879a;font-size:12px;font-style:normal}.energy-trend-stack.single{align-items:stretch;justify-content:flex-start;flex-direction:column-reverse}.energy-trend-stack.single i{width:100%;border-radius:5px 5px 2px 2px;box-shadow:0 2px 6px rgba(28,83,126,.14)}.energy-trend-legend span{font-size:12px!important}
.energy-recent-action-item{display:grid;grid-template-columns:38px minmax(230px,1fr) minmax(230px,1fr) auto auto;align-items:center;gap:10px;padding:10px 11px;border:1px solid #cfdfe9;border-left:4px solid #2f7fc1;border-radius:10px;background:#fff}.energy-recent-action-item.restored{border-left-color:#9aa8b2;background:#f7f9fa}.energy-recent-identity,.energy-recent-operation{min-width:0}.energy-recent-identity h4,.energy-recent-operation b{display:block;overflow:hidden;margin:0;color:#245170;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.energy-recent-identity small,.energy-recent-operation small{display:block;overflow:hidden;margin-top:3px;color:#6e8496;font-size:12px!important;text-overflow:ellipsis;white-space:nowrap}.energy-recent-state{padding:5px 8px;border-radius:8px;background:#e8f6ed;color:#267247;font-size:12px;font-weight:850;white-space:nowrap}.energy-recent-state.restored{background:#e9edf0;color:#66747e}.energy-recent-locked{color:#82909a;font-size:12px;white-space:nowrap}.energy-recent-action-item .btn{min-height:36px;font-size:12px!important;white-space:nowrap}.energy-operation-item.undo_review,.energy-operation-item.undo_payment{border-left-color:#8a98a3}.energy-operation-item.undo_review>i,.energy-operation-item.undo_payment>i{background:#eef1f3;color:#647581}
@media(max-width:1100px){.energy-trend-panel>.energy-section-title{align-items:flex-start;flex-direction:column}.energy-trend-types{width:100%;overflow-x:auto}.energy-trend-types button{flex:1;white-space:nowrap}.energy-recent-action-item{grid-template-columns:38px minmax(0,1fr) auto}.energy-recent-operation{grid-column:2}.energy-recent-state{grid-column:3;grid-row:1}.energy-recent-action-item>.btn,.energy-recent-locked{grid-column:3;grid-row:2}}
@media(max-width:620px){.energy-progress-filters .recent{margin-left:0}.energy-recent-action-item{grid-template-columns:36px minmax(0,1fr)}.energy-recent-operation,.energy-recent-state,.energy-recent-action-item>.btn,.energy-recent-locked{grid-column:1/-1;grid-row:auto}.energy-recent-action-item>.btn{width:100%}.energy-trend-column{grid-template-rows:22px 108px 22px 18px}.energy-trend-column>strong{font-size:12px!important}}

/* Web V14.4 · 寄存详情信息分层与资产工具栏分类 */
.asset-command-toolbar{display:grid;gap:7px;margin-top:9px;padding:8px;border:1px solid #cfdfed;border-radius:11px;background:#f5f9fd}.asset-command-summary{display:flex;align-items:center;justify-content:flex-end;min-height:20px;padding:0 3px}.asset-command-summary #assetCount{margin:0;color:#637b91;font-size:12px;white-space:nowrap}.asset-command-groups{display:flex;align-items:stretch;gap:7px;flex-wrap:wrap}.asset-command-group{display:grid;align-content:start;gap:5px;min-width:0;padding:7px;border:1px solid #d8e4ef;border-radius:9px;background:#fff}.asset-command-group[data-tool-group="filter"]{flex:1 1 330px}.asset-command-group[data-tool-group="capture"]{flex:1 1 255px}.asset-command-group[data-tool-group="selection"]{flex:1 1 230px}.asset-command-group[data-tool-group="output"]{flex:1 1 210px}.asset-command-group[data-tool-group="batch"]{flex:0 1 170px;border-color:#adcbea;background:#f2f7ff}.asset-command-group-title{display:flex;align-items:center;gap:5px;min-height:20px;color:#63788c;font-size:12px;font-weight:850;line-height:1.2}.asset-command-group-title:before{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#e8f1fa;color:#2466a2;font-size:13px;content:attr(data-icon)}.asset-command-group-title b{display:grid;place-items:center;min-width:20px;height:20px;margin-left:auto;padding:0 5px;border-radius:10px;background:#e9eef3;color:#5d7285;font-size:12px}.asset-command-group-title b.active{background:#176ed0;color:#fff}.asset-command-buttons{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.asset-command-toolbar .asset-tool-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:37px;padding:6px 9px;font-size:13px;white-space:nowrap}.asset-tool-btn:before{display:inline-grid;place-items:center;min-width:16px;color:#326894;font-size:14px;line-height:1;content:attr(data-icon)}.asset-command-toolbar .quick-filter-btn.active:before,.asset-command-toolbar .batch-action-main:before{color:inherit}.asset-command-group.batch .asset-command-buttons,.asset-command-group.batch .asset-tool-btn{width:100%}

.luggage-detail-modal{display:grid;gap:11px;padding:13px 14px}.luggage-order-overview{display:grid;grid-template-columns:minmax(225px,.75fr) minmax(0,2.25fr);gap:9px;padding:10px;border:1px solid #c9dced;border-radius:12px;background:linear-gradient(120deg,#edf6ff,#f9fcff)}.luggage-order-primary{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:9px;min-width:0;padding:5px 10px 5px 3px;border-right:1px solid #cbddeb}.luggage-customer-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#176ed0;color:#fff;font-size:16px;font-weight:900}.luggage-order-primary>div{min-width:0}.luggage-order-primary small,.luggage-order-primary strong{display:block}.luggage-order-primary small{color:#71879a;font-size:12px!important}.luggage-order-primary strong{overflow:hidden;margin-top:2px;color:#163f6c;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.luggage-order-state{align-self:start;padding:5px 8px;border-radius:999px;background:#e8f6ed;color:#237143;font-size:12px;font-weight:850;white-space:nowrap}.luggage-order-state.partial{background:#fff3db;color:#93610d}.luggage-order-state.complete{background:#edf0f3;color:#64737f}.luggage-order-facts{display:grid;grid-template-columns:repeat(5,minmax(105px,1fr));gap:6px}.luggage-order-facts>div{display:grid;align-content:center;min-width:0;padding:6px 8px;border:1px solid #deE8f1;border-radius:8px;background:rgba(255,255,255,.9)}.luggage-order-facts small,.luggage-order-facts strong{display:block}.luggage-order-facts small{color:#73879a;font-size:12px!important}.luggage-order-facts strong{overflow-wrap:anywhere;margin-top:3px;color:#294f70;font-size:13px;line-height:1.35}.luggage-count-fact strong{white-space:nowrap}.luggage-count-fact strong b{color:#b25b18;font-size:19px}.luggage-order-note{display:grid;grid-template-columns:22px auto minmax(0,1fr);align-items:start;gap:6px;grid-column:1/-1;padding:7px 9px;border-radius:8px;background:#fff8e9;color:#705d37}.luggage-order-note>span,.luggage-pickup-tip>span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#e8c77d;color:#704d0c;font-size:12px;font-weight:900}.luggage-order-note b{font-size:12px}.luggage-order-note p{margin:0;font-size:12px;line-height:1.5;overflow-wrap:anywhere}.luggage-detail-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.luggage-detail-section-head h3{margin:0;color:#173f6c;font-size:18px}.luggage-detail-section-head>div:first-child span{display:block;margin-top:2px;color:#71869a;font-size:12px}.luggage-detail-section-head>div:last-child{display:flex;align-items:center;gap:5px;color:#71869a;font-size:12px;white-space:nowrap}.luggage-detail-section-head>div:last-child b{color:#247145;font-size:17px}.luggage-detail-section-head>div:last-child span{color:#aeb9c3}.luggage-detail-tags{gap:7px}.luggage-detail-modal .luggage-detail-tag{grid-template-columns:22px minmax(0,1fr) auto;min-height:66px;padding:9px 11px;border-color:#d7e3ed}.luggage-detail-modal .luggage-detail-tag.stored{border-left:4px solid #3a9660}.luggage-detail-modal .luggage-detail-tag.picked{border-left:4px solid #a0adb7;background:#f6f8fa;opacity:1}.luggage-detail-modal .luggage-detail-tag>input{width:18px;height:18px;margin:0;accent-color:#176ed0}.luggage-tag-marker{display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#edf2f6;color:#718392;font-size:12px;font-weight:900}.luggage-tag-main{min-width:0}.luggage-tag-main>b{color:#173f70;font-size:15px}.luggage-tag-main>small{margin-top:2px;color:#4f6c84;font-size:12px!important;line-height:1.4;overflow-wrap:anywhere}.luggage-tag-main>em{display:flex!important;align-items:center;gap:5px;margin-top:3px;color:#738799;font-size:12px!important}.luggage-tag-main>em>span{color:#3c7eaa;font-style:normal}.luggage-tag-state{padding:5px 8px;border-radius:999px;font-size:12px!important;font-style:normal;font-weight:850;white-space:nowrap}.luggage-tag-state.stored{background:#e8f6ed;color:#237143}.luggage-tag-state.picked{background:#e9edf0;color:#657580}.luggage-pickup-panel{display:grid;gap:9px;margin-top:1px;padding:11px 12px}.luggage-pickup-title{display:flex;align-items:center;gap:8px}.luggage-pickup-title>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#176ed0;color:#fff;font-size:16px;font-weight:900}.luggage-pickup-title h3{margin:0;color:#174a75;font-size:17px}.luggage-pickup-title small{display:block;margin-top:1px;color:#6e8396;font-size:12px!important}.luggage-pickup-panel .form-grid{gap:8px}.luggage-pickup-panel label{font-size:13px}.luggage-pickup-panel input{min-height:41px;font-size:14px}.luggage-pickup-tip{display:flex;align-items:center;gap:7px;padding:7px 9px;border-radius:8px;background:#fff8e9;color:#725d34;font-size:12px;line-height:1.45}.luggage-pickup-tip>span{flex:0 0 auto;width:19px;height:19px}.luggage-detail-modal>.modal-actions{margin-top:2px!important}
@media(max-width:1180px){.asset-command-group[data-tool-group="filter"]{flex-basis:310px}.asset-command-group[data-tool-group="batch"]{flex:1 1 170px}.luggage-order-overview{grid-template-columns:1fr}.luggage-order-primary{border-right:0;border-bottom:1px solid #cbddeb;padding-bottom:9px}.luggage-order-facts{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){.asset-command-summary{justify-content:flex-start}.asset-command-summary #assetCount{white-space:normal}.asset-command-group{flex:1 1 calc(50% - 7px)!important}.asset-command-buttons{display:grid;grid-template-columns:1fr 1fr}.asset-command-toolbar .asset-tool-btn{width:100%;white-space:normal}.asset-command-group[data-tool-group="batch"] .asset-command-buttons{grid-template-columns:1fr}.luggage-order-facts{grid-template-columns:1fr 1fr}.luggage-detail-section-head{align-items:flex-start;flex-direction:column;gap:5px}.luggage-detail-modal .luggage-detail-tag{grid-template-columns:22px minmax(0,1fr)}.luggage-tag-state{grid-column:2;width:max-content}.luggage-pickup-panel .form-grid{grid-template-columns:1fr}}
@media(max-width:480px){.asset-command-group{flex-basis:100%!important}.luggage-order-primary{grid-template-columns:36px minmax(0,1fr)}.luggage-order-state{grid-column:2;width:max-content}.luggage-order-facts{grid-template-columns:1fr 1fr}.luggage-order-note{grid-template-columns:20px minmax(0,1fr)}.luggage-order-note p{grid-column:2}.luggage-detail-modal{padding:10px}.luggage-pickup-tip{align-items:flex-start}}

/* Web V14.5 · 能耗快捷操作二次确认与待办单行优化 */
@media(min-width:1081px){
  .energy-incomplete-item{grid-template-columns:minmax(300px,1fr) minmax(185px,210px) minmax(365px,auto);gap:8px;padding:7px 9px}
  .energy-progress-steps.latest{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
  .energy-progress-steps.latest>span{grid-template-columns:18px minmax(0,1fr);column-gap:4px;min-height:36px;padding:4px 5px}
  .energy-progress-steps.latest>span>i{grid-row:1;width:18px;height:18px;font-size:12px}
  .energy-progress-steps.latest>span>b{overflow:hidden;font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}
  .energy-progress-steps.latest>span>small{display:none}
  .energy-progress-row-actions{grid-column:auto;display:flex;justify-content:flex-end;gap:4px;min-width:365px;flex-wrap:nowrap}
  .energy-progress-row-actions .btn{min-height:34px;padding:5px 7px;font-size:12px;white-space:nowrap}
}

/* Web V14.6 · 全系统下一步跟进与责任人交接提示 */
.toast.workflow-handoff{box-sizing:border-box;width:min(500px,calc(100vw - 32px));max-width:500px;padding:0;overflow:hidden;border:1px solid #8db9df;border-radius:14px;background:#fff;color:#173b62;box-shadow:0 18px 48px rgba(10,45,80,.25);text-align:left}
.workflow-handoff-head{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:11px 12px;background:linear-gradient(110deg,#e9f5ff,#f4fbff);border-bottom:1px solid #c7dfef}.workflow-handoff-head>div{min-width:0}.workflow-handoff-head small,.workflow-handoff-head strong{display:block}.workflow-handoff-head small{color:#5f7790;font-size:12px}.workflow-handoff-head strong{margin-top:1px;color:#124f82;font-size:17px}.workflow-handoff-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#176ed0;color:#fff;font-size:23px;font-weight:900}.workflow-toast-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:9px;background:transparent;color:#536c82;font-size:23px;cursor:pointer}.workflow-toast-close:hover,.workflow-toast-close:focus-visible{background:#dcecf8;outline:2px solid #83b5da}
.workflow-handoff-list{display:grid;gap:0;max-height:min(62vh,520px);overflow:auto}.workflow-handoff-card{display:grid;grid-template-columns:29px minmax(0,1fr);gap:9px;padding:11px 12px;border-bottom:1px solid #e0eaf1}.workflow-handoff-card:last-child{border-bottom:0}.workflow-handoff-number{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:#e7f2fc;color:#1764a4;font-size:13px;font-weight:900}.workflow-handoff-main{min-width:0}.workflow-handoff-main>strong{display:block;color:#123e68;font-size:15px;line-height:1.35}.workflow-handoff-handler{display:flex;align-items:center;gap:7px;margin-top:7px}.workflow-handoff-handler>span{display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#e7f6ec;color:#247044;font-size:12px;font-weight:900}.workflow-handoff-handler>b{color:#1e6741;font-size:14px;line-height:1.35}.workflow-handoff-main p{margin:4px 0 0;color:#64798e;font-size:12px;line-height:1.45;overflow-wrap:anywhere}.workflow-handoff-workspace{display:flex;align-items:center;gap:5px;color:#3e6384!important}.workflow-handoff-workspace>span{color:#2475b6;font-size:14px}.workflow-handoff-warning{padding:6px 8px;border-radius:7px;background:#fff3df;color:#8f5a0b!important;font-weight:750}.workflow-handoff-more{margin:0;padding:9px 12px;background:#f5f8fb;color:#5e7488;font-size:12px;text-align:center}
@media(max-width:620px){.toast.workflow-handoff{right:12px;left:12px;bottom:86px;width:auto;max-width:none}.workflow-handoff-head{grid-template-columns:36px minmax(0,1fr) 34px}.workflow-handoff-list{max-height:55vh}}

/* Web V17.1.1 · 手机二维码上传成功即展示可删除缩略图 */
.qr-upload-thumbnails{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #d9e5ef}.qr-upload-thumb,.photo-thumb-wrap{position:relative;display:inline-flex}.qr-upload-preview{width:76px;height:76px;padding:0;overflow:hidden;border:1px solid #c8d8e8;border-radius:10px;background:#f4f8fc}.qr-upload-preview img{width:100%;height:100%;object-fit:cover}.qr-upload-remove,.photo-thumb-remove{position:absolute;z-index:2;top:-8px;right:-8px;display:grid;place-items:center;width:24px;height:24px;padding:0;border:2px solid #fff;border-radius:50%;background:#c93838;color:#fff;font-size:17px;font-weight:900;line-height:1;box-shadow:0 2px 8px rgba(55,20,20,.3);cursor:pointer}.qr-upload-remove:hover,.qr-upload-remove:focus-visible,.photo-thumb-remove:hover,.photo-thumb-remove:focus-visible{background:#a91f1f;outline:2px solid #f0a1a1}.multi-photo-preview .photo-thumb-wrap{margin:3px}.photo-thumb-wrap>.photo-thumb{margin:0}

/* Web V14.7 · 报废与维修的模糊范围检索、折叠历史和资产级分页 */
.business-range-filter{display:grid;grid-template-columns:repeat(6,minmax(125px,1fr));align-items:end;gap:9px;margin-top:14px;padding:12px;border:1px solid #d3e1ed;border-radius:11px;background:#f6f9fc}.business-range-filter>label{display:grid;gap:5px;min-width:0;color:#3e607d;font-size:12px;font-weight:800}.business-range-filter>label>span{white-space:nowrap}.business-range-filter input,.business-range-filter select{box-sizing:border-box;width:100%;min-height:42px;margin:0;font-size:14px}.business-range-filter .filter-wide{grid-column:span 2}.range-filter-actions{display:flex;align-items:center;gap:7px}.range-filter-actions .btn{flex:1;min-height:42px;white-space:nowrap}.range-filter-actions .btn:before{margin-right:6px;color:inherit;font-size:14px;content:attr(data-icon)}
.business-range-filter.disposal-filters{grid-template-columns:repeat(6,minmax(125px,1fr));padding-top:12px}.disposal-filters .range-filter-actions{grid-column:span 2}.disposal-summary-card span,.disposal-item-main p,.disposal-meta,.terminal-badge{font-size:12px}.disposal-meta{row-gap:5px}.disposal-meta span{padding:3px 6px;border-radius:6px;background:#f1f5f9;color:#5b7086}.completed-item .disposal-meta span{background:#e9eef3}.disposal-thumb.photo-preview-trigger{cursor:zoom-in}.terminal-badge{padding:6px 9px}
.maintenance-history-summary{align-items:center}.maintenance-history-summary em{margin-left:auto;color:#607991;font-size:12px;font-style:normal}.maintenance-asset-history>summary{grid-template-columns:64px minmax(0,1fr) auto auto;min-height:66px;padding:11px 13px}.maintenance-asset-history>summary:hover{background:#edf5fd}.maintenance-asset-history>summary .maint-thumb{box-sizing:border-box;width:64px;height:54px;padding:0;border:1px solid #ceddea;border-radius:9px;background:#edf2f7;color:#61778d;font:inherit;font-size:12px;cursor:zoom-in;overflow:hidden}.maintenance-asset-history>summary .maint-thumb img{width:100%;height:100%;object-fit:cover}.maintenance-asset-history>summary b{font-size:15px}.maintenance-asset-history>summary span{font-size:12px;line-height:1.45}.maintenance-asset-history>summary strong{padding:6px 9px;border-radius:8px;background:#e8f2fc;color:#1a5c98;font-size:13px;white-space:nowrap}.maintenance-history-records small,.maintenance-history-no{font-size:12px}.maintenance-history-records small{line-height:1.5}.maintenance-vouchers{margin-top:7px}.maintenance-vouchers .choice-thumb{cursor:zoom-in}.maintenance-history-list+.pager{margin-top:13px}
.asset-transfer-icon,.asset-transfer-icon.compact{width:auto;min-width:0;height:22px;padding:0 7px;border-radius:7px;font-size:12px;line-height:20px;white-space:nowrap}.asset-policy-badge{font-size:12px}.asset-name-with-policy{flex-wrap:wrap}

/* Web V14.8 · 资产主档必填、最近更新排序与持久交接提示 */
#workflowHandoff:not(.hidden)+#toast:not(.hidden){top:24px;bottom:auto}
@media(max-width:620px){#workflowHandoff:not(.hidden)+#toast:not(.hidden){top:12px;bottom:auto}}
@media(max-width:1100px){.business-range-filter,.business-range-filter.disposal-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.business-range-filter .filter-wide{grid-column:span 2}.disposal-filters .range-filter-actions{grid-column:auto}.maintenance-history-summary em{flex-basis:100%;margin-left:0}}
@media(max-width:680px){.business-range-filter,.business-range-filter.disposal-filters{grid-template-columns:1fr!important}.business-range-filter .filter-wide,.disposal-filters .range-filter-actions{grid-column:1!important}.maintenance-asset-history>summary{grid-template-columns:54px minmax(0,1fr)}.maintenance-asset-history>summary .maint-thumb{width:54px;height:48px}.maintenance-asset-history>summary>strong,.maintenance-asset-history>summary>.btn{grid-column:2;width:max-content}.range-filter-actions{display:grid;grid-template-columns:1fr 1fr}.maintenance-history-summary em{flex-basis:100%}}

/* Web V14.9 · 报废处置闭环、人员名下资产与盘点历史 */
.approval-center-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.approval-summary{grid-template-columns:repeat(7,minmax(0,1fr))!important}
.disposal-progress-btn{border-color:#e0a23d!important;background:#fff6df!important;color:#8a5707!important;font-weight:850!important;box-shadow:none!important}
.disposal-progress-btn:before{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#dc941c;content:""}
.disposal-progress-btn:hover:not(:disabled){border-color:#c88619!important;background:#ffefc5!important;color:#714400!important}
.disposal-approval-row{border-left:4px solid #dca03a}

.modal.modal-disposal-settlement{display:flex;flex-direction:column;width:min(940px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.modal-disposal-settlement .modal-head{flex:0 0 auto}
.modal-disposal-settlement #modalBody{flex:1;min-height:0;overflow:auto;background:#f3f7fb}
.disposal-settlement-modal{display:grid;gap:11px;padding:13px 14px}
.disposal-settlement-hero{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;border:1px solid #bcd5e8;border-radius:13px;background:linear-gradient(115deg,#eaf6ff,#f8fcff)}
.disposal-settlement-hero-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:#176ed0;color:#fff;font-size:18px;font-weight:900;box-shadow:0 6px 16px rgba(23,110,208,.2)}
.disposal-settlement-hero h3,.disposal-settlement-hero p{margin:0}.disposal-settlement-hero h3{margin-top:2px;color:#164b78;font-size:20px}.disposal-settlement-hero small{display:block;color:#627e95;font-size:12px}.disposal-settlement-hero p{margin-top:3px;color:#5b758b;font-size:13px}
.disposal-state-badge{align-self:start;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}.disposal-state-badge.pending{background:#e8f2fd;color:#1764a7}.disposal-state-badge.progress{background:#fff0cd;color:#8b5908}
.disposal-settlement-step{padding:12px 13px;border:1px solid #d4e1ec;border-radius:12px;background:#fff}.disposal-settlement-step>header{display:grid;grid-template-columns:31px minmax(0,1fr);align-items:start;gap:9px;margin-bottom:10px}.disposal-settlement-step>header>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#e8f2fc;color:#1766aa;font-size:13px;font-weight:900}.disposal-settlement-step>header h4,.disposal-settlement-step>header p{margin:0}.disposal-settlement-step>header h4{color:#174970;font-size:16px}.disposal-settlement-step>header p{margin-top:2px;color:#71869a;font-size:12px;line-height:1.45}.disposal-settlement-step.compact textarea{box-sizing:border-box;width:100%;min-height:72px;margin:0;font-size:14px}
.disposal-settlement-fields{grid-template-columns:1fr 1fr;gap:8px 10px}.disposal-settlement-fields label{margin:0;color:#365d7a;font-size:13px;font-weight:750}.disposal-settlement-fields input,.disposal-settlement-fields select{min-height:42px;margin-top:5px;font-size:14px}
.disposal-method-hint{margin-top:9px;padding:8px 10px;border-radius:8px;background:#eef6fc;color:#526f86;font-size:12px;line-height:1.5}.disposal-method-hint b{color:#1d5d91}
.disposal-confirm-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.disposal-confirm-card{display:grid!important;grid-template-columns:20px 39px minmax(0,1fr);align-items:start;gap:9px;min-height:102px;margin:0;padding:12px;border:2px solid #d7e2ec;border-radius:11px;background:#fbfdff;color:#31536f;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}.disposal-confirm-card:hover{border-color:#8bb7dc}.disposal-confirm-card>input{width:19px;min-height:19px;margin:3px 0 0;accent-color:#176ed0}.disposal-confirm-card>i{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:#eaf3fb;color:#1766a7;font-size:15px;font-style:normal;font-weight:900}.disposal-confirm-card>span b,.disposal-confirm-card>span small{display:block}.disposal-confirm-card>span b{color:#1a4e78;font-size:15px}.disposal-confirm-card>span small{margin-top:5px;color:#617a8f;font-size:12px;line-height:1.55}.disposal-confirm-card.is-checked{border-color:#2b7bc1;background:#eef8ff;box-shadow:0 0 0 3px rgba(43,123,193,.09)}.disposal-confirm-card.critical.is-checked{border-color:#c65347;background:#fff5f3;box-shadow:0 0 0 3px rgba(198,83,71,.09)}.disposal-confirm-card.critical.is-checked>i{background:#ffe2dd;color:#ae372d}
.disposal-completion-impact{display:flex;align-items:flex-start;gap:8px;margin-top:9px;padding:9px 10px;border-radius:9px;background:#f2f6f9;color:#587187;font-size:12px;line-height:1.5}.disposal-completion-impact b{flex:0 0 auto;color:#1f567f}.disposal-completion-impact span{min-width:0}
.disposal-settlement-actions{position:sticky;bottom:-13px;z-index:3;align-items:center;margin:0 -14px -13px;padding:11px 14px calc(11px + env(safe-area-inset-bottom));border-top:1px solid #cbdbe8;background:rgba(255,255,255,.97);box-shadow:0 -8px 20px rgba(29,66,101,.08);backdrop-filter:blur(8px)}.disposal-settlement-actions>div{display:grid;margin-right:auto}.disposal-settlement-actions strong{color:#234f73;font-size:13px}.disposal-settlement-actions span{margin-top:1px;color:#708599;font-size:12px}.modal-disposal-settlement #dsSubmit{min-width:155px}.modal-disposal-settlement #dsSubmit.danger{border-color:#b83d33;background:#b83d33;color:#fff;box-shadow:0 5px 13px rgba(184,61,51,.2)}.modal-disposal-settlement #dsSubmit.danger:hover:not(:disabled){border-color:#982f28;background:#a9342c;color:#fff}

.custody-people-panel{min-height:420px}.custody-people-panel>.panel-head{align-items:flex-start}.custody-people-panel>.inline-form{max-width:720px;margin-top:2px}.custody-people-panel .people-grid{margin-top:12px}
.inventory-history-table{min-width:1140px}.inventory-history-table th:nth-child(1){min-width:130px}.inventory-history-table th:nth-child(3),.inventory-history-table th:nth-child(4){min-width:150px}.inventory-history-table th:nth-child(5){min-width:125px}.inventory-history-table th:last-child{min-width:130px}
.inv-duration{display:inline-block;color:#294b69;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}

@media(max-width:1250px){.approval-center-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.approval-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(max-width:720px){.approval-center-grid{grid-template-columns:1fr!important}.approval-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.disposal-settlement-hero{grid-template-columns:42px minmax(0,1fr)}.disposal-settlement-hero-icon{width:40px;height:40px}.disposal-state-badge{grid-column:2;width:max-content}.disposal-settlement-fields,.disposal-confirm-grid{grid-template-columns:1fr!important}.disposal-confirm-card{min-height:0}.disposal-settlement-actions{display:grid;grid-template-columns:1fr 1fr}.disposal-settlement-actions>div{grid-column:1/-1}.modal-disposal-settlement #dsSubmit{min-width:0}.custody-people-panel{min-height:0}}

/* Web V15.0 · 资产最近变更倒序、维修当前状态与无横向滚动模板编辑 */
.maintenance-asset-history-meta{display:flex;align-items:center;justify-content:flex-end;gap:7px;white-space:nowrap}
.maintenance-current-state{display:inline-flex!important;align-items:center;min-height:30px;padding:5px 10px;border:1px solid transparent;border-radius:999px;font-size:13px!important;font-weight:850;line-height:1!important}
.maintenance-current-state.repairing{border-color:#efc270;background:#fff3d9;color:#985e08}
.maintenance-current-state.repaired{border-color:#add8ba;background:#eaf8ee;color:#247143}
.maintenance-current-state.terminal{border-color:#d8bec0;background:#f8ecee;color:#8b3940}
.maintenance-current-state.other{border-color:#b9cce0;background:#eef4fa;color:#3f607f}

.modal.modal-config-template{display:flex;flex-direction:column;width:min(980px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:hidden}
.modal-config-template .modal-head{flex:0 0 auto}
.modal-config-template #modalBody{flex:1;min-height:0;overflow:hidden}
.modal-config-template .config-template-sheet-editor{display:flex;flex-direction:column;box-sizing:border-box;height:100%;max-height:calc(100dvh - 78px);gap:9px;padding:13px 14px;overflow:hidden}
.config-template-editor-hint{flex:0 0 auto;margin:0;padding:8px 10px;border-radius:8px;background:#eef5fc;color:#526f88;font-size:13px;line-height:1.45}
.config-template-editor-list{display:grid;flex:1;align-content:start;gap:9px;min-height:0;padding:1px 4px 1px 1px;border:0;background:transparent;box-shadow:none;overflow-x:hidden!important;overflow-y:auto!important}
.config-template-editor-row{min-width:0;padding:11px;border:1px solid #cfdeeb;border-radius:11px;background:#f9fbfd;box-shadow:0 2px 7px rgba(25,65,100,.05)}
.config-template-editor-row>header{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;margin-bottom:9px;padding-bottom:8px;border-bottom:1px solid #dce6ef}
.config-template-editor-row>header>div:first-child{display:flex;align-items:baseline;gap:8px;min-width:0}.config-template-editor-row>header>div:first-child span{color:#6c8195;font-size:12px}.config-template-editor-row>header>div:first-child b{overflow:hidden;color:#194d78;font-size:14px;text-overflow:ellipsis;white-space:nowrap}
.config-template-save-state{padding:4px 8px;border-radius:999px;background:#e9f6ed;color:#2c7445;font-size:12px;font-weight:800;white-space:nowrap}.config-template-save-state.draft{background:#fff0cf;color:#915d0b}
.config-template-editor-fields{display:grid;grid-template-columns:minmax(145px,1.15fr) minmax(105px,.72fr) minmax(210px,1.7fr) minmax(92px,.62fr) minmax(105px,.72fr);gap:8px}
.config-template-editor-fields label{display:grid;align-content:start;gap:5px;min-width:0;margin:0;color:#526b83;font-size:12px;font-weight:750}.config-template-editor-fields label>span{white-space:nowrap}.config-template-editor-fields label>span>b{color:#c43d32;font-size:13px}.config-template-editor-fields input,.config-template-editor-fields select{box-sizing:border-box;width:100%;min-width:0;min-height:39px;margin:0;padding:7px 9px;font-size:13px}.config-template-editor-fields .template-note-field{grid-column:1/-1}
.config-template-editor-row.priority-urgent{border-color:#e0a5a5;background:#fff7f7}.config-template-editor-row.priority-urgent>header{border-bottom-color:#ebc3c3}.config-template-editor-row.not-required{border-style:dashed;background:#f3f5f7}.config-template-editor-row.inactive{opacity:.58}.config-template-editor-row.config-template-draft{border-color:#dfc47d;background:#fffaf0}
.config-template-editor-actions{flex:0 0 auto;flex-wrap:wrap;margin:0;padding-top:10px;border-top:1px solid #d8e3ed;background:#fff}.config-template-editor-actions #ctdAddRow{margin-right:auto}

@media(max-width:800px){.maintenance-asset-history-meta{grid-column:2;justify-content:flex-start;flex-wrap:wrap}.config-template-editor-fields{grid-template-columns:1fr 1fr}.config-template-editor-fields .template-name-field,.config-template-editor-fields .template-note-field{grid-column:1/-1}}
@media(max-width:520px){.config-template-editor-row>header{grid-template-columns:minmax(0,1fr) auto}.config-template-editor-row>header>.row-actions,.config-template-editor-row>header>.ct-save-existing{grid-column:1/-1;justify-self:stretch}.config-template-editor-row>header>.ct-save-existing{width:100%}.config-template-editor-fields{grid-template-columns:1fr}.config-template-editor-fields .template-name-field,.config-template-editor-fields .template-note-field{grid-column:1}.config-template-editor-actions{display:grid;grid-template-columns:1fr}.config-template-editor-actions .btn{width:100%}}

/* V15.2 communication contract and payment rules */
.network-form-grid>label[hidden]{display:none!important}
.network-form-grid input:read-only,.network-form-grid select:disabled,.network-form-grid input:disabled{background:#edf1f6;color:#536579;border-color:#ccd6e3}
.network-billing-behavior{display:block;padding:0;border:0;background:transparent}
.network-billing-behavior>.network-billing-explain{margin:0;padding:0;background:transparent}
.network-billing-explain{grid-template-columns:repeat(2,minmax(0,1fr))}
.network-todo-list{display:grid;gap:10px}
.network-todo-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #d6e2ee;border-radius:12px;background:#fff}
.network-todo-card>div{display:grid;gap:7px;min-width:0}
.network-todo-card strong{font-size:16px}.network-todo-card small{font-size:14px;overflow-wrap:anywhere}
.network-todo-card .network-due-badge{justify-self:start}.network-todo-card .btn{flex-shrink:0}
.network-form-grid label small{font-size:14px}
@media(max-width:640px){.network-billing-explain{grid-template-columns:1fr}.network-todo-card{flex-wrap:wrap}.network-todo-card .btn{margin-left:auto}}

/* V15.4: communication form groups and accessible automatic-debit switch */
.network-contract-pane{background:#fff}
.network-billing-group{padding:18px 18px 14px;min-width:0}
.network-billing-group+.network-billing-group{border-top:1px solid #e3eaf2}
.network-billing-group h4{margin:0 0 12px;color:#173e63;font-size:16px;line-height:1.4}
.network-billing-group .network-form-grid{padding:0;gap:14px 16px}
.network-billing-group .network-form-grid label{font-size:13px}
.network-billing-group .network-form-grid label small{font-size:12px;line-height:1.5;font-weight:400}
.modal-network-edit .network-form-grid>.required-label::after{content:none}
.modal-network-edit .network-form-grid>.required-label::before{content:"* ";color:#c52c30;font-weight:700}
.network-billing-group .network-payment-fields{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}
.network-autopay-control{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 14px;margin:0 0 15px;border:1px solid #d4e2ef;border-radius:10px;background:#f5f9fd;cursor:pointer}
.network-autopay-copy{min-width:0;display:grid;gap:5px}
.network-autopay-copy b{color:#214b70;font-size:14px;font-weight:650}
.network-autopay-copy small{color:#61778e;font-size:12px;line-height:1.5;font-weight:400}
.network-autopay-copy em{font-style:normal;font-weight:500;font-size:12px;margin-left:8px;color:#526b83}
.network-autopay-toggle{position:relative;display:block;flex:0 0 46px;width:46px;height:26px}
.network-autopay-toggle input{position:absolute;inset:0;width:46px;height:26px;min-height:0;margin:0;opacity:0;cursor:pointer;z-index:1}
.network-autopay-toggle>span{display:block;width:46px;height:26px;border-radius:20px;background:#a4b4c5;transition:background .15s}
.network-autopay-toggle>span:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #22374b33;transition:transform .15s}
.network-autopay-toggle input:checked+span{background:#16745c}
.network-autopay-toggle input:checked+span:after{transform:translateX(20px)}
.network-autopay-toggle input:focus-visible+span{outline:3px solid #2a78cf;outline-offset:3px}
.network-schedule-note{margin:0;padding:10px 12px;border-radius:8px;background:#f0f6fc;color:#335f86;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.network-asset-kpis{grid-template-columns:repeat(auto-fit,minmax(145px,1fr))}
@media(max-width:640px){.network-billing-group{padding:14px 12px}.network-billing-group .network-payment-fields{grid-template-columns:1fr}.network-autopay-control{gap:12px;padding:11px}.network-asset-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.network-autopay-toggle>span,.network-autopay-toggle>span:after{transition:none}}

/* V15.3 operations branding, compact account controls and search filters */
.sidebar .brand{gap:9px;padding:4px 4px 16px}
.sidebar .brand>div{min-width:0}.sidebar .brand strong{font-size:17px;line-height:1.35;white-space:nowrap}
.sidebar .brand small{font-size:12px}.sidebar .sidebar-logo{width:64px;height:38px;flex-shrink:0}
.sidebar .sidebar-user.account-bar{position:relative;flex:0 0 auto;margin-top:0;padding:10px 0 max(2px,env(safe-area-inset-bottom))!important;background:transparent}
.account-trigger{display:flex;align-items:center;gap:9px;width:100%;min-height:56px;padding:7px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:#fff;text-align:left;cursor:pointer}
.account-trigger:hover,.account-trigger[aria-expanded="true"]{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12)}
.account-trigger:focus-visible{outline:2px solid #9bc9ff;outline-offset:2px}
.account-avatar{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:#2455a0;color:#fff;font-size:16px;font-weight:800}
.account-summary{display:grid;gap:3px;flex:1 1 auto;min-width:0}.account-summary strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.25}
.account-bar .account-summary small{overflow:hidden;display:block;margin:0;font-size:12px;line-height:1.4;color:#bbcee6;text-overflow:ellipsis;white-space:nowrap}
.account-chevron{flex:0 0 18px;width:18px;height:18px;fill:none;stroke:#bbcee6;stroke-width:1.8;transition:transform .16s}
.account-trigger[aria-expanded="true"] .account-chevron{transform:rotate(180deg)}
.account-menu{position:absolute;bottom:calc(100% + 7px);left:0;right:0;z-index:5;overflow:auto;max-height:min(330px,calc(100dvh - 180px));padding:6px;border:1px solid #d6e2ef;border-radius:12px;background:#fff;color:#203b5d;box-shadow:0 -8px 30px rgba(2,20,49,.24)}
.account-menu[hidden]{display:none!important}.account-menu-heading{display:grid;gap:5px;margin:0 4px 5px;padding:8px 5px 10px;border-bottom:1px solid #e2e9f1}
.account-menu-heading b{font-size:14px}.account-menu-heading span{color:#61758f;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.account-menu-action{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;margin:0;padding:10px;border:0;border-radius:7px;background:transparent;color:#274c76;text-align:left;font-size:14px;cursor:pointer}
.account-menu-action:hover,.account-menu-action:focus-visible{background:#edf4fc;outline:none}.account-menu-action:focus-visible{box-shadow:inset 0 0 0 2px #8bb6e9}
.account-menu-action svg{width:19px;height:19px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.account-logout{color:#b63d3d}.account-logout:hover,.account-logout:focus-visible{background:#fff0ef}
.asset-query-panel .asset-search-primary{grid-template-columns:minmax(230px,1.6fr) repeat(2,minmax(140px,1fr)) auto!important;align-items:stretch;gap:8px}
.asset-search-actions{display:flex;align-items:stretch;gap:7px;min-width:0;white-space:nowrap}
.asset-query-panel .asset-search-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:auto;min-height:42px;padding:8px 11px;font-size:15px;white-space:nowrap}
.asset-command-group[data-tool-group="filter"]{flex:1 1 220px}
@media(max-width:1250px){.asset-query-panel .asset-search-primary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.asset-query-panel .asset-search-primary #fQ{grid-column:1/-1!important}.asset-search-actions{grid-column:1/-1;justify-content:flex-end}}
@media(max-width:620px){.asset-query-panel .asset-search-primary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.asset-search-actions .btn{flex:1 1 auto;min-width:0}.asset-query-panel .asset-search-actions .btn{min-height:44px;padding:8px;font-size:14px}.account-trigger{min-height:56px}}

/* V15.5: prioritize the two room identities and show uploaded photos inline. */
.network-room-hero{align-items:flex-start;gap:18px}
.network-room-primary{flex:1;min-width:0}
.network-room-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:700px;margin-bottom:10px}
.network-room-pair>div{padding:10px 14px;border:1px solid #d1e2f3;border-radius:9px;background:rgba(255,255,255,.75);min-width:0}
.network-room-pair small{display:block;color:#627e98;font-size:12px}
.network-room-pair h3{margin:3px 0 0;font-size:26px;line-height:1.3;overflow-wrap:anywhere}
.network-room-pair>div:last-child{border-color:#b5d3f4;background:#fff}
.network-room-status{display:flex;align-items:flex-end;flex-direction:column;gap:10px;flex-shrink:0;padding-top:4px}
.network-section-head>small{color:#72859a;font-size:12px}
.network-document-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.network-document-grid figure{margin:0;min-width:0}
.network-document-grid figure>button{width:100%;height:140px;border-style:solid;background:#f6f9fd;font-size:12px}
.network-document-grid figcaption{margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#718297}
#naDepositStatus:disabled,#naExpiry:disabled{background:#edf2f7;color:#62798d;cursor:not-allowed;opacity:1}
#naDepositHint{line-height:1.5}
@media(max-width:560px){
 .network-room-hero{gap:10px;flex-direction:column}.network-room-primary{width:100%}
 .network-room-pair{gap:8px}.network-room-pair>div{padding:9px 10px}.network-room-pair h3{font-size:22px}
 .network-room-status{flex-direction:row;align-items:center;flex-wrap:wrap;padding:0}
 .network-document-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.network-document-grid figure>button{height:120px}
 .network-section-head{flex-wrap:wrap}.network-section-head h4{margin-bottom:0}
}

/* V15.6: each approval section loads and recovers independently. */
.approval-loading,.approval-load-error{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:12px;min-height:84px;padding:16px;color:#607c98;font-size:14px}
.approval-load-error{justify-content:space-between;flex-wrap:wrap;background:#fff8ed;border:1px solid #f0d5ad;border-radius:10px;color:#906121}
.approval-loading-dot{width:9px;height:9px;border-radius:50%;background:#2984d5;animation:approval-loading-pulse 1.2s ease-in-out infinite}
.approval-summary-card .approval-load-note{font-size:12px;color:#657f99;line-height:1.45;margin-top:4px}
@keyframes approval-loading-pulse{50%{opacity:.3}}
@media(prefers-reduced-motion:reduce){.approval-loading-dot{animation:none}}

/* V15.7: current-room emphasis, inclusive bill periods and compact bill QR actions. */
.network-current-room-label{display:block;color:#607f9f;font-size:12px;margin-bottom:2px}
.network-line-grid .network-card-expiry{background:#eef5ff;border:1px solid #c9dcf5}
.network-line-grid .network-card-expiry b{color:#164f95;font-size:13px}
.network-payment-period-note{margin:12px 0;padding:10px 12px;border-radius:8px;background:#f3f7fc;color:#456080;font-size:13px}
.network-payment-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.network-payment-form input[readonly]{background:#eff3f8;color:#355a7c;cursor:default}
.energy-payment-qr{flex:0 0 76px;width:76px;height:86px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;padding:4px;border:1px solid #c9dcef;border-radius:8px;background:#fff;color:#416584;cursor:zoom-in;font-size:12px;line-height:1.2}
.energy-payment-qr img{display:block;width:64px;height:64px;object-fit:contain;image-rendering:crisp-edges}
.energy-payment-qr small{font-size:12px!important;line-height:1.1;white-space:nowrap}
.energy-payment-qr:focus-visible{outline:3px solid #6eaeed;outline-offset:2px}
.energy-progress-row-actions{display:flex;min-width:0;gap:8px;align-items:center;flex-wrap:wrap}
.energy-progress-buttons{display:grid;grid-template-columns:repeat(2,max-content);gap:5px;justify-content:end}
.energy-progress-row-actions .btn,.energy-history-actions .btn{min-height:30px;padding:4px 7px;font-size:12px!important;white-space:nowrap;width:auto}
.energy-incomplete-item{grid-template-columns:minmax(0,1fr) minmax(135px,175px) auto}
.energy-history-photo{display:flex;flex-wrap:wrap;gap:5px;min-width:0;align-items:center}
.energy-history-photo-link{min-height:28px;padding:4px 6px;font-size:12px}
.energy-history-row{grid-template-columns:minmax(80px,1fr) 85px 100px 95px minmax(85px,110px) 95px minmax(175px,auto)}
.energy-history-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.energy-bill-card>footer{gap:8px;align-items:center;flex-wrap:wrap}
@media(max-width:1050px){.energy-incomplete-item{grid-template-columns:minmax(0,1fr) auto}.energy-progress-steps.latest{grid-column:1}.energy-progress-row-actions{grid-column:2;grid-row:1/3}.energy-history-row{grid-template-columns:repeat(3,minmax(0,1fr))}.energy-history-photo,.energy-history-states,.energy-history-actions{grid-column:auto}.energy-history-actions{grid-column:2/-1}}
@media(max-width:640px){.network-payment-form{grid-template-columns:1fr}.energy-incomplete-item{grid-template-columns:1fr}.energy-progress-row-actions{grid-column:1;grid-row:auto;justify-content:space-between;flex-wrap:nowrap}.energy-progress-steps.latest{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-progress-buttons{flex:1;grid-template-columns:repeat(2,minmax(0,1fr))}.energy-progress-buttons .btn,.energy-history-actions .btn{min-height:38px}.energy-history-row{grid-template-columns:repeat(2,minmax(0,1fr))}.energy-history-photo,.energy-history-states{grid-column:auto}.energy-history-actions{grid-column:1/-1}}

.network-payment-form>.required-label::after{content:none}.network-payment-form>.required-label::before{content:"* ";color:#c52c30;font-weight:700}

/* V15.8: compact billing rows. Pictures are loaded only after an explicit click. */
.energy-payment-qr{display:inline-flex;flex:0 0 auto;width:auto;height:auto;min-height:30px;padding:4px 8px;border:1px solid #9fc2e2;border-radius:7px;background:#eef7ff;color:#145f99;font-size:12px;font-weight:700;white-space:nowrap;cursor:pointer}
.energy-payment-qr[aria-busy="true"]{opacity:.65;cursor:progress}
.energy-progress-row-actions,.energy-progress-buttons,.energy-history-controls,.energy-history-actions,.energy-history-photo{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;min-width:0}
.energy-progress-row-actions{grid-column:auto;grid-row:auto}
.energy-progress-buttons{flex:0 0 auto}
.energy-incomplete-item{grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;padding:8px 10px}
.energy-incomplete-identity{grid-template-columns:32px minmax(0,1fr) auto;gap:7px}
.energy-incomplete-identity>strong{grid-column:auto}
.energy-incomplete-identity small{font-size:12px!important}
.energy-progress-steps.latest{grid-column:auto;display:flex;gap:4px}
.energy-progress-steps.latest>span{display:inline-flex;min-height:28px;gap:4px;padding:4px 6px;white-space:nowrap}
.energy-progress-steps.latest>span small{display:none}
.energy-progress-steps.latest>span>i{width:17px;height:17px;font-size:12px}
.energy-history-row{grid-template-columns:minmax(82px,1fr) 72px 82px 96px auto auto;gap:10px;padding:9px 10px}
.energy-history-period strong{font-size:15px}
.energy-history-type b,.energy-history-value b{font-size:13px}
.energy-history-value strong{font-size:15px}
.energy-history-type .energy-bill-type-icon{width:28px;height:28px;flex-basis:28px}
.energy-history-photo,.energy-history-actions,.energy-history-states{grid-column:auto;grid-row:auto}
.energy-history-states{display:flex;flex-wrap:nowrap;gap:4px}
.energy-history-states .energy-status,.energy-history-states .energy-payment-pill{padding:4px 6px;white-space:nowrap}
.energy-history-photo-link{width:auto;min-height:30px;padding:4px 7px;white-space:nowrap}
.energy-history-actions .btn,.energy-progress-row-actions .btn{min-height:30px;padding:4px 7px;line-height:1.3;font-size:12px!important}
@media(max-width:1150px){
  .energy-incomplete-item{grid-template-columns:minmax(0,1fr) auto}
  .energy-progress-row-actions{grid-column:1/-1;justify-content:flex-end}
  .energy-history-row{grid-template-columns:minmax(82px,1fr) 72px 82px 96px auto}
  .energy-history-controls{grid-column:1/-1}
}
@media(max-width:640px){
  .energy-incomplete-item{grid-template-columns:minmax(0,1fr);gap:7px}
  .energy-progress-row-actions{grid-column:1;flex-wrap:wrap;justify-content:flex-start}
  .energy-progress-buttons{display:contents}
  .energy-history-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .energy-history-states,.energy-history-controls{grid-column:1/-1}
  .energy-history-controls{flex-wrap:wrap;justify-content:flex-start}
  .energy-history-photo,.energy-history-actions{display:contents}
  .energy-history-controls .btn,.energy-progress-row-actions .btn,.energy-payment-qr,.energy-history-photo-link{min-height:36px;padding:5px 8px}
}

/* V17.1.1: dedicated lost-item list layout, independent of luggage card grids. */
.lf-order-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:12px 22px;padding:14px 16px;border:1px solid #d5e2f0;border-radius:12px;background:#fff;cursor:pointer;min-width:0}
.lf-order-card:hover{border-color:#8fb2dc;background:#fafdff}
.lf-order-card:focus-within{outline:2px solid #5487bd;outline-offset:2px}
.lf-order-card .lf-order-heading strong{font-size:19px;color:#173e70;font-weight:850}
.lf-order-card .lf-order-guest{color:#315c82;font-weight:750}
.lf-order-card .lf-order-details>small{margin-top:4px;overflow-wrap:anywhere}
.status-pill.cancelled{border-color:#dbdfe4;background:#f3f4f6;color:#576879}
.lost-found-contact-modal .risk-confirm-check.hidden{display:none!important}
.lost-found-register-item-head{flex-wrap:wrap;gap:6px 9px}
.lost-found-register-item-head>[data-lf-ai-state]{flex:1 1 150px;min-width:0}
.lost-found-register-item-head [data-lf-split-item]{min-height:36px}
.lf-order-card.has-valuable,.lost-found-item-card.has-valuable,.lost-found-order-summary.has-valuable{border-color:#e2a33a;background:linear-gradient(110deg,#fffaf0,#fff)}.lf-valuable-badge{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;border:1px solid #dd8d24;border-radius:999px;background:#fff0cf;color:#9a4f00;font-size:12px;font-weight:900;white-space:nowrap}.lf-valuable-badge.prominent{background:#d97706;color:#fff;border-color:#b85d00;box-shadow:0 2px 7px rgba(154,79,0,.18)}.lost-found-order-summary .lf-valuable-badge{margin-top:7px}.lost-found-item-card>header{grid-template-columns:auto minmax(0,1fr) auto auto}
.lf-order-main,.lf-order-details{min-width:0;overflow-wrap:anywhere}
.lf-order-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.lf-order-heading strong{font-size:18px;color:#173e70;line-height:1.5}
.lf-order-card .status-pill{font-size:12px;padding:3px 8px;white-space:normal}
.lf-order-guest{font-size:14px;color:#365777;margin-top:3px}
.lf-order-main>small,.lf-order-details>small{display:block;font-size:13px;line-height:1.6;color:#637d98;margin-top:3px}
.lf-order-details .luggage-tags{margin-bottom:5px}
.lf-order-details .luggage-tags span{font-size:14px;max-width:100%;overflow-wrap:anywhere;box-sizing:border-box}
.lf-order-actions{display:flex;flex-direction:column;align-items:flex-end;gap:10px;min-width:0}
.lf-order-count{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px;color:#536d88}
.lf-order-count b{font-size:20px;color:#b05b20}.lf-order-count small{font-size:13px}
.lf-order-actions>.btn{width:auto;min-height:38px;white-space:normal}
@media(max-width:1000px){.lf-order-card{grid-template-columns:minmax(0,1fr) auto;gap:10px 16px}.lf-order-details{grid-column:1;grid-row:2}.lf-order-actions{grid-column:2;grid-row:1/3}}
@media(max-width:600px){.lf-order-card{grid-template-columns:minmax(0,1fr);padding:12px;gap:9px}.lf-order-details,.lf-order-actions{grid-column:1;grid-row:auto}.lf-order-actions{flex-direction:row;align-items:center;justify-content:space-between;border-top:1px solid #edf2f8;padding-top:9px}.lf-order-heading strong{font-size:17px}}
/* V17.1.1: compact luggage lists and pickup history. */
.luggage-kpis.luggage-kpis-simple{grid-template-columns:repeat(2,minmax(0,1fr))!important}
#luggageOrderList .lg-card{display:grid;gap:5px;padding:12px 15px;background:#fff;border:1px solid #d5e2ee;border-radius:12px;min-width:0;cursor:pointer}
.lg-card-head,.lg-card-time,.lg-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.lg-card-head>strong{font-size:18px;color:#173e70;overflow-wrap:anywhere;line-height:1.4;min-width:0}
.lg-count{font-size:13px;color:#60768c;white-space:nowrap}.lg-count b{font-size:18px;color:#b05b20}
.lg-card-time{justify-content:flex-start;flex-wrap:wrap;gap:4px 14px;font-size:14px;line-height:1.5;color:#315b83}.lg-card-time b{font-size:13px;color:#26715d;font-weight:600}
.lg-card-foot>span{font-size:14px;overflow-wrap:anywhere;min-width:0}.lg-card-foot small{font-size:12px;color:#6a7d91;margin-left:6px}
#luggageOrderList .lg-card-foot>.btn{width:auto;min-width:0;min-height:36px;padding:5px 10px;font-size:14px;white-space:nowrap;flex-shrink:0}
.lg-order-number{font-size:12px;color:#7a8999;overflow-wrap:anywhere}
.luggage-pickup-history>.lg-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0;border:0;margin-top:7px}
.lg-pickup-record{min-width:0;border:1px solid #d8e3ee;border-radius:9px;padding:10px;background:white;display:grid;gap:5px}
.lg-pickup-record.forced{background:#fff9f7;border-color:#e6c2bb}
.lg-pickup-tags{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.lg-pickup-tags>b{font-size:16px;line-height:1.4;color:#234d74;overflow-wrap:anywhere;min-width:0}
.lg-pickup-tags>.pickup-method-pill{font-size:12px;flex-shrink:0}
.lg-pickup-counts{display:flex;gap:18px;font-size:14px;color:#385b7a}.lg-pickup-counts b{font-size:18px;color:#174f83}
.lg-pickup-meta{font-size:13px;line-height:1.5;color:#62778c;overflow-wrap:anywhere}.lg-pickup-meta small{font-size:12px;margin-left:10px;color:#8190a0;overflow-wrap:anywhere}
.lg-pickup-record p,.lg-pickup-record summary{margin:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.luggage-detail-modal>.lg-pickup-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
.luggage-detail-modal>.lg-pickup-actions:empty{display:none!important}
.luggage-detail-modal>.lg-pickup-actions>.btn{width:100%!important;min-width:0!important;min-height:42px;padding:8px 6px!important;font-size:15px!important;white-space:normal!important;line-height:1.4;overflow-wrap:anywhere}
.luggage-order-facts{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:720px){
 .lg-filters.compact-filter-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px}
 .lg-filters #luggageQ,.lg-filters #luggageStatus{grid-column:1/-1!important}.lg-filters .btn{grid-column:auto!important;min-width:0}
 #luggageOrderList .lg-card{padding:10px 12px;gap:4px}
 .luggage-pickup-history>.lg-history-grid{grid-template-columns:minmax(0,1fr)}
 .luggage-detail-modal .luggage-detail-tag{grid-template-columns:20px minmax(0,1fr) auto!important;min-height:58px;padding:8px;gap:7px}
 .luggage-detail-modal .luggage-tag-state{grid-column:3!important;grid-row:1!important;align-self:start;padding:3px 5px}
 .luggage-detail-modal .luggage-tag-main>b{font-size:16px}
 .luggage-detail-modal .luggage-tag-main>em{margin-top:2px;flex-wrap:wrap}
 .luggage-detail-modal .luggage-order-primary{grid-template-columns:28px minmax(0,1fr) auto;gap:7px;padding:0 0 6px}
 .luggage-detail-modal .luggage-order-state{grid-column:auto;white-space:normal;max-width:80px}
 .luggage-customer-icon{width:28px;height:28px;font-size:13px}.luggage-order-facts{grid-template-columns:repeat(2,minmax(0,1fr))}
 .luggage-detail-modal .luggage-pickup-panel{padding:10px;gap:7px}.luggage-detail-modal .luggage-pickup-title>span{display:none}
 .luggage-detail-modal .luggage-pickup-panel .form-grid{grid-template-columns:1fr 1fr!important;gap:8px}
}

.org-person{display:grid;grid-template-columns:1fr 1fr;gap:16px;border-bottom:1px solid #e0e8f3;padding:12px 0}.org-person small{display:block;color:#60728c}.org-person select,.org-role select{width:100%}.org-role{display:grid;grid-template-columns:180px 1fr;gap:14px;margin:8px 0}.org-settings #orgError{color:#b32626}

.quality-stars{color:#bd7a12;white-space:nowrap}.quality-stars small{color:#63738b}.maintenance-description{padding:12px;border-radius:12px;background:#f6f9ff;margin:12px 0}.success-check{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#16855c;color:white;border-radius:50%;margin-right:8px;animation:success-pop .3s ease-out}@keyframes success-pop{from{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.success-check{animation:none}}
.overview-heading{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px}.overview-heading h2{margin:0;font-size:20px}.overview-heading p,.overview-chart>p{color:#6c7e96;font-size:12px;margin:6px 0 18px}.overview-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.overview-chart:last-of-type{grid-column:1/-1}.overview-chart h3{font-size:16px;margin:0}.overview-bars{display:flex;gap:12px;align-items:flex-end;overflow-x:auto;min-height:220px;padding:12px 5px 0}.overview-column{flex:1;min-width:46px;max-width:120px;text-align:center}.overview-column>b{font-size:16px}.overview-column small{font-size:10px;margin-left:2px;color:#8290a4}.overview-column-track{height:150px;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #dce5ef}.overview-column i{display:block;width:64%;max-width:44px;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#428cf5,#235ec8)}.overview-column:nth-child(3n+2) i{background:linear-gradient(180deg,#42bcaa,#278476)}.overview-column>span{display:block;font-size:12px;margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.handoff-choices{display:grid;gap:8px;padding:10px}.handoff-choices label{display:grid;gap:4px}.handoff-choices select{max-width:100%;font-size:14px}.handoff-choices small{color:#9b2525}@media(max-width:700px){.overview-charts{grid-template-columns:minmax(0,1fr)}.overview-bars{min-height:190px}.overview-column-track{height:120px}.overview-heading h2{font-size:17px}}
.handoff-choice-card{display:grid;gap:7px;padding:10px;border:1px solid #d9e5ef;border-radius:10px;background:#f9fcff}.handoff-choice-card header small,.handoff-choice-card header strong{display:block}.handoff-choice-card header small{color:#668096;font-size:11px}.handoff-choice-card header strong{margin-top:2px;color:#153f68;font-size:14px}.handoff-choice-card p{margin:0;color:#597187;font-size:12px}.handoff-person-chips{display:flex;flex-wrap:wrap;gap:6px}.handoff-person-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 6px 4px 10px;border:1px solid #88b9a0;border-radius:999px;background:#eaf7ef;color:#21643f;font-size:13px;font-weight:800;cursor:pointer}.handoff-person-chip i{display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#fff;color:#9c3030;font-size:14px;font-style:normal}.handoff-empty,.handoff-choices>[data-handoff-error]{color:#9b2525}
.handoff-add-label{display:grid;gap:5px;color:#263b50;font-size:13px;font-weight:700}.handoff-add-label input{width:100%;min-height:44px;border:1px solid #738aa0;border-radius:10px;padding:9px 12px;background:#fff;color:#263b50}.handoff-search-results{display:grid;gap:4px;max-height:180px;overflow:auto;padding:4px;border:1px solid #c4d5e3;border-radius:10px;background:#f8fbfd}.handoff-search-results.hidden{display:none}.handoff-search-results button{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;width:100%;padding:8px 10px;border:0;border-radius:7px;background:#fff;color:#263b50;text-align:left;cursor:pointer}.handoff-search-results button:hover,.handoff-search-results button:focus-visible{background:#eaf3f8;outline:2px solid #4b75a2}.handoff-search-results button small{color:#60768a}.handoff-search-results p{padding:8px 10px}.maintenance-guidance{padding:12px;border:1px solid #bbd6dc;border-radius:12px;background:#f0f8f8;color:#263b50}.maintenance-guidance p{margin:6px 0}.maintenance-guidance small{color:#4e657a}
.linen-r1-actions{display:flex;gap:10px;flex-wrap:wrap}.linen-r1-queue{max-height:38vh;overflow:auto;margin:10px 0}.linen-r1-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid #dce6ef}.linen-r1-row>div{min-width:0}.linen-r1-row b{overflow-wrap:anywhere}.linen-r1-row small{display:block;color:#60758a;margin-top:3px}.linen-r1 .wide{width:100%}
.linen-r1 .r1-power-row{display:flex;align-items:end;gap:10px;margin:12px 0;padding:10px 12px;border:1px solid #c8dced;border-radius:9px;background:#f5f9fd}.linen-r1 .r1-power-row label{display:grid;flex:1;gap:5px;color:#365b78;font-size:13px;font-weight:800}.linen-r1 .r1-power-row input{width:100%}
/* 资产查询只保留实际需要的快捷操作，避免工具区占据首屏。 */
.asset-command-group[data-tool-group="capture"]:not([data-terminal-feature]){display:none!important}

/* Lost-found unit count remains visible beside status on narrow screens. */
.lost-found-item-card>header>.lost-found-quantity{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:4px 10px;border:1px solid #c3d9ec;border-radius:999px;background:#eaf3fb;color:#17446e;font-size:14px;font-weight:800;white-space:nowrap}
.lost-found-sale-quantity{grid-column:1/-1;padding:10px 12px;border:1px solid #c3d9ec;border-radius:10px;background:#edf5fb;color:#254c6d;font-size:14px}
.lost-found-sale-quantity strong{font-size:20px;color:#173f68}
.rc-manual-confirm{display:flex;align-items:flex-start;gap:8px;padding:10px;border:1px solid #e5ca93;border-radius:10px;background:#fff8e9;color:#533b17}
.rc-manual-confirm[hidden]{display:none}
@media(max-width:700px){.lost-found-item-card>header>.lost-found-quantity{grid-column:2;justify-self:start}.lost-found-item-card>header>.status-pill{grid-column:2;justify-self:start}}

/* Linen dialogs: wrap actual controls, never hide overflowed actions. */
.linen-transaction-modal,.linen-transaction-modal .form-grid,.linen-transaction-modal label{min-width:0;max-width:100%;box-sizing:border-box}
.linen-transaction-modal .form-grid>*{min-width:0}
.linen-transaction-modal input,.linen-transaction-modal select,.linen-transaction-modal textarea{width:100%;min-width:0;box-sizing:border-box}
.linen-transaction-modal .linen-entry-line{grid-template-columns:minmax(0,1fr) 82px!important;min-width:0}
.linen-transaction-modal .linen-entry-line [data-linen-line-note]{grid-column:1/-1!important}
.linen-transaction-modal .linen-entry-line .btn{grid-column:2!important;width:100%;min-width:0}
.linen-transaction-modal .linen-flow-banner{align-items:flex-start}
.linen-transaction-modal .linen-flow-banner b{flex-shrink:0;white-space:nowrap}
.linen-transaction-modal .linen-flow-banner span{min-width:0;overflow-wrap:anywhere}
.linen-price-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(110px,160px);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e4eaf3}
.linen-price-row small{display:block;color:#71809c}.linen-price-row input{width:100%;min-width:0;box-sizing:border-box}
.linen-people-options{display:flex;flex-wrap:wrap;gap:6px;max-height:180px;overflow-y:auto}
#ltPriceWarning:empty{display:none}#ltPriceWarning{padding:10px;background:#fff1f1;border-radius:8px;margin-bottom:10px;overflow-wrap:anywhere}
.field-browser .desktop-upload:not([data-terminal-feature]){display:none!important}

/* Asset settings: definitions in the catalog, requirements alongside category editing. */
.asset-parameter-catalog .asset-parameter-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:none;overflow:visible;gap:10px}
.asset-parameter-catalog .asset-parameter-row{align-items:center;padding:12px;min-width:0}
.asset-parameter-catalog .asset-parameter-row b{font-size:15px;overflow-wrap:anywhere}
.asset-parameter-catalog .asset-parameter-row b small{display:inline;font-weight:400}
.asset-parameter-catalog .asset-parameter-row>div>small{margin-top:4px;overflow-wrap:anywhere}
.asset-parameter-catalog .btn{min-height:44px;flex:none}
#assetCategorySettings .category-maintenance-grid{grid-template-columns:minmax(240px,.75fr) minmax(0,1.5fr);align-items:start}
.category-secondary-editor .category-map-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.category-map-form>label{display:grid;gap:6px;min-width:0;color:#506a83;font-size:13px;font-weight:650}
.category-map-form>label input,.category-map-form>label select{width:100%;min-width:0;min-height:44px}
.category-editor-actions{display:flex;justify-content:flex-end;margin-top:12px}
.category-editor-actions .btn{min-height:44px}
.category-required-picker{margin:14px 0 0;border:1px solid #d3e3ed;border-radius:9px;background:#fff}
.category-required-picker>header{display:flex;align-items:center;gap:8px;min-height:44px;padding:10px 12px;color:#365572;font-size:14px;font-weight:700;list-style:none}
.category-required-picker>summary::before{content:'▸';font-size:14px}
.category-required-picker[open]>summary::before{content:'▾'}
.category-required-picker>header span{margin-left:auto;color:#60768a;font-size:12px;font-weight:400}
.category-required-picker>summary:focus-visible{outline:2px solid #4b75a2;outline-offset:-2px}
.category-required-help{margin:0;padding:0 12px 10px;color:#60768a;font-size:12px;line-height:1.5}
.category-required-picker .asset-parameter-checks{padding:0 10px 10px;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:6px;max-height:none;overflow:visible}
.category-required-picker .asset-parameter-checks label{gap:6px;min-width:0;margin:0;padding:5px 8px;font-size:13px;line-height:1.4;min-height:44px}
.category-required-picker .asset-parameter-checks input{margin:0;min-height:18px;padding:0}
.category-required-picker .asset-parameter-checks label span{min-width:0;overflow-wrap:anywhere}
.category-required-picker .asset-parameter-checks label small{flex:none;font-size:11px}
.category-required-picker .asset-parameter-checks label:has(input:checked){border-color:#82a6c4;background:#edf5fb}
.category-required-picker .asset-parameter-checks label:has(input:disabled){color:#66798a;background:#f3f6f8;cursor:not-allowed}
.asset-category-group .category-chip[aria-pressed=true]{border-color:#4b75a2;background:#eaf3f8;color:#264d74}
@media(max-width:1100px){.asset-parameter-catalog .asset-parameter-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){#assetCategorySettings .category-maintenance-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.asset-parameter-catalog .asset-parameter-list,.category-required-picker .asset-parameter-checks{grid-template-columns:minmax(0,1fr)}.category-editor-actions .btn{width:100%}}
.lg-card-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.luggage-append-modal .asset-edit-note p{margin:8px 0;overflow-wrap:anywhere}
.luggage-tag-main>.luggage-tag-stored-at{display:block;margin-top:4px;color:#345d81;font-size:12px;font-weight:700;font-style:normal}
@media(max-width:600px){.lg-card-buttons .btn{min-height:44px}.lg-card-foot{flex-wrap:wrap;gap:12px}.luggage-append-modal .luggage-tag-entry{grid-template-columns:minmax(0,1fr)}}
