*{box-sizing:border-box}:root{--ink:#17243a;--muted:#8390a3;--line:#e8edf3;--paper:#f5f7fa;--nav:#142238;--gold:#b99862;--blue:#365f91}body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans","Noto Sans SC",sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}[v-cloak]{display:none}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:#fff}.login-art{background:linear-gradient(145deg,#17283f,#233d5a 65%,#304c68);color:#fff;padding:38px 6vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-art:after{content:"";position:absolute;width:560px;height:560px;border:1px solid #ffffff20;border-radius:50%;right:-170px;bottom:-250px;box-shadow:0 0 0 55px #ffffff09,0 0 0 110px #ffffff07}.brand{display:flex;align-items:center;gap:12px;font-weight:800;letter-spacing:2px;font-size:15px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;background:var(--gold);color:#fff;border-radius:10px;font-size:20px;font-family:Georgia}.muted{opacity:.5;font-weight:500}.art-copy{position:relative;z-index:1;margin-top:-40px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:700;margin:0 0 15px}.art-copy h1{font-size:clamp(34px,4vw,56px);line-height:1.35;letter-spacing:1px;margin:0 0 18px}.art-copy p:last-child{color:#c2ccda;letter-spacing:1px}.art-foot{font-size:10px;letter-spacing:1.5px;color:#a9b6c7;display:flex;justify-content:space-between;position:relative;z-index:1}.login-panel{display:grid;place-items:center;padding:32px}.login-card{width:min(390px,100%)}.login-card h2{font-size:28px;margin:0 0 8px}.sub{color:var(--muted);margin:0 0 30px}.login-card label,.form-grid label{display:block;font-weight:600;font-size:12px;color:#45546a;margin:18px 0 8px}.login-card input,.form-grid input,.form-grid textarea,.form-grid select,.search{width:100%;border:1px solid #dfe5ec;border-radius:8px;background:#fff;padding:12px 13px;outline:none;color:var(--ink)}input:focus,textarea:focus,select:focus{border-color:#829bb8;box-shadow:0 0 0 3px #365f9114}.switch{display:flex;padding:4px;background:#f0f3f7;border-radius:9px;margin-bottom:20px}.switch button{border:0;background:transparent;flex:1;padding:10px;color:#778397;border-radius:7px}.switch button.active{background:#fff;color:#203a59;box-shadow:0 1px 4px #17243a12;font-weight:700}.primary,.secondary{border:0;border-radius:8px;padding:11px 17px;font-weight:600}.primary{background:#24486e;color:#fff}.primary:hover{background:#183958}.primary:disabled{opacity:.6}.wide{width:100%;margin-top:25px;padding:14px}.login-note{text-align:center;color:#9aa5b4;font-size:11px;margin-top:17px}.error{color:#b84040}.layout{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:250px;background:var(--nav);color:#dce4ef;padding:27px 17px;display:flex;flex-direction:column;z-index:5}.side-brand{padding:0 10px 29px}.workspace{display:flex;align-items:center;gap:11px;padding:13px 11px;background:#ffffff0c;border:1px solid #ffffff12;border-radius:10px;margin-bottom:28px}.workspace-icon{width:34px;height:34px;border-radius:9px;background:#b998622b;color:#d2b47e;display:grid;place-items:center;font-size:20px}.workspace b,.workspace small,.account b,.account small{display:block}.workspace b{font-size:12px}.workspace small{font-size:9px;letter-spacing:1px;color:#8495ab;margin-top:4px}.online{margin-left:auto;width:7px;height:7px;background:#67bf9a;border-radius:50%}.nav-caption{font-size:10px;letter-spacing:1.6px;color:#6f8199;padding:0 12px;margin:0 0 9px}.nav-item{display:flex;align-items:center;gap:13px;width:100%;border:0;background:transparent;color:#aebbd0;text-align:left;padding:12px;border-radius:8px;margin:2px 0;font-size:13px}.nav-item:hover,.nav-item.selected{background:#ffffff12;color:#fff}.nav-item.selected{box-shadow:inset 3px 0 var(--gold)}.nav-icon{width:20px;text-align:center;color:#bda477;font-size:16px}.nav-count{margin-left:auto;background:#b99862;color:#142238;border-radius:20px;padding:2px 7px;font-size:10px}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:10px}.side-bottom{flex:0 0 auto;margin-top:0}.security{display:flex;gap:10px;align-items:center;border-top:1px solid #ffffff18;padding:20px 8px;color:#c3cfdd}.security>span{color:#c6a66e;font-size:19px}.security b,.security small{display:block}.security b{font-size:11px}.security small{font-size:10px;color:#8091a7;margin-top:3px}.logout{border:1px solid #ffffff20;background:transparent;color:#aebbd0;width:100%;padding:10px;border-radius:7px;text-align:left;font-size:12px}.logout span{float:right}.main{margin-left:250px;min-height:100vh}.topbar{height:90px;background:#fff;border-bottom:1px solid var(--line);padding:0 38px;display:flex;align-items:center;justify-content:space-between}.crumb{font-size:10px;color:#9aa5b4;margin:0 0 5px}.crumb span{padding:0 7px;color:#c2cbd5}.topbar h1{font-size:20px;margin:0;font-weight:700}.top-right{display:flex;align-items:center;gap:12px}.date{color:#8491a2;font-size:11px;margin-right:10px}.avatar{width:34px;height:34px;background:#e9edf3;color:#355477;border-radius:50%;display:grid;place-items:center;font-weight:700}.account b{font-size:11px}.account small{font-size:10px;color:#8b97a7;margin-top:3px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:7px;width:33px;height:33px;color:#68788c;font-size:18px}.content{padding:30px 38px 55px;max-width:1600px;margin:auto}.welcome{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.welcome .eyebrow{margin-bottom:8px}.welcome h2{font-size:22px;margin:0 0 7px}.welcome p:last-child{color:#8793a3;margin:0;font-size:12px}.welcome-date{text-align:right;border-left:1px solid #dce2e9;padding-left:23px}.welcome-date small,.welcome-date b{display:block}.welcome-date small{color:#9aa5b4;font-size:11px;margin-bottom:5px}.welcome-date b{font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:19px}.stat-card,.panel{background:#fff;border:1px solid var(--line);border-radius:11px;box-shadow:0 3px 12px #1b355009}.stat-card{padding:19px 20px}.stat-top{display:flex;justify-content:space-between;color:#8290a2;font-size:12px}.stat-top i{font-style:normal;color:#b49a70;font-size:18px}.stat-card strong{display:block;font-size:30px;margin:14px 0 6px;letter-spacing:-1px}.stat-card small{color:#9aa5b4;font-size:10px}.stat-card small em{font-style:normal;color:#68a88c;margin-right:4px}.grid-two{display:grid;grid-template-columns:1.25fr .75fr;gap:18px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-head h3{margin:0 0 6px;font-size:15px}.panel-head p{margin:0;color:#9aa5b4;font-size:11px}.panel-tag{font-size:9px;letter-spacing:1.4px;color:#b49a70}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.module-tile{position:relative;text-align:left;border:1px solid #e9edf2;background:#fff;border-radius:9px;padding:15px 13px;min-height:112px}.module-tile:hover{border-color:#b7c4d3;background:#fbfcfe}.module-icon{display:block;font-size:18px;color:#b49a70;margin-bottom:9px}.module-tile b,.module-tile small{display:block}.module-tile b{font-size:12px}.module-tile small{color:#9aa5b4;font-size:10px;margin-top:5px}.tile-arrow{position:absolute;right:12px;top:12px;color:#a9b4c1}.status-pill{display:inline-block;border-radius:30px;background:#edf6f1;color:#4e9a76;padding:5px 9px;font-size:10px}.status-list>div{display:flex;justify-content:space-between;border-bottom:1px solid #eff2f5;padding:12px 0;font-size:11px}.status-list span{color:#8995a5}.status-list b{font-size:11px}.notice{background:#f8f5ef;border:1px solid #eee6d8;border-radius:8px;padding:13px;margin-top:19px}.notice b{font-size:11px;color:#8e744d}.notice p{font-size:10px;color:#958b7b;line-height:1.7;margin:6px 0 0}.data-panel{padding:22px 0 0}.data-panel .panel-head{padding:0 22px}.actions{display:flex;gap:9px}.search{width:210px;padding:10px 12px;font-size:11px}.table-wrap{overflow:auto;border-top:1px solid var(--line)}table{border-collapse:collapse;width:100%;white-space:nowrap}th{text-align:left;background:#f8fafc;color:#8390a1;font-size:10px;font-weight:600;letter-spacing:.3px;padding:13px 17px}td{padding:14px 17px;border-top:1px solid #eff2f5;font-size:11px;color:#526176}tbody tr:hover{background:#fbfcfe}.row-actions{display:flex;gap:12px}.row-actions button{border:0;background:none;color:#42678e;font-size:10px;padding:0}.row-actions .danger-link{color:#bd6666}.empty{text-align:center;color:#a2acb9;padding:35px}.table-foot{display:flex;justify-content:space-between;padding:13px 20px;color:#9ba6b4;font-size:10px}.modal-mask{position:fixed;inset:0;background:#10213780;display:grid;place-items:center;z-index:20;padding:20px}.modal{background:#fff;border-radius:13px;width:min(820px,100%);max-height:90vh;overflow:auto;padding:24px;box-shadow:0 20px 70px #08182a40}.modal-head{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:15px}.modal-head h3{margin:0;font-size:18px}.modal-head .eyebrow{margin-bottom:7px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px;padding:8px 0}.form-grid label{margin:10px 0}.form-grid input,.form-grid textarea,.form-grid select{display:block;margin-top:7px;font-weight:400}.form-grid textarea{min-height:80px;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line);padding-top:16px}.secondary{background:#f0f3f6;color:#58677b}.feedback-mask{z-index:60}.feedback-modal{width:min(680px,100%)}.feedback-message{white-space:pre-wrap;overflow-wrap:anywhere;max-height:58vh;overflow:auto;margin:18px 0 22px;padding:16px;background:#f6f8fb;border:1px solid #e5eaf0;border-radius:9px;color:#34445a;font:13px/1.8 "Noto Sans SC",sans-serif}.feedback-modal .modal-actions{margin-top:8px}.mobile-menu{display:none}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.content{padding:24px}.topbar{padding:0 24px}}
@media(max-width:700px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #0d1c2b66}.main{margin-left:0}.topbar{height:75px;padding:0 15px;gap:12px}.mobile-menu{display:block;border:0;background:none;font-size:20px;color:#53657a}.top-right .date,.account{display:none}.content{padding:18px 13px}.welcome h2{font-size:18px}.stats{gap:9px}.stat-card{padding:14px}.stat-card strong{font-size:25px}.module-grid{grid-template-columns:repeat(2,1fr)}.panel{padding:16px}.data-panel{padding:16px 0 0}.data-panel .panel-head{padding:0 14px;display:block}.actions{margin-top:14px}.search{flex:1;width:100%}.form-grid{grid-template-columns:1fr}.welcome-date{padding-left:12px}.topbar h1{font-size:16px}}
/* 系统设置：直接编辑式布局 */
.settings-panel{padding-bottom:22px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 22px 18px}.settings-group{border:1px solid #e5eaf0;border-radius:10px;padding:16px;background:#fff}.settings-group h4{margin:0 0 12px;font-size:13px;color:#203a59}.settings-group label{display:block;font-size:11px;color:#53647a;font-weight:600;margin:11px 0}.settings-group input,.settings-group select,.settings-group textarea{display:block;width:100%;margin-top:6px;padding:10px 11px;border:1px solid #dce3eb;border-radius:7px;background:#fff;color:#25364c;font:inherit;font-weight:400}.settings-group textarea{resize:vertical;min-height:86px}.settings-wide{grid-column:1/-1}.settings-hint{margin:0 22px;padding:12px 14px;background:#f5f8fb;border-radius:8px;color:#718096;font-size:11px;line-height:1.7}@media(max-width:700px){.settings-grid{grid-template-columns:1fr;padding:0 14px 14px}.settings-wide{grid-column:auto}.settings-panel .panel-head .actions{display:flex;flex-wrap:wrap}.settings-hint{margin:0 14px}}

.import-owner-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}

/* 首页门店业主与房间统计图 */
.store-chart{margin-top:20px;padding-top:18px;border-top:1px solid var(--line,#e8edf4);min-width:0}
.store-chart-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.store-chart-head>div{display:flex;flex-direction:column;gap:4px}
.store-chart-head b{font-size:14px;color:var(--ink,#1b2940);font-weight:700}
.store-chart-head small,.store-chart-head>span{font-size:11px;color:var(--muted,#8a99ad)}
.store-chart-list{display:flex;flex-direction:column;gap:13px;max-height:310px;overflow-y:auto;padding-right:4px}
.store-chart-item{display:grid;grid-template-columns:minmax(70px,112px) minmax(0,1fr) minmax(0,1fr);gap:10px;align-items:center}
.store-chart-name{font-size:12px;color:var(--ink,#40516b);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.store-chart-metric{min-width:0}
.store-chart-label{display:flex;justify-content:space-between;gap:6px;margin-bottom:5px;font-size:10px;color:var(--muted,#8998ac)}
.store-chart-label b{font-size:11px;color:var(--ink,#25344d);font-variant-numeric:tabular-nums}
.store-chart-track{height:7px;background:#edf1f6;border-radius:99px;overflow:hidden}
.store-chart-track i{display:block;height:100%;min-width:0;border-radius:99px;transition:width .25s ease}
.store-chart-track .owner-bar{background:linear-gradient(90deg,#4b86c6,#78a9dc)}
.store-chart-track .room-bar{background:linear-gradient(90deg,#c49a56,#e2c18a)}
.store-chart-empty{padding:20px 10px;text-align:center;font-size:12px;color:var(--muted,#8a99ad);background:#f8fafc;border-radius:10px}
@media(max-width:1100px){.store-chart-item{grid-template-columns:minmax(65px,90px) minmax(0,1fr);}.store-chart-metric:last-child{grid-column:2}}
@media(max-width:640px){.store-chart-item{grid-template-columns:1fr 1fr;gap:8px}.store-chart-name{grid-column:1/-1}.store-chart-metric:last-child{grid-column:auto}}

/* 首页统计与状态模块重新排布 */
.overview-primary{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);align-items:stretch}
.store-chart-panel,.status-panel{min-width:0}
.store-chart-panel .store-chart{margin-top:0;padding-top:0;border-top:0}
.business-modules-panel{margin-top:18px}
.bill-detail-cell{display:block;max-width:430px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.6;color:#50617a}
@media(max-width:900px){.overview-primary{grid-template-columns:minmax(0,1fr)}.business-modules-panel{margin-top:14px}.bill-detail-cell{max-width:260px}}

/* 账单费用科目按列展示，管理端与业主端共用同一套列定义 */
.billsTableWrap table{width:max-content;min-width:100%;table-layout:auto}
.billsTableWrap th,.billsTableWrap td{min-width:96px}
.billsTableWrap th:first-child,.billsTableWrap td:first-child{min-width:108px}
.billsTableWrap th{text-align:center}.billsTableWrap td:not(.row-actions){text-align:center}.billsTableWrap .billSubjectCell{display:block;min-width:72px;max-width:260px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.billsTableWrap th:nth-child(4){min-width:110px}
.billsTableWrap td{white-space:nowrap}
@media(max-width:900px){.billsTableWrap{max-width:calc(100vw - 32px)}.billsTableWrap table{min-width:max-content}}

/* 账单按门店模板分组查看 */
.bill-store-filter{height:42px;min-width:168px;padding:0 12px;border:1px solid var(--line,#dfe6ef);border-radius:10px;background:#fff;color:#31445f;font:inherit}
.billsTableWrap{overflow-x:auto;max-width:100%}
.billsTableWrap table{width:max-content;min-width:100%;table-layout:auto}
.billsTableWrap th,.billsTableWrap td{min-width:96px;white-space:nowrap}
.billsTableWrap th{text-align:center}.billsTableWrap td:not(.row-actions){text-align:center}.billsTableWrap .billSubjectCell{display:block;min-width:72px;max-width:260px;text-align:left;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
@media(max-width:760px){.bill-store-filter{width:100%;min-width:0}.actions:has(.bill-store-filter){flex-wrap:wrap}}

.bill-detail-modal{max-width:760px}
.bill-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
.bill-detail-grid>div{display:flex;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid var(--line,#e4eaf2);border-radius:10px;min-width:0}
.bill-detail-grid span{color:#8190a5}.bill-detail-grid b{color:#24354e;text-align:right;overflow-wrap:anywhere}
@media(max-width:640px){.bill-detail-grid{grid-template-columns:1fr}}

/* 账单表格对齐：标题与普通数据居中，长文本靠左 */
.billsTableWrap table{width:100%;min-width:100%;table-layout:auto}
.billsTableWrap th{text-align:center!important;vertical-align:middle}
.billsTableWrap td{text-align:center!important;vertical-align:middle}
.billsTableWrap td .billSubjectCell{display:block;text-align:left!important;white-space:normal;overflow-wrap:anywhere;max-width:260px;margin:0 auto}
.mobile-bill-cards{display:none}
@media(max-width:700px){
  .desktop-bills-table{display:none!important}
  .mobile-bill-cards{display:flex;flex-direction:column;gap:14px;width:100%;min-width:0}
  .mobile-bill-card{background:#fff;border:1px solid #dce4ef;border-radius:14px;padding:16px;min-width:0;box-shadow:0 2px 8px rgba(20,40,70,.04)}
  .mobile-bill-card-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;padding-bottom:12px;border-bottom:1px dashed #dfe5ec;color:#202938}
  .mobile-bill-card-head strong{font-size:18px;font-weight:700}
  .mobile-bill-card-head span{font-size:16px;font-weight:650}
  .mobile-bill-card-head small{width:100%;color:#718096;font-size:13px}
  .mobile-bill-card-body{display:flex;flex-direction:column}
  .mobile-bill-line{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:10px 0;border-bottom:1px dashed #e4e8ee;min-width:0}
  .mobile-bill-line>span{color:#68717d;flex:1;min-width:0;text-align:left;overflow-wrap:anywhere}
  .mobile-bill-line>strong{color:#202938;text-align:right;max-width:58%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
  .mobile-bill-line.mobile-bill-final{border-bottom:0;font-weight:700}
  .mobile-bill-line.mobile-bill-final>span,.mobile-bill-line.mobile-bill-final>strong{color:#34465e;font-weight:750}
  .mobile-bill-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid #edf0f4}
  .mobile-bill-actions button{min-height:36px}
}

/* 账单分页与排序 */
.sortable-bill-head{cursor:pointer;user-select:none;white-space:nowrap}
.sortable-bill-head:hover{background:#eef3f9}
.sort-indicator{font-size:12px;color:#6b7d93;margin-left:4px}
.bill-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 4px;border-top:1px solid #e8edf3}
.bill-page-size,.bill-page-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:#66758a;font-size:14px}
.bill-page-size select{height:36px;border:1px solid #d7e0eb;border-radius:8px;padding:0 10px;background:#fff;color:#34445a}
.bill-page-controls button{min-height:34px;padding:6px 12px}
.bill-page-controls button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:700px){
 .bill-pagination{align-items:stretch;flex-direction:column;padding:12px 2px}
 .bill-page-size,.bill-page-controls{justify-content:space-between}
 .bill-page-controls button{flex:1}
 .sortable-bill-head{cursor:pointer}
}

/* 自助入住开关与账单最终金额强调 */
.form-switch{appearance:none;width:44px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;cursor:pointer;vertical-align:middle;transition:background .18s}
.form-switch:checked{background:#16a34a}
.form-switch:before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .18s}
.form-switch:checked:before{transform:translateX(20px)}
.final-amount-red{color:#dc2626!important;font-weight:750!important}
.final-amount-detail{border-top:1px solid #e5eaf1;padding-top:10px}
.bill-detail-hint{margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#f3f6fa;color:#64748b;font-size:13px;line-height:1.6}

/* 账单移动端显示修复：金额红色不受响应式规则覆盖 */
.final-amount-red,.final-amount-red *{color:#dc2626!important;-webkit-text-fill-color:#dc2626!important;font-weight:800!important}
.final-amount-detail b.final-amount-red{color:#dc2626!important}
@media(max-width:700px){
 .bill-detail-grid{grid-template-columns:minmax(0,1fr);gap:8px}
 .bill-detail-grid>div{align-items:flex-start;gap:10px;min-width:0}
 .bill-detail-grid>div>span{flex:0 0 58px;text-align:left;line-height:1.6}
 .bill-detail-grid>div>b{flex:1;min-width:0;text-align:right;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.6}
 .bill-detail-grid>div.bill-detail-remark{display:block;text-align:left}
 .bill-detail-grid>div.bill-detail-remark>span{display:block;margin-bottom:6px;font-weight:700;color:#64748b}
 .bill-detail-grid>div.bill-detail-remark>b{display:block;text-align:left;font-weight:600;color:#24354e}
 .bill-detail-grid>div.final-amount-detail{display:flex;align-items:center;justify-content:space-between}
 .bill-detail-grid>div.final-amount-detail>span{flex:1}
 .bill-detail-grid>div.final-amount-detail>b{flex:0 0 auto;text-align:right}
}

/* 手机端账单卡片：最终分成必须保持红色；备注改为独立段落展示 */
@media(max-width:700px){
 .mobile-bill-line.mobile-bill-final strong,
 .mobile-bill-line.mobile-bill-final strong *{
   color:#dc2626!important;
   -webkit-text-fill-color:#dc2626!important;
   font-weight:800!important;
 }
 .mobile-bill-line.mobile-bill-remark{
   display:block!important;
   text-align:left!important;
 }
 .mobile-bill-line.mobile-bill-remark>span{
   display:block!important;
   margin:0 0 7px!important;
   text-align:left!important;
   font-weight:700!important;
   color:#64748b!important;
 }
 .mobile-bill-line.mobile-bill-remark>strong{
   display:block!important;
   width:100%!important;
   max-width:none!important;
   flex:none!important;
   box-sizing:border-box!important;
   text-align:left!important;
   white-space:normal!important;
   overflow-wrap:anywhere!important;
   word-break:break-word!important;
   line-height:1.65!important;
   color:#24354e!important;
 }
}

.owner-no-bills-notice{margin:18px 0;padding:22px 18px;border:1px solid #dce8f5;border-radius:14px;background:linear-gradient(135deg,#f5f9ff,#fff);text-align:center;color:#52647b}
.owner-no-bills-notice .notice-icon{font-size:30px;line-height:1.2;margin-bottom:10px}
.owner-no-bills-notice h3{margin:0 0 8px;color:#263b56;font-size:18px;font-weight:750}
.owner-no-bills-notice p{margin:0;font-size:14px;line-height:1.8;color:#718096}
@media(max-width:700px){.owner-no-bills-notice{margin:12px 0;padding:24px 16px}.owner-no-bills-notice h3{font-size:17px}.owner-no-bills-notice p{font-size:14px}}

/* 门店异常提醒 */
.store-anomaly-modal{width:min(760px,calc(100vw - 28px));max-width:760px;max-height:86vh;overflow:auto}
.store-anomaly-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0 18px}
.store-anomaly-summary>span{padding:12px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;color:#64748b;font-size:13px;text-align:center}
.store-anomaly-summary b{display:block;margin-top:4px;color:#dc2626;font-size:22px}
.store-anomaly-section{padding:14px 0;border-top:1px solid #e8edf3}
.store-anomaly-section h4{margin:0 0 10px;color:#263b56;font-size:15px}
.store-anomaly-item{display:flex;justify-content:space-between;gap:12px;padding:9px 11px;margin:6px 0;border:1px solid #edf0f4;border-radius:8px;background:#fff;min-width:0}
.store-anomaly-item b{color:#334155;overflow-wrap:anywhere}
.store-anomaly-item span{color:#718096;text-align:right;overflow-wrap:anywhere}
.store-anomaly-empty,.store-anomaly-period,.store-anomaly-footnote{font-size:13px;color:#7b8797;line-height:1.7}
.store-anomaly-empty{padding:8px 10px;background:#f8fafc;border-radius:8px}
.store-anomaly-period{margin:0 0 8px}
.store-anomaly-footnote{margin:12px 0 0;padding:10px;background:#f8fafc;border-radius:8px}
@media(max-width:640px){.store-anomaly-summary{grid-template-columns:1fr}.store-anomaly-summary>span{display:flex;justify-content:space-between;align-items:center;text-align:left}.store-anomaly-summary b{margin:0}.store-anomaly-item{display:block}.store-anomaly-item span{display:block;margin-top:4px;text-align:left}}

.anomaly-stat-card{cursor:pointer;transition:transform .16s,box-shadow .16s}
.anomaly-stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(30,50,80,.1)}
.anomaly-stat-card .stat-top i{color:#dc6b36}
.store-anomaly-overview-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #edf0f4}
.store-anomaly-overview-row>div{min-width:0}
.store-anomaly-overview-row b{display:block;color:#263b56}
.store-anomaly-overview-row span{display:block;margin-top:4px;color:#7b8797;font-size:12px;line-height:1.5}
.store-anomaly-section .danger{margin-top:8px}
.store-anomaly-item .danger-link{margin-left:8px;white-space:nowrap}
@media(max-width:640px){.store-anomaly-overview-row{align-items:flex-start;flex-direction:column}.store-anomaly-overview-row button{width:100%}}

/* 总览五项统计卡片同排紧凑显示 */
.stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.stats .stat-card{min-width:0;padding:16px 18px}
.stats .stat-card strong{font-size:28px}
@media(max-width:1250px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 异常房号与周期布局：房号固定占位，周期使用剩余宽度，避免逐字竖排 */
.store-anomaly-item{display:flex;align-items:flex-start;justify-content:flex-start;gap:14px}
.store-anomaly-item>b{flex:0 0 105px;width:105px;min-width:105px;overflow-wrap:normal;word-break:keep-all;white-space:normal}
.store-anomaly-item>span{flex:1 1 auto;min-width:0;text-align:left!important;overflow-wrap:anywhere;word-break:normal;line-height:1.65}
.store-anomaly-overview-row{min-width:0}
@media(max-width:640px){.store-anomaly-item{display:flex}.store-anomaly-item>b{flex-basis:82px;width:82px;min-width:82px}.store-anomaly-item>span{flex:1;text-align:left!important}}

/* 六项经营指标紧凑同排，空间不足时才响应式换行 */
.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.stats .stat-card{min-width:0;padding:14px 15px}
.stats .stat-card strong{font-size:27px}
@media(max-width:1500px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:850px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.owner-login-chart{margin:0 0 18px}
.login-rank-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.login-rank-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #edf1f5;min-width:0}
.rank-no{width:25px;height:25px;display:grid;place-items:center;flex:0 0 25px;border-radius:50%;background:#f1f5f9;color:#64748b;font-size:12px}
.rank-info{flex:1;min-width:0}
.rank-info strong{display:block;color:#26364d;font-size:13px;overflow-wrap:anywhere}
.rank-info strong small{font-weight:400;color:#718096;margin-left:6px}
.rank-info>span{display:block;color:#94a3b8;font-size:11px;margin-top:2px}
.rank-bar{height:5px;background:#edf2f7;border-radius:9px;margin-top:5px;overflow:hidden}
.rank-bar i{display:block;height:100%;background:#6ca88e;border-radius:9px}
.rank-count{font-size:12px;color:#334155;white-space:nowrap}
.bill-edit-values{margin:16px 0;padding:16px;border:1px solid #e5ebf3;border-radius:10px}
.bill-edit-values h4{margin:0 0 12px;color:#34465e}
.bill-edit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bill-edit-grid label,.bill-change-reason{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#52647b;min-width:0}
.bill-edit-grid input,.bill-change-reason textarea{width:100%;min-width:0;box-sizing:border-box}
.bill-change-reason{margin-top:14px}
.bill-change-reason textarea{min-height:76px}
@media(max-width:700px){.login-rank-list,.bill-edit-grid{grid-template-columns:1fr}}

/* 管理页面工具栏：标题、筛选、搜索、操作统一对齐，避免按钮文字挤成多行 */
.data-panel>.panel-head{display:grid;grid-template-columns:minmax(145px,190px) minmax(0,1fr);align-items:center;gap:14px;padding:0 22px}
.data-panel>.panel-head>div:first-child{min-width:0}
.data-panel>.panel-head .actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;min-width:0}
.data-panel>.panel-head .actions>*{flex:0 0 auto;min-width:0;white-space:nowrap}
.data-panel>.panel-head .actions .search{flex:1 1 230px;width:auto;min-width:170px;height:44px;box-sizing:border-box}
.data-panel>.panel-head .actions button,.data-panel>.panel-head .actions .primary,.data-panel>.panel-head .actions .secondary{padding:10px 12px;font-size:12px;line-height:1.25}
.data-panel>.panel-head .actions select{height:44px;max-width:155px;padding:8px 10px;border:1px solid #dfe5ec;border-radius:8px;background:#fff;color:#526176;font-size:12px}
.data-panel>.panel-head .actions label.primary{display:inline-flex;align-items:center;justify-content:center}
.stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.stats .stat-card{min-width:0;padding:14px 15px}
.stats .stat-card strong{font-size:26px;margin:11px 0 5px}
.stats .stat-card small{font-size:10px;white-space:nowrap}
@media(max-width:1050px){.data-panel>.panel-head{grid-template-columns:1fr}.data-panel>.panel-head .actions{flex-wrap:wrap}.data-panel>.panel-head .actions .search{flex:1 1 220px}}
@media(max-width:900px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.data-panel>.panel-head .actions>*{flex:1 1 auto}.data-panel>.panel-head .actions .search{flex-basis:100%}}

/* 账单编辑弹窗紧凑排版：字段优先并排，减少无意义换行 */
.modal{width:min(980px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.modal .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;border:0;padding:0;margin:0;min-width:0}
.modal .form-grid label{min-width:0}
.modal .form-grid input,.modal .form-grid select,.modal .form-grid textarea{box-sizing:border-box;width:100%;min-width:0}
.bill-edit-values{margin-top:14px;padding:14px}
.bill-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;border:0;padding:0;margin:0;min-width:0}
.bill-edit-grid label{min-width:0}
.bill-edit-grid input{width:100%;min-width:0;box-sizing:border-box}
.role-permission-editor{margin:14px 0;padding:15px;border:1px solid #e5ebf3;border-radius:10px}
.role-permission-editor h4{margin:0 0 5px;color:#34465e}
.role-permission-editor p{margin:0 0 12px;color:#8995a5;font-size:12px}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px 14px}
.permission-option{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border:1px solid #edf0f4;border-radius:8px;font-size:12px;color:#526176}
.permission-option input{flex:0 0 auto}
.bulk-actions-menu{position:relative;display:inline-flex;align-items:center}
.bulk-actions-menu summary{list-style:none;cursor:pointer;border-radius:8px;background:#f0f3f7;padding:12px 15px;color:#53657c;font-weight:600;font-size:12px;white-space:nowrap}
.bulk-actions-menu summary::-webkit-details-marker{display:none}
.bulk-actions-menu summary:after{content:'⌄';margin-left:9px}
.bulk-actions-pop{position:absolute;top:calc(100% + 7px);right:0;z-index:12;display:flex;gap:7px;padding:9px;background:#fff;border:1px solid #e5eaf1;border-radius:10px;box-shadow:0 8px 25px #1b35501c;white-space:nowrap}
.bulk-actions-pop button{padding:9px 12px;font-size:12px}
fieldset:disabled{opacity:.85}
fieldset:disabled input,fieldset:disabled select,fieldset:disabled textarea{background:#f7f8fa;color:#778397}
@media(max-width:760px){.modal .form-grid,.bill-edit-grid{grid-template-columns:1fr 1fr}.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.modal .form-grid,.bill-edit-grid,.permission-grid{grid-template-columns:1fr}}

/* 角色权限：分组、分区、减少无序平铺 */
.role-permission-editor{padding:20px;background:#f8fafc;border:1px solid #e4eaf2;border-radius:14px}
.role-permission-editor>h4{font-size:18px;margin:0 0 6px}
.role-permission-editor>p{font-size:13px;margin:0 0 18px;color:#8491a3}
.permission-groups{display:flex;flex-direction:column;gap:16px}
.permission-group{background:#fff;border:1px solid #e5ebf2;border-radius:12px;padding:16px}
.permission-group>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid #edf1f5}
.permission-group>header b{font-size:15px;color:#263b55}
.permission-group>header small{font-size:12px;color:#8b97a8}
.permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.permission-option{display:flex;align-items:center;gap:10px;min-height:42px;padding:9px 12px;border:1px solid #e9eef4;border-radius:9px;background:#fff;font-size:13px;color:#52647c;cursor:pointer}
.permission-option:hover{border-color:#a9bfd8;background:#f8fbff}
.permission-option input{width:16px;height:16px;flex:0 0 auto}
.permission-option span{line-height:1.4}
@media(max-width:900px){.permission-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-group>header{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.permission-grid{grid-template-columns:1fr}}

/* Mobile-first admin usability and WeChat WebView input zoom prevention */
@media(max-width:700px){
 html,body,#app{width:100%;max-width:100%;overflow-x:hidden}
 input,select,textarea,button{font-size:16px}
 .login-card input,.login-card select,.login-card textarea{font-size:16px!important;line-height:1.4;min-height:48px}
 .login-card{width:calc(100% - 28px);max-width:440px;padding:24px 20px;box-sizing:border-box}
 .login-panel{padding:14px;box-sizing:border-box}
 .sidebar{width:min(84vw,310px);z-index:1001;padding-bottom:env(safe-area-inset-bottom)}
 .sidebar.open{transform:translateX(0)}
 .mobile-nav-close{display:inline-flex;margin-left:auto;border:0;background:#f2f5f8;border-radius:8px;width:36px;height:36px;align-items:center;justify-content:center;font-size:22px;color:#51647a}
 .nav-item{min-height:48px;padding:12px 14px;font-size:14px}
 .side-bottom{padding-bottom:calc(14px + env(safe-area-inset-bottom))}
 .mobile-menu{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;background:#eef3f8}
 .topbar{position:sticky;top:0;z-index:50;background:#fff}
 .top-right{gap:7px}.top-right .avatar{display:none}
 .content{min-width:0;width:100%;box-sizing:border-box;padding:14px 10px calc(28px + env(safe-area-inset-bottom))}
 .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 .stat-card{min-width:0;padding:12px;border-radius:12px}
 .stat-card strong{font-size:22px}
 .stat-card small{white-space:normal;line-height:1.35}
 .panel,.data-panel{min-width:0;max-width:100%;box-sizing:border-box}
 .data-panel .panel-head{display:block}
 .data-panel .actions{display:flex;flex-wrap:wrap;gap:8px}
 .data-panel .actions>*{max-width:100%;min-width:0}
 .data-panel .actions .search{flex:1 1 100%;width:100%;min-height:46px}
 .toolbar-filter{flex:1 1 130px;min-height:44px;max-width:100%!important}
 .desktop-bills-table{display:none!important}
 .mobile-record-list{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;padding:12px}
 .mobile-record-card{min-width:0;border:1px solid #e5ebf2;border-radius:12px;background:#fff;padding:13px;box-shadow:0 2px 8px #243b5308}
 .mobile-record-card>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:9px;border-bottom:1px solid #edf1f5}
 .mobile-record-card>header strong{font-size:15px;overflow-wrap:anywhere;color:#26364d}
 .mobile-record-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;padding:10px 0}
 .mobile-record-fields>div{display:flex;flex-direction:column;gap:3px;min-width:0}
 .mobile-record-fields span{font-size:11px;color:#8b98a9}
 .mobile-record-fields b{font-size:13px;color:#35465c;font-weight:600;overflow-wrap:anywhere;white-space:normal}
 .mobile-record-card footer{display:flex;flex-wrap:wrap;gap:8px;padding-top:8px;border-top:1px solid #edf1f5}
 .mobile-record-card footer button{min-height:38px;padding:7px 12px}
 .bill-pagination{flex-wrap:wrap;gap:8px;padding:10px}
 .bill-page-controls{flex-wrap:wrap}
 .modal{width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;margin:10px auto;overflow:auto}
 .modal .form-grid,.bill-edit-grid{grid-template-columns:1fr!important}
 .permission-grid{grid-template-columns:1fr!important}
 .mobile-record-list .empty{padding:24px 8px;text-align:center}
}
@media(min-width:701px){.mobile-record-list,.mobile-nav-close{display:none!important}}

.permission-groups{display:grid;gap:16px}
.permission-group{border:1px solid #e4eaf2;border-radius:12px;padding:16px;background:#fbfcfe}
.permission-group>header{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.permission-group>header b{font-size:15px;color:#253b56}
.permission-group>header small{font-size:11px;color:#8a97a8}
.permission-group .permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.permission-option{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid #e6ebf2;border-radius:9px;background:#fff;min-height:44px;box-sizing:border-box}
.permission-option span{font-size:13px;line-height:1.35}
@media(max-width:700px){.permission-group{padding:12px}.permission-group .permission-grid{grid-template-columns:1fr}.permission-option{min-height:48px}}

@media(max-width:700px){
 /* 非账单模块使用通用手机记录卡片；账单模块另用 mobile-bill-cards。不要全局隐藏 mobile-record-list。 */
 .mobile-bill-cards{display:flex!important}
 .mobile-bill-card{padding:14px;border-radius:15px}
 .mobile-bill-card-head small{flex-basis:100%;overflow-wrap:anywhere;color:#8a97a8}
 .mobile-bill-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
 .mobile-bill-line span{flex:0 0 44%;min-width:0;overflow-wrap:anywhere}
 .mobile-bill-line strong{flex:1;min-width:0;text-align:right;overflow-wrap:anywhere}
 .mobile-bill-actions button{min-height:42px}
}

/* 账单明细：优先并排显示可一行容纳的科目，备注等长文本再单独换行 */
.bill-detail-filter-note{margin:10px 0 4px;padding:9px 12px;border-radius:8px;background:#f3f6fa;color:#718096;font-size:12px;line-height:1.45}
.bill-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.bill-detail-grid>div{align-items:center;min-width:0}
.bill-detail-grid span{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bill-detail-grid b{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.bill-detail-grid>div.bill-detail-remark{grid-column:1/-1;display:block}
.bill-detail-grid>div.bill-detail-remark>span,.bill-detail-grid>div.bill-detail-remark>b{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.bill-detail-grid>div.final-amount-detail{grid-column:1/-1}
button,.button,.nav-item,.permission-option{white-space:nowrap}
@media(max-width:640px){
 .bill-detail-modal{width:calc(100vw - 20px)!important;padding:16px!important}
 .bill-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px;margin:12px 0}
 .bill-detail-grid>div{padding:10px 9px;gap:6px;justify-content:space-between}
 .bill-detail-grid span{font-size:12px}
 .bill-detail-grid b{font-size:13px}
 .bill-detail-grid>div.bill-detail-remark{grid-column:1/-1}
 .bill-detail-grid>div.final-amount-detail{grid-column:1/-1}
 .bill-detail-modal .modal-head h3{white-space:nowrap}
 .mobile-bill-actions button,.mobile-record-card footer button{white-space:nowrap;flex:0 0 auto}
}
@media(max-width:360px){
 .bill-detail-grid{grid-template-columns:1fr!important}
 .bill-detail-grid>div.bill-detail-remark,.bill-detail-grid>div.final-amount-detail{grid-column:1}
}

/* 账单列表提示：说明列表只显示正数，详情保留完整科目 */
.bill-list-display-hint{display:inline-block;margin-left:8px;color:#8996a8;font-size:11px;line-height:1.45;white-space:normal;vertical-align:middle;max-width:420px}
.row-actions .bill-list-display-hint{flex-basis:100%;margin:3px 0 0;text-align:left}
.mobile-bill-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.mobile-bill-actions .bill-list-display-hint{flex:1 1 100%;margin:0}
.bill-detail-hint{margin:12px 0;padding:11px 13px;border-radius:9px;background:#f5f7fa;color:#718096;font-size:12px;line-height:1.65}
@media(max-width:700px){
 .mobile-bill-actions .bill-list-display-hint{font-size:11px;line-height:1.5}
 .row-actions .bill-list-display-hint{max-width:100%}
}

/* 账单详情：完整显示科目标题，不使用省略号 */
.bill-detail-grid>div{align-items:flex-start}
.bill-detail-grid span{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.bill-detail-grid b{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:break-word;min-width:0}
.detail-final-inline{display:inline-block;color:#d92d2d;font-size:.78em;font-weight:800;white-space:normal}
.mobile-detail-toggle{display:none}
@media(max-width:700px){
 .mobile-detail-toggle{display:flex;justify-content:flex-start;margin:10px 0}
 .mobile-detail-toggle button{min-height:42px;padding:8px 14px}
 .bill-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px}
 .bill-detail-grid>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:7px;padding:11px 10px;min-width:0}
 .bill-detail-grid span{font-size:12px;line-height:1.4}
 .bill-detail-grid b{font-size:14px;text-align:left!important;line-height:1.4}
 .bill-detail-grid.detail-collapsed{display:none!important}
 .bill-detail-grid>div.bill-detail-remark,.bill-detail-grid>div.final-amount-detail{grid-column:1/-1}
 .bill-detail-modal .modal-head h3{display:flex;flex-direction:column;align-items:flex-start;gap:5px;white-space:normal}
 .detail-final-inline{font-size:15px}
 /* 微信/iOS 输入框聚焦不触发系统自动放大：所有输入控件至少 16px */
 input,select,textarea,[contenteditable="true"]{font-size:16px!important}
}

/* 手机端账单列表：默认折叠科目，突出最终金额 */
.mobile-bill-expand-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px 10px;color:#8492a6;font-size:12px}
.mobile-bill-expand-tools button{flex:0 0 auto;min-height:38px;padding:7px 14px;white-space:nowrap}
.mobile-bill-card-head{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px}
.mobile-bill-card-head>strong,.mobile-bill-card-head>span{white-space:nowrap}
.mobile-card-final{flex:1 0 100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;margin-top:3px;border-top:1px solid #e8edf3;color:#d92d2d;font-size:19px;font-weight:800;white-space:nowrap}
.mobile-bill-card-body{margin-top:10px;padding-top:6px;border-top:1px dashed #e1e7ef}
.mobile-bill-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.mobile-bill-actions button{white-space:nowrap}
@media(max-width:700px){
 .mobile-bill-card{padding:16px!important}
 .mobile-bill-card-head{align-items:baseline}
 .mobile-card-final{font-size:20px}
 .mobile-bill-expand-tools span{max-width:62%;line-height:1.45}
 .mobile-bill-actions .bill-list-display-hint{flex-basis:100%}
 input:not([type=checkbox]):not([type=radio]),select,textarea,[contenteditable=true]{font-size:16px!important}
}

/* 最终移动端账单视觉：身份信息横排、金额横排、操作轻量化 */
@media(max-width:700px){
 .mobile-bill-expand-tools{min-height:38px;padding:0 2px 9px;align-items:center}
 .mobile-bill-expand-tools span{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:68%}
 .mobile-bill-card{padding:13px 14px!important;border-radius:14px!important;gap:10px!important}
 .mobile-bill-card-head{display:flex;align-items:center;gap:8px;padding:0 0 9px!important;border-bottom:1px solid #edf0f4!important}
 .mobile-bill-identity{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:nowrap;white-space:nowrap}
 .mobile-bill-identity strong{font-size:15px!important;flex:0 0 auto}
 .mobile-bill-identity span{font-size:14px!important;font-weight:650;flex:0 0 auto}
 .mobile-bill-identity small{width:auto!important;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:#f1f3f6;border-radius:20px;padding:3px 8px;font-size:12px!important}
 .mobile-card-final{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:0 0 auto;width:100%;padding:0!important;margin:0!important;border:0!important;white-space:nowrap;font-size:14px!important}
 .mobile-card-final span{color:#697789;font-size:14px;font-weight:600}
 .mobile-card-final strong{color:#d92d2d;font-size:21px;font-weight:800;white-space:nowrap}
 .mobile-bill-actions{display:flex;align-items:center;gap:8px;padding-top:9px!important;border-top:1px dashed #e5eaf0!important;flex-wrap:nowrap!important}
 .mobile-bill-actions button{min-height:36px!important;padding:6px 12px!important;font-size:13px!important;border-radius:9px!important}
 .mobile-bill-actions .bill-detail-link{background:transparent!important;border:0!important;color:#2865a6!important;padding-left:8px!important}
 .mobile-bill-card-body{margin-top:0;padding-top:8px}
 .mobile-bill-line{padding:8px 0;border-bottom:1px solid #f0f2f5}
 .mobile-bill-line span{flex:1 1 auto!important;font-size:13px}
 .mobile-bill-line strong{flex:0 0 auto!important;font-size:13px}
}
@media(max-width:380px){.mobile-bill-identity{gap:5px}.mobile-bill-identity strong{font-size:14px!important}.mobile-bill-identity span{font-size:13px!important}.mobile-bill-identity small{font-size:11px!important}.mobile-card-final strong{font-size:19px!important}}

/* Mobile navigation: fixed header, configurable three-entry bottom bar, independent sidebar scroll */
.mobile-bottom-nav,.mobile-scroll-rail{display:none}
@media(max-width:700px){
 .main{min-width:0;padding-top:calc(75px + env(safe-area-inset-top))}
 .topbar{position:fixed;top:0;left:0;right:0;width:100%;height:calc(75px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;z-index:1000;background:rgba(255,255,255,.98);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 1px 8px rgba(20,35,55,.08)}
 .topbar>div:first-of-type{min-width:0;flex:1}.topbar h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-right{flex:0 0 auto}
 .content{padding-bottom:calc(94px + env(safe-area-inset-bottom))}
 .mobile-bottom-nav{display:flex;position:fixed;left:8px;right:8px;bottom:calc(7px + env(safe-area-inset-bottom));z-index:950;min-height:62px;align-items:stretch;justify-content:space-around;gap:4px;padding:5px 6px calc(5px + env(safe-area-inset-bottom));border:1px solid #dce5ef;border-radius:16px;background:rgba(255,255,255,.97);box-shadow:0 4px 20px rgba(24,44,70,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
 .mobile-bottom-nav button{position:relative;display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:0;border-radius:10px;background:transparent;color:#718096;padding:4px 2px}
 .mobile-bottom-nav button span{font-size:19px;line-height:1.1;color:#8a9bb0}.mobile-bottom-nav button b{max-width:100%;font-size:11px;line-height:1.25;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-bottom-nav button.selected{background:#eef3f8;color:#24486e}.mobile-bottom-nav button.selected span{color:#24486e}.mobile-bottom-nav button i{position:absolute;top:0;right:calc(50% - 23px);min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#bd6b62;color:#fff;font-size:10px;font-style:normal;line-height:16px}
 .mobile-scroll-rail{display:flex;position:fixed;right:8px;bottom:calc(83px + env(safe-area-inset-bottom));z-index:900;flex-direction:column;gap:5px;padding:3px;border:1px solid rgba(210,220,232,.85);border-radius:20px;background:rgba(255,255,255,.88);box-shadow:0 2px 10px rgba(24,44,70,.10);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
 .mobile-scroll-rail button{width:29px;height:29px;border:0;border-radius:50%;background:#eef3f8;color:#3d5877;font-size:19px;font-weight:700;line-height:1}
 .mobile-scroll-rail button:active,.mobile-bottom-nav button:active{transform:scale(.96)}
 .sidebar{height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;z-index:1100;padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom)}
 .sidebar-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:12px}
 .side-brand{flex:0 0 auto;padding-bottom:18px}.side-bottom{flex:0 0 auto;margin-top:0;padding-top:8px;padding-bottom:calc(10px + env(safe-area-inset-bottom));background:var(--nav)}
 .mobile-nav-close{display:inline-flex}
}
/* 备注属于账单核心信息：折叠科目时也完整展示 */
.mobile-bill-remark-always{margin-top:12px;padding:11px 12px;border-radius:10px;background:#f5f7fa;min-width:0}
.mobile-bill-remark-always b{display:block;margin-bottom:6px;color:#718096;font-size:13px}
.mobile-bill-remark-always p{margin:0;color:#27384f;font-size:14px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}

.mobile-nav-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.mobile-nav-config>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mobile-nav-config>div>b{grid-column:1/-1;font-size:12px;color:#334b68;margin-bottom:3px}.nav-setting-option{display:flex!important;align-items:center;gap:7px;margin:0!important;padding:9px 10px;border:1px solid #e5eaf0;border-radius:8px;background:#fff;font-weight:500!important}.nav-setting-option input{width:16px;height:16px;margin:0!important}.mobile-nav-settings>p{font-size:11px;color:#8290a2;line-height:1.6;margin:0 0 12px}@media(max-width:700px){.mobile-nav-config{grid-template-columns:1fr}.mobile-nav-config>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Account center: dedicated profile and password pages, independent from generic record search/forms. */
.account-panel{padding:clamp(18px,3vw,30px)}
.account-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:18px;border-top:1px solid var(--line,#e8edf3)}
.account-profile-field{display:flex;flex-direction:column;gap:8px;padding:18px 2px;border-bottom:1px solid var(--line,#e8edf3);min-width:0}
.account-profile-field>span,.account-password-form label{font-size:13px;color:var(--muted,#687386)}
.account-profile-field>b{font-size:15px;color:var(--ink,#172033);font-weight:600;overflow-wrap:anywhere}
.account-profile-field input,.account-password-form input{width:100%;min-height:42px;border:1px solid var(--line,#dce3ec);border-radius:9px;padding:9px 12px;background:var(--surface,#fff);color:var(--ink,#172033);font:inherit;box-sizing:border-box}
.account-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}
.account-password-form{max-width:520px;display:grid;gap:18px;margin-top:22px}
.account-password-form label{display:grid;gap:8px}
.account-form-hint{margin:0;color:var(--muted,#687386);font-size:13px;line-height:1.7}
@media(max-width:700px){.account-profile-grid{grid-template-columns:1fr}.account-profile-field{padding:14px 2px}.account-password-form{max-width:none}.account-form-actions button{min-height:42px}}


/* 2026-11-01: bill detail compact UI and modal interaction layering */
.modal-mask{z-index:2200!important;isolation:isolate}
.modal-mask>.modal{position:relative;z-index:2201;pointer-events:auto}
.bill-detail-modal{width:min(760px,calc(100vw - 24px))!important;max-width:760px!important;max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;padding:16px 18px!important;gap:10px}
.bill-detail-modal .modal-head{position:sticky;top:-16px;z-index:5;background:#fff;padding:8px 0 10px;margin:0;border-bottom:1px solid var(--line);align-items:center}
.bill-detail-modal .modal-head>div{min-width:0;flex:1}
.bill-detail-modal .modal-head h3{font-size:17px;line-height:1.35;margin:2px 0 3px}
.bill-detail-modal .modal-head p{margin:0;font-size:12px;line-height:1.4}
.bill-detail-modal .modal-head .icon-btn{flex:0 0 38px;width:38px;height:38px;min-width:38px;position:relative;z-index:8;pointer-events:auto;touch-action:manipulation}
.bill-detail-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important;margin:8px 0!important}
.bill-detail-grid>div{display:grid!important;grid-template-columns:minmax(62px,38%) minmax(0,1fr);align-items:start!important;gap:7px!important;padding:8px 9px!important;min-height:0;border-radius:8px}
.bill-detail-grid>div>span{font-size:12px!important;line-height:1.45!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;color:#74839a}
.bill-detail-grid>div>b{font-size:13px!important;line-height:1.45!important;text-align:right!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere!important;word-break:break-word!important}
.bill-detail-grid>div.bill-detail-remark{grid-column:1/-1;display:block!important;padding:9px 10px!important}
.bill-detail-grid>div.bill-detail-remark>span{display:block;margin-bottom:4px;font-weight:700}
.bill-detail-grid>div.bill-detail-remark>b{display:block;text-align:left!important}
.bill-detail-grid>div.final-amount-detail{grid-column:1/-1;display:flex!important;align-items:center!important;justify-content:space-between!important;padding:11px 12px!important;background:#f7f9fc}
.bill-detail-grid>div.final-amount-detail>span{flex:1}
.bill-detail-grid>div.final-amount-detail>b{flex:0 0 auto;text-align:right!important;font-size:17px!important}
.bill-detail-modal .bill-detail-hint{font-size:11px;line-height:1.5;margin:5px 0;padding:8px 10px}
.bill-detail-modal .modal-actions{position:sticky;bottom:-16px;background:#fff;padding:9px 0 2px;margin-top:3px;z-index:5;border-top:1px solid var(--line)}
.mobile-bill-card-body{scroll-margin-bottom:18px}
.mobile-bill-line:last-child{scroll-margin-bottom:18px}
@media(max-width:700px){
 .modal-mask{padding:8px!important;place-items:center}
 .bill-detail-modal{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:12px!important;border-radius:14px}
 .bill-detail-modal .modal-head{top:-12px;padding-top:4px}
 .bill-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
 .bill-detail-grid>div{grid-template-columns:minmax(0,1fr)!important;gap:3px!important;padding:7px 8px!important}
 .bill-detail-grid>div>b{text-align:left!important}
 .bill-detail-grid>div.final-amount-detail{display:flex!important;flex-direction:row!important;align-items:center!important}
 .bill-detail-grid>div.final-amount-detail>b{text-align:right!important}
 .bill-detail-modal .modal-actions{bottom:-12px}
}

/* 2026-11-01: keep the branded login hero visible on mobile */
@media(max-width:700px){
 .login-shell{display:flex;flex-direction:column;min-height:100svh;background:#f5f7fa;gap:0}
 .login-art{display:flex;min-height:245px;padding:24px 24px 20px;justify-content:flex-start;gap:20px;border-radius:0 0 24px 24px}
 .login-art:after{width:300px;height:300px;right:-130px;bottom:-190px}
 .brand{font-size:14px}.brand-mark{width:32px;height:32px}
 .art-copy{margin:8px 0 0;max-width:520px}.art-copy .eyebrow{margin-bottom:8px;font-size:9px}
 .art-copy h1{font-size:clamp(25px,7vw,34px);line-height:1.25;margin:0 0 9px}
 .art-copy p:last-child{font-size:11px;line-height:1.6;margin:0;letter-spacing:.3px}
 .art-foot{font-size:9px;margin-top:auto;padding-top:8px}
 .login-panel{display:block;min-height:0;padding:28px 22px 36px;background:#f5f7fa}
 .login-card{width:min(430px,100%);margin:0 auto;padding:22px 20px;background:#fff;border:1px solid #e8edf3;border-radius:16px;box-shadow:0 8px 26px rgba(23,36,58,.06)}
 .login-card h2{font-size:23px}.sub{margin-bottom:20px}.login-card label{margin-top:15px}
}

/* 2026-11 bill list, editor and empty-state refinement */
.owner-bill-display-hint{display:inline-flex;align-items:center;white-space:nowrap;max-width:none;margin:0 2px;color:#70839b;font-size:11px;cursor:help}
.desktop-bills-table .row-actions{align-items:center;flex-wrap:nowrap;white-space:nowrap;min-width:170px}
.desktop-bills-table .row-actions button{white-space:nowrap;flex:0 0 auto}
.desktop-bills-table .row-actions .bill-list-display-hint{flex:0 0 auto;margin:0 5px}
.bills-empty-state{max-width:760px;margin:34px auto 42px;padding:38px 28px;border:1px solid #e5ebf2;border-radius:16px;background:linear-gradient(145deg,#f8fbff 0%,#fff 72%);box-shadow:0 8px 28px rgba(38,61,91,.055)}
.bills-empty-state .notice-icon{width:58px;height:58px;margin:0 auto 16px;display:grid;place-items:center;border-radius:17px;background:#eaf1fa;color:#496789;font-size:28px}
.bills-empty-state h3{font-size:19px;letter-spacing:.2px}
.bills-empty-state p{max-width:520px;margin:0 auto;color:#78879a;line-height:1.8}
.empty-upload-action{display:inline-flex;align-items:center;justify-content:center;margin-top:22px;padding:11px 22px;border-radius:8px;cursor:pointer}
.bill-edit-values{background:#f8fafc;border-color:#e4eaf1;min-width:0}
.bill-edit-values h4{font-size:15px;padding-bottom:11px;border-bottom:1px solid #e8edf3}
.bill-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 16px;max-height:46vh;overflow:auto;padding:3px 3px 8px}
.bill-edit-grid label{display:block;min-width:0;line-height:1.5;overflow-wrap:anywhere}
.bill-edit-grid input{height:40px;padding:8px 10px;border:1px solid #dce4ed;border-radius:7px;background:#fff;font-size:13px}
.bill-change-reason{margin-top:16px;padding-top:14px;border-top:1px solid #e5ebf2}
.bill-change-reason textarea{min-height:84px;padding:10px;border:1px solid #dce4ed;border-radius:8px;resize:vertical}
.modal:has(.bill-edit-values){width:min(980px,100%);display:flex;flex-direction:column}
.modal:has(.bill-edit-values) .modal-actions{position:sticky;bottom:-24px;background:#fff;margin:14px -24px -24px;padding:16px 24px;border-radius:0 0 13px 13px;z-index:2}
@media(max-width:760px){.desktop-bills-table .row-actions{min-width:0}.owner-bill-display-hint{font-size:10px}.bills-empty-state{margin:18px 0;padding:28px 18px}.bill-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-height:42vh}.modal:has(.bill-edit-values) .modal-actions{bottom:-24px}}
@media(max-width:520px){.bill-edit-grid{grid-template-columns:1fr}.modal:has(.bill-edit-values){max-height:94vh;padding:16px}.modal:has(.bill-edit-values) .modal-actions{margin:12px -16px -16px;padding:13px 16px;bottom:-16px}}

/* 2026-11-01: mobile login proportion refinement */
@media (max-width:700px) {
 .login-shell{min-height:100svh;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom)}
 .login-art{flex:0 0 auto;min-height:0;padding:20px 22px 16px;gap:12px;border-radius:0 0 22px 22px}
 .login-art:after{width:270px;height:270px;right:-125px;bottom:-175px}
 .brand{gap:10px;font-size:13px;letter-spacing:1.4px}.brand-mark{width:30px;height:30px;border-radius:9px;font-size:18px}
 .art-copy{margin:2px 0 0}.art-copy .eyebrow{margin:0 0 7px;font-size:9px;letter-spacing:1.5px}
 .art-copy h1{max-width:100%;font-size:clamp(23px,6.2vw,29px);line-height:1.2;letter-spacing:0;margin:0 0 7px;overflow-wrap:anywhere}
 .art-copy p:last-child{font-size:11px;line-height:1.5;letter-spacing:0}
 .art-foot{margin-top:2px;padding-top:4px;font-size:9px;letter-spacing:1px}
 .login-panel{padding:18px 18px 24px}.login-card{width:min(430px,100%);padding:20px 19px 18px;border-radius:16px}
 .login-card h2{font-size:22px;line-height:1.3;margin-bottom:5px}.login-card .sub{font-size:13px;line-height:1.5;margin-bottom:14px}
 .login-card label{font-size:12px;margin:12px 0 6px}.login-card input{min-height:52px;padding:11px 13px;border-radius:9px;font-size:16px!important}
 .login-card .wide{min-height:52px;margin-top:18px;padding:12px 16px}.login-card .login-note{font-size:11px;line-height:1.5;margin:12px 0 0}
}
@media (max-width:700px) and (max-height:740px){
 .login-art{padding-top:14px;padding-bottom:12px;gap:8px}.art-copy h1{font-size:clamp(21px,5.8vw,26px)}
 .login-panel{padding-top:12px;padding-bottom:18px}.login-card{padding-top:16px;padding-bottom:15px}
 .login-card .sub{margin-bottom:10px}.login-card label{margin-top:9px}.login-card input{min-height:48px}.login-card .wide{min-height:48px;margin-top:14px}
}

/* Logout protection: require an explicit second confirmation. */
.logout{padding:12px 13px;border-radius:9px;min-height:44px;transition:background .15s,border-color .15s,color .15s}
.logout:hover{background:#ffffff10;border-color:#ffffff40;color:#fff}
.icon-btn[title="退出登录"]{width:38px;height:38px;border-radius:9px;color:#7d8999;font-size:17px}
.logout-confirm-mask{z-index:80}
.logout-confirm-modal{width:min(420px,100%);padding:22px}
.logout-confirm-text{color:#68778b;line-height:1.7;margin:18px 0 22px}
.logout-confirm-action{background:#a94e4e}
.logout-confirm-action:hover{background:#913d3d}


/* Logout confirmation + prevent accidental double-tap zoom on touch controls */
.logout-confirm-modal { max-width:420px; }
.logout-confirm-copy { color:var(--muted,#64748b); line-height:1.7; margin:8px 0 22px; }
.logout-confirm-action { background:#b54747!important; border-color:#b54747!important; }
button, a, input, select, textarea, [role="button"] { touch-action:manipulation; }
html, body { -webkit-text-size-adjust:100%; }


/* Mobile fixed navigation geometry and compact identity header */
.mobile-greeting { display:none; }
@media(max-width:700px) {
  .topbar { box-sizing:border-box; height:calc(68px + env(safe-area-inset-top)); padding:env(safe-area-inset-top) 12px 0; gap:10px; }
  .desktop-page-heading { display:none!important; }
  .mobile-greeting { display:flex; flex:1; min-width:0; flex-direction:column; justify-content:center; gap:4px; }
  .mobile-greeting b { color:#1d2b40; font-size:16px; line-height:1.25; font-weight:750; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .mobile-greeting small { color:#8995a5; font-size:11px; line-height:1.2; }
  .main { padding-top:calc(68px + env(safe-area-inset-top)); }
  .mobile-bottom-nav {
    box-sizing:border-box; height:calc(68px + env(safe-area-inset-bottom)); min-height:0;
    left:8px; right:8px; bottom:0; padding:5px 6px env(safe-area-inset-bottom);
    align-items:center; border-radius:16px 16px 0 0;
  }
  .mobile-bottom-nav button { min-height:54px; height:54px; }
  .content { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
  .mobile-scroll-rail { bottom:calc(78px + env(safe-area-inset-bottom)); }
}

@media(max-width:700px){
  .top-right .date,.top-right .avatar,.top-right .account{display:none!important}
  .top-right{margin-left:auto;gap:0}
  .mobile-menu{width:42px;height:42px;flex:0 0 42px;border-radius:11px}
}


/* Corrective override: compact, deterministic mobile bottom navigation */
@media (max-width:700px) {
  nav.mobile-bottom-nav {
    display:flex !important;
    position:fixed !important;
    box-sizing:border-box !important;
    left:8px !important;
    right:8px !important;
    bottom:0 !important;
    width:auto !important;
    height:calc(64px + env(safe-area-inset-bottom)) !important;
    min-height:calc(64px + env(safe-area-inset-bottom)) !important;
    max-height:calc(64px + env(safe-area-inset-bottom)) !important;
    margin:0 !important;
    padding:4px 6px env(safe-area-inset-bottom) !important;
    align-items:center !important;
    justify-content:space-around !important;
    gap:4px !important;
    overflow:hidden !important;
    border-radius:16px 16px 0 0 !important;
    z-index:1200 !important;
    transform:none !important;
  }
  nav.mobile-bottom-nav > button {
    display:flex !important;
    flex:1 1 0 !important;
    width:0 !important;
    min-width:0 !important;
    height:54px !important;
    min-height:54px !important;
    max-height:54px !important;
    margin:0 !important;
    padding:4px 2px !important;
    align-items:center !important;
    justify-content:center !important;
    box-sizing:border-box !important;
  }
  .content { padding-bottom:calc(78px + env(safe-area-inset-bottom)) !important; }
  .mobile-scroll-rail { bottom:calc(76px + env(safe-area-inset-bottom)) !important; z-index:1100 !important; }
}


/* Final mobile navigation reset: remove accumulated legacy nav sizing rules */
@media screen and (max-width:700px) {
  body { padding-bottom:0 !important; }
  nav.mobile-bottom-nav {
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    position:fixed !important;
    inset:auto 10px 0 10px !important;
    width:auto !important;
    height:calc(62px + env(safe-area-inset-bottom, 0px)) !important;
    min-height:0 !important;
    max-height:none !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:4px 5px env(safe-area-inset-bottom, 0px) !important;
    gap:4px !important;
    align-items:center !important;
    justify-items:stretch !important;
    overflow:visible !important;
    border:1px solid #dce5ef !important;
    border-bottom:0 !important;
    border-radius:16px 16px 0 0 !important;
    background:rgba(255,255,255,.98) !important;
    box-shadow:0 -3px 18px rgba(24,44,70,.12) !important;
    transform:none !important;
    z-index:3000 !important;
  }
  nav.mobile-bottom-nav > button {
    display:flex !important;
    position:relative !important;
    width:100% !important;
    min-width:0 !important;
    height:50px !important;
    min-height:50px !important;
    max-height:50px !important;
    margin:0 !important;
    padding:3px 1px !important;
    flex:none !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:3px !important;
    box-sizing:border-box !important;
    border:0 !important;
    border-radius:10px !important;
    line-height:1 !important;
  }
  nav.mobile-bottom-nav > button > span { display:block !important; font-size:18px !important; line-height:20px !important; }
  nav.mobile-bottom-nav > button > b { display:block !important; max-width:100% !important; font-size:11px !important; line-height:14px !important; }
  .content { padding-bottom:calc(78px + env(safe-area-inset-bottom, 0px)) !important; }
  .mobile-scroll-rail { bottom:calc(72px + env(safe-area-inset-bottom, 0px)) !important; }
}


/* Deep correction: body is the viewport host; do not let mobile legacy rules flex it */
@media screen and (max-width:700px) {
  html, body { display:block !important; width:100%; min-height:100%; margin:0 !important; }
  #app { display:block !important; width:100%; min-height:100dvh; overflow:visible !important; }
  body > nav.mobile-bottom-nav {
    position:fixed !important;
    left:0 !important; right:0 !important; bottom:0 !important;
    width:100% !important;
    height:calc(60px + env(safe-area-inset-bottom, 0px)) !important;
    min-height:0 !important; max-height:none !important;
    margin:0 !important; padding:4px 8px env(safe-area-inset-bottom, 0px) !important;
    display:grid !important; grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    box-sizing:border-box !important; border-radius:14px 14px 0 0 !important;
    z-index:9999 !important; transform:none !important;
    background:rgba(255,255,255,.99) !important;
  }
  body > nav.mobile-bottom-nav > button {height:50px!important;min-height:50px!important;max-height:50px!important;width:100%!important;min-width:0!important;margin:0!important;box-sizing:border-box!important}
  body > .mobile-scroll-rail {position:fixed!important;bottom:calc(68px + env(safe-area-inset-bottom, 0px))!important;z-index:9998!important}
  .content {padding-bottom:calc(74px + env(safe-area-inset-bottom, 0px))!important}
}


/* Final isolated mobile dock: teleported direct child of body */
@media (max-width:700px) {
  body { display:block !important; position:relative !important; }
  body > nav.mobile-bottom-nav {
    all:initial !important;
    position:fixed !important;
    inset:auto 0 0 0 !important;
    z-index:2147483000 !important;
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    width:100% !important;
    height:calc(58px + env(safe-area-inset-bottom,0px)) !important;
    min-height:0 !important;
    max-height:none !important;
    box-sizing:border-box !important;
    margin:0 !important;
    padding:4px 8px env(safe-area-inset-bottom,0px) !important;
    gap:6px !important;
    align-items:center !important;
    justify-items:stretch !important;
    overflow:hidden !important;
    background:#fff !important;
    border:1px solid #e2e8f0 !important;
    border-bottom:0 !important;
    border-radius:15px 15px 0 0 !important;
    box-shadow:0 -4px 18px rgba(20,40,65,.12) !important;
    transform:none !important;
    font:inherit !important;
  }
  body > nav.mobile-bottom-nav > button {
    all:unset !important;
    display:flex !important;
    width:100% !important;
    height:46px !important;
    min-height:46px !important;
    max-height:46px !important;
    box-sizing:border-box !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:center !important;
    gap:2px !important;
    border-radius:9px !important;
    color:#718096 !important;
    cursor:pointer !important;
    -webkit-tap-highlight-color:transparent;
  }
  body > nav.mobile-bottom-nav > button.selected { background:#edf3f8 !important; color:#24486e !important; }
  body > nav.mobile-bottom-nav > button > span { display:block!important;font-size:17px!important;line-height:19px!important;color:inherit!important; }
  body > nav.mobile-bottom-nav > button > b { display:block!important;max-width:100%!important;font-size:11px!important;line-height:13px!important;font-weight:600!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;color:inherit!important; }
  body > nav.mobile-bottom-nav > button > i { position:absolute!important;top:2px!important;right:calc(50% - 22px)!important; }
  body > .mobile-scroll-rail { position:fixed!important;z-index:2147482999!important;bottom:calc(66px + env(safe-area-inset-bottom,0px))!important; }
  .content { padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))!important; }
}

.state-load-notice,.state-load-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding:14px 16px;border-radius:12px;background:#eef4fa;color:#36516f;font-size:14px}
.state-load-error{background:#fff5f3;color:#9b3c32;border:1px solid #f2d4cf}
.state-load-error button{flex:none;border:0;border-radius:8px;padding:8px 12px;background:#24486e;color:#fff;cursor:pointer}
@media(max-width:700px){.state-load-notice,.state-load-error{align-items:flex-start;flex-direction:column}.state-load-error button{width:100%}}

.state-prefetch-hint{margin:0 0 12px;padding:9px 13px;border-radius:9px;background:#f2f6fa;color:#60748a;font-size:12px}
.nav-item:disabled,.mobile-bottom-nav button:disabled,.module-tile:disabled{opacity:.55;cursor:wait;pointer-events:none}
.mobile-sort-trigger{border:0;background:transparent;color:var(--primary,#31577a);padding:2px 6px;font-size:14px;min-width:24px}

/* 手机端业主管理/自住申请/操作日志卡片专属修复 */
@media(max-width:700px){
  .mobile-record-list{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:12px!important;padding:12px 12px 30px!important;min-width:0!important;}
  .mobile-record-card{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;padding:14px!important;border:1px solid #e2e9f1!important;border-radius:15px!important;background:#fff!important;box-shadow:0 3px 12px rgba(35,58,84,.06)!important;overflow:hidden!important;}
  .mobile-record-card>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:0 0 12px!important;margin:0 0 10px!important;border-bottom:1px solid #e8edf3!important;}
  .mobile-record-card>header strong{min-width:0!important;flex:1!important;font-size:16px!important;line-height:1.45!important;font-weight:750!important;color:#26384f!important;overflow-wrap:anywhere!important;}
  .mobile-record-card>header .status-pill{flex:none!important;padding:6px 12px!important;font-size:12px!important;}
  .mobile-record-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;padding:0 0 12px!important;}
  .mobile-record-fields>div{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:5px!important;min-width:0!important;padding:9px 10px!important;border-radius:9px!important;background:#f7f9fc!important;}
  .mobile-record-fields>div>span{display:flex!important;align-items:center!important;gap:4px!important;min-width:0!important;color:#8190a3!important;font-size:12px!important;line-height:1.4!important;white-space:normal!important;}
  .mobile-record-fields>div>b{display:block!important;width:100%!important;color:#35465c!important;font-size:14px!important;font-weight:650!important;line-height:1.5!important;overflow-wrap:anywhere!important;white-space:normal!important;}
  .mobile-record-card .mobile-sort-trigger{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:25px!important;height:23px!important;min-width:25px!important;padding:0!important;border:1px solid #dce5ef!important;border-radius:6px!important;background:#fff!important;color:#31577a!important;font-size:13px!important;line-height:1!important;}
  .mobile-record-card footer{display:flex!important;flex-wrap:wrap!important;gap:9px!important;padding:12px 0 0!important;border-top:1px solid #e8edf3!important;}
  .mobile-record-card footer button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:40px!important;padding:8px 17px!important;border:1px solid #dce5ef!important;border-radius:9px!important;background:#f3f6fa!important;color:#38536f!important;font-size:14px!important;font-weight:650!important;line-height:1.2!important;box-shadow:none!important;}
  .mobile-record-card footer button.danger-link{border-color:#f0dada!important;background:#fff6f5!important;color:#b65353!important;}
  .mobile-record-card footer button:active,.mobile-record-card .mobile-sort-trigger:active{transform:scale(.98);}
  .mobile-scroll-rail{right:6px!important;opacity:.78!important;}
  .mobile-record-list{padding-right:12px!important;padding-bottom:38px!important;}
}


/* Mobile sorting is a single compact toolbar, never repeated inside each record card */
.mobile-list-sortbar{display:none}
@media(max-width:700px){
  .mobile-list-sortbar{display:flex;align-items:center;gap:8px;width:100%;min-width:0;margin:0;padding:10px 12px;border-bottom:1px solid var(--line);background:#fff;box-sizing:border-box}
  .mobile-list-sort-label{flex:none;color:#8190a3;font-size:12px;font-weight:600}
  .mobile-list-sortbar select{flex:1 1 auto;min-width:0;height:38px;padding:0 30px 0 10px;border:1px solid #dce5ef;border-radius:9px;background:#f8fafc;color:#34465c;font-size:13px}
  .mobile-sort-direction{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:5px;height:38px;padding:0 11px;border:1px solid #dce5ef;border-radius:9px;background:#f3f6fa;color:#355675;font-size:12px;font-weight:650;white-space:nowrap}
  .mobile-sort-direction span{font-size:17px;line-height:1}
  .mobile-record-list{padding-left:12px!important;padding-right:12px!important}
  .billsTableWrap{width:100%!important;max-width:100%!important}
  /* Floating header/footer and scroll rail overlay the viewport; they must not shrink content width. */
  .main,.content,.data-panel{width:100%;max-width:100%;min-width:0}
  .mobile-scroll-rail{position:fixed!important;right:6px!important;left:auto!important;width:max-content!important;max-width:none!important;pointer-events:auto}
}

/* 2026-11-02 admin mobile search, fee detail and safe login affordances */
.login-password-wrap{position:relative;display:flex;align-items:center;width:100%}
.login-password-wrap>input{width:100%;padding-right:68px!important}
.login-password-wrap .password-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#42678e;font-size:13px;font-weight:650;padding:8px;min-width:48px;min-height:38px}
.login-card .remember-account{display:flex;align-items:center;gap:8px;margin:12px 0 0;font-size:13px;color:#45546a;font-weight:600}
.login-card .remember-account input{width:17px;height:17px;min-height:17px;margin:0;accent-color:#24486e}
.login-card .remember-account small{font-size:11px;font-weight:400;color:#98a3b1}
@media(max-width:700px){
 .data-panel>.panel-head .actions{display:flex!important;flex-wrap:wrap!important;gap:8px!important;width:100%;min-width:0}
 .data-panel>.panel-head .actions .search{order:-10;flex:1 1 100%!important;width:100%!important;min-width:0!important;max-width:100%!important;min-height:46px;padding:11px 13px;font-size:16px!important;box-sizing:border-box}
 .data-panel>.panel-head .actions .toolbar-filter,.data-panel>.panel-head .actions .bill-store-filter{flex:1 1 calc(50% - 8px);min-width:0;max-width:100%;height:42px}
 .mobile-bill-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
 .mobile-bill-actions button{min-height:40px;touch-action:manipulation}
 .mobile-bill-card-body{display:flex!important;flex-direction:column;gap:8px;visibility:visible!important;opacity:1!important}
 .mobile-bill-card-body .mobile-bill-line{display:flex;justify-content:space-between;gap:12px;min-width:0;padding:8px 9px;background:#f7f9fc;border-radius:8px}
 .mobile-bill-card-body .mobile-bill-line>span{flex:0 1 42%;min-width:0;color:#8190a3;font-size:12px;overflow-wrap:anywhere}
 .mobile-bill-card-body .mobile-bill-line>strong{flex:1;min-width:0;text-align:right;overflow-wrap:anywhere;word-break:break-word}
 .mobile-bill-card-body .mobile-bill-remark-always{display:block!important}
}

/* 管理端手机账单：明细按钮只控制当前卡片展开，不打开账单详情弹窗 */
@media(max-width:700px){
  .mobile-bill-actions .mobile-bill-expand-toggle{min-width:92px;touch-action:manipulation}
}

/* 管理端手机账单：费用明细按当前账单自身快照/values生成，不依赖门店筛选列 */
@media(max-width:700px){
 .mobile-bill-actions .bill-detail-link{background:transparent!important;border:0!important;color:#2865a6!important;padding-left:8px!important;min-width:0!important}
 .mobile-bill-card-body .mobile-bill-line.mobile-bill-remark-always{display:flex!important}
 .mobile-bill-empty-detail{padding:10px;color:#8190a3;font-size:13px;text-align:center}
}
