/* SOURCE: style.css */
:root{--ink:#17221d;--muted:#6c766f;--green:#174c3b;--mint:#e8f1ed;--gold:#c99539;--paper:#fff;--line:#dfe5e1;--bg:#f3f5f2;--red:#a13b36}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 "Microsoft YaHei","PingFang SC",sans-serif}a{color:var(--green);text-decoration:none}header{height:72px;background:#123b2f;color:#fff;display:flex;align-items:center;padding:0 4vw;gap:40px;box-shadow:0 2px 10px #0002}.brand{display:flex;align-items:center;gap:12px;min-width:180px}.brand>span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--gold);color:#fff;font:700 22px serif}.brand b,.brand small{display:block}.brand small{font-size:11px;opacity:.75;letter-spacing:1px}nav{display:flex;gap:6px;flex:1}nav a{color:#d8e5df;padding:10px 13px;border-radius:8px}nav a:hover{background:#ffffff14;color:#fff}.user{font-size:13px}.user a{color:#f1cf91;margin-left:12px}main{max-width:1280px;margin:auto;padding:34px 30px 70px}.pagehead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px}.pagehead h1{margin:0;font:700 28px serif}.pagehead p{margin:0;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.metric,.panel{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 5px 20px #18392c08}.metric{padding:21px;border-top:3px solid var(--green)}.metric small,.metric span{display:block;color:var(--muted)}.metric strong{display:block;font:700 25px Georgia;margin:10px 0}.grid{display:grid;grid-template-columns:3fr 1fr;gap:18px}.panel{padding:22px;overflow:auto}.paneltitle{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.paneltitle h2,.panel h2{margin:0;font-size:17px}.paneltitle p{margin:4px 0 0;color:var(--muted)}.primary,.secondary,button{display:inline-block;border:0;border-radius:8px;padding:10px 16px;font:inherit;cursor:pointer}.primary,button.primary,form button{background:var(--green);color:#fff}.secondary{background:var(--mint);color:var(--green)}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--muted);font-weight:500;font-size:12px;padding:11px;border-bottom:1px solid var(--line)}td{padding:13px 11px;border-bottom:1px solid #edf0ee}tfoot td{font-weight:700;background:#f7f9f7}.tag{display:inline-block;padding:3px 9px;border-radius:99px;background:#f4e8d3;color:#805c20;font-size:12px}.tag.ok{background:#e0f0e8;color:#236047}.empty{text-align:center;color:var(--muted);padding:35px}.mono{font-family:Consolas,monospace}.checklist{list-style:none;padding:0;margin:8px 0}.checklist li{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line)}.checklist b{font:700 20px Georgia;color:var(--green);min-width:42px}.checklist span{color:var(--muted)}footer{text-align:center;color:var(--muted);padding:25px}.formrow{display:flex;gap:18px;margin-bottom:25px}.formrow label,.voucherform label{color:var(--muted)}.formrow .grow{flex:1}input,select{display:block;width:100%;border:1px solid #cbd4ce;border-radius:7px;padding:10px;background:#fff;color:var(--ink);font:inherit;margin-top:6px}.voucherform table input,.voucherform table select{margin:0}.voucherform th:nth-last-child(-n+3),.voucherform td:nth-last-child(-n+3){text-align:right}.icon{background:transparent!important;color:var(--red)!important;padding:5px 10px}.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.error,.success{padding:13px 16px;border-radius:9px;margin-bottom:15px}.error{background:#f7dfdc;color:#7e2924}.success{background:#dff0e6;color:#205c42}.voucherhead{display:flex;justify-content:space-between;align-items:center}.voucherhead h2{font:700 24px serif;letter-spacing:8px}.voucherhead span,.voucherhead b{display:block}.voucherhead span{font-size:12px;color:var(--muted)}.summary{background:#f7f9f7;padding:12px}.voucherfoot{display:flex;justify-content:space-between;color:var(--muted);margin-top:18px}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0e3328,#1e5a46)}.loginbox{width:min(420px,90vw);background:#fff;padding:40px;border-radius:18px;box-shadow:0 20px 60px #061d1766}.brand.large{margin-bottom:32px}.loginbox h1{font:700 28px serif;margin:0}.loginbox>p{color:var(--muted)}.loginbox label{display:block;margin:16px 0;color:var(--muted)}.loginbox button{width:100%;margin-top:8px;padding:12px}.hint{text-align:center;background:var(--mint);color:var(--green);padding:10px;margin-top:18px;border-radius:8px;font-size:12px}@media(max-width:850px){header{height:auto;padding:16px;flex-wrap:wrap}nav{order:3;width:100%;overflow:auto}.user{margin-left:auto}.metrics{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}main{padding:24px 14px}.formrow{display:block}.formrow label{margin-bottom:14px}}@media(max-width:500px){.metrics{grid-template-columns:1fr}.pagehead p{display:none}}

/* 手机与平板触控布局 */
@media(max-width:900px){
body{font-size:15px;-webkit-text-size-adjust:100%}header{height:auto;min-height:0;padding:11px 14px 9px;gap:8px 12px;flex-wrap:wrap;position:sticky;top:0;z-index:20}.brand{min-width:0;flex:1}.brand>span{width:34px;height:34px;flex:0 0 34px}.brand b{font-size:14px;white-space:nowrap}.brand small{font-size:10px}.user{margin-left:auto;white-space:nowrap;font-size:12px}.user a{margin-left:7px}header nav{order:3;flex:0 0 calc(100% + 28px);width:calc(100% + 28px);margin:2px -14px -9px;padding:5px 12px 9px;gap:6px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch}header nav::-webkit-scrollbar,.adminnav::-webkit-scrollbar{display:none}header nav a{flex:0 0 auto;white-space:nowrap;padding:9px 12px;min-height:40px;display:flex;align-items:center;scroll-snap-align:start;background:#ffffff0a}main{padding:19px 14px 72px}.pagehead{margin-bottom:15px;align-items:center}.pagehead h1{font-size:23px}.pagehead p{font-size:12px}.panel{padding:17px;border-radius:11px;-webkit-overflow-scrolling:touch}.metric{padding:16px;min-width:0}.metric strong{overflow-wrap:anywhere}.grid{grid-template-columns:1fr}.paneltitle{gap:12px}.paneltitle p{font-size:13px}input,select{min-height:46px;padding:11px 12px;font-size:16px}input[type="date"]{height:46px;min-height:46px;padding-top:9px;padding-bottom:9px}button,.primary,.secondary{min-height:44px;padding:11px 15px;touch-action:manipulation}table{min-width:680px}th,td{padding:12px 10px;white-space:nowrap}.panel>table{margin-bottom:2px}.actions{gap:9px;flex-wrap:wrap}.actions>*{min-height:44px}.adminnav{overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.adminnav a{min-height:42px;display:flex;align-items:center;scroll-snap-align:start}.filterbar label{min-width:min(220px,100%)}.filterbar button,.filterbar .secondary{min-width:110px}
}
@media(max-width:600px){
.pagehead p{display:none}.paneltitle{align-items:stretch;flex-direction:column}.paneltitle .buttonrow{display:grid;grid-template-columns:1fr 1fr;gap:8px}.paneltitle .buttonrow a{text-align:center}.metrics,.metrics-five,.adminmetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.metric{min-height:108px!important}.metric strong{font-size:20px!important;margin:7px 0}.metric span{font-size:11px}.homeactions{padding:12px 14px}.homeactions strong{font-size:14px}.homeactions button{min-width:76px}.simplegrid,.filterrow,.exportfilters{grid-template-columns:1fr!important;gap:11px!important}.advancedfilters,.exportfilters{padding:13px}.filteractions{display:grid!important;grid-template-columns:1fr 1fr;width:100%}.filteractions button,.filteractions a{text-align:center;width:100%}.filtertotals{grid-template-columns:repeat(2,minmax(0,1fr))!important}.simpleform{padding-bottom:6px}.simpleform .actions{position:sticky;bottom:8px;z-index:5;background:#fffffff2;border:1px solid var(--line);border-radius:12px;padding:10px;box-shadow:0 8px 24px #28143e20}.simpleform .actions>*{flex:1;text-align:center}.billfacts{grid-template-columns:1fr 1fr}.billhero{display:block}.billamount{text-align:left;margin-top:14px}.viewoptions>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.loginbox{width:calc(100vw - 24px);padding:27px 22px;border-radius:14px}.brand.large{margin-bottom:24px}.backuplist li,.commonlist>div{align-items:flex-start;flex-direction:column}.backupactions{width:100%;flex-wrap:wrap}.settingslist form{grid-template-columns:1fr auto}.settingslist form>button{grid-column:1/-1;width:100%}footer{padding:18px 14px 28px;font-size:12px}
}
@media(max-width:370px){.brand b{font-size:12px}.user{font-size:11px}.metrics,.metrics-five,.filtertotals{grid-template-columns:1fr!important}}


/* SOURCE: export.css */
.buttonrow {
  display: flex;
  align-items: center;
  gap: 10px;
}


/* SOURCE: export-select.css */
.exportpanel{max-width:760px;margin:0 auto}.exportoptions{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exportoption{display:flex;align-items:flex-start;gap:12px;padding:17px;border:1px solid var(--line);border-radius:10px;background:#fafcfb;cursor:pointer}.exportoption:hover{border-color:#9ab6aa;background:var(--mint)}.exportoption input,.selectall input{width:auto;margin:4px 0}.exportoption span{display:block}.exportoption b,.exportoption small{display:block}.exportoption small{color:var(--muted);margin-top:4px}.selectall{display:flex;align-items:center;gap:8px;margin-top:16px;color:var(--green)}@media(max-width:650px){.exportoptions{grid-template-columns:1fr}}


/* SOURCE: attachments.css */
.uploadbox{margin-top:22px;padding:18px;border:1px dashed #9ab6aa;border-radius:10px;background:#f7faf8}.uploadbox input{margin-top:10px}.uploadbox p{margin:7px 0 0;color:var(--muted);font-size:12px}.attachmentsection{margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.attachmentsection h3{font-size:15px}.attachmentsection h3 span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:99px;background:var(--mint);color:var(--green);font-size:12px}.attachmentgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.attachmentcard{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fafcfb}.attachmentcard img{width:100%;height:120px;object-fit:cover;background:#eef2ef}.attachmentcard span{padding:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.attachmentcard.pdf{height:160px;align-items:center;justify-content:center}.attachmentcard.pdf b{font:700 24px Georgia;color:var(--red)}.emptyattachment{color:var(--muted)}


/* SOURCE: simple-ledger.css */
.simpleform{max-width:900px;margin:0 auto}.simplegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.simplegrid label{color:var(--muted)}.simplegrid .span2{grid-column:1/-1}.tag.out{background:#f7dfdc;color:#8a302b}.moneyin{color:#16734d;font-weight:700}.moneyout{color:#ad3f37;font-weight:700}.billhero{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;padding:12px 0 25px;border-bottom:1px solid var(--line)}.billhero small,.billhero p{color:var(--muted)}.billhero h2{font:700 24px serif;margin:5px 0}.billamount{text-align:right}.billamount span,.billamount strong{display:block}.billamount span{font-size:13px}.billamount strong{font:700 28px Georgia;margin-top:7px}.billfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.billfacts div{padding:14px;background:#f7f9f7;border-radius:9px}.billfacts dt{color:var(--muted);font-size:12px}.billfacts dd{margin:5px 0 0;font-weight:700}.choicechips{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.choicechips span{padding:8px 12px;border-radius:99px;background:var(--mint);color:var(--green)}.muted{color:var(--muted)}@media(max-width:650px){.simplegrid{grid-template-columns:1fr}.simplegrid .span2{grid-column:auto}.billhero{display:block}.billamount{text-align:left;margin-top:15px}.billfacts{grid-template-columns:1fr 1fr}}
.filterbar{display:flex;align-items:end;gap:10px;margin-bottom:18px;flex-wrap:wrap}.filterbar label{min-width:220px;color:var(--muted)}.filterbar select{margin-top:5px}.categorytag{display:inline-block;padding:4px 9px;border-radius:99px;background:#eee6f7;color:#5d2b83;white-space:nowrap}.exportfilter{display:block;max-width:360px;margin:12px 0 20px;color:var(--muted)}
.exportfilterhint{margin:0!important;color:var(--muted);font-size:12px;line-height:1.55}.businessexportfilters{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.importrecord{margin-bottom:16px}.importrecordhead{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.importrecordhead label{display:flex;align-items:center;gap:8px;font-weight:700}.importrecordhead input{width:auto;margin:0}.importrecordhead span{color:var(--muted);font-size:12px}.stickyactions{position:sticky;bottom:12px;background:#fff;padding:14px;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #30164d22;z-index:3}
.viewoptions{margin:0 0 16px;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:#faf8fc}.viewoptions summary{cursor:pointer;font-weight:700;color:#5d2b83}.viewoptions>div{display:flex;flex-wrap:wrap;gap:12px 18px;padding-top:12px}.viewoptions label{display:flex;align-items:center;gap:6px;color:var(--muted)}.viewoptions input{width:auto;margin:0}
.homeactions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px;padding:14px 18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(120deg,#fff,#f3ecfb)}.homeactions span,.homeactions strong{display:block}.homeactions span{font-size:12px;color:var(--muted)}.homeactions strong{margin-top:3px;color:#52257e;font-size:18px;font-variant-numeric:tabular-nums}.homeactions form{margin:0}.homeactions button{min-width:100px}.periodworkbenchactions{display:flex;align-items:stretch;flex-direction:column;gap:7px}.periodworkbenchactions a{text-align:center}
.metrics-five{grid-template-columns:repeat(5,1fr)}.advancedfilters{display:grid;gap:12px;margin-bottom:18px;padding:16px;background:#faf9fc;border:1px solid var(--line);border-radius:12px}.filterrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}.filterrow label{min-width:0;color:var(--muted)}.filterrow input,.filterrow select{margin-top:5px}.filteractions{display:flex;align-items:center;gap:10px;min-height:42px}.filteractions button,.filteractions a{margin:0}.filtertotals{margin:0 0 18px}.filtertotals .metric{min-height:118px}.exportfilters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin:18px 0 22px;padding:18px;background:#faf9fc;border:1px solid var(--line);border-radius:12px}.exportfilters label{color:var(--muted)}@media(max-width:1050px){.metrics-five{grid-template-columns:repeat(3,1fr)}.filterrow,.exportfilters{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.metrics-five,.filterrow,.exportfilters{grid-template-columns:1fr}.filteractions{flex-wrap:wrap}}
.periodhero{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:20px 22px;border-radius:12px;background:linear-gradient(120deg,#3a214c,#6d3cc2);color:#fff}.periodhero h2,.periodhero p{margin:0}.periodhero p{margin-top:5px;color:#e7dff0}.periodhero .primary{background:#fff;color:#552b7d}.periodmetrics{grid-template-columns:repeat(4,1fr)}.periodtable{min-width:1220px}.periodcompletedtable{min-width:900px}.billnolink{font-weight:700;white-space:nowrap}.duebadge{display:inline-block;margin-top:4px;padding:3px 8px;border-radius:99px;background:#eee8f5;color:#604078;font-size:12px}.duebadge.overdue{background:#f7dfe5;color:#9b334e}.settlementbox{min-width:230px}.settlementbox summary{cursor:pointer;color:#65349b;font-weight:700;padding:8px 0}.settlementbox form{display:grid;gap:8px;padding:12px;background:#faf8fc;border:1px solid var(--line);border-radius:10px}.settlementbox label{font-size:12px;color:var(--muted)}.settlementbox input{margin-top:3px}.settlementbox button:disabled{opacity:.45}.settlementhistory{margin-top:8px;max-height:180px;overflow:auto}.settlementhistory p{display:grid;grid-template-columns:1fr auto;gap:3px 10px;margin:0;padding:7px 3px;border-bottom:1px solid var(--line)}.settlementhistory small{grid-column:1/-1;color:var(--muted)}.perioddetailmetrics{margin:22px 0;grid-template-columns:repeat(4,1fr)}.perioddetailmetrics .metric:last-child strong{font-size:20px!important}.perioddetail table{margin-top:12px}.perioddetailactions{display:flex;justify-content:flex-end;gap:9px;margin:0 0 20px}.perioddetailactions form{margin:0}@media(max-width:900px){.periodmetrics,.perioddetailmetrics{grid-template-columns:repeat(2,1fr)}.periodhero{padding:17px}.settlementbox{min-width:210px}}@media(max-width:600px){.homeactions{align-items:stretch;flex-direction:column}.periodworkbenchactions{width:100%}.periodhero{align-items:stretch;flex-direction:column}.periodhero .primary{text-align:center}.periodmetrics,.perioddetailmetrics{grid-template-columns:repeat(2,minmax(0,1fr))}.periodform .actions{position:sticky}.perioddetailactions>*{flex:1}.perioddetailactions a,.perioddetailactions button{width:100%;text-align:center}}
.settlementmodal{width:min(92vw,480px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px #24102f55}.settlementmodal::backdrop{background:#190d2688;backdrop-filter:blur(3px)}.settlementmodal form{display:grid;gap:14px;padding:22px}.settlementmodal label{color:var(--muted)}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.modalhead h3,.modalhead p{margin:0}.modalhead p{margin-top:4px;color:var(--muted)}.modalclose{width:36px;min-width:36px;height:36px;padding:0;border-radius:50%;font-size:22px;background:#eee8f5;color:#57306f}.modalactions,.rowactions{display:flex;justify-content:flex-end;gap:8px}.rowactions form{margin:0}.modalactions button{min-width:92px}@media(max-width:600px){.settlementmodal{width:calc(100vw - 24px)}.settlementmodal form{padding:18px}.rowactions{align-items:stretch;flex-direction:column}.rowactions a,.rowactions button{width:100%;text-align:center}}


/* SOURCE: admin.css */
.adminnav{display:flex;gap:7px;margin-bottom:20px;padding:7px;background:#ece5f3;border-radius:12px;overflow:auto}.adminnav a{padding:9px 14px;border-radius:8px;white-space:nowrap}.adminnav a.active{background:#fff;color:#4d2673;box-shadow:0 3px 12px #3a1c5214;font-weight:700}.adminmetrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.adminmetrics article{padding:20px;background:linear-gradient(145deg,#fff,#faf7fd);border:1px solid var(--line);border-radius:12px}.adminmetrics small,.adminmetrics strong{display:block}.adminmetrics small{color:var(--muted)}.adminmetrics strong{font:700 25px Georgia;margin-top:8px;color:#512775}.adminmetrics strong.good{color:#357657}.adminsplit{display:grid;grid-template-columns:320px 1fr;gap:18px}.adminsplit label{display:block;color:var(--muted);margin:13px 0}.rowactions{display:flex;gap:7px;align-items:center}.rowactions form{display:flex;gap:5px}.rowactions input{width:115px;margin:0;padding:6px}.tiny{padding:6px 9px!important;font-size:12px!important}.tiny:disabled{opacity:.4;cursor:not-allowed}.maintenance{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.backuplist{list-style:none;padding:0}.backuplist li{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}.backuplist small{color:var(--muted)}.addsetting{display:flex;gap:8px;margin:15px 0}.addsetting input{margin:0}.settingslist form{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.settingslist input{margin:0}.settingslist label{display:flex;align-items:center;gap:5px;white-space:nowrap}.settingslist label input{width:auto}@media(max-width:850px){.adminmetrics{grid-template-columns:1fr 1fr}.adminsplit{grid-template-columns:1fr}}@media(max-width:520px){.adminmetrics{grid-template-columns:1fr}}
.permissioncheck{display:flex;align-items:center;gap:8px}.permissioncheck input{width:auto;margin:0}.permissionpanel table{margin-top:12px}
.commonlist>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.commonlist form{margin:0}.danger{background:#f4dfe6!important;color:#8e2948!important;box-shadow:none!important}
.backupactions{display:flex;align-items:center;gap:7px}.backupactions form{margin:0}.backuplist li>div:first-child{display:flex;flex-direction:column}.restoreupload{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.restoreupload label{display:block;margin-bottom:12px;color:var(--muted)}.usereditpanel{margin-bottom:18px}
.commoninfogrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.commoninfocard{min-height:360px}.commoninfoadd{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:9px;margin:15px 0 18px}.commoninfoadd input,.commoninfoadd button{height:44px;min-height:44px;margin:0}.commoninfoadd button{width:92px}.commonlist>div{min-height:52px}.commonlist>div>span{overflow-wrap:anywhere}@media(max-width:800px){.commoninfogrid{grid-template-columns:1fr}.commoninfocard{min-height:0}}@media(max-width:520px){.commoninfoadd{grid-template-columns:1fr}.commoninfoadd button{width:100%}}


/* SOURCE: purple-theme.css */
:root{--ink:#211a2b;--muted:#756c80;--green:#6d3cc2;--mint:#f0eafa;--gold:#9c72e8;--paper:#fff;--line:#e6deef;--bg:#f7f4fa;--red:#b34462}body{background:radial-gradient(circle at 85% 0,#eee5fa 0,transparent 28%),var(--bg)}header{background:linear-gradient(110deg,#2a183f,#542a7d 58%,#6e3da0);box-shadow:0 8px 28px #2e17452b}.brand>span{background:linear-gradient(145deg,#c6a4ff,#8e56df);box-shadow:inset 0 1px #fff6}.metric{border-top-color:#8051c6}.metric strong,.checklist b{color:#4f287b}.primary,button.primary,form button{background:linear-gradient(135deg,#7040b5,#512775);box-shadow:0 4px 12px #4d28652b}.secondary{background:#eee6f8;color:#5e3193}.tag.ok{background:#e9ddf9;color:#5b3188}.choicechips span{background:#eee6f8;color:#5e3193}a{color:#65349b}.panel,.metric{box-shadow:0 8px 28px #3c20560b}
.login{background:radial-gradient(circle at 80% 10%,#9564d8 0,transparent 32%),linear-gradient(135deg,#251438,#4f2776 55%,#6e3da0)}.loginbox{border:1px solid #ffffff70;box-shadow:0 24px 70px #1e0e3466}
.registerlink{text-align:center;margin:18px 0 0!important}.registerlink a{font-weight:700}.personalnav{margin-top:-4px}
.brandlogo{padding:0!important;background:transparent!important;box-shadow:none!important;overflow:hidden}.brandlogo img{display:block;width:100%;height:100%;object-fit:cover}
body{background:#f6f5f8}.panel,.metric{border-color:#e8e5ec;box-shadow:0 2px 10px #32164a0a;border-radius:12px}.metric{border-top:1px solid #e8e5ec;padding:19px}.metric strong{font-family:"Microsoft YaHei","PingFang SC",sans-serif!important;font-size:23px!important;font-weight:650!important;letter-spacing:-.4px;color:#34263f!important}.metric small{font-weight:500}header{background:#352044;box-shadow:0 2px 12px #21132d20}.primary,button.primary,form button{box-shadow:none}.pagehead h1{font-family:"Microsoft YaHei","PingFang SC",sans-serif!important;font-weight:650!important;letter-spacing:-.3px}


/* SOURCE: apple-ui.css */
:root{--ink:#1d1d1f;--muted:#6e6e73;--green:#7057d9;--mint:#efedff;--gold:#a58cff;--paper:#ffffffd9;--line:#d2d2d76b;--bg:#f5f5f7;--red:#ff3b30}
*{-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{background:radial-gradient(circle at 8% -5%,#dcd5ff 0,transparent 31%),radial-gradient(circle at 96% 9%,#d9edff 0,transparent 26%),#f5f5f7;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Microsoft YaHei",sans-serif;letter-spacing:-.01em}
header{height:68px;margin:12px auto 0;width:min(1380px,calc(100% - 28px));padding:0 18px;border:1px solid #ffffffba;border-radius:22px;background:#ffffffb8;color:var(--ink);box-shadow:0 12px 40px #2b235016;backdrop-filter:saturate(180%) blur(24px);-webkit-backdrop-filter:saturate(180%) blur(24px);position:sticky;top:10px;z-index:30}
.brand{min-width:215px}.brand b{font-size:14px;font-weight:650;letter-spacing:-.2px}.brand small{color:var(--muted);opacity:1;letter-spacing:.3px}.brand>span{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,#8d76ef,#5540b8);box-shadow:inset 0 1px #fff8,0 5px 14px #5741a42b}
nav{gap:3px;overflow-x:auto;scrollbar-width:none}nav::-webkit-scrollbar{display:none}nav a{color:#49494d;padding:8px 11px;border-radius:10px;white-space:nowrap;font-size:13px;font-weight:520}nav a:hover{background:#00000008;color:#000}.user{color:#626267;white-space:nowrap}.user a{color:#644cc7}
main{max-width:1380px;padding:32px 28px 80px}.pagehead h1{font-family:inherit!important;font-size:30px;font-weight:700!important;letter-spacing:-1px!important}.pagehead p{font-size:13px}
.panel,.metric,.glasscard{border:1px solid #ffffffc7;background:#ffffffc9;border-radius:22px;box-shadow:0 12px 36px #2923430b;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.panel{padding:24px}.metric{border-top:1px solid #ffffffc7;padding:21px}.metric strong{color:#1d1d1f!important;font-weight:680!important;letter-spacing:-.8px}.paneltitle h2,.panel h2{font-weight:680;letter-spacing:-.4px}
button,.primary,.secondary{border-radius:12px;padding:10px 16px;font-weight:590;transition:transform .16s ease,filter .16s ease,background .16s ease}button:active,.primary:active,.secondary:active{transform:scale(.97)}.primary,button.primary,form button{background:#7057d9;color:#fff;box-shadow:none}.primary:hover,form button:hover{filter:brightness(.96)}.secondary{background:#efedff;color:#5945ba}.danger,button.danger{background:#fff0ef!important;color:#d93229!important}
input,select,textarea{display:block;width:100%;margin-top:6px;border:1px solid #d2d2d7;border-radius:12px;padding:11px 12px;background:#ffffffdd;color:var(--ink);font:inherit;outline:none;transition:border-color .15s,box-shadow .15s}textarea{resize:vertical;line-height:1.55}input:focus,select:focus,textarea:focus{border-color:#806ae4;box-shadow:0 0 0 4px #7961df1c}
th{color:#77777d;font-weight:560}td{border-bottom-color:#ececf0}tfoot td{background:#f7f7fa}.success,.error{border-radius:14px}
.login{background:radial-gradient(circle at 20% 15%,#9b88ef 0,transparent 36%),radial-gradient(circle at 90% 80%,#8fc8ef 0,transparent 36%),#e8e5f2}.loginbox{border:1px solid #ffffffc7;background:#ffffffd9;border-radius:28px;box-shadow:0 28px 90px #2e225448;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.loginbox h1{font-family:inherit;font-weight:720;letter-spacing:-.8px}
.homewelcome{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:8px 0 22px;padding:30px 34px;border-radius:28px;color:#fff;background:radial-gradient(circle at 84% 15%,#ffffff30 0,transparent 26%),linear-gradient(125deg,#5b43bb,#8168e3 60%,#72a8e8);box-shadow:0 20px 55px #5143a42b}.homewelcome h2{margin:5px 0 7px;font-size:34px;line-height:1.2;letter-spacing:-1.4px}.homewelcome p{margin:0;color:#ffffffc9}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:1.4px;color:#77717f}.homewelcome .eyebrow{color:#ffffffb8}.homeclock{text-align:right}.homeclock strong,.homeclock span{display:block}.homeclock strong{font-size:54px;line-height:1;font-weight:650;letter-spacing:-3px;font-variant-numeric:tabular-nums}.homeclock span{margin-top:7px;color:#ffffffbd;font-size:12px}
.homegrid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(350px,.75fr);gap:18px;margin-bottom:18px}.glasscard{padding:25px;overflow:hidden}.weathercard{color:#fff;background:radial-gradient(circle at 86% 12%,#fff4 0,transparent 28%),linear-gradient(145deg,#557ecb,#729ee4 55%,#8b78df);box-shadow:0 18px 48px #496da72b}.weatherhead{display:flex;justify-content:space-between;align-items:flex-start}.weatherhead .eyebrow,.weathercard .hourlytitle span{color:#ffffffad}.weatherhead h2{margin:4px 0 0;font-size:21px}.circlebutton{display:grid;place-items:center;width:40px;height:40px;padding:0;border-radius:50%;background:#ffffff26!important;color:#fff!important;font-size:19px;box-shadow:inset 0 0 0 1px #ffffff2e}.weathercurrent{display:flex;align-items:center;gap:18px;margin:24px 0 17px}.weathericon{font-size:58px;line-height:1}.weathercurrent strong,.weathercurrent span{display:block}.weathercurrent strong{font-size:55px;line-height:.95;letter-spacing:-3px}.weathercurrent span{margin-top:7px;color:#ffffffd2}.weatherfacts{display:flex;gap:9px;flex-wrap:wrap}.weatherfacts span{padding:7px 10px;border:1px solid #ffffff24;border-radius:99px;background:#ffffff15;font-size:12px}.hourlytitle{display:flex;justify-content:space-between;margin:24px 0 11px;padding-top:17px;border-top:1px solid #ffffff2b}.hourlyweather{display:flex;gap:9px;overflow-x:auto;padding-bottom:5px;scrollbar-width:none}.hourlyweather::-webkit-scrollbar{display:none}.houritem{flex:0 0 70px;text-align:center;padding:10px 5px;border-radius:16px;background:#ffffff16}.houritem span,.houritem b,.houritem strong,.houritem small{display:block}.houritem span{font-size:11px;color:#ffffffc9}.houritem b{height:30px;margin:5px 0;font-size:22px}.houritem strong{font-size:16px}.houritem small{margin-top:2px;color:#dce8ff}.weatherloading,.weathererror{color:#ffffffc8}.weathererror{margin-top:10px;font-size:12px}
.shortcutcard{background:#ffffffd7}.shortcutcard h2{margin:6px 0;font-size:24px}.shortcutcard>p{margin:0;color:var(--muted)}.shortcutgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:22px}.shortcutgrid a{min-height:111px;padding:15px;border:1px solid #e8e7ec;border-radius:18px;background:#f8f8fa;color:var(--ink);transition:transform .18s,box-shadow .18s}.shortcutgrid a:hover{transform:translateY(-2px);box-shadow:0 10px 25px #2e26400d}.shortcutgrid span,.shortcutgrid b,.shortcutgrid small{display:block}.shortcutgrid span{display:grid;place-items:center;width:34px;height:34px;margin-bottom:10px;border-radius:10px;background:#ebe8ff;color:#5f48c5;font-size:19px}.shortcutgrid b{font-size:14px}.shortcutgrid small{color:var(--muted);margin-top:2px}
.memopanel{overflow:visible}.memolist{display:grid;gap:10px}.memoitem{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;border:1px solid #e9e8ed;border-radius:17px;background:#fafafc}.memoitem h3,.memoitem p{margin:0}.memoitem h3{font-size:15px}.memoitem p{margin-top:4px;color:#57575c;white-space:pre-wrap}.memoitem small{display:block;margin-top:6px;color:#9a9aa0}.memoactions{display:flex;gap:7px;flex:0 0 auto}.memoactions form{margin:0}.memoempty{text-align:center;padding:35px;color:var(--muted)}.memoempty span{font-size:32px;color:#7660d2}.memoempty h3{margin:8px 0 3px;color:var(--ink)}
.homemodal{width:min(92vw,520px);padding:0;border:0;border-radius:24px;background:#ffffffed;box-shadow:0 30px 100px #251d4055;backdrop-filter:blur(25px)}.homemodal::backdrop{background:#17121f73;backdrop-filter:blur(5px)}.homemodal form{display:grid;gap:15px;padding:24px}.homemodal label{color:var(--muted)}.modalhead h3{font-size:20px}
.weatherlocationerror{min-height:18px;color:#d93229;font-size:12px}
.adminnav{margin-bottom:24px!important;padding:8px!important;border-radius:15px!important}.adminnav+*{margin-top:0}.paneltitle{gap:18px;flex-wrap:wrap}.paneltitle>div:first-child{min-width:0;flex:1 1 260px}.paneltitle>.buttonrow,.paneltitle>.primary,.paneltitle>.secondary{flex:0 0 auto}.paneltitle h2,.paneltitle p{overflow-wrap:anywhere}.metrics{gap:18px;margin-bottom:22px}.metrics+.panel,.adminmetrics+.panel,.filterbar+.metrics,main>section.panel+section.panel,main>form.panel+section.panel,main>.panel+.panel{margin-top:20px}.grid,.commoninfogrid,.adminsplit{gap:22px}.panel>table{margin-top:4px}.panel form+table,.panel .advancedfilters+section,.panel .filtertotals+table,.panel .viewoptions+table{margin-top:20px}.filterbar{gap:14px!important;padding:20px!important}.advancedfilters,.exportfilters{margin-top:20px!important;margin-bottom:22px!important;gap:16px!important}.filterrow{gap:16px!important}.actions{margin-top:24px}.periodhero{margin-bottom:24px!important}.periodmetrics{margin-bottom:24px!important}.adminmetrics{gap:18px!important;margin-bottom:22px!important}.exportoptions{margin-top:20px;margin-bottom:20px}.success,.error{margin-bottom:20px}
@media(max-width:1050px){.homegrid{grid-template-columns:1fr}.shortcutgrid{grid-template-columns:repeat(4,1fr)}.shortcutgrid a{min-height:102px}}
@media(max-width:900px){header{width:100%;margin:0;border-radius:0;border-width:0 0 1px;top:0;padding:11px 14px 9px;background:#ffffffdf}header nav a{background:#f2f2f6;color:#44434a}main{padding:25px 14px 82px}.pagehead{margin-bottom:22px}.homewelcome{padding:24px;border-radius:24px}.homewelcome h2{font-size:29px}.homeclock strong{font-size:44px}.panel,.metric,.glasscard{border-radius:19px}.panel{padding:20px}.adminnav{margin-bottom:22px!important}.metrics{gap:14px}.filterbar{align-items:stretch}.filterbar label{flex:1 1 220px}.paneltitle{margin-bottom:21px}.paneltitle>.buttonrow{display:flex;gap:9px;flex-wrap:wrap}.paneltitle>.buttonrow>*{flex:1 1 130px;text-align:center}}
@media(max-width:650px){.homewelcome{align-items:flex-start;flex-direction:column}.homeclock{text-align:left}.homeclock strong{font-size:40px}.homegrid{display:block}.weathercard{margin-bottom:18px;padding:20px}.shortcutcard{padding:20px}.shortcutgrid{grid-template-columns:1fr 1fr}.memoitem{align-items:flex-start;flex-direction:column}.memoactions{width:100%}.memoactions>*{flex:1}.memoactions button{width:100%}.memopanel .paneltitle .primary{width:100%;text-align:center}.homemodal form{padding:20px}.pagehead h1{font-size:25px}.panel{padding:18px}.paneltitle{align-items:stretch;margin-bottom:20px}.paneltitle>.primary,.paneltitle>.secondary{width:100%;text-align:center}.metrics+.panel,.adminmetrics+.panel,.filterbar+.metrics,main>section.panel+section.panel,main>form.panel+section.panel,main>.panel+.panel{margin-top:18px}.simpleform{padding-bottom:92px!important}.simpleform .actions{bottom:12px!important;margin-top:28px!important}.filteractions{margin-top:4px}.adminnav{margin-left:-2px;margin-right:-2px}.rowactions{gap:10px;flex-wrap:wrap}}
@media(max-width:390px){.homewelcome{padding:21px}.homewelcome h2{font-size:25px}.weathercurrent strong{font-size:48px}.shortcutgrid{gap:8px}.shortcutgrid a{padding:12px}}

/* 手机和平板：顶部品牌、用户和主选项卡保持在同一个状态栏内 */
@media(max-width:900px){
  header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    align-items:center;
    height:auto!important;
    min-height:0!important;
    padding:10px 14px 0!important;
    gap:8px 10px!important;
    overflow:hidden;
    position:relative!important;
    top:auto!important;
    background:#fffffff0!important;
    box-shadow:0 4px 22px #29234318;
  }
  header .brand{grid-column:1;grid-row:1;min-width:0!important;overflow:hidden}
  header .brand>div{min-width:0}
  header .brand b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  header .user{grid-column:2;grid-row:1;margin:0!important;align-self:center;font-size:12px;white-space:nowrap}
  header nav{
    grid-column:1/-1;
    grid-row:2;
    order:initial!important;
    width:calc(100% + 28px)!important;
    max-width:none!important;
    margin:0 -14px!important;
    padding:8px 12px 10px!important;
    border-top:1px solid #dedde4aa;
    background:#f8f8fbe8;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-padding-inline:12px;
  }
  header nav a{
    min-height:40px;
    padding:9px 13px!important;
    border:1px solid #e6e5ea;
    background:#fff!important;
    box-shadow:0 2px 8px #30274508;
  }
  header nav a:active{background:#ebe7ff!important;color:#5540b8}
  main{min-width:0}
  .adminnav{
    max-width:100%;
    scroll-padding-inline:8px;
    overscroll-behavior-inline:contain;
  }
  .adminnav a{min-height:42px;display:flex;align-items:center}
  .panel{max-width:100%}
  .panel>table{min-width:680px}
  .paneltitle .buttonrow,.perioddetailactions,.backupactions{gap:10px}
  dialog.settlementmodal,dialog.homemodal{
    max-height:calc(100dvh - 24px);
    overflow:auto;
    overscroll-behavior:contain;
  }
}
@media(max-width:560px){
  header .brand{gap:9px}
  header .brand>span{width:34px;height:34px;flex-basis:34px}
  header .brand b{font-size:13px}
  header .brand small{font-size:9px}
  header .user{font-size:11px}
  header .user a{margin-left:6px}
  header nav a{font-size:13px}
  main{padding-top:20px}
  .adminnav{padding:7px!important}
  .adminnav a{padding:9px 12px}
  .filterbar button,.filterbar .secondary{width:100%;text-align:center}
  .actions>*{flex:1 1 120px;text-align:center}
  .perioddetailactions{align-items:stretch;flex-direction:column}
  .perioddetailactions>*{width:100%}
  .perioddetailactions a,.perioddetailactions button{width:100%;text-align:center}
  .rowactions{align-items:stretch;flex-direction:column}
  .rowactions>*{width:100%}
  .rowactions a,.rowactions button{width:100%;text-align:center}
}

/* Messenger 3.1.1 — desktop search parity and context-menu isolation */
.chat-contact-search,
.chat-thread-search label{
  box-sizing:border-box!important;
  height:44px!important;
  min-height:44px!important;
  grid-template-columns:32px minmax(0,1fr)!important;
  column-gap:4px!important;
  padding:0 8px!important;
  border:1px solid rgba(77,57,91,.09)!important;
  border-radius:12px!important;
  background:#eeebf1!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.chat-contact-search:focus-within,
.chat-thread-search label:focus-within{
  border-color:rgba(77,57,91,.09)!important;
  background:#eeebf1!important;
  box-shadow:none!important;
}
.chat-contact-search svg,
.chat-thread-search label svg{
  grid-column:1!important;
  width:16px!important;
  height:16px!important;
  justify-self:center!important;
}
.chat-contact-search input,
.chat-thread-search input{
  box-sizing:border-box!important;
  grid-column:2!important;
  min-width:0!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0 8px 0 2px!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  appearance:none!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#514756!important;
  font-size:12px!important;
  line-height:42px!important;
  text-indent:0!important;
}
.chat-contact-search input:focus,
.chat-thread-search input:focus{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.chat-contact-search input::placeholder,
.chat-thread-search input::placeholder{
  color:#887c8d!important;
  opacity:1!important;
}
.chat-thread-search button{
  height:44px!important;
  min-height:44px!important;
}
.chat-message{z-index:1}
.chat-message.actions-open{z-index:40!important}
.chat-message.actions-open .chat-message-actions{z-index:41!important}
.chat-message-menu{
  z-index:50!important;
  background:#fff!important;
  backdrop-filter:none!important;
  isolation:isolate!important;
}

/* Role-permission checkboxes remain keyboard-accessible without expanding the page. */
.role-permission-matrix label input[type="checkbox"]{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0;
  overflow:hidden;
  clip-path:inset(50%);
}
.role-permission-matrix label input[type="checkbox"]:focus-visible+span{
  outline:3px solid rgba(118,93,145,.24);
  outline-offset:2px;
}
/* 统一原生日期控件：避免手机和平板出现宽度溢出、文字偏移或高度不一致 */
input[type="date"]{
  box-sizing:border-box!important;
  display:block!important;
  position:relative;
  -webkit-appearance:none!important;
  appearance:none!important;
  inline-size:100%!important;
  width:100%!important;
  min-inline-size:0!important;
  min-width:0!important;
  max-inline-size:100%!important;
  max-width:100%!important;
  block-size:46px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 44px 0 12px!important;
  line-height:46px!important;
  font-size:16px!important;
  color-scheme:light;
  background-color:#ffffffdd!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6572' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5.5' width='17' height='15' rx='3'/%3E%3Cpath d='M7.5 3.5v4M16.5 3.5v4M3.5 10h17'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:right 13px center!important;
  background-size:20px 20px!important;
  font-variant-numeric:tabular-nums;
  overflow:hidden;
}
input[type="date"]::-webkit-date-and-time-value{
  display:block;
  width:100%;
  min-height:46px;
  margin:0;
  padding:0;
  line-height:46px;
  text-align:left;
}
input[type="date"]::-webkit-datetime-edit{
  display:block;
  min-width:0;
  padding:0;
  line-height:46px;
}
input[type="date"]::-webkit-calendar-picker-indicator{
  position:absolute;
  top:0;
  right:0;
  width:44px;
  height:46px;
  margin:0;
  padding:0;
  opacity:0;
  cursor:pointer;
}
.simplegrid>label,.filterrow>label,.exportfilters>label,.formrow>label{
  min-width:0;
  max-width:100%;
}

/* 所有浮窗关闭按钮保持严格正圆，不受移动端通用按钮高度影响 */
.modalclose{
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
  min-width:38px!important;
  min-height:38px!important;
  max-width:38px!important;
  max-height:38px!important;
  aspect-ratio:1/1!important;
  margin:0!important;
  padding:0 0 2px!important;
  border:0!important;
  border-radius:50%!important;
  background:#efedf4!important;
  color:#5e5965!important;
  box-shadow:inset 0 0 0 1px #dedbe5!important;
  font-size:22px!important;
  font-weight:400!important;
  line-height:1!important;
}
.modalclose:active{background:#e2deeb!important}

/* 天气定位：使用简洁的矢量准星图标和半透明圆形按钮 */
.circlebutton{
  box-sizing:border-box!important;
  display:grid!important;
  place-items:center!important;
  flex:0 0 44px!important;
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  max-width:44px!important;
  max-height:44px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  border:1px solid #ffffff4a!important;
  border-radius:50%!important;
  background:linear-gradient(145deg,#ffffff32,#ffffff18)!important;
  box-shadow:inset 0 1px #ffffff55,0 8px 24px #304d8a24!important;
  color:transparent!important;
  font-size:0!important;
  backdrop-filter:blur(12px);
  position:relative!important;
  overflow:hidden!important;
}
.circlebutton::before{
  content:"";
  display:block;
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:22px;
  transform:translate(-50%,-50%);
  background:center/22px 22px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4.25'/%3E%3Cpath d='M12 2.5v3M12 18.5v3M2.5 12h3M18.5 12h3'/%3E%3Ccircle cx='12' cy='12' r='8' opacity='.55'/%3E%3C/svg%3E");
}
.circlebutton:hover{background:linear-gradient(145deg,#ffffff42,#ffffff20)!important}
.circlebutton:active{transform:scale(.94);background:#ffffff38!important}

/* 手机紧凑布局：减少无意义留白，同时保留足够的触控尺寸 */
@media(max-width:600px){
  main{padding:14px 10px 42px!important}
  .pagehead{margin-bottom:11px!important}
  .pagehead h1{font-size:22px!important;letter-spacing:-.5px!important}
  .adminnav{margin:0 0 12px!important;padding:6px!important;border-radius:13px!important}
  .adminnav a{min-height:38px!important;padding:7px 11px!important}
  .panel,.glasscard{padding:14px!important;border-radius:16px!important}
  .paneltitle{gap:9px!important;margin-bottom:12px!important}
  .paneltitle>div:first-child{flex:0 0 auto!important;min-height:0!important}
  .paneltitle>.buttonrow{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;height:auto!important;gap:8px!important}
  .paneltitle>.buttonrow>*{min-width:0!important;width:100%!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:9px 8px!important}
  .paneltitle p{margin-top:2px!important;line-height:1.4}
  .metrics,.adminmetrics,.periodmetrics,.filtertotals{gap:8px!important;margin-bottom:12px!important}
  .metric{min-height:0!important;padding:12px!important;border-radius:15px!important}
  .metric strong{margin:5px 0!important;font-size:19px!important;line-height:1.2}
  .metric small,.metric span{line-height:1.35}
  .grid,.commoninfogrid,.adminsplit{gap:12px!important}
  .filterbar{gap:9px!important;padding:13px!important}
  .advancedfilters,.exportfilters{gap:10px!important;margin:10px 0 12px!important;padding:11px!important}
  .filterrow,.simplegrid{gap:9px!important}
  .actions{margin-top:14px!important}
  .metrics+.panel,.adminmetrics+.panel,.filterbar+.metrics,
  main>section.panel+section.panel,main>form.panel+section.panel,main>.panel+.panel{margin-top:12px!important}
  .periodhero,.periodmetrics{margin-bottom:12px!important}
  .panel form+table,.panel .advancedfilters+section,.panel .filtertotals+table,
  .panel .viewoptions+table{margin-top:12px!important}
  .homewelcome{margin:0 0 12px!important;padding:17px!important;gap:10px!important;border-radius:19px!important}
  .homewelcome h2{margin:3px 0 4px!important;font-size:24px!important}
  .homeclock strong{font-size:35px!important}
  .homeclock span{margin-top:3px!important}
  .weathercard{margin-bottom:12px!important;padding:16px!important}
  .weathercurrent{margin:16px 0 12px!important}
  .hourlytitle{margin:17px 0 9px!important;padding-top:13px!important}
  .shortcutcard{padding:16px!important}
  .shortcutgrid{gap:8px!important;margin-top:14px!important}
  .shortcutgrid a{min-height:92px!important;padding:11px!important}
  .shortcutgrid span{margin-bottom:7px!important}
  .memolist{gap:8px!important}
  .memoitem{gap:10px!important;padding:12px!important}
  footer{padding:14px 10px 20px!important}
}

/* 常用信息登记：手机保持紧凑横向操作，平板充分利用双栏宽度 */
.commoninfocard{min-height:0!important;overflow:hidden}
.commoninfocard .paneltitle{margin-bottom:12px}
.commoninfoadd{
  align-items:stretch;
  margin:12px 0 14px!important;
}
.commoninfoadd input,.commoninfoadd button{
  box-sizing:border-box;
  height:46px!important;
  min-height:46px!important;
  margin:0!important;
}
.commonlist{border-top:1px solid #e8e6ed}
.commonlist>div{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center!important;
  gap:12px!important;
  min-height:54px;
  padding:8px 2px!important;
}
.commonlist>div>span{
  min-width:0;
  text-align:left;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.commonlist>div>form{
  width:auto!important;
  margin:0!important;
}
.commonlist .danger{
  width:68px!important;
  min-width:68px!important;
  min-height:38px!important;
  padding:7px 10px!important;
  border-radius:10px!important;
}
.commonlist>.empty{margin:0;padding:24px 8px!important}

@media(min-width:700px) and (max-width:900px){
  .commoninfogrid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:14px!important;
  }
  .commoninfocard{padding:17px!important}
  .commoninfoadd{grid-template-columns:minmax(0,1fr) 82px!important;gap:8px!important}
  .commoninfoadd button{width:82px!important}
}

@media(max-width:699px){
  .commoninfogrid{grid-template-columns:1fr!important;gap:12px!important}
  .commoninfoadd{
    grid-template-columns:minmax(0,1fr) 76px!important;
    gap:8px!important;
  }
  .commoninfoadd button{
    width:76px!important;
    padding-inline:8px!important;
  }
}

@media(max-width:350px){
  .commoninfoadd{grid-template-columns:1fr!important}
  .commoninfoadd button{width:100%!important}
}

/* 现代紫色主题与 Dock 导航 */
:root{
  --ink:#21172d;
  --muted:#756b80;
  --green:#6f46d9;
  --mint:#f0ebff;
  --gold:#b69cff;
  --paper:#ffffffdc;
  --line:#dcd3eb;
  --bg:#f5f1fa;
  --purple-950:#58416f;
  --purple-900:#6c5188;
  --purple-800:#8062a2;
  --purple-700:#8664c2;
  --purple-600:#9a78df;
  --purple-500:#ad91e8;
  --purple-100:#f2edff;
}
body{
  background:
    radial-gradient(circle at 7% -4%,#ebe2ff 0,transparent 29%),
    radial-gradient(circle at 96% 8%,#f3ecff 0,transparent 27%),
    linear-gradient(180deg,#fbf9fd 0,#f6f2fa 100%)!important;
}
header{
  border-color:#ffffff3d!important;
  background:
    radial-gradient(circle at 8% 0,#ffffff30 0,transparent 35%),
    linear-gradient(118deg,#75579fef,#8c69b9ed 58%,#a17dcef0)!important;
  color:#fff!important;
  box-shadow:0 14px 38px #66458724!important;
}
header .brand b{color:#fff!important}
header .brand small{color:#dfd0ef!important}
header .user{color:#eadff5!important}
header .user a{
  color:#fff!important;
  padding:5px 9px;
  border:1px solid #ffffff24;
  border-radius:9px;
  background:#ffffff14;
}
header nav a{
  color:#efe7f8!important;
  border:1px solid transparent;
}
header nav a:hover{
  color:#fff!important;
  border-color:#ffffff1e;
  background:#ffffff14!important;
}
.panel,.metric,.glasscard{
  border-color:#ffffffd4!important;
  background:#ffffffe0!important;
  box-shadow:0 14px 38px #3c1c5a0d!important;
}
.primary,button.primary,form button{
  background:linear-gradient(135deg,var(--purple-600),var(--purple-700))!important;
  color:#fff!important;
  box-shadow:0 7px 18px #5726a226!important;
}
.secondary{
  background:linear-gradient(135deg,#f1edff,#e8e0fc)!important;
  color:#5a31a0!important;
}
input:focus,select:focus,textarea:focus{
  border-color:#8c69e9!important;
  box-shadow:0 0 0 4px #7a4ee31c!important;
}
.homewelcome{
  background:
    radial-gradient(circle at 85% 12%,#ffffff38 0,transparent 27%),
    linear-gradient(125deg,#8060ba,#9a79d7 57%,#bba2eb)!important;
  box-shadow:0 20px 50px #7656a522!important;
}
.weathercard{
  background:
    radial-gradient(circle at 88% 8%,#ffffff42 0,transparent 28%),
    linear-gradient(145deg,#8063ba,#9c7cda 55%,#bea4ea)!important;
  box-shadow:0 18px 44px #7556a321!important;
}
.shortcutgrid span{
  background:#f0ebff!important;
  color:#7655ad!important;
}
.adminnav{
  display:flex;
  align-items:center;
  gap:5px!important;
  overflow-x:auto;
  border:1px solid #dcd1ef!important;
  background:linear-gradient(135deg,#ffffffdc,#f4efffe6)!important;
  box-shadow:0 10px 30px #4d286b12!important;
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
}
.adminnav a{
  flex:0 0 auto;
  border:1px solid transparent;
  border-radius:11px;
  color:#665477!important;
  transition:background .18s,color .18s,box-shadow .18s,transform .18s;
}
.adminnav a:hover{background:#eee7ff;color:#55299b!important}
.adminnav a.active{
  border-color:#ffffff32!important;
  background:linear-gradient(135deg,#a184e5,#8060c7)!important;
  color:#fff!important;
  box-shadow:0 7px 18px #7655a726!important;
}

@media(max-width:900px){
  header{
    padding:10px 12px 0!important;
    gap:9px 10px!important;
    border:0!important;
    border-radius:0!important;
    background:
      radial-gradient(circle at 12% -15%,#ffffff35 0,transparent 37%),
      linear-gradient(122deg,#72559cef,#8967b5f2 60%,#a17cccf2)!important;
    box-shadow:0 8px 26px #6545822b!important;
  }
  header .brand>span{
    border:1px solid #ffffff36!important;
    background:linear-gradient(145deg,#b59bea,#8868c2)!important;
    box-shadow:inset 0 1px #ffffff80,0 7px 18px #5e3f802e!important;
  }
  header nav{
    width:calc(100% + 24px)!important;
    margin:0 -12px!important;
    padding:8px 10px 10px!important;
    gap:7px!important;
    border-top:1px solid #ffffff1c!important;
    background:#4d386a2b!important;
    box-shadow:inset 0 1px #ffffff08;
  }
  header nav a{
    min-height:40px!important;
    padding:9px 13px!important;
    border:1px solid #ffffff20!important;
    border-radius:13px!important;
    background:linear-gradient(145deg,#ffffff1f,#ffffff0d)!important;
    color:#f4ecfc!important;
    box-shadow:inset 0 1px #ffffff1f,0 5px 14px #16072024!important;
  }
  header nav a:active{
    transform:scale(.96);
    border-color:#ffffff46!important;
    background:#ffffff2d!important;
    color:#fff!important;
  }
  .adminnav{
    padding:6px!important;
    gap:5px!important;
    border-radius:16px!important;
    scroll-padding-inline:6px;
    background:linear-gradient(135deg,#ffffffea,#f1eaffed)!important;
  }
  .adminnav a{
    min-height:40px!important;
    padding:8px 12px!important;
    border-radius:11px!important;
  }
}

@media(max-width:560px){
  header .user a{padding:4px 7px}
  .adminnav{
    margin-left:0!important;
    margin-right:0!important;
  }
}

/* 天气卡片根据实时天气切换柔和浅色背景 */
.weathercard{
  transition:background .55s ease,box-shadow .55s ease!important;
}
.weathercard.weather-sunny{
  background:
    radial-gradient(circle at 86% 10%,#fff7bda8 0,transparent 30%),
    linear-gradient(145deg,#e8a96f,#edbd82 56%,#f3d39e)!important;
  box-shadow:0 18px 44px #c8935b22!important;
}
.weathercard.weather-cloudy{
  background:
    radial-gradient(circle at 84% 8%,#ffffff66 0,transparent 30%),
    linear-gradient(145deg,#8299ad,#9aafbf 56%,#bdcbd3)!important;
  box-shadow:0 18px 44px #6d849622!important;
}
.weathercard.weather-fog{
  background:
    radial-gradient(circle at 82% 12%,#ffffff70 0,transparent 32%),
    linear-gradient(145deg,#939fa3,#aeb8b9 55%,#cbd1cf)!important;
  box-shadow:0 18px 44px #77838620!important;
}
.weathercard.weather-rain{
  background:
    radial-gradient(circle at 88% 8%,#dff4ff80 0,transparent 29%),
    linear-gradient(145deg,#4f8eaa,#68a8c0 55%,#93c4d2)!important;
  box-shadow:0 18px 44px #397b9728!important;
}
.weathercard.weather-snow{
  background:
    radial-gradient(circle at 86% 9%,#ffffffa0 0,transparent 31%),
    linear-gradient(145deg,#83b3bd,#a3ccd1 55%,#c9e1df)!important;
  box-shadow:0 18px 44px #679aa423!important;
}
.weathercard.weather-thunder{
  background:
    radial-gradient(circle at 86% 9%,#d9e8ed5c 0,transparent 29%),
    linear-gradient(145deg,#566e7c,#6c8794 55%,#90a7ae)!important;
  box-shadow:0 18px 44px #435d6928!important;
}
.superonly{display:none!important}
body.superadmin .superonly{display:flex!important}

.supermetrics{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.supermetrics article span{display:block;margin-top:5px;color:var(--muted);font-size:11px}
.opgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;margin-top:15px}
.opgrid form{display:flex;min-width:0;min-height:112px;margin:0;padding:12px;flex-direction:column;border:1px solid #e5deef;border-radius:16px;background:#faf8fd}
.opgrid button{width:100%;margin:0}
.opgrid small{display:block;margin-top:9px;color:var(--muted);line-height:1.4;text-align:center}
.refreshbutton{align-self:center;white-space:nowrap}
.accessloglist{display:grid;gap:10px}
.accesslogcard{padding:14px 16px;border:1px solid #e5dfeb;border-radius:16px;background:linear-gradient(135deg,#fff,#faf8fc)}
.accessloghead{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.accessloghead time{margin-left:auto;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.accesslogpath{margin:10px 0;padding:9px 11px;border-radius:10px;background:#f2eef8;color:#492d61;font:600 13px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}
.accesslogmeta{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(160px,1fr) minmax(180px,1.5fr);gap:10px}
.accesslogmeta span{min-width:0;overflow-wrap:anywhere}
.accesslogmeta small{display:block;margin-bottom:2px;color:var(--muted)}
.accesslogcard details{margin-top:10px;color:var(--muted)}
.accesslogcard summary{cursor:pointer;font-size:12px}
.accesslogcard details p{margin:7px 0 0;padding:9px;border-radius:9px;background:#f7f5f9;font-size:12px;overflow-wrap:anywhere}
.dbstatusgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.dbstatuscard{overflow:hidden!important}
.dbfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.dbfacts span{padding:11px;border:1px solid #e8e1ef;border-radius:13px;background:#faf8fc}
.dbfacts small,.dbfacts b{display:block}
.dbfacts small{color:var(--muted);font-size:11px}
.dbfacts b{margin-top:3px;font-size:15px}
.dbcountlist{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}
.dbcountlist span{padding:7px 10px;border-radius:99px;background:#f0ebf8;color:#655675;font-size:12px}
.dbcountlist b{margin-left:6px;color:#392648}
.auditlogpanel{margin-top:14px!important}
@media(max-width:1100px){.supermetrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}.opgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
  .supermetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .opgrid{grid-template-columns:1fr}
  .opgrid form{min-height:0}
  .accesslogpanel .paneltitle{display:grid!important;grid-template-columns:1fr}
  .refreshbutton{width:100%;text-align:center}
  .accesslogcard{padding:12px}
  .accessloghead time{width:100%;margin-left:0}
  .accesslogmeta{grid-template-columns:1fr}
  .dbstatusgrid{grid-template-columns:1fr}
  .dbfacts{grid-template-columns:repeat(2,minmax(0,1fr))}
}
.accessrolefilters{display:flex;gap:8px;overflow-x:auto;padding:2px 0 12px;scrollbar-width:none}
.accessrolefilters::-webkit-scrollbar{display:none}
.accessrolefilters a{flex:0 0 auto;padding:8px 14px;border-radius:999px;background:rgba(123,92,177,.08);color:#665579;text-decoration:none;font-size:13px;font-weight:650;border:1px solid rgba(123,92,177,.12)}
.accessrolefilters a.active{background:#a992ca;color:#fff;border-color:#a992ca;box-shadow:0 5px 15px rgba(125,93,167,.18)}
@media(max-width:720px){.accessrolefilters{margin-inline:-2px;padding-bottom:10px}.accessrolefilters a{padding:7px 12px}.dbstatusgrid{grid-template-columns:1fr}}
.exchangehero{padding:22px 4px 12px}.exchangehero span{font-size:11px;letter-spacing:.16em;color:#927caf;font-weight:750}.exchangehero h2{margin:6px 0 4px;font-size:30px}.exchangehero p{margin:0;color:#81778c}
.exchangegroup{margin-top:16px}.exchangechoices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.exchangechoices a{display:grid;grid-template-columns:42px 1fr;grid-template-rows:auto auto;gap:2px 12px;padding:16px;border:1px solid rgba(126,102,158,.14);border-radius:18px;background:rgba(250,248,253,.8);text-decoration:none;color:#4f4659;transition:.18s}.exchangechoices a:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(92,67,126,.1);border-color:#b9a7d1}.exchangechoices span{grid-row:1/3;width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#eee7f6;color:#80659f;font-size:20px}.exchangechoices b{font-size:15px}.exchangechoices small{color:#887e90;line-height:1.4}
.tablewrap{overflow:auto}.unifiedlogtable{min-width:850px}.unifiedlogtable th{white-space:nowrap}.unifiedlogtable td{vertical-align:top}.unifiedlogtable .logdetail{max-width:520px;white-space:normal;word-break:break-word;line-height:1.55}
@media(max-width:720px){.exchangehero{padding-top:8px}.exchangehero h2{font-size:24px}.exchangechoices{grid-template-columns:1fr}.exchangegroup{padding:16px}}
.guestnotice{display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:14px 18px;border-radius:16px;background:linear-gradient(135deg,#f4eefb,#edf5ff);border:1px solid rgba(137,112,172,.16);color:#5f526f}.guestnotice b{white-space:nowrap;padding:5px 10px;border-radius:999px;background:#a68bc6;color:#fff;font-size:12px}.guestnotice span{font-size:13px;line-height:1.55}
@media(max-width:600px){.guestnotice{align-items:flex-start;flex-direction:column;gap:8px;padding:13px}}
.brand a.brandlogo{display:grid;place-items:center;flex:0 0 36px;width:36px!important;height:36px!important;max-width:36px;max-height:36px;border-radius:11px;overflow:hidden;text-decoration:none;cursor:pointer;transition:transform .18s,box-shadow .18s}.brand a.brandlogo img{display:block;width:100%!important;height:100%!important;object-fit:cover}.brand a.brandlogo:hover{transform:translateY(-1px) scale(1.03);box-shadow:0 8px 18px rgba(104,78,137,.16)}
.guestweather{display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,#eaf5ff,#f8fbff);border-color:rgba(87,151,196,.14)}.guestweather h2{margin:4px 0}.guestweather p{margin:0;color:#718493}.guestweather>strong{font-size:42px;font-weight:500;color:#4f7794}.guestimportgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.guestimportgrid form{display:grid;gap:10px;padding:14px;border-radius:16px;background:#f8f6fb}.guestfeefilter{margin:0 0 14px;padding:0;background:transparent;box-shadow:none;border:0}
@media(max-width:650px){.guestimportgrid{grid-template-columns:1fr}.guestweather>strong{font-size:34px}}
@media(max-width:600px){.brand a.brandlogo{flex-basis:32px;width:32px!important;height:32px!important;max-width:32px;max-height:32px;border-radius:9px}}
.perioddashboardhero{align-items:center}.perioddashboardactions{display:flex;gap:10px;flex-wrap:wrap}.periodstatheading{margin:22px 2px 10px}.periodstatheading h2{font-size:18px}.periodstatheading p{margin:4px 0 0;color:var(--muted)}
@media(max-width:650px){.perioddashboardhero{align-items:stretch}.perioddashboardactions{display:grid;grid-template-columns:1fr 1fr}.perioddashboardactions a{text-align:center;padding-inline:8px}.periodstatheading{margin-top:18px}}
.premiumlogin{display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 8% 8%,#d9cef0 0,transparent 31%),radial-gradient(circle at 93% 86%,#d9ebf4 0,transparent 30%),#eeedf2}.loginshell{display:grid;grid-template-columns:minmax(420px,1.15fr) minmax(360px,.85fr);width:min(1050px,100%);min-height:650px;padding:0!important;margin:0!important;border:1px solid #ffffffc9;border-radius:32px;overflow:hidden;background:#fff;box-shadow:0 38px 110px rgba(47,30,70,.22)}.loginvisual{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:46px;background:linear-gradient(145deg,#2d183c 0%,#54346e 52%,#9372bc 100%);color:#fff;overflow:hidden}.loginvisual:before,.loginvisual:after{content:"";position:absolute;border-radius:50%;border:1px solid #ffffff18}.loginvisual:before{width:420px;height:420px;right:-190px;top:-160px}.loginvisual:after{width:290px;height:290px;left:-130px;bottom:-110px}.loginvisualbrand,.loginmobilebrand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.loginvisualbrand .brandlogo,.loginmobilebrand .brandlogo{width:42px;height:42px;flex:0 0 42px;border-radius:13px;overflow:hidden}.loginvisualbrand img,.loginmobilebrand img{width:100%;height:100%;object-fit:cover}.loginvisualbrand b{display:block;font-size:15px}.loginvisualbrand small{display:block;margin-top:2px;font-size:9px;letter-spacing:.16em;color:#d9c9e6}.loginvisualcopy{position:relative;z-index:1;max-width:500px}.loginvisualcopy>span,.loginheading>span{font-size:10px;font-weight:750;letter-spacing:.18em;color:#d8c5e8}.loginvisualcopy h1{margin:14px 0 18px;font-size:38px;line-height:1.28;letter-spacing:-1.5px}.loginvisualcopy p{max-width:430px;color:#e4d9eb;line-height:1.8}.loginfeatures{display:flex;gap:9px;position:relative;z-index:1}.loginfeatures span{padding:7px 11px;border:1px solid #ffffff22;border-radius:999px;background:#ffffff0c;color:#e8dfed;font-size:11px}.premiumloginbox{align-self:stretch;width:auto!important;max-width:none!important;padding:72px 58px!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;backdrop-filter:none!important}.loginmobilebrand{display:none}.loginheading{margin-bottom:28px}.loginheading>span{color:#987daf}.loginheading h2{margin:8px 0 7px;font-size:28px;letter-spacing:-.7px}.loginheading p{margin:0;color:#847a8d}.premiumloginbox label{margin:17px 0;color:#62586a;font-size:13px;font-weight:600}.premiumloginbox input{margin-top:8px;min-height:52px;border-color:#ded9e4;border-radius:13px;background:#faf9fb;padding:13px 15px}.premiumloginbox input:focus{outline:0;border-color:#a98bc8;box-shadow:0 0 0 4px #a98bc818;background:#fff}.premiumloginbox form button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;margin-top:25px;padding:0 18px;border-radius:13px;background:linear-gradient(135deg,#74518f,#4b2d62)}.premiumloginbox form button span{font-size:20px}.loginsecure{text-align:center;margin-top:16px;color:#9a91a1;font-size:11px}.loginsecure span{color:#6d9a82}.premiumloginbox .registerlink{text-align:center;margin-top:32px;color:#8c838f}.premiumloginbox .registerlink a{font-weight:700}
@media(max-width:800px){.premiumlogin{padding:12px}.loginshell{display:block;width:min(460px,100%);min-height:0;border-radius:24px}.loginvisual{display:none}.premiumloginbox{padding:34px 27px 30px!important}.loginmobilebrand{display:flex;margin-bottom:34px;color:#4f3c5e}.loginmobilebrand .brandlogo{width:36px;height:36px;flex-basis:36px;border-radius:10px}.loginheading h2{font-size:25px}.premiumloginbox .registerlink{margin-top:25px}}

/* Apple-inspired sign-in motion and downloadable home guide */
.premiumlogin{
  position:relative;
  isolation:isolate;
  min-height:100dvh;
  overflow:hidden;
  background:
    radial-gradient(circle at 10% 8%,#fffaf0 0,transparent 31%),
    radial-gradient(circle at 88% 14%,#ead9c0 0,transparent 34%),
    radial-gradient(circle at 74% 90%,#f4e6d3 0,transparent 38%),
    linear-gradient(145deg,#eee2d1 0%,#f8f1e6 48%,#eadcc8 100%);
}
.loginambient{position:fixed;inset:-20%;z-index:-2;overflow:hidden;pointer-events:none;filter:saturate(.85) contrast(.98)}
.loginambient:after{content:"";position:absolute;inset:0;opacity:.27;background-image:linear-gradient(115deg,transparent 0 46%,#fff9ef55 47% 48%,transparent 49% 100%),radial-gradient(circle at 50% 50%,transparent 0 58%,#b99c7342 59% 59.4%,transparent 60%);background-size:150% 150%,48vw 48vw;animation:wallpaperSweep 30s ease-in-out infinite alternate}
.loginambient span{position:absolute;border-radius:50%;opacity:.74;filter:blur(24px);will-change:transform}
.loginambient span:nth-child(1){width:46vw;height:46vw;min-width:470px;min-height:470px;left:-3%;top:-2%;background:radial-gradient(circle at 35% 35%,#fff7e8 0,#ead4b6 44%,transparent 72%);animation:ambientDriftA 20s ease-in-out infinite alternate}
.loginambient span:nth-child(2){width:39vw;height:39vw;min-width:400px;min-height:400px;right:-2%;top:4%;background:radial-gradient(circle at 50% 50%,#f6e8d3 0,#d9c09d 46%,transparent 73%);animation:ambientDriftB 24s ease-in-out infinite alternate}
.loginambient span:nth-child(3){width:42vw;height:42vw;min-width:430px;min-height:430px;left:23%;bottom:-13%;background:radial-gradient(circle at 50% 50%,#f3e0c7 0,#e6cfaf 43%,transparent 72%);animation:ambientDriftC 27s ease-in-out infinite alternate}
.loginambient span:nth-child(4){width:28vw;height:28vw;min-width:300px;min-height:300px;right:18%;bottom:7%;background:radial-gradient(circle at 50% 50%,#fffaf1 0,#e9dbc7 48%,transparent 71%);animation:ambientDriftD 18s ease-in-out infinite alternate}
.premiumlogin:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(118deg,#ffffff24,#fffaf07d 43%,#d8c3a622);backdrop-filter:blur(54px);-webkit-backdrop-filter:blur(54px)}
.loginshell{position:relative;z-index:1;border-color:#fffaf1e6;background:#fffdf9d4;box-shadow:0 36px 105px rgba(94,72,46,.19),0 1px 0 #fff inset;backdrop-filter:blur(30px) saturate(1.12);-webkit-backdrop-filter:blur(30px) saturate(1.12);animation:loginShellIn .42s cubic-bezier(.22,.8,.28,1) both}
.loginvisual{background:linear-gradient(150deg,#51404f 0%,#796474 52%,#aa968e 100%)}
.loginvisualgrid{position:absolute;inset:0;opacity:.28;background-image:linear-gradient(#ffffff10 1px,transparent 1px),linear-gradient(90deg,#ffffff10 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(135deg,#000 0,transparent 82%);animation:gridFloat 20s linear infinite}
.loginvisual:before{background:radial-gradient(circle,#ffffff15 0,transparent 68%);border-color:#ffffff1f;animation:visualOrb 14s ease-in-out infinite alternate}
.loginvisual:after{background:radial-gradient(circle,#d9c5ee25 0,transparent 70%);animation:visualOrb 18s ease-in-out infinite alternate-reverse}
.loginvisualbrand,.loginvisualcopy,.loginfeatures{animation:loginContentIn .38s .06s ease-out both}
.premiumloginbox{background:#fffdf9f0!important}
.premiumloginbox input{transition:border-color .2s,box-shadow .2s,background .2s,transform .2s}
.premiumloginbox input:hover{border-color:#c7bad4;background:#fff}
.premiumloginbox form button{box-shadow:0 12px 28px rgba(91,60,116,.22);transition:transform .2s,box-shadow .2s,filter .2s}
.premiumloginbox form button:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(91,60,116,.28);filter:saturate(1.08)}
.loginversion{margin-top:16px;text-align:center;color:#a09383;font-size:10px;letter-spacing:.12em}
.manualdownload{display:grid!important;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:18px!important;padding:20px 22px!important;background:linear-gradient(135deg,#fbf9fd,#f3eef9)!important;border-color:#e8dfef!important}
.manualdownloadicon{display:grid;place-items:center;width:56px;height:56px;border-radius:17px;background:linear-gradient(145deg,#c7b6db,#a58bbf);color:#fff;font-size:25px;font-weight:500;box-shadow:0 10px 24px #8d71a72b}
.manualdownloadcopy h2{margin:4px 0 4px;font-size:18px}
.manualdownloadcopy p{margin:0;color:var(--muted);line-height:1.55}
.manualdownloadcopy small{display:block;margin-top:5px;color:#94869e}
.manualdownloadactions{display:flex;gap:9px;align-items:center}
.manualdownloadactions a{white-space:nowrap;text-align:center}
@keyframes ambientDriftA{to{transform:translate(16vw,10vh) scale(1.1) rotate(12deg)}}
@keyframes ambientDriftB{to{transform:translate(-12vw,16vh) scale(.92) rotate(-14deg)}}
@keyframes ambientDriftC{to{transform:translate(12vw,-15vh) scale(1.14) rotate(18deg)}}
@keyframes ambientDriftD{to{transform:translate(-9vw,-8vh) scale(1.18)}}
@keyframes wallpaperSweep{to{transform:translate3d(5vw,-3vh,0) rotate(2deg);background-position:70% 35%,52% 48%}}
@keyframes visualOrb{to{transform:translate3d(-28px,22px,0) scale(1.08)}}
@keyframes gridFloat{to{background-position:88px 44px}}
@keyframes loginShellIn{from{opacity:.3;transform:translateY(8px) scale(.994)}to{opacity:1;transform:none}}
@keyframes loginContentIn{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:800px){
  .premiumlogin{place-items:start center;overflow-x:hidden;overflow-y:auto;padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(14px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}
  .loginambient{inset:-12%;filter:saturate(.82)}
  .loginambient span{filter:blur(32px)}
  .loginambient span:nth-child(1){left:-45%;top:-10%}
  .loginambient span:nth-child(2){right:-52%;top:18%}
  .loginambient span:nth-child(3){left:-24%;bottom:-22%}
  .loginambient span:nth-child(4){right:-30%;bottom:4%}
  .loginshell{margin:0 auto!important;background:#fffdf9ef}
  .premiumloginbox{padding:30px 27px 26px!important}
  .loginmobilebrand{margin-bottom:28px}
  .loginheading{margin-bottom:22px}
  .premiumloginbox label{margin:14px 0}
  .premiumloginbox .registerlink{margin-top:22px}
  .manualdownload{grid-template-columns:46px minmax(0,1fr);gap:13px;padding:16px!important}
  .manualdownloadicon{width:46px;height:46px;border-radius:14px;font-size:21px}
  .manualdownloadactions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;width:100%}
}
@media(max-width:420px){
  .premiumlogin{padding:max(9px,env(safe-area-inset-top)) max(9px,env(safe-area-inset-right)) max(9px,env(safe-area-inset-bottom)) max(9px,env(safe-area-inset-left))}
  .loginshell{border-radius:22px}
  .premiumloginbox{padding:25px 21px 22px!important}
  .loginmobilebrand{margin-bottom:24px}
}
@media(min-width:801px) and (max-width:900px){
  .premiumlogin{place-items:center;padding:28px}
  .loginshell{display:block;width:min(560px,100%);min-height:0;border-radius:28px}
  .loginvisual{display:none}
  .premiumloginbox{padding:48px 52px 40px!important}
  .loginmobilebrand{display:flex;margin-bottom:34px;color:#4f3c5e}
  .loginmobilebrand .brandlogo{width:38px;height:38px;flex-basis:38px;border-radius:11px}
}
@media(prefers-reduced-motion:reduce){
  .loginambient span,.loginambient:after,.loginshell,.loginvisualgrid,.loginvisual:before,.loginvisual:after,.loginvisualbrand,.loginvisualcopy,.loginfeatures{animation:none!important}
}

/* Version 2 responsive polish: one coherent touch layout for tablet and phone */
@media(min-width:701px) and (max-width:1100px){
  header{
    position:sticky!important;
    top:0!important;
    width:100%!important;
    border-radius:0!important;
  }
  main{max-width:100%;padding:24px 20px 64px!important}
  .pagehead{margin-bottom:18px!important}
  .metrics,.metrics-five,.adminmetrics,.supermetrics{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .filterrow,.exportfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .simplegrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .homegrid{grid-template-columns:1fr!important}
  .shortcutgrid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .commoninfogrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .panel,.glasscard{padding:19px!important}
  .paneltitle{align-items:center!important}
  .tablewrap,.panel{overscroll-behavior-inline:contain}
  .tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .periodtable{min-width:1080px!important}
  dialog.settlementmodal,dialog.homemodal{max-height:calc(100dvh - 32px);overflow:auto}
}

@media(max-width:900px){
  header{
    position:sticky!important;
    top:0!important;
    z-index:50!important;
    padding-top:max(10px,env(safe-area-inset-top))!important;
    backdrop-filter:blur(24px) saturate(1.25)!important;
    -webkit-backdrop-filter:blur(24px) saturate(1.25)!important;
  }
  header nav{scrollbar-width:none;overscroll-behavior-inline:contain}
  header nav a{touch-action:manipulation}
  main{overflow:clip}
  .tablewrap{
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding-bottom:6px;
    scrollbar-width:thin;
    scrollbar-color:#b7a4c9 transparent;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
  }
  .tablewrap table{width:max-content;min-width:100%}
  .tablewrap th:first-child,.tablewrap td:first-child{
    position:sticky;
    left:0;
    z-index:2;
    background:#fffdfef2;
    box-shadow:1px 0 0 #e8e0ee;
  }
  .tablewrap thead th:first-child{z-index:3;background:#f7f3faf5}
  .tablewrap .rowactions{align-items:center!important;flex-direction:row!important;width:auto!important;flex-wrap:nowrap!important;gap:6px!important}
  .tablewrap .rowactions>*{width:auto!important;flex:0 0 auto!important}
  .tablewrap .rowactions a,.tablewrap .rowactions button{width:auto!important;min-height:38px!important;white-space:nowrap!important}
  input,select,textarea{font-size:16px!important}
  .modalclose{flex:0 0 38px;width:38px!important;min-width:38px!important;height:38px!important;border-radius:50%!important}
}

@media(max-width:700px){
  body{font-size:14px;padding-bottom:env(safe-area-inset-bottom)}
  header{grid-template-columns:minmax(0,1fr) auto!important;padding-left:10px!important;padding-right:10px!important}
  header .brand b{font-size:12.5px!important}
  header .brand small{display:none}
  header .user{max-width:42vw;overflow:hidden;text-overflow:ellipsis}
  header nav{width:calc(100% + 20px)!important;margin-inline:-10px!important;padding:7px 9px 9px!important}
  header nav a{min-height:38px!important;padding:8px 11px!important;font-size:12px!important}
  main{padding:13px 9px 38px!important}
  .pagehead{margin:0 2px 10px!important}
  .pagehead h1{font-size:21px!important;line-height:1.25}
  .panel,.glasscard{padding:13px!important;border-radius:16px!important}
  .metrics,.metrics-five,.adminmetrics,.periodmetrics,.perioddetailmetrics,.filtertotals,.supermetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .metric{min-height:0!important;padding:11px!important}
  .metric strong{font-size:18px!important;letter-spacing:-.35px!important}
  .paneltitle{gap:8px!important;margin-bottom:11px!important}
  .paneltitle h2,.panel h2{font-size:16px}
  .paneltitle p{font-size:12px!important}
  .paneltitle>.buttonrow{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .paneltitle>.buttonrow>*,.paneltitle>.primary,.paneltitle>.secondary{min-height:42px!important}
  .advancedfilters,.exportfilters,.filterbar{padding:10px!important;border-radius:14px!important}
  .simplegrid,.filterrow,.exportfilters{grid-template-columns:1fr!important}
  .filteractions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .simpleform{padding-bottom:76px!important}
  .simpleform .actions{
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    padding:8px!important;
    border-radius:14px!important;
    backdrop-filter:blur(18px);
    -webkit-backdrop-filter:blur(18px);
  }
  .actions{gap:7px!important}
  .actions>*{min-height:42px!important}
  .homewelcome{padding:15px!important}
  .homewelcome h2{font-size:23px!important}
  .homeclock strong{font-size:32px!important}
  .weathercard,.shortcutcard{padding:14px!important}
  .weathercurrent{gap:13px!important}
  .weathericon{font-size:46px!important}
  .weathercurrent strong{font-size:45px!important}
  .shortcutgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .shortcutgrid a{min-height:88px!important}
  .commoninfoadd{grid-template-columns:minmax(0,1fr) 74px!important}
  .commonlist>div{min-height:50px!important}
  .perioddashboardactions{grid-template-columns:1fr!important}
  .perioddetailactions{gap:7px!important}
  .billhero{padding-bottom:17px!important}
  .billfacts{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .manualdownload{gap:11px!important;margin-top:12px!important;padding:14px!important}
  dialog.settlementmodal,dialog.homemodal{
    width:calc(100vw - 16px)!important;
    max-width:none!important;
    max-height:calc(100dvh - max(16px,env(safe-area-inset-top)))!important;
    margin:auto 8px 8px!important;
    border-radius:22px 22px 16px 16px!important;
  }
  dialog.settlementmodal form,dialog.homemodal form{padding:17px!important}
  .modalactions{display:grid!important;grid-template-columns:1fr 1fr!important}
  .modalactions button{width:100%!important;min-width:0!important}
  footer{padding:12px 8px max(20px,env(safe-area-inset-bottom))!important}
}


@media(max-width:380px){
  .metrics,.metrics-five,.adminmetrics,.periodmetrics,.perioddetailmetrics,.filtertotals,.supermetrics{grid-template-columns:1fr!important}
  .paneltitle>.buttonrow,.filteractions,.manualdownloadactions,.modalactions{grid-template-columns:1fr!important}
  .commoninfoadd{grid-template-columns:1fr!important}
  .commoninfoadd button{width:100%!important}
  header .user{max-width:38vw}
}

/* Version 2.0.1: restrained future glass, animated soft light and refined shortcuts */
.appbody{
  position:relative;
  isolation:isolate;
  min-height:100vh;
  overflow-x:hidden;
  background:
    linear-gradient(155deg,#fbf9fd 0%,#f7f3fb 43%,#faf8fc 100%)!important;
}
.systemambient{
  position:fixed;
  inset:-16%;
  z-index:-1;
  overflow:hidden;
  pointer-events:none;
  filter:saturate(.86);
}
.systemambient:after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.2;
  background:
    linear-gradient(118deg,transparent 0 46%,#ffffff8a 47% 48%,transparent 49% 100%),
    radial-gradient(circle at 50% 50%,transparent 0 63%,#8c73b72b 63.2% 63.6%,transparent 64%);
  background-size:165% 165%,52vw 52vw;
  animation:systemLightSweep 34s ease-in-out infinite alternate;
}
.systemambient span{
  position:absolute;
  border-radius:50%;
  opacity:.42;
  filter:blur(62px);
  will-change:transform;
}
.systemambient span:nth-child(1){
  width:43vw;height:43vw;min-width:430px;min-height:430px;
  left:-4%;top:-8%;
  background:radial-gradient(circle,#e9ddfb 0,#d9c5f0 43%,transparent 71%);
  animation:systemGlowA 26s ease-in-out infinite alternate;
}
.systemambient span:nth-child(2){
  width:38vw;height:38vw;min-width:380px;min-height:380px;
  right:-4%;top:5%;
  background:radial-gradient(circle,#e4ecfa 0,#d4dff2 45%,transparent 72%);
  animation:systemGlowB 31s ease-in-out infinite alternate;
}
.systemambient span:nth-child(3){
  width:40vw;height:40vw;min-width:410px;min-height:410px;
  left:23%;bottom:-18%;
  background:radial-gradient(circle,#f3e9dc 0,#eadbc9 44%,transparent 72%);
  animation:systemGlowC 35s ease-in-out infinite alternate;
}
.systemambient span:nth-child(4){
  width:29vw;height:29vw;min-width:300px;min-height:300px;
  right:19%;bottom:8%;
  background:radial-gradient(circle,#eee6fb 0,#ddd0f2 46%,transparent 73%);
  animation:systemGlowD 23s ease-in-out infinite alternate;
}
.appbody header{
  border-bottom-color:#ffffff4f!important;
  background:
    radial-gradient(circle at 12% -20%,#ffffff35 0,transparent 35%),
    linear-gradient(116deg,#795da4f2,#8c6db9f0 56%,#9c7bc5f2)!important;
  box-shadow:0 15px 42px #5f3e7e20!important;
}
.appbody header:after{
  content:"";
  position:absolute;
  left:4vw;right:4vw;bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,#ffffff69,transparent);
  pointer-events:none;
}
.appbody header nav a{
  position:relative;
  transition:background .2s ease,color .2s ease,transform .2s ease,border-color .2s ease;
}
.appbody header nav a.is-current{
  border-color:#ffffff22!important;
  background:#ffffff1c!important;
  color:#fff!important;
  box-shadow:inset 0 1px 0 #ffffff22;
}
.appbody header nav a.is-current:after{
  content:"";
  position:absolute;
  left:25%;right:25%;bottom:3px;
  height:2px;
  border-radius:2px;
  background:#efe7ff;
  box-shadow:0 0 10px #fff;
}
.appbody .panel,.appbody .metric,.appbody .glasscard{
  border-color:#ffffffdf!important;
  background:linear-gradient(145deg,#ffffffe9,#fcf9ffe0)!important;
  box-shadow:0 18px 50px #4b2b6810,0 1px 0 #fff inset!important;
  backdrop-filter:blur(24px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(24px) saturate(1.08)!important;
}
.appbody .homewelcome{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 86% 8%,#ffffff42 0,transparent 28%),
    linear-gradient(125deg,#8061b4,#9877cf 58%,#b49be1)!important;
}
.appbody .homewelcome:after{
  content:"";
  position:absolute;
  z-index:-1;
  width:44%;height:190%;
  left:-58%;top:-45%;
  transform:rotate(18deg);
  background:linear-gradient(90deg,transparent,#ffffff25,transparent);
  animation:welcomeSheen 12s ease-in-out infinite;
  pointer-events:none;
}
.appbody .weathercard{
  background:
    radial-gradient(circle at 88% 8%,#ffffff42 0,transparent 28%),
    linear-gradient(145deg,#8063ba,#9c7cda 55%,#bea4ea)!important;
}
.appbody .shortcutcard{
  position:relative;
  background:linear-gradient(150deg,#fffefef0,#faf7ffee)!important;
}
.shortcutgrid a{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-color:#e9e1f0!important;
  background:linear-gradient(145deg,#fff,#f8f4fc)!important;
  box-shadow:0 9px 24px #50306b0a,0 1px 0 #fff inset;
  transition:transform .22s cubic-bezier(.2,.75,.25,1),box-shadow .22s ease,border-color .22s ease!important;
}
.shortcutgrid a:after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  opacity:0;
  background:radial-gradient(circle at 18% 10%,#e8dafe 0,transparent 48%);
  transition:opacity .22s ease;
}
.shortcutgrid .shortcuticon{
  display:grid!important;
  place-items:center!important;
  width:44px!important;
  height:44px!important;
  margin:0 0 12px!important;
  border:1px solid #ffffffb8;
  border-radius:14px!important;
  color:#68479c!important;
  background:linear-gradient(145deg,#f0e8ff,#dfd1f4)!important;
  box-shadow:0 9px 20px #6d4c9d1d,0 1px 0 #fff inset;
}
.shortcutgrid .shortcuticon-create{
  color:#5a60a9!important;
  background:linear-gradient(145deg,#edf0ff,#dce1fb)!important;
}
.shortcutgrid .shortcuticon-period{
  color:#7a568e!important;
  background:linear-gradient(145deg,#f5eafd,#e4d4ef)!important;
}
.shortcutgrid .shortcuticon-export{
  color:#4d6d9e!important;
  background:linear-gradient(145deg,#ebf3ff,#d7e5f7)!important;
}
.shortcuticon svg{
  width:25px;
  height:25px;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.shortcuticon svg .iconfill{fill:currentColor;stroke:none}
.shortcutgrid b{font-size:14.5px!important;letter-spacing:-.1px}
.shortcutgrid small{margin-top:3px!important;color:#817889!important}
@media(hover:hover){
  .shortcutgrid a:hover{
    transform:translateY(-4px)!important;
    border-color:#dacbea!important;
    box-shadow:0 17px 34px #54337117,0 1px 0 #fff inset!important;
  }
  .shortcutgrid a:hover:after{opacity:1}
  .shortcutgrid a:hover .shortcuticon{transform:scale(1.035)}
}
.shortcutgrid .shortcuticon{transition:transform .22s ease}
@keyframes systemGlowA{to{transform:translate3d(15vw,10vh,0) scale(1.1) rotate(10deg)}}
@keyframes systemGlowB{to{transform:translate3d(-12vw,14vh,0) scale(.94) rotate(-12deg)}}
@keyframes systemGlowC{to{transform:translate3d(12vw,-13vh,0) scale(1.12) rotate(16deg)}}
@keyframes systemGlowD{to{transform:translate3d(-8vw,-7vh,0) scale(1.16)}}
@keyframes systemLightSweep{to{transform:translate3d(4vw,-3vh,0) rotate(1.5deg);background-position:72% 32%,51% 48%}}
@keyframes welcomeSheen{0%,18%{left:-58%;opacity:0}32%{opacity:1}55%,100%{left:115%;opacity:0}}
@media(max-width:900px){
  .systemambient{inset:-9%;filter:saturate(.78)}
  .systemambient span{opacity:.34;filter:blur(70px)}
  .appbody header:after{left:10px;right:10px}
}
@media(max-width:700px){
  .systemambient span:nth-child(1){left:-70%;top:-12%}
  .systemambient span:nth-child(2){right:-78%;top:22%}
  .systemambient span:nth-child(3){left:-48%;bottom:-20%}
  .systemambient span:nth-child(4){right:-52%;bottom:8%}
  .shortcutgrid .shortcuticon{
    width:40px!important;
    height:40px!important;
    margin-bottom:9px!important;
    border-radius:13px!important;
  }
  .shortcuticon svg{width:23px;height:23px}
  .shortcutgrid b{font-size:13.5px!important}
}
@media(prefers-reduced-motion:reduce){
  .systemambient span,.systemambient:after,.appbody .homewelcome:after{animation:none!important}
  .shortcutgrid a,.shortcutgrid .shortcuticon{transition:none!important}
}

/* Version 2.0.2: responsive feedback and reduced background work */
.success,.error{
  overflow:hidden;
  transition:opacity .32s ease,transform .32s ease,filter .32s ease!important;
}
.success.notice-dismissing,.error.notice-dismissing{
  opacity:0!important;
  transform:translateY(-7px)!important;
  filter:blur(2px);
  pointer-events:none;
}
.ui-paused .systemambient span,
.ui-paused .systemambient:after,
.ui-paused .loginambient span,
.ui-paused .loginambient:after,
.ui-paused .homewelcome:after,
.ui-paused .loginvisualgrid,
.ui-paused .loginvisual:before,
.ui-paused .loginvisual:after{
  animation-play-state:paused!important;
}
.homeclock strong,#beijingClock{
  font-variant-numeric:tabular-nums;
}
@media(max-width:420px){
  .homeclock strong{font-size:29px!important;letter-spacing:-1.4px!important}
}

/* Version 2.0.3: memo drill-down, stable operation notices and softer dialog motion */
.notice-region{
  position:fixed;
  z-index:10000;
  top:94px;
  right:max(18px,env(safe-area-inset-right));
  display:grid;
  width:min(420px,calc(100vw - 28px));
  min-height:54px;
  gap:9px;
  pointer-events:none;
}
.login .notice-region{top:max(16px,env(safe-area-inset-top));}
.notice-region:empty{visibility:hidden;}
.notice-region .success,.notice-region .error{
  width:100%;
  margin:0!important;
  padding:14px 17px!important;
  border:1px solid #ffffffc7;
  border-radius:16px!important;
  opacity:0;
  transform:translate3d(0,-12px,0) scale(.985);
  filter:blur(3px);
  box-shadow:0 18px 50px #2a21472b;
  backdrop-filter:blur(22px) saturate(1.25);
  -webkit-backdrop-filter:blur(22px) saturate(1.25);
  transition:opacity .46s cubic-bezier(.2,.8,.2,1),transform .46s cubic-bezier(.2,.8,.2,1),filter .46s ease!important;
  pointer-events:auto;
}
.notice-region .success{background:#effaf4ed;color:#17613e;}
.notice-region .error{background:#fff1f0f0;color:#a32d28;}
.notice-region .notice-visible{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
  filter:blur(0);
}
.notice-region .notice-dismissing{
  opacity:0!important;
  transform:translate3d(8px,-8px,0) scale(.985)!important;
  filter:blur(3px)!important;
}
.memoitembutton{
  width:100%;
  min-width:0;
  text-align:left;
  color:var(--ink);
  transition:border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.memoitembutton:hover{
  border-color:#d8d1ef;
  background:#fff;
  box-shadow:0 9px 25px #362b5a0d;
  transform:translateY(-1px);
}
.memoitembutton:focus-visible,.memoallitem:focus-visible{
  outline:3px solid #735cdf35;
  outline-offset:2px;
}
.memotitlebutton{
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent!important;
  box-shadow:none!important;
  color:var(--ink)!important;
  font-size:17px;
  font-weight:680;
  letter-spacing:-.4px;
}
.memotitlebutton::after{
  content:"查看全部";
  margin-left:9px;
  padding:3px 8px;
  border-radius:99px;
  background:#efedff;
  color:#6651c2;
  font-size:10px;
  font-weight:650;
  letter-spacing:0;
}
.memotitlebutton:hover{color:#6049bd!important;}
.memotitlebutton:focus-visible{outline:3px solid #735cdf35;outline-offset:4px;}
.memocardcopy{display:block;min-width:0;flex:1;}
.memocardcopy p{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.memoarrow{
  display:grid;
  place-items:center;
  flex:0 0 30px;
  width:30px;
  height:30px;
  border-radius:50%;
  background:#eeebfb;
  color:#6b54ca;
  font-size:25px;
  font-weight:300;
  line-height:1;
}
.memobrowser{width:min(94vw,650px);}
.memomanager{width:min(94vw,620px);}
.memodialogbody{padding:25px;}
.memodialogbody>.modalhead{margin-bottom:18px;}
.memoalllist{
  display:grid;
  max-height:min(62vh,610px);
  gap:9px;
  padding:2px;
  overflow:auto;
  overscroll-behavior:contain;
}
.memoallitem{
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  min-height:66px;
  gap:14px;
  padding:12px 14px;
  border:1px solid #e9e7ef;
  border-radius:15px;
  background:#faf9fc;
  color:var(--ink);
  text-align:left;
  box-shadow:none;
}
.memoallitem:hover{border-color:#d9d1ef;background:#fff;}
.memoallitem>span:first-child{display:block;min-width:0;}
.memoallitem b,.memoallitem small{display:block;}
.memoallitem b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.memoallitem small{margin-top:4px;color:var(--muted);font-size:12px;}
.memoallitem>span:last-child{color:#7a66ca;font-size:24px;}
.memometadata{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:2px 0 18px;
}
.memometadata span{
  min-width:0;
  padding:10px;
  border:1px solid #ebe8f0;
  border-radius:13px;
  background:#faf9fc;
  color:var(--muted);
  font-size:11px;
}
.memometadata strong{
  display:block;
  margin-top:3px;
  overflow-wrap:anywhere;
  color:var(--ink);
  font-size:12px;
  font-weight:620;
}
.homemodal .memodialogbody>form{
  padding:0;
}
.memoeditform{display:grid;gap:14px;}
.memodeleteform{
  display:block!important;
  margin-top:12px;
  padding-top:14px!important;
  border-top:1px solid #ece9f1;
}
.memodeleteform button{width:100%;}
.memoreadonly{
  padding:18px;
  border:1px solid #ebe8f0;
  border-radius:16px;
  background:#faf9fc;
}
.memoreadonly h4{margin:0 0 8px;font-size:17px;}
.memoreadonly p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#4d4b52;}
dialog.homemodal[open]{
  animation:memoDialogIn .28s cubic-bezier(.2,.8,.2,1);
}
dialog.homemodal[open]::backdrop{
  animation:memoBackdropIn .25s ease both;
}
@keyframes memoDialogIn{
  from{opacity:0;transform:translateY(14px) scale(.975);filter:blur(3px)}
  to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
}
@keyframes memoBackdropIn{
  from{opacity:0}
  to{opacity:1}
}
@media(max-width:900px){
  .notice-region{
    top:calc(max(10px,env(safe-area-inset-top)) + 102px);
    right:12px;
    width:calc(100vw - 24px);
  }
  .login .notice-region{top:max(12px,env(safe-area-inset-top));}
}
@media(max-width:650px){
  .memoitembutton{align-items:center!important;flex-direction:row!important;}
  .memodialogbody{padding:17px;}
  .memometadata{grid-template-columns:1fr;}
  .memometadata span{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;}
  .memometadata strong{margin-top:0;}
  .memoalllist{max-height:55vh;}
}
@media(prefers-reduced-motion:reduce){
  dialog.homemodal[open],dialog.homemodal[open]::backdrop{animation:none!important;}
  .notice-region .success,.notice-region .error{transition:opacity .15s ease!important;}
}

/* Secure backup deletion and clearer personal-ledger cash flow */
.backupdeletemodal{width:min(92vw,500px);}
.backupdeletefile{
  display:grid;
  gap:3px;
  padding:13px 15px;
  border:1px solid #e8e4ee;
  border-radius:14px;
  background:#faf8fc;
}
.backupdeletefile small{color:var(--muted);}
.backupdeletefile strong{overflow-wrap:anywhere;color:#332e3a;}
.backupdeletewarning{
  margin:0;
  padding:11px 13px;
  border-radius:12px;
  background:#fff4f1;
  color:#9c352f;
  font-size:12px;
}
.backupactions .backupdeletebutton{margin:0;}
.personal-hidden-person{display:none!important;}
.personal-ledger-table td.personalflowcell{
  font-weight:750;
  letter-spacing:.01em;
  white-space:nowrap;
}
.personal-ledger-table td.personalflow-in{
  color:#16803d!important;
  background:#effbf3!important;
}
.personal-ledger-table td.personalflow-out{
  color:#cf2e2e!important;
  background:#fff1f0!important;
}
.personal-ledger-table td.personalmoney{
  font-weight:760;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.personal-ledger-table td.personalmoney-in{color:#16803d!important;}
.personal-ledger-table td.personalmoney-out{color:#cf2e2e!important;}
.personal-ledger-table tbody tr:has(td.personalflow-in) td:first-child{box-shadow:inset 3px 0 #2da864;}
.personal-ledger-table tbody tr:has(td.personalflow-out) td:first-child{box-shadow:inset 3px 0 #e05252;}
@media(max-width:650px){
  .backupdeletemodal .modalactions{grid-template-columns:1fr!important;}
  .backupactions{flex-wrap:wrap!important;}
}

/* Version 2.0.6: location-aware weather, reminders, centered feedback and split ledgers */
.appbody{
  background:
    linear-gradient(155deg,#f5f1f8 0%,#f0ebf5 43%,#f4f0f7 100%)!important;
}
.appbody .panel,.appbody .metric,.appbody .glasscard{
  background:linear-gradient(145deg,#fffdfeea,#f8f4fbe4)!important;
}
.notice-region{
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%);
}
.login .notice-region{left:50%!important;right:auto!important;}
.pageheadtitle{
  display:flex;
  align-items:center;
  min-width:0;
  gap:12px;
}
.pageback{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:38px;
  gap:4px;
  padding:7px 11px 7px 8px;
  border:1px solid #e2dce9;
  border-radius:12px;
  background:#ffffffa8;
  color:#594d67;
  box-shadow:0 5px 18px #4a315411;
}
.pageback span{font-size:27px;font-weight:300;line-height:18px;}
.pageback b{font-size:12px;font-weight:650;}
.pageback{width:38px;min-width:38px;padding:0!important;display:grid!important;place-items:center}
.pageback span{display:block;line-height:1!important;transform:translateY(-2px)}
.pageback:hover{background:#fff;color:#6049bd;}
.memoreminderbadge{
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  padding:2px 7px;
  border-radius:99px;
  background:#fff0cf;
  color:#8a5d05;
  font-size:10px;
  font-weight:700;
  vertical-align:middle;
}
.memoremindtoggle{
  display:flex!important;
  align-items:flex-start;
  gap:11px;
  padding:13px;
  border:1px solid #e5dfed;
  border-radius:14px;
  background:#faf7fd;
  color:var(--ink)!important;
}
.memoremindtoggle input{
  flex:0 0 20px;
  width:20px!important;
  height:20px!important;
  min-height:20px!important;
  margin:1px 0 0!important;
  accent-color:#7057d9;
}
.memoremindtoggle span,.memoremindtoggle b,.memoremindtoggle small{display:block;}
.memoremindtoggle small{margin-top:3px;color:var(--muted);font-weight:400;}
.memoreminderdialog{width:min(94vw,620px);}
.memoreminderdialog .modalactions{margin-top:16px;}
.memoreminderdialog .modalactions button{min-width:130px;}
.reminderitem small{
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  white-space:normal;
}
.weathercard.weather-locating::after{
  content:"正在使用设备精确定位…";
  position:absolute;
  right:18px;
  bottom:14px;
  padding:5px 9px;
  border-radius:99px;
  background:#ffffff2b;
  color:#fff;
  font-size:10px;
  backdrop-filter:blur(10px);
}
.appbody .weathercard{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background-size:140% 140%!important;
  animation:weatherGradientDrift 16s ease-in-out infinite alternate;
}
.appbody .weathercard::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-38%;
  opacity:.62;
  background:
    radial-gradient(circle at 28% 42%,#ffffff5e 0 7%,transparent 24%),
    radial-gradient(circle at 72% 60%,#ffffff36 0 9%,transparent 28%);
  filter:blur(10px);
  animation:weatherGlowFloat 13s ease-in-out infinite alternate;
  pointer-events:none;
}
.appbody .weathercard.weather-sunny{
  background:
    radial-gradient(circle at 84% 8%,#fff8cbd6 0,transparent 28%),
    linear-gradient(145deg,#d99b5f,#e8b876 54%,#efd19a)!important;
  box-shadow:0 18px 44px #bd814629!important;
}
.appbody .weathercard.weather-cloudy{
  background:
    radial-gradient(circle at 84% 8%,#ffffff75 0,transparent 30%),
    linear-gradient(145deg,#718a9f,#91a8b9 54%,#b6c5cf)!important;
  box-shadow:0 18px 44px #5b728628!important;
}
.appbody .weathercard.weather-fog{
  background:
    radial-gradient(circle at 82% 12%,#ffffff8c 0,transparent 34%),
    linear-gradient(145deg,#849397,#a4b0b1 55%,#c4cdca)!important;
  box-shadow:0 18px 44px #66747725!important;
}
.appbody .weathercard.weather-rain{
  background:
    radial-gradient(circle at 88% 8%,#dff5ff8f 0,transparent 29%),
    linear-gradient(145deg,#397b99,#5797b2 55%,#83b6c8)!important;
  box-shadow:0 18px 44px #28678230!important;
}
.appbody .weathercard.weather-rain::before{
  inset:-20%;
  opacity:.24;
  background:repeating-linear-gradient(112deg,transparent 0 18px,#e8f8ff 19px 21px,transparent 22px 38px);
  filter:blur(.2px);
  animation:weatherRain 3.8s linear infinite;
}
.appbody .weathercard.weather-snow{
  background:
    radial-gradient(circle at 86% 9%,#ffffffbd 0,transparent 31%),
    linear-gradient(145deg,#70a3ae,#94c0c7 55%,#c1dbd9)!important;
  box-shadow:0 18px 44px #568b9628!important;
}
.appbody .weathercard.weather-thunder{
  background:
    radial-gradient(circle at 86% 9%,#dcebf064 0,transparent 29%),
    linear-gradient(145deg,#435d6b,#5c7683 55%,#829ba4)!important;
  box-shadow:0 18px 44px #304b5835!important;
}
.appbody .weathercard.weather-thunder::before{
  animation:weatherLightning 7s ease-in-out infinite;
}
.weathericon{animation:weatherIconBreathe 4.8s ease-in-out infinite}
.weathersource{
  margin-top:10px;
  color:#ffffffa8;
  font-size:10px;
  letter-spacing:.02em;
  text-align:right;
}
@keyframes weatherGradientDrift{
  from{background-position:0% 20%}
  to{background-position:100% 78%}
}
@keyframes weatherGlowFloat{
  from{transform:translate3d(-4%,-3%,0) rotate(-4deg) scale(.96)}
  to{transform:translate3d(8%,5%,0) rotate(6deg) scale(1.08)}
}
@keyframes weatherRain{
  from{transform:translate3d(-8%,-18%,0)}
  to{transform:translate3d(8%,18%,0)}
}
@keyframes weatherLightning{
  0%,45%,49%,53%,100%{opacity:.28}
  47%,51%{opacity:.88}
}
@keyframes weatherIconBreathe{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-3px) scale(1.035)}
}
@media(prefers-reduced-motion:reduce){
  .appbody .weathercard,.appbody .weathercard::before,.weathericon{animation:none!important}
}

/* 管理后台统一工作区 */
.adminarea main{
  width:min(1540px,calc(100% - 32px));
}
.adminarea .pagehead{
  margin-bottom:15px;
}
.adminarea .adminnav{
  position:sticky;
  z-index:12;
  top:10px;
  margin-bottom:18px;
  padding:7px;
  border-radius:18px!important;
}
.adminarea .panel{
  border:1px solid #e7e0ef;
  border-radius:22px;
  background:linear-gradient(145deg,#fffffff2,#faf8fcf0);
  box-shadow:0 14px 42px #4c32670c,0 1px 0 #fff inset;
}
.adminarea .paneltitle{
  padding-bottom:14px;
  border-bottom:1px solid #ece6f1;
}
.adminarea .paneltitle h2,.adminarea .panel>h2{
  letter-spacing:-.025em;
}
.adminarea .adminmetrics{
  gap:12px;
}
.adminarea .adminmetrics article{
  min-height:108px;
  border:1px solid #e5ddec;
  border-radius:19px;
  background:linear-gradient(145deg,#fff,#f7f3fb);
  box-shadow:0 10px 28px #51346a0c;
}
.adminarea table{
  border-collapse:separate;
  border-spacing:0;
}
.adminarea th{
  position:sticky;
  z-index:1;
  top:0;
  background:#f4f0f8f2!important;
  color:#6b5b77;
  font-size:11px;
  letter-spacing:.04em;
  text-transform:none;
}
.adminarea td{
  border-bottom:1px solid #eee9f2;
}
.adminarea tbody tr{
  transition:background .18s ease,transform .18s ease;
}
.adminarea tbody tr:hover{
  background:#f8f4fc;
}
.adminarea .adminsplit{
  align-items:start;
  gap:18px;
  grid-template-columns:minmax(280px,.72fr) minmax(0,1.7fr);
}
.adminarea .adminsplit>form.panel{
  position:sticky;
  top:88px;
}
.adminarea .rowactions{
  align-items:center;
  gap:7px;
}
.adminarea .rowactions form{
  padding:0;
  border:0;
  background:transparent;
}
.superadmincolumns{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(340px,.72fr);
  gap:18px;
  align-items:start;
  margin-bottom:18px;
}
.superdatabasecolumn{
  position:sticky;
  top:88px;
  min-width:0;
}
.supercolumnhead{
  margin-bottom:11px;
  padding:3px 5px;
}
.supercolumnhead h2{
  margin:4px 0 2px;
  font-size:20px;
}
.supercolumnhead p{margin:0;color:var(--muted);font-size:12px}
.superdatabasecolumn .dbstatusgrid{
  display:grid;
  grid-template-columns:1fr!important;
  gap:12px;
}
.superdatabasecolumn .dbstatuscard{
  margin:0!important;
  padding:17px;
  border-radius:20px;
}
.superdatabasecolumn .dbstatuscard .paneltitle{
  align-items:flex-start;
  gap:8px;
  margin-bottom:12px;
  padding-bottom:10px;
}
.superdatabasecolumn .dbstatuscard .paneltitle h2{font-size:17px}
.superdatabasecolumn .dbfacts{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.superdatabasecolumn .dbcountlist{
  grid-template-columns:1fr;
}
.superpeoplepanel{
  margin:0!important;
  padding:20px;
}
.superpeoplelist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.superpersoncard{
  min-width:0;
  padding:15px;
  border:1px solid #e7e0ec;
  border-radius:19px;
  background:linear-gradient(145deg,#fff,#f8f5fb);
  box-shadow:0 9px 24px #4c306707;
}
.superpersoncard.is-online{
  border-color:#bfe5d3;
  background:linear-gradient(145deg,#fbfffd,#f2faf6);
}
.superpersonhead{
  display:flex;
  align-items:center;
  gap:10px;
}
.presenceavatar{
  position:relative;
  display:grid;
  flex:0 0 40px;
  width:40px;
  height:40px;
  place-items:center;
  border-radius:14px;
  background:linear-gradient(145deg,#ded1f4,#bda6e4);
  color:#5f3a95;
  font-weight:800;
}
.presenceavatar i{
  position:absolute;
  right:-2px;
  bottom:-2px;
  width:11px;
  height:11px;
  border:2px solid #fff;
  border-radius:50%;
  background:#9d9aa0;
}
.is-online .presenceavatar i{
  background:#31b978;
  box-shadow:0 0 0 4px #31b9781f;
}
.superpersonhead>div:nth-child(2){min-width:0;flex:1}
.superpersonhead h3{overflow:hidden;margin:0;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.superpersonhead p{overflow:hidden;margin:3px 0 0;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.presencetag{
  flex:0 0 auto;
  padding:5px 8px;
  border-radius:99px;
  background:#efedf1;
  color:#77717b;
  font-size:10px;
  font-weight:700;
}
.is-online .presencetag{background:#dff5e9;color:#228b5b}
.superpersonfacts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin-top:12px;
}
.superpersonfacts span{
  min-width:0;
  padding:8px 9px;
  border-radius:11px;
  background:#ffffffa8;
}
.superpersonfacts small,.personlocation small{
  display:block;
  margin-bottom:3px;
  color:#8b8192;
  font-size:9px;
}
.superpersonfacts b{
  display:block;
  overflow:hidden;
  color:#473d4d;
  font-size:11px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.personlocation{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
  padding:10px;
  border:1px solid #e9e2ed;
  border-radius:13px;
  background:linear-gradient(135deg,#f5f0fa,#fbf9fd);
}
.personlocation>div:first-child{min-width:0;flex:1}
.personlocation strong,.personlocation>div:first-child>span{display:block}
.personlocation strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.personlocation>div:first-child>span{margin-top:3px;color:var(--muted);font-size:9px}
.coordinates{
  display:grid;
  flex:0 0 auto;
  gap:3px;
  color:#766b7e;
  font-size:9px;
  text-align:right;
}
.coordinates b{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#4f4059}
.superpersoncard details{margin-top:9px;color:var(--muted);font-size:10px}
.superpersoncard details p{overflow-wrap:anywhere;line-height:1.5}
.superops,.auditlogpanel{margin-top:18px!important}
.auditlogpanel .tablewrap{max-height:680px;overflow:auto}
.unifiedlogtable th{top:0}

@media(max-width:1180px){
  .superadmincolumns{grid-template-columns:1fr}
  .superdatabasecolumn{position:static}
  .superdatabasecolumn .dbstatusgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:850px){
  .adminarea main{width:min(100% - 20px,1540px)}
  .adminarea .adminsplit{grid-template-columns:1fr}
  .adminarea .adminsplit>form.panel{position:static}
  .superpeoplelist{grid-template-columns:1fr}
  .superdatabasecolumn .dbstatusgrid{grid-template-columns:1fr!important}
}
@media(max-width:560px){
  .adminarea main{width:calc(100% - 14px)}
  .adminarea .panel{padding:14px;border-radius:17px}
  .superpeoplepanel{padding:13px}
  .superpersoncard{padding:12px;border-radius:15px}
  .personlocation{align-items:stretch;flex-direction:column}
  .coordinates{grid-template-columns:1fr 1fr;text-align:left}
  .superpersonfacts{grid-template-columns:1fr}
}
.ledgerlayoutswitch{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:18px 0 12px;
  padding:8px 10px 8px 13px;
  border:1px solid #e6e0ea;
  border-radius:14px;
  background:#faf8fccc;
}
.ledgerlayoutswitch>span{color:var(--muted);font-size:12px;font-weight:650;}
.ledgerlayoutswitch>div{display:flex;gap:5px;}
.ledgerlayoutswitch button{
  min-height:34px;
  padding:7px 12px;
  border-radius:9px;
  background:transparent;
  color:#6a6270;
  box-shadow:none;
  font-size:12px;
}
.ledgerlayoutswitch button.active{
  background:#7057d9;
  color:#fff;
  box-shadow:0 5px 14px #5d45bd25;
}
.ledger-original-hidden{display:none!important;}
.ledgersplitview{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  margin-top:12px;
}
.ledgersplitview[hidden]{display:none!important;}
.ledgersplitpane{
  min-width:0;
  overflow:hidden;
  border:1px solid #e6e0ea;
  border-radius:18px;
  background:#fffafd;
}
.ledgersplitpane.income{border-top:3px solid #2da864;}
.ledgersplitpane.expense{border-top:3px solid #e05252;}
.ledgersplithead{
  display:flex;
  align-items:center;
  gap:10px;
  padding:13px 15px;
  border-bottom:1px solid #ece7f0;
}
.ledgersplithead>span{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:10px;
  font-size:20px;
  font-weight:750;
}
.income .ledgersplithead>span{background:#eaf8ef;color:#16803d;}
.expense .ledgersplithead>span{background:#fff0ef;color:#cf2e2e;}
.ledgersplithead h3,.ledgersplithead small{margin:0;display:block;}
.ledgersplithead h3{font-size:15px;}
.ledgersplithead small{margin-top:2px;color:var(--muted);font-size:10px;}
.ledgersplitpane .tablewrap{margin:0;padding:0 0 5px;}
.ledgersplitpane table{margin:0;min-width:820px;}
.onlineuserspanel{margin-bottom:20px;}
.onlineuserdevice{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.adminrestriction{
  display:grid;
  gap:3px;
  margin-top:18px;
  padding:14px;
  border:1px solid #e4ddea;
  border-radius:14px;
  background:#f8f5fa;
}
.adminrestriction b{color:#5f5368;}
.adminrestriction span{color:var(--muted);font-size:12px;}
@media(max-width:900px){
  .notice-region{
    left:50%!important;
    right:auto!important;
    width:min(420px,calc(100vw - 24px))!important;
  }
  .pagehead{align-items:flex-start!important;}
  .ledgersplitview{grid-template-columns:1fr;}
}
@media(max-width:650px){
  .pageheadtitle{gap:8px;}
  .pageback{min-height:34px;padding:6px 8px;}
  .pageback b{display:none;}
  .pageback span{font-size:25px;}
  .ledgerlayoutswitch{align-items:stretch;flex-direction:column;}
  .ledgerlayoutswitch>div{display:grid;grid-template-columns:1fr 1fr;}
  .ledgerlayoutswitch button{width:100%;}
  .ledgersplitpane table{min-width:760px;}
}

/* Administrator workspace */
.adminarea{--admin-ink:#25212d;--admin-muted:#726d7b;--admin-line:rgba(89,69,112,.12)}
.adminarea .adminnav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;background:rgba(255,255,255,.68);border:1px solid var(--admin-line);box-shadow:0 12px 34px rgba(67,49,84,.07)}
.adminarea .adminnav::-webkit-scrollbar{display:none}
.adminarea .adminnav a{white-space:nowrap}
.superadmintabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px}
.superadmintabs a{min-height:78px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 17px;border:1px solid var(--admin-line);border-radius:18px;background:rgba(255,255,255,.64);color:var(--admin-ink);box-shadow:0 10px 28px rgba(62,43,82,.055);transition:.22s ease}
.superadmintabs a:hover{transform:translateY(-2px);border-color:rgba(133,94,177,.25)}
.superadmintabs a.active{color:#503474;border-color:rgba(137,94,184,.28);background:linear-gradient(145deg,rgba(246,240,255,.96),rgba(255,255,255,.82));box-shadow:0 14px 34px rgba(108,69,148,.12),inset 0 0 0 1px rgba(255,255,255,.75)}
.superadmintabs span{font-size:15px;font-weight:750}
.superadmintabs small{color:var(--admin-muted);font-size:12px}
.superadminworkspace{min-height:460px;animation:admin-reveal .28s ease both}
@keyframes admin-reveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.superdatabasesection>.supercolumnhead{padding:2px 2px 14px}
.superdatabasesection>.dbstatusgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:12px;margin-bottom:0!important}
.superdatabasesection .dbstatusgrid>.dbstatuscard{display:flex;flex-direction:column;height:100%;min-height:0;margin:0!important}
.superdatabasesection .dbstatuscard{padding:17px!important;border-radius:19px!important}.superdatabasesection .dbstatuscard>.paneltitle{display:grid!important;grid-template-columns:1fr;min-height:104px;margin-bottom:12px!important;align-content:start;align-items:start;gap:8px!important}.superdatabasesection .dbstatuscard>.paneltitle>div{min-width:0}.superdatabasesection .dbstatuscard>.paneltitle h2{font-size:16px!important;line-height:1.35}.superdatabasesection .dbstatuscard>.paneltitle p{min-height:34px;font-size:10px!important;line-height:1.5}.superdatabasesection .dbstatuscard>.paneltitle>.tag{justify-self:start}
.superdatabasesection .dbstatuscard>.dbfacts{flex:0 0 auto}
.superdatabasesection .dbstatuscard>.dbfacts{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.superdatabasesection .dbstatuscard>.dbfacts span{min-width:0;padding:9px}.superdatabasesection .dbstatuscard>.dbfacts small{font-size:9px}.superdatabasesection .dbstatuscard>.dbfacts b{font-size:13px;overflow-wrap:anywhere}.superdatabasesection .dbstatuscard>.dbcountlist{align-content:flex-start;min-height:108px;margin-top:auto;padding-top:12px;gap:5px}.superdatabasesection .dbstatuscard>.dbcountlist span{padding:6px 8px;font-size:10px}
.superdatabasesection>.businessdbmaintenance{margin-top:30px!important;clear:both}
.adminarea .personlocation strong{line-height:1.55}
.adminarea .coordinates{flex-wrap:wrap}
.adminarea .superops{max-width:none}
.adminarea .auditlogpanel .tablewrap{max-height:68vh;overflow:auto}
.adminarea .auditlogpanel thead{position:sticky;top:0;z-index:2}
@media(max-width:1100px){.superdatabasesection>.dbstatusgrid{grid-template-columns:1fr;grid-auto-rows:auto;gap:13px}.superdatabasesection .dbstatuscard{height:auto}.superdatabasesection .dbstatuscard>.paneltitle{display:flex!important;min-height:0}.superdatabasesection .dbstatuscard>.paneltitle p,.superdatabasesection .dbstatuscard>.dbcountlist{min-height:0}.superdatabasesection .dbstatuscard>.dbfacts{grid-template-columns:repeat(3,minmax(0,1fr))}.superdatabasesection>.businessdbmaintenance{margin-top:24px!important}}
@media(max-width:760px){.superadmintabs{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:3px}.superadmintabs a{flex:0 0 172px;min-height:68px;scroll-snap-align:start}}
@media(max-width:520px){.superadmintabs{gap:8px;margin-bottom:16px}.superadmintabs a{flex-basis:152px;padding:11px 13px;border-radius:15px}.superadminworkspace{min-height:360px}.adminarea .superpersonfacts{grid-template-columns:1fr}.adminarea .personlocation{align-items:flex-start;flex-direction:column}.adminarea .coordinates{width:100%;display:grid;grid-template-columns:1fr 1fr}}
.locationchoice{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;margin:4px 0 14px;border:1px solid rgba(116,92,62,.16);border-radius:16px;background:rgba(255,255,255,.48)}
.locationchoice div{display:grid;gap:4px}.locationchoice b{font-size:15px}.locationchoice small{color:var(--muted,#746b61);line-height:1.45}
.locationchoice button{flex:0 0 auto;margin:0}.locationdivider{display:flex;align-items:center;gap:12px;margin:8px 0 14px;color:var(--muted,#746b61);font-size:12px}
.locationdivider::before,.locationdivider::after{content:"";height:1px;flex:1;background:rgba(116,92,62,.16)}
@media(max-width:620px){.locationchoice{align-items:stretch;flex-direction:column}.locationchoice button{width:100%}}

/* 天气动态场景 v2：当前天气、昼夜与逐小时状态统一驱动 */
.appbody .weathercard{isolation:isolate;position:relative;transition:background .8s ease,box-shadow .8s ease,color .4s ease!important}
.appbody .weathercard::before{content:none!important;animation:none!important}
.weathercard>.weather-scene{position:absolute;z-index:-1;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.weathercard>:not(.weather-scene){position:relative;z-index:1}
.weather-scene i{position:absolute;display:block;pointer-events:none}
.weather-stars{inset:0;opacity:0;background-image:radial-gradient(circle,#fff 0 .7px,transparent 1.2px);background-position:18px 20px;background-size:92px 78px}
.weather-celestial{top:34px;right:54px;width:54px;height:54px;border-radius:50%;background:#fff4bd;box-shadow:0 0 38px #ffedaa70}
.weather-cloud{width:130px;height:38px;border-radius:50px;background:#ffffffb8;filter:blur(.2px);opacity:0}
.weather-cloud::before,.weather-cloud::after{content:"";position:absolute;border-radius:50%;background:inherit}
.weather-cloud::before{width:55px;height:55px;left:22px;bottom:8px}.weather-cloud::after{width:72px;height:65px;right:13px;bottom:5px}
.cloud-one,.cloud-two{display:none!important}
.weather-precip{inset:0;opacity:0;background-repeat:repeat;transform:none}
.precip-one{background:repeating-linear-gradient(180deg,transparent 0 11px,#edf8ff 12px 18px,transparent 19px 38px);background-size:18px 38px;-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 1px,transparent 1px 18px);mask-image:repeating-linear-gradient(90deg,#000 0 1px,transparent 1px 18px);animation:weatherRainFall 1.35s linear infinite}
.precip-two{background-image:radial-gradient(circle,#fff 0 2px,transparent 2.5px);background-size:34px 34px;animation:weatherSnowFall 7s linear infinite}
.weather-mist{left:-12%;width:124%;height:28px;border-radius:50%;opacity:0;background:#ffffff54;filter:blur(11px)}
.mist-one{top:38%;animation:weatherMist 8s ease-in-out infinite alternate}.mist-two{top:61%;animation:weatherMist 10s ease-in-out -4s infinite alternate-reverse}
.weather-flash{inset:0;opacity:0;background:#edf8ff;mix-blend-mode:screen}

.weathercard[data-period="day"].weather-sunny{background:linear-gradient(145deg,#4c9ee8 0%,#74bdf2 50%,#f3bd70 145%)!important}
.weathercard[data-period="night"].weather-sunny{background:linear-gradient(145deg,#111e4c,#283b77 56%,#465b98)!important}
.weathercard[data-period="night"] .weather-stars{opacity:.35}
.weathercard[data-period="night"] .weather-celestial{display:none}
.weathercard.weather-cloudy{background:linear-gradient(145deg,#647d91,#8ca2b1 58%,#b9c6cc)!important}
.weathercard[data-period="night"].weather-cloudy{background:linear-gradient(145deg,#18243a,#34475d 58%,#56697c)!important}
.weathercard.weather-fog{background:linear-gradient(145deg,#7e9095,#a6b2b2 58%,#cdd2cd)!important}
.weathercard.weather-fog .weather-mist{opacity:1}
.weathercard.weather-rain{background:linear-gradient(145deg,#334e68,#496a84 58%,#66879c)!important}
.weathercard.weather-rain .precip-one{opacity:.16}
.weathercard.weather-snow{background:linear-gradient(145deg,#669aaa,#91bdc7 58%,#c5dede)!important}
.weathercard.weather-snow .precip-two{opacity:.8}
.weathercard.weather-thunder{background:linear-gradient(145deg,#182838,#364c5d 58%,#5c7180)!important}
.weathercard.weather-thunder .precip-one{opacity:.2}.weathercard.weather-thunder .weather-flash{animation:weatherStormFlash 9s linear infinite}

.houritem{position:relative;overflow:hidden;border:1px solid #ffffff18;transition:background .35s ease,transform .25s ease}
.houritem:hover{transform:translateY(-1px)}
.houritem[data-period="day"]{background:linear-gradient(155deg,#ffffff2c,#ffffff12)}
.houritem[data-period="night"]{background:linear-gradient(155deg,#111b3b42,#19264f24);box-shadow:inset 0 0 0 1px #c8d8ff10}
.houritem[data-weather="sunny"][data-period="day"] b{color:#fff0a5;text-shadow:0 0 12px #ffe56f}
.houritem[data-weather="sunny"][data-period="night"] b{color:#eef4ff;text-shadow:0 0 10px #d5e2ff80}
.houritem[data-weather="cloudy"] b{opacity:.9}
.houritem[data-weather="rain"]::after{content:"";position:absolute;inset:0;opacity:.12;background:repeating-linear-gradient(180deg,transparent 0 7px,#fff 8px 11px,transparent 12px 20px);background-size:12px 20px;-webkit-mask-image:repeating-linear-gradient(90deg,#000 0 1px,transparent 1px 12px);mask-image:repeating-linear-gradient(90deg,#000 0 1px,transparent 1px 12px);animation:hourRain 1.4s linear infinite;pointer-events:none}
.houritem[data-weather="snow"]::after{content:"";position:absolute;inset:0;opacity:.35;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px);background-size:19px 19px;animation:hourSnow 7s linear infinite;pointer-events:none}
.houritem[data-weather="fog"]::after{content:"";position:absolute;left:-30%;top:44%;width:160%;height:18px;background:#ffffff38;filter:blur(5px);animation:hourFog 5s ease-in-out infinite alternate;pointer-events:none}
.houritem[data-weather="thunder"]{box-shadow:inset 0 0 0 1px #dcecff1f}
.houritem>*{position:relative;z-index:1}
.weathericon{animation:weatherMainIcon 6s ease-in-out infinite!important;filter:drop-shadow(0 5px 10px #21334b28)}

@keyframes weatherStars{from{opacity:.35}to{opacity:.82}}
@keyframes weatherCelestial{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(5px) scale(1.04)}}
@keyframes weatherCloudAcross{from{translate:0 0}to{translate:calc(100vw + 320px) 0}}
@keyframes weatherRainFall{from{background-position:0 -38px}to{background-position:0 38px}}
@keyframes weatherSnowFall{from{background-position:0 0}to{background-position:45px 180px}}
@keyframes weatherMist{from{transform:translateX(-4%);opacity:.42}to{transform:translateX(5%);opacity:.8}}
@keyframes weatherStormFlash{0%,72%,74%,100%{opacity:0}73%{opacity:.22}}
@keyframes weatherMainIcon{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes hourCloud{0%,100%{transform:translateX(-2px)}50%{transform:translateX(3px)}}
@keyframes hourRain{from{background-position:0 -20px}to{background-position:0 20px}}
@keyframes hourSnow{to{background-position:17px 52px}}
@keyframes hourFog{from{transform:translateX(-8%)}to{transform:translateX(8%)}}
@keyframes hourThunder{0%,74%,78%,100%{box-shadow:inset 0 0 0 1px #ffffff18}76%{box-shadow:inset 0 0 28px #eef8ffb0}}
@media(prefers-reduced-motion:reduce){.weather-scene i,.weathericon,.houritem,.houritem::after{animation:none!important}}

/* 统一工作区：更深背景、详情浮窗与导入导出卡片 */
.appbody{background:linear-gradient(155deg,#e7e0ec 0%,#ddd4e5 46%,#e4dce9 100%)!important}
.systemambient{opacity:.78}
.appbody .panel,.appbody .metric,.appbody .glasscard{border-color:rgba(99,76,119,.13)!important;box-shadow:0 14px 36px rgba(61,43,76,.075)!important}
.orderdetaildialog{width:min(94vw,1080px)!important;height:min(90vh,860px)!important;max-width:none!important;max-height:none!important;padding:0!important;overflow:hidden!important;border:1px solid rgba(255,255,255,.72);border-radius:26px!important;background:rgba(244,241,246,.94);box-shadow:0 32px 100px rgba(31,22,39,.32),inset 0 1px 0 #fff;backdrop-filter:blur(28px) saturate(1.12)}
.orderdetaildialog::backdrop{background:rgba(28,22,34,.48);backdrop-filter:blur(10px)}
.orderdetailhead,.orderdetailfooter{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 15px 22px;background:rgba(255,255,255,.78);border-bottom:1px solid rgba(88,68,103,.1);backdrop-filter:blur(18px)}
.orderdetailhead h3{margin:3px 0 0;font-size:19px;letter-spacing:-.3px}.orderdetailhead .eyebrow{color:#8b7c95}.orderdetailhead .modalclose{position:static;width:34px;min-width:34px;height:34px;background:#ece8ef!important;color:#574d5f!important;box-shadow:inset 0 0 0 1px rgba(85,67,99,.06)}
.orderdetailhead .modalclose:hover{background:#e2dce7!important;transform:none}
.orderdetailbody{height:calc(100% - 70px);background:#eee9f1}.orderdetailbody iframe{display:block;width:100%;height:100%;border:0;background:#f2eff4}
.orderdetailfooter{justify-content:flex-end;padding:12px 18px;border-top:1px solid rgba(88,68,103,.1);border-bottom:0}.orderdetailfooter button{min-width:92px;min-height:40px;border-radius:12px}
.exchangechoices{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.exchangechoices a{min-height:118px;align-content:center;padding:18px;border-radius:20px;background:linear-gradient(150deg,#fffefef2,#f5f1f8ee);border-color:rgba(102,78,124,.13);box-shadow:0 10px 26px rgba(61,43,76,.055)}
.exchangechoices a:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(61,43,76,.11)}
.exchangechoices span{width:44px;height:44px;border-radius:14px;background:linear-gradient(145deg,#eee7f7,#ddd1ed);color:#6e5587}
.exchangechoices b{font-size:15px}.exchangechoices small{margin-top:3px}
.exportpanel .actions button,.appbody main[data-exchange] button{min-height:48px;border-radius:15px}
@media(max-width:650px){.orderdetaildialog{width:calc(100vw - 12px)!important;height:calc(100dvh - 18px)!important;border-radius:21px!important}.orderdetailhead{padding:12px 14px}.orderdetailbody{height:calc(100% - 62px)}}

/* 全系统浮窗视觉统一 */
dialog.homemodal,dialog.settlementmodal{
  border:1px solid rgba(255,255,255,.78)!important;
  border-radius:24px!important;
  color:#302a35;
  background:rgba(250,248,251,.94)!important;
  box-shadow:0 30px 90px rgba(35,25,43,.28),inset 0 1px 0 #fff!important;
  backdrop-filter:blur(26px) saturate(1.12);
  -webkit-backdrop-filter:blur(26px) saturate(1.12);
  animation:systemModalIn .24s cubic-bezier(.2,.8,.25,1) both;
}
dialog.homemodal::backdrop,dialog.settlementmodal::backdrop{
  background:rgba(28,22,33,.46)!important;
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  animation:systemBackdropIn .2s ease both;
}
dialog.homemodal form,dialog.settlementmodal form,.memodialogbody{
  padding:24px!important;
  background:transparent!important;
}
dialog .modalhead{
  align-items:flex-start;
  gap:18px;
  margin-bottom:2px;
}
dialog .modalhead h3{margin:0;font-size:20px;line-height:1.3;letter-spacing:-.35px}
dialog .modalhead p{margin:5px 0 0;color:#827788;line-height:1.5}
dialog .modalclose{
  display:grid!important;
  place-items:center;
  flex:0 0 34px;
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  border:0!important;
  border-radius:50%!important;
  background:#ebe7ed!important;
  color:#554c5b!important;
  font:400 21px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
  box-shadow:inset 0 0 0 1px rgba(77,61,89,.06)!important;
  transition:background .16s ease,transform .16s ease!important;
}
dialog .modalclose:hover{background:#dfdae2!important;transform:scale(1.03)}
dialog label{color:#655c6a!important;font-size:13px}
dialog input,dialog select,dialog textarea{
  border-color:rgba(86,69,99,.14)!important;
  border-radius:13px!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:inset 0 1px 1px rgba(52,39,61,.025);
}
dialog input:focus,dialog select:focus,dialog textarea:focus{
  border-color:#9b82b4!important;
  box-shadow:0 0 0 4px rgba(130,98,162,.12)!important;
  background:#fff!important;
}
dialog .modalactions{
  margin-top:3px;
  padding-top:17px;
  border-top:1px solid rgba(83,65,96,.09);
}
dialog .modalactions button,dialog .modalactions .primary,dialog .modalactions .secondary{
  min-height:42px;
  border-radius:12px!important;
}
.orderdetaildialog{animation:systemModalIn .24s cubic-bezier(.2,.8,.25,1) both}
.orderdetaildialog .orderdetailhead{min-height:70px}
@keyframes systemModalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@keyframes systemBackdropIn{from{opacity:0}to{opacity:1}}
@media(max-width:600px){
  dialog.homemodal:not(.orderdetaildialog),dialog.settlementmodal{width:calc(100vw - 20px)!important;border-radius:20px!important}
  dialog.homemodal form,dialog.settlementmodal form,.memodialogbody{padding:18px!important}
}
@media(prefers-reduced-motion:reduce){dialog.homemodal,dialog.settlementmodal,dialog::backdrop{animation:none!important}}

/* 浮窗关闭按钮：固定圆形与几何居中的叉号 */
dialog .modalclose,.orderdetailhead .modalclose{
  position:relative!important;
  display:block!important;
  flex:0 0 32px!important;
  width:32px!important;
  min-width:32px!important;
  max-width:32px!important;
  height:32px!important;
  min-height:32px!important;
  max-height:32px!important;
  aspect-ratio:1/1!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:999px!important;
  background:rgba(229,225,232,.96)!important;
  color:transparent!important;
  font-size:0!important;
  line-height:0!important;
  box-sizing:border-box!important;
  box-shadow:inset 0 0 0 1px rgba(70,55,81,.055),0 1px 2px rgba(44,33,52,.06)!important;
}
dialog .modalclose::before,dialog .modalclose::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:12px;
  height:1.5px;
  border-radius:2px;
  background:#625a68;
  transform-origin:center;
  pointer-events:none;
}
dialog .modalclose::before{transform:translate(-50%,-50%) rotate(45deg)}
dialog .modalclose::after{transform:translate(-50%,-50%) rotate(-45deg)}
dialog .modalclose:hover{
  background:#dcd7df!important;
  transform:scale(1.04)!important;
}
dialog .modalclose:active{transform:scale(.96)!important}

/* 浮窗精简版：单一关闭入口与更克制的信息层级 */
dialog.homemodal:not(.orderdetaildialog),dialog.settlementmodal{
  width:min(92vw,500px);
  border-radius:22px!important;
  background:rgba(250,249,251,.97)!important;
  box-shadow:0 24px 72px rgba(34,25,41,.24),inset 0 1px 0 #fff!important;
}
dialog.homemodal form,dialog.settlementmodal form,.memodialogbody{
  gap:13px!important;
  padding:22px!important;
}
dialog .modalhead{
  min-height:34px;
  margin:0 0 8px!important;
  padding:0!important;
}
dialog .modalhead h3{font-size:19px;letter-spacing:-.3px}
dialog .modalhead p{margin-top:3px;font-size:12px}
dialog label{font-size:12px!important;font-weight:600}
dialog input,dialog select,dialog textarea{
  margin-top:6px!important;
  border-radius:12px!important;
  background:#fff!important;
}
dialog textarea{line-height:1.55}
dialog .modalactions{
  justify-content:flex-end!important;
  margin-top:2px!important;
  padding:8px 0 0!important;
  border:0!important;
}
dialog .modalactions:empty{display:none!important}
dialog .modalactions>*{
  flex:0 0 auto!important;
  min-width:104px!important;
}
dialog .modalactions>*:only-child{min-width:118px!important}
dialog .locationchoice{
  margin:0 0 4px;
  padding:14px 15px;
  border-color:rgba(83,65,96,.09);
  border-radius:14px;
  background:#f4f1f6;
}
dialog .locationdivider{margin:3px 0 7px}
.memoalllist{gap:8px!important}.memoallitem{border-radius:14px!important;background:#f6f4f7!important}
.orderdetaildialog{background:rgba(246,244,248,.97)!important}
.orderdetailhead{padding:14px 18px!important;background:rgba(255,255,255,.84)!important}
.orderdetailhead .eyebrow{font-size:9px}.orderdetailhead h3{font-size:18px}
.orderdetailbody{height:calc(100% - 62px)}
@media(max-width:600px){
  dialog.homemodal form,dialog.settlementmodal form,.memodialogbody{padding:17px!important}
  dialog .modalactions>*{width:100%!important;min-width:0!important}
}

/* 账单详情直接加载到浮窗，不依赖 iframe 或公网地址 */
.orderdetailbody{overflow:auto;padding:22px;background:#f2eff4}
.orderdetailloading,.orderdetailerror{min-height:240px;display:grid;place-content:center;gap:7px;text-align:center;color:#817688}
.orderdetailerror b{color:#493f50;font-size:16px}.orderdetailerror span{font-size:13px}
.orderdetailbody>.billpaper{margin:0!important;padding:25px!important;border:1px solid rgba(91,69,108,.1)!important;border-radius:21px!important;background:rgba(255,255,255,.9)!important;box-shadow:0 14px 42px rgba(59,42,73,.075)!important}
.orderdetailbody .billhero{align-items:center!important;padding:0 0 21px!important;border-bottom-color:rgba(91,69,108,.1)!important}
.orderdetailbody .billhero h2{font-family:inherit!important;font-size:24px!important;letter-spacing:-.5px!important}
.orderdetailbody .billamount{min-width:205px;padding:15px 17px;border-radius:16px;background:#f4eff7;text-align:right}
.orderdetailbody .billamount strong{font-family:inherit!important;font-size:26px!important}
.orderdetailbody .billfacts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:10px!important;margin:18px 0!important}
.orderdetailbody .billfacts div{padding:13px 14px!important;border:1px solid rgba(91,69,108,.07);border-radius:14px!important;background:#f7f4f9!important}
.orderdetailbody .billfacts dd{overflow-wrap:anywhere}
.orderdetailbody .billnotefact{grid-column:1/-1}
.orderdetailbody .billnotefact dd{font-weight:550;line-height:1.65;white-space:pre-wrap}
.orderdetailbody .periodbillfacts{margin-bottom:12px!important}
.orderdetailbody .attachmentsection{border-top-color:rgba(91,69,108,.09)}
.orderdetailbody .attachmentcard{border-radius:13px!important}
.orderdetailbody .perioddetailmetrics{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:10px!important}
.orderdetailbody .perioddetailmetrics .metric{min-height:100px!important;padding:14px!important;border-radius:14px!important;box-shadow:none!important}
.orderdetailbody .actions,.orderdetailbody .perioddetailactions{align-items:center;gap:9px}
.orderdetailbody .actions>a[href$="/edit"],.orderdetailbody .perioddetailactions>a[href$="/edit"]{border-color:transparent!important;background:#765d91!important;color:#fff!important;box-shadow:0 7px 18px rgba(93,66,117,.16)}
.orderdetailbody .actions>a[href$="/edit"]:hover,.orderdetailbody .perioddetailactions>a[href$="/edit"]:hover{background:#694f84!important}
.orderdetailbody .actions .danger,.orderdetailbody .perioddetailactions .danger{border-radius:12px!important}
@media(max-width:700px){
  .orderdetailbody{padding:10px}.orderdetailbody>.billpaper{padding:16px!important;border-radius:17px!important}
  .orderdetailbody .billhero{display:block!important}.orderdetailbody .billamount{min-width:0;margin-top:14px;text-align:left}
  .orderdetailbody .billfacts,.orderdetailbody .perioddetailmetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* 账期工作台整合与已完成订单筛选 */
.periodworkbenchhub{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:-6px 0 22px}
.periodworkbenchhub a{display:grid;grid-template-columns:38px 1fr;grid-template-rows:auto auto;gap:2px 11px;min-height:92px;padding:15px;border:1px solid rgba(94,71,112,.11);border-radius:17px;background:rgba(255,255,255,.72);color:#403747;box-shadow:0 8px 24px rgba(58,41,70,.045);transition:.18s ease}
.periodworkbenchhub a:hover{transform:translateY(-2px);box-shadow:0 13px 29px rgba(58,41,70,.09)}
.periodworkbenchhub span{grid-row:1/3;display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eee8f3;color:#715887;font-size:18px}
.periodworkbenchhub b{align-self:end;font-size:14px}.periodworkbenchhub small{color:#817688;line-height:1.35}
.financeworkbenchhub{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:-6px 0 24px}
.financeworkbenchhub a{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:3px 12px;min-height:96px;padding:16px;border:1px solid rgba(94,71,112,.11);border-radius:18px;background:rgba(255,255,255,.76);color:#403747;box-shadow:0 9px 26px rgba(58,41,70,.05);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.financeworkbenchhub a:hover{transform:translateY(-2px);border-color:rgba(112,84,137,.2);box-shadow:0 14px 31px rgba(58,41,70,.09)}
.financeworkbenchhub span{grid-row:1/3;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:linear-gradient(145deg,#f2edf6,#e8e0ef);color:#715887;font-size:19px;box-shadow:inset 0 0 0 1px rgba(112,84,137,.05)}
.financeworkbenchhub b{align-self:end;font-size:14px;letter-spacing:.01em}.financeworkbenchhub small{color:#817688;line-height:1.4}
.financedashboardhero{background:linear-gradient(120deg,#3a214c,#6d3cc2)!important;color:#fff!important}
.financedashboardhero h2{color:#fff!important}.financedashboardhero p{color:#e7dff0!important}
.financedashboardhero .eyebrow{color:#d8c5e8!important}
.workbenchclock{min-width:142px;padding:10px 15px;border:1px solid rgba(255,255,255,.17);border-radius:14px;background:rgba(255,255,255,.09);text-align:right;box-shadow:inset 0 1px rgba(255,255,255,.08)}
.workbenchclock small,.workbenchclock strong{display:block}.workbenchclock small{margin-bottom:3px;color:#ded0e9;font-size:11px;letter-spacing:.08em}.workbenchclock strong{color:#fff;font-size:23px;font-variant-numeric:tabular-nums;letter-spacing:.04em}
.navgroup{position:relative;flex:0 0 auto}
.navgroup summary{display:flex;align-items:center;gap:6px;padding:8px 11px;border-radius:10px;color:inherit;font-size:13px;font-weight:520;white-space:nowrap;cursor:pointer;list-style:none}
.navgroup summary::-webkit-details-marker{display:none}.navgroup summary:after{content:"⌄";font-size:11px;opacity:.65;transition:transform .16s ease}.navgroup[open] summary:after{transform:rotate(180deg)}
.navgroup summary:hover,.navgroup[open] summary{background:rgba(255,255,255,.1);color:#fff}
.navgroup:has(a.is-current) summary{background:rgba(255,255,255,.13);color:#fff}
.navgroup:has(a.is-current) summary:before{content:"";width:5px;height:5px;border-radius:50%;background:#d8c5ff;box-shadow:0 0 0 3px rgba(216,197,255,.13)}
.navsubmenu{position:absolute;top:calc(100% + 9px);left:0;z-index:60;display:grid;min-width:156px;padding:7px;border:1px solid rgba(96,72,113,.13);border-radius:14px;background:rgba(255,255,255,.96);box-shadow:0 18px 44px rgba(40,26,51,.18);backdrop-filter:blur(22px)}
.navsubmenu a{display:block!important;min-height:0!important;padding:9px 11px!important;border-radius:9px!important;background:transparent!important;color:#49404f!important}.navsubmenu a:hover{background:#f0eaf5!important;color:#56366f!important}
.companyledgernav{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;background:rgba(255,255,255,.68);border:1px solid rgba(94,71,112,.1);box-shadow:0 12px 34px rgba(67,49,84,.07)}
.companyledgernav::-webkit-scrollbar{display:none}.companyledgernav a{white-space:nowrap}
.periodcompletedfilters{display:grid;grid-template-columns:minmax(300px,1.25fr) minmax(200px,.8fr) auto;align-items:end;gap:16px;margin-bottom:18px!important;padding:17px 19px!important}
.periodcheckfilters{display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-height:45px}
.periodcheckfilters label{display:flex;align-items:center;gap:7px;margin:0;padding:9px 13px;border:1px solid rgba(94,71,112,.1);border-radius:12px;background:#f7f4f9;color:#514758;cursor:pointer}
.periodcheckfilters input{width:16px;height:16px;margin:0}
.periodcompletedfilters>label{color:#6e6474}.periodcompletedfilters select{margin-top:6px}
.periodcompletedfilters .filteractions{flex-wrap:nowrap}.periodcompletedfilters .filteractions>*{min-width:76px;text-align:center}
@media(max-width:1050px){.periodworkbenchhub{grid-template-columns:repeat(3,minmax(0,1fr))}.financeworkbenchhub{grid-template-columns:repeat(2,minmax(0,1fr))}.periodcompletedfilters{grid-template-columns:1fr 1fr}.periodcompletedfilters .filteractions{grid-column:1/-1}}
@media(max-width:650px){.periodworkbenchhub{grid-template-columns:1fr 1fr;gap:9px}.periodworkbenchhub a{min-height:84px;padding:12px}.financeworkbenchhub{grid-template-columns:1fr;gap:9px;margin-bottom:18px}.financeworkbenchhub a{min-height:82px;padding:13px}.workbenchclock{align-self:stretch;text-align:left}.navsubmenu{position:fixed;top:112px;left:12px;right:12px;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr))}.periodcompletedfilters{grid-template-columns:1fr;padding:14px!important}.periodcompletedfilters .filteractions{grid-column:auto}.periodcheckfilters{display:grid;grid-template-columns:1fr 1fr}.periodcheckfilters label:last-child{grid-column:1/-1}.periodcompletedfilters .filteractions>*{flex:1}}

/* 2.3 紧凑账表、后台布局及统一工作台入口 */
.financeworkbenchhub,.periodworkbenchhub{
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:14px;
  margin:-6px 0 22px;
}
.financeworkbenchhub a,.periodworkbenchhub a{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-rows:auto auto;
  align-content:center;
  gap:3px 12px;
  min-height:118px;
  padding:18px;
  border:1px solid rgba(102,78,124,.13);
  border-radius:20px;
  background:linear-gradient(150deg,#fffefef2,#f5f1f8ee);
  color:#4f4659;
  box-shadow:0 10px 26px rgba(61,43,76,.055);
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.financeworkbenchhub a:hover,.periodworkbenchhub a:hover{
  transform:translateY(-2px);
  border-color:#b9a7d1;
  box-shadow:0 16px 34px rgba(61,43,76,.11);
}
.financeworkbenchhub span,.periodworkbenchhub span{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border-radius:14px;
  background:linear-gradient(145deg,#eee7f7,#ddd1ed);
  color:#6e5587;
  font-size:20px;
}
.financeworkbenchhub b,.periodworkbenchhub b{align-self:end;font-size:15px;letter-spacing:0}
.financeworkbenchhub small,.periodworkbenchhub small{margin-top:3px;color:#887e90;line-height:1.4}

.appbody main .panel{overflow:visible}
.appbody main .tablewrap{max-width:100%;overflow:visible}
.appbody main table:not(.unifiedlogtable){
  width:100%;
  min-width:0!important;
  table-layout:auto;
  font-size:12px;
}
.appbody main table:not(.unifiedlogtable) th,
.appbody main table:not(.unifiedlogtable) td{
  padding:8px 7px;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.35;
}
.appbody main table:not(.unifiedlogtable) .tag,
.appbody main table:not(.unifiedlogtable) .categorytag{white-space:nowrap}
.appbody main table:not(.unifiedlogtable) .rowactions{gap:5px;flex-wrap:wrap}
.appbody main table:not(.unifiedlogtable) .tiny{min-height:32px;padding:6px 9px;font-size:11px}
.advancedfilters{padding:14px!important}.filterrow{gap:10px!important}
.filterrow input,.filterrow select{min-height:40px;padding:8px 10px;font-size:13px}

.adminarea main{width:min(1480px,calc(100% - 24px));padding-top:22px}
.adminarea .pagehead{margin-bottom:12px}
.adminarea .adminnav{margin-bottom:14px!important;padding:6px!important;border-radius:14px!important}
.adminarea .adminnav a{min-height:38px;padding:8px 12px}
.adminarea .panel{padding:17px;border-radius:18px}
.adminarea .paneltitle{margin-bottom:13px;padding-bottom:11px;gap:12px}
.adminarea .paneltitle p{margin-top:3px;font-size:12px}
.adminarea .adminmetrics{gap:10px!important;margin-bottom:14px!important}
.adminarea .adminmetrics article{min-height:88px;padding:14px;border-radius:16px}
.adminarea .adminmetrics article strong{margin:5px 0;font-size:20px}
.adminarea .adminsplit{gap:14px;grid-template-columns:minmax(260px,.62fr) minmax(0,1.8fr)}
.adminarea .adminsplit>form.panel{top:78px}
.adminarea th,.adminarea td{padding:8px 7px}
.adminarea .rowactions{gap:5px}
.adminarea .rowactions input{min-height:34px;padding:6px 8px;font-size:12px}
.adminarea .opgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:11px}
.adminarea .opgrid form{min-height:94px;padding:10px;border-radius:14px}
.adminarea .opgrid small{margin-top:6px;font-size:11px}
.superadmincolumns{gap:14px;margin-bottom:14px}

@media(max-width:900px){
  .appbody main .tablewrap{overflow:visible!important}
  .appbody main .tablewrap table:not(.unifiedlogtable){width:100%!important;min-width:0!important}
  .appbody main .tablewrap th:first-child,.appbody main .tablewrap td:first-child{position:static!important}
  .appbody main table:not(.unifiedlogtable){font-size:11px}
  .appbody main table:not(.unifiedlogtable) th,.appbody main table:not(.unifiedlogtable) td{padding:7px 4px}
  .adminarea .opgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .financeworkbenchhub,.periodworkbenchhub{grid-template-columns:1fr;gap:10px}
  .financeworkbenchhub a,.periodworkbenchhub a{min-height:92px;padding:14px}
  .adminarea main{width:100%}
  .adminarea .panel{padding:14px}
  .adminarea .adminsplit{grid-template-columns:1fr}
  .adminarea .opgrid{grid-template-columns:1fr}
  .appbody main table:not(.unifiedlogtable){font-size:10px}
  .appbody main table:not(.unifiedlogtable) th,.appbody main table:not(.unifiedlogtable) td{padding:6px 3px}
}

/* 加深登录后系统大背景，保持卡片层级清晰 */
.appbody{
  background:
    radial-gradient(circle at 12% 4%,rgba(123,96,145,.14) 0,transparent 31%),
    radial-gradient(circle at 92% 88%,rgba(93,111,142,.10) 0,transparent 32%),
    linear-gradient(155deg,#dcd3e2 0%,#d2c7da 48%,#d9d0df 100%)!important;
}
.appbody .systemambient{opacity:.66}

/* 在线消息 Beta 1.0.0 */
.messagebutton{position:relative;display:inline-grid;place-items:center;width:35px;min-width:35px;height:35px;min-height:35px;margin-right:10px;padding:0!important;border:1px solid rgba(255,255,255,.15)!important;border-radius:11px!important;background:rgba(255,255,255,.1)!important;color:#fff!important;box-shadow:none!important;vertical-align:middle}
.messagebutton:hover{background:rgba(255,255,255,.18)!important}.messagebutton span{font-size:16px}
.messagebutton i{position:absolute;top:-5px;right:-6px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border:2px solid #412653;border-radius:99px;background:#ef435e;color:#fff;font:700 9px/1 sans-serif}
.messagebutton i[hidden]{display:none}
.messagedialog{width:min(920px,calc(100vw - 30px));height:min(680px,calc(100dvh - 40px));padding:0;border:1px solid rgba(255,255,255,.78);border-radius:25px;background:rgba(248,246,249,.97);box-shadow:0 32px 100px rgba(31,22,39,.32);overflow:hidden}
.messagedialog::backdrop{background:rgba(28,22,34,.42);backdrop-filter:blur(9px)}
.messagewindow{display:flex;flex-direction:column;height:100%}.messagewindow>.modalhead{padding:18px 20px;border-bottom:1px solid rgba(91,70,106,.1);background:rgba(255,255,255,.78)}
.messagelayout{display:grid;grid-template-columns:250px minmax(0,1fr);min-height:0;flex:1}
.messagelayout>aside{min-height:0;padding:15px;border-right:1px solid rgba(91,70,106,.1);overflow:auto}.messagelayout>aside>strong{display:block;margin:2px 5px 11px;color:#75687d;font-size:12px}
.messagepeople{display:grid;gap:6px}.messageperson{display:grid;grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:58px;padding:9px 10px;border-radius:13px!important;background:transparent!important;color:#433949!important;text-align:left;box-shadow:none!important}
.messageperson:hover,.messageperson.active{background:#ece5f2!important}.messageperson>span:nth-child(2){min-width:0}.messageperson b,.messageperson small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.messageperson b{font-size:13px}.messageperson small{margin-top:2px;color:#8a7e90;font-size:10px}
.messageperson>i{display:grid;place-items:center;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:#e84b64;color:#fff;font:700 10px sans-serif}
.presence{width:8px;height:8px;border-radius:50%;background:#b7afb9}.presence.online{background:#46b879;box-shadow:0 0 0 3px rgba(70,184,121,.14)}
.messageconversation{display:flex;min-width:0;min-height:0;flex-direction:column}.messagethread{flex:1;min-height:0;padding:17px 19px;overflow:auto}
.messagethreadhead{position:sticky;top:-17px;z-index:2;margin:-17px -19px 16px;padding:13px 18px;border-bottom:1px solid rgba(91,70,106,.08);background:rgba(248,246,249,.9);backdrop-filter:blur(18px)}.messagethreadhead b,.messagethreadhead span{display:block}.messagethreadhead span{margin-top:2px;color:#887c8e;font-size:10px}
.messagebubble{width:fit-content;max-width:76%;margin:8px 0;padding:9px 12px;border-radius:15px 15px 15px 5px;background:#fff;box-shadow:0 5px 16px rgba(54,38,66,.06)}.messagebubble.mine{margin-left:auto;border-radius:15px 15px 5px 15px;background:#765d91;color:#fff}.messagebubble p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.messagebubble small{display:block;margin-top:4px;color:#988da0;font-size:9px}.messagebubble.mine small{color:#dfd4e8}
.messageempty{display:grid;place-items:center;min-height:120px;color:#918694;text-align:center}
#messageSendForm{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:12px 14px;border-top:1px solid rgba(91,70,106,.1);background:rgba(255,255,255,.74)}#messageSendForm[hidden]{display:none}#messageSendForm textarea{min-height:44px;max-height:110px;margin:0;padding:10px 12px;border:1px solid #ded7e3;border-radius:13px;resize:vertical;font:inherit}#messageSendForm button{align-self:end;min-height:44px;border-radius:13px}
@media(max-width:650px){.messagebutton{margin-right:5px}.messagedialog{width:calc(100vw - 12px);height:calc(100dvh - 18px);border-radius:21px}.messagelayout{grid-template-columns:112px minmax(0,1fr)}.messagelayout>aside{padding:9px 6px}.messageperson{grid-template-columns:8px minmax(0,1fr);gap:6px;padding:7px 6px}.messageperson>i{grid-column:2;width:max-content}.messagebubble{max-width:88%}#messageSendForm{grid-template-columns:1fr}#messageSendForm button{width:100%}}

/* 消息中心 Beta 1.0.0 响应式精修 */
header .user{display:flex;align-items:center;gap:8px}
header .user>a{margin-left:2px}
.useridentity{display:grid;min-width:0;line-height:1.15;text-align:right}
.useridentity b{overflow:hidden;max-width:120px;color:inherit;font-size:12px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
.useridentity small{margin-top:2px;color:inherit;font-size:9px;opacity:.7}
.messagebutton{margin:0 2px 0 0!important;border-radius:50%!important;background:rgba(255,255,255,.11)!important;backdrop-filter:blur(12px)}
.messagebutton:focus-visible{outline:2px solid #d8c5ff;outline-offset:2px}
.messagedialog{max-width:none!important;max-height:none!important;color:#342d38}
.messagewindow>.modalhead{position:relative;flex:0 0 auto;min-height:82px;padding:17px 66px 15px 22px!important}
.messagewindow>.modalhead h3{margin:3px 0 1px;font-size:20px;letter-spacing:-.35px}.messagewindow>.modalhead p{margin:0;color:#8a7d90;font-size:11px}
.messagewindow>.modalhead .modalclose{position:absolute!important;top:17px!important;right:18px!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;margin:0!important;padding:0!important;border-radius:50%!important;background:#e9e5ec!important;color:#5c5262!important;box-shadow:inset 0 0 0 1px rgba(80,62,94,.06)!important}
.messagewindow>.modalhead .modalclose:hover{background:#ded8e2!important}
.messagelayout{background:linear-gradient(145deg,rgba(249,247,250,.96),rgba(241,237,244,.96))}
.messagelayout>aside{background:rgba(255,255,255,.48)}
.messageperson{border:1px solid transparent!important;transition:background .16s,border-color .16s,transform .16s}
.messageperson:hover{transform:translateY(-1px)}.messageperson.active{border-color:rgba(112,83,135,.11)!important;background:linear-gradient(135deg,#eee8f3,#e5dceb)!important}
.messageconversation{background:rgba(250,249,251,.62)}
.messagethread{scrollbar-width:thin;scrollbar-color:#c9bfce transparent}
.messagethreadhead{display:flex;align-items:center;gap:10px;min-height:57px;padding:11px 18px}.messagethreadhead>div{min-width:0}.messagethreadhead b,.messagethreadhead span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.messagecontacts{display:none;min-height:34px!important;padding:6px 10px!important;border-radius:10px!important;background:#ece6f1!important;color:#624d73!important;box-shadow:none!important;font-size:11px!important}
.messagebubble{border:1px solid rgba(89,68,104,.07);box-shadow:0 7px 20px rgba(54,38,66,.055)}
.messagebubble.mine{border-color:transparent;background:linear-gradient(135deg,#80669a,#6c527f)}
.messageempty{align-content:center;gap:4px}.messageempty b{color:#675d6c;font-size:14px}.messageempty span{color:#998e9d;font-size:11px}
#messageSendForm{padding:max(12px,env(safe-area-inset-bottom)) 14px;background:rgba(255,255,255,.84);backdrop-filter:blur(20px)}
#messageSendForm textarea:focus{outline:0;border-color:#a98bc8;box-shadow:0 0 0 3px rgba(169,139,200,.13);background:#fff}

@media(min-width:651px) and (max-width:980px){
  .messagedialog{width:calc(100vw - 28px);height:min(720px,calc(100dvh - 30px))}
  .messagelayout{grid-template-columns:210px minmax(0,1fr)}
  .messagelayout>aside{padding:12px 9px}
  .messageperson{padding:8px;gap:8px}
  .messagebubble{max-width:82%}
}
@media(max-width:650px){
  header .user{gap:5px!important;max-width:48vw!important}
  .useridentity{max-width:84px}.useridentity b{max-width:84px;font-size:11px}.useridentity small{display:none}
  header .user>a{margin-left:1px!important;padding:4px 5px!important;font-size:10px}
  .messagebutton{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important}
  .messagedialog{inset:0!important;width:100vw!important;height:100dvh!important;margin:0!important;border:0!important;border-radius:0!important}
  .messagewindow>.modalhead{min-height:72px;padding:13px 58px 11px 16px!important}
  .messagewindow>.modalhead .eyebrow{font-size:8px}.messagewindow>.modalhead h3{font-size:18px}.messagewindow>.modalhead p{font-size:10px}
  .messagewindow>.modalhead .modalclose{top:14px!important;right:14px!important}
  .messagelayout{display:block;position:relative;min-height:0}
  .messagelayout>aside,.messageconversation{position:absolute;inset:0}
  .messagelayout>aside{display:block;padding:12px 10px;border:0;overflow:auto}
  .messageconversation{display:none}
  .messagedialog.has-selection .messagelayout>aside{display:none}
  .messagedialog.has-selection .messageconversation{display:flex}
  .messagelayout>aside>strong{margin:3px 8px 10px}
  .messagepeople{gap:7px}.messageperson{grid-template-columns:10px minmax(0,1fr) auto;min-height:62px;padding:9px 11px;gap:10px;border-radius:15px!important;background:rgba(255,255,255,.56)!important}
  .messageperson>i{grid-column:auto}.messageperson b{font-size:14px}.messageperson small{font-size:10px}
  .messagethread{padding:14px 12px}
  .messagethreadhead{top:-14px;margin:-14px -12px 13px;padding:10px 12px}
  .messagecontacts{display:inline-block;flex:0 0 auto}
  .messagebubble{max-width:86%;margin:7px 0;padding:9px 11px}
  #messageSendForm{grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:9px 10px max(9px,env(safe-area-inset-bottom))}
  #messageSendForm textarea{min-height:42px;max-height:88px;padding:9px 10px}
  #messageSendForm button{width:auto;min-width:64px;min-height:42px;padding:9px 12px}
}
@media(max-width:340px){
  header .user{max-width:44vw!important}.useridentity{display:none}
  .messagewindow>.modalhead p{display:none}
  .messagewindow>.modalhead{min-height:64px}
  #messageSendForm button{min-width:58px;padding-inline:9px}
}

/* 顶部账户菜单与手机消息入口 */
.usermenu{position:relative;min-width:0}
.useridentity{display:grid!important;min-width:0!important;min-height:34px!important;margin:0!important;padding:3px 6px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:inherit!important;box-shadow:none!important;cursor:pointer}
.useridentity:hover,.useridentity[aria-expanded="true"]{background:rgba(255,255,255,.11)!important}
.useridentity b,.useridentity small{pointer-events:none}
.userpopover{position:absolute;top:calc(100% + 10px);right:0;z-index:80;width:190px;padding:13px;border:1px solid rgba(101,77,119,.13);border-radius:15px;background:rgba(255,255,255,.97);color:#403747;text-align:left;box-shadow:0 18px 48px rgba(35,25,43,.2);backdrop-filter:blur(22px)}
.userpopover[hidden]{display:none}.userpopover span,.userpopover strong,.userpopover small{display:block}.userpopover span{color:#928797;font-size:9px;letter-spacing:.08em}.userpopover strong{margin-top:5px;font-size:14px}.userpopover small{margin-top:2px;color:#887d8d;font-size:10px}
.userpopover form{margin:11px 0 0}.userlogoutbutton{display:block;width:100%;min-height:40px!important;margin:0!important;padding:9px 11px!important;border:0!important;border-radius:10px!important;background:#f0eaf4!important;color:#684c7c!important;font-size:12px!important;font-weight:650!important;text-align:center;box-shadow:none!important}.userlogoutbutton:hover{background:#e8deee!important}
.messagebutton{flex:0 0 35px!important;overflow:visible!important;isolation:isolate}
.messagebutton span{display:grid!important;place-items:center;width:100%;height:100%;line-height:1!important}
.messagebutton i{z-index:3;top:-4px!important;right:-5px!important}
@media(max-width:650px){
  header .user{overflow:visible!important}
  .messagebutton{display:grid!important;flex:0 0 34px!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;margin-right:2px!important;padding:0!important}
  .messagebutton span{font-size:15px!important;transform:none!important}
  .messagebutton i{top:-3px!important;right:-4px!important;min-width:15px;height:15px;padding:0 3px;border-width:2px;font-size:8px}
  .userpopover{position:fixed;top:58px;right:10px;width:min(190px,calc(100vw - 20px))}
}
@media(max-width:390px){
  .useridentity{display:grid!important;max-width:72px!important}
  .useridentity b{max-width:66px!important}.useridentity small{display:none!important}
}

/* Responsive layout system v5.4.2 — desktop / tablet / phone */
:root{--responsive-page-gutter:clamp(18px,2.5vw,38px);--responsive-card-gap:18px;--responsive-control-height:44px}
.appbody main{padding-left:var(--responsive-page-gutter)!important;padding-right:var(--responsive-page-gutter)!important}
.appbody .panel,.appbody .glasscard,.appbody .commoninfocard{min-width:0}
.appbody :is(input,select,button,.primary,.secondary){min-height:var(--responsive-control-height)}
.appbody .pagehead{min-width:0}
.appbody .pagehead>*,.appbody .paneltitle>*,.appbody .filterrow>*{min-width:0}
.appbody .tablewrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}

/* Large desktop: preserve generous reading measure and prevent overly wide forms. */
@media(min-width:1051px){
  .appbody main{padding-top:34px!important}
  .appbody .pagehead{margin-bottom:24px!important}
  .appbody .panel{padding:26px!important}
  .appbody .panel+.panel,.appbody form.panel+section.panel{margin-top:20px!important}
  .appbody .advancedfilters,.appbody .ledgerqueryfilters,.appbody .businessadvancedfilters,.appbody .people-filters{padding:18px!important}
  .appbody .filteractions,.appbody .queryactionbar{min-height:60px!important}
  .appbody .tablewrap{margin-top:4px!important}
}

/* Tablet: retain information density without forcing desktop rows into a narrow viewport. */
@media(min-width:701px) and (max-width:1050px){
  :root{--responsive-page-gutter:22px;--responsive-card-gap:16px}
  .appbody header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;width:calc(100% - 28px)!important;padding:10px 14px!important}
  .appbody header nav{grid-column:1/-1!important;display:flex!important;gap:6px!important;max-width:none!important;margin:0 -4px -4px!important;padding:4px!important;overflow-x:auto!important;scrollbar-width:none}
  .appbody header nav::-webkit-scrollbar{display:none}
  .appbody header nav a{flex:0 0 auto!important;min-height:40px!important;padding:9px 13px!important;white-space:nowrap}
  .appbody main{padding-top:24px!important;padding-bottom:72px!important}
  .appbody .pagehead{align-items:flex-start!important;margin-bottom:18px!important}
  .appbody .pagehead h1{font-size:28px!important}
  .appbody .panel,.appbody .glasscard,.appbody .commoninfocard{padding:20px!important;border-radius:20px!important}
  .appbody .metrics,.appbody .metrics-five,.appbody .adminmetrics,.appbody .periodmetrics,.appbody .perioddetailmetrics,.appbody .filtertotals,.appbody .supermetrics,.appbody .databasemetrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  .appbody .advancedfilters .filterrow,.appbody .ledgerqueryfilters .filterrow,.appbody .businessadvancedfilters .filterrow,.appbody .businessqueryfilters,.appbody .people-filters,.appbody .periodcompletedfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
  .appbody .filteractions,.appbody .queryactionbar{grid-column:1/-1!important;display:flex!important;justify-content:flex-end!important;gap:8px!important;padding-top:12px!important}
  .appbody .filteractions>*,.appbody .queryactionbar>*{width:auto!important;min-width:120px!important}
  .appbody .databaseworkspace{grid-template-columns:1fr!important;gap:16px!important}
  .appbody .backupmanagementpanel>.backuplist{max-height:min(500px,56dvh)!important}
  .appbody .people-hero,.appbody .businesshero,.appbody .periodhero{padding:24px!important}
  .appbody dialog:not(.chat-dialog):not(.messagedialog){max-width:calc(100vw - 36px)!important}
}

/* Phone: one purposeful column, thumb-friendly targets and contained horizontal data views. */
@media(max-width:700px){
  :root{--responsive-page-gutter:14px;--responsive-card-gap:14px;--responsive-control-height:46px}
  .appbody header{width:calc(100% - 16px)!important;margin-top:8px!important;padding:9px 10px 8px!important;border-radius:18px!important}
  .appbody main{padding:18px var(--responsive-page-gutter) calc(80px + env(safe-area-inset-bottom))!important}
  .appbody .pagehead{margin:0 1px 16px!important}
  .appbody .pagehead h1{font-size:24px!important;letter-spacing:-.55px!important}
  .appbody .pagehead p{margin-top:8px!important;padding:5px 9px!important;font-size:10px!important}
  .appbody .panel,.appbody .glasscard,.appbody .commoninfocard{padding:16px!important;border-radius:18px!important}
  .appbody .panel+.panel,.appbody form.panel+section.panel{margin-top:14px!important}
  .appbody .paneltitle{gap:9px!important;margin-bottom:15px!important}
  .appbody .paneltitle h2,.appbody .panel>h2{font-size:18px!important;line-height:1.28!important}
  .appbody .paneltitle p{font-size:12px!important;line-height:1.5!important}
  .appbody :is(input,select,textarea){font-size:16px!important}
  .appbody :is(button,.primary,.secondary,.tiny){min-height:var(--responsive-control-height)!important}
  .appbody .metrics,.appbody .metrics-five,.appbody .adminmetrics,.appbody .periodmetrics,.appbody .perioddetailmetrics,.appbody .filtertotals,.appbody .supermetrics,.appbody .databasemetrics{gap:10px!important}
  .appbody .metric,.appbody .adminmetrics article{min-height:96px!important;padding:14px!important}
  .appbody .advancedfilters,.appbody .ledgerqueryfilters,.appbody .businessadvancedfilters,.appbody .businessqueryfilters,.appbody .people-filters,.appbody .periodcompletedfilters{margin:10px 0 14px!important;padding:14px!important;gap:12px!important}
  .appbody .filteractions,.appbody .queryactionbar{gap:8px!important;margin-top:4px!important;padding-top:12px!important}
  .appbody .filteractions>*,.appbody .queryactionbar>*{min-height:46px!important}
  .appbody .tablewrap{margin-left:0!important;margin-right:0!important;border-radius:14px!important}
  .appbody .tablewrap table{font-size:12px!important}
  .appbody .tablewrap th,.appbody .tablewrap td{min-width:112px!important;padding:11px 10px!important}
  .appbody .tablewrap th:first-child,.appbody .tablewrap td:first-child{min-width:118px!important}
  .appbody .adminnav,.appbody .superadmintabs,.appbody .accessrolefilters{margin-bottom:16px!important}
  .appbody .adminnav a,.appbody .accessrolefilters a{min-height:42px!important;padding:10px 13px!important}
  .appbody .superadmintabs a{min-height:68px!important;min-width:148px!important}
  .appbody .homewelcome,.appbody .businesshero,.appbody .people-hero,.appbody .periodhero,.appbody .databasehero{padding:20px!important;border-radius:20px!important}
  .appbody .databaseoverview{gap:10px!important}
  .appbody .databaseoverview article{padding:13px!important}
  .appbody dialog:not(.chat-dialog):not(.messagedialog){width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important}
  .appbody dialog .modalhead{padding:16px 16px 12px!important}
  .appbody dialog .modalactions{gap:8px!important}
}

@media(max-width:374px){
  .appbody .metrics,.appbody .metrics-five,.appbody .adminmetrics,.appbody .periodmetrics,.appbody .perioddetailmetrics,.appbody .filtertotals,.appbody .supermetrics,.appbody .databasemetrics{grid-template-columns:1fr!important}
  .appbody .paneltitle>.buttonrow,.appbody .perioddashboardactions,.appbody .people-hero-actions,.appbody .businesshero .buttonrow,.appbody .filteractions,.appbody .queryactionbar,.appbody .backupactions,.appbody dialog .modalactions{grid-template-columns:1fr!important}
}

/* 三端顶部控件最终修复：禁止移动端裁切账户浮层 */
@media(max-width:900px){
  .appbody header{overflow:visible!important}
  .appbody header .usermenu{z-index:96}
  .appbody header .userpopover{z-index:120}
}
@media(max-width:650px){
  .appbody header{grid-template-columns:minmax(0,1fr) max-content!important;column-gap:7px!important}
  .appbody header .brand{max-width:100%;padding-right:2px}
  .appbody header .user{display:flex!important;max-width:none!important;gap:4px!important}
  .appbody header .messagebutton{border-color:rgba(255,255,255,.18)!important;background:rgba(255,255,255,.15)!important}
  .appbody header .useridentity{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:4px;max-width:92px!important;padding:4px 7px!important;background:rgba(255,255,255,.09)!important}
  .appbody header .useridentity:after{content:"⌄";color:rgba(255,255,255,.72);font-size:10px;line-height:1}
  .appbody header .useridentity b{max-width:68px!important}
  .appbody header .userpopover{top:54px!important;right:8px!important;width:min(200px,calc(100vw - 16px));padding:14px;border-radius:16px}
  .messagewindow>.modalhead .modalclose:focus{outline:2px solid rgba(119,89,147,.28)!important;outline-offset:2px}
}
@media(max-width:350px){
  .appbody header{padding-left:8px!important;padding-right:8px!important}
  .appbody header .brand b{font-size:11px!important}
  .appbody header .useridentity{max-width:68px!important}
  .appbody header .useridentity b{max-width:48px!important}
}
@media(max-width:420px){
  .appbody header .brand>div{display:none!important}
  .appbody header .brand{max-width:40px!important;overflow:visible!important}
  .appbody header .useridentity{max-width:108px!important}
  .appbody header .useridentity b{max-width:82px!important}
}

/* 2.4.6 手机顶部与订单信息优先级 */
.messagebutton span svg{display:block;width:18px;height:18px;overflow:visible;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.useridentity:after{content:none!important;display:none!important}
.responsive-finance-table .priority-amount{
  white-space:nowrap!important;
  word-break:keep-all!important;
  overflow-wrap:normal!important;
  font-variant-numeric:tabular-nums;
}
.responsive-finance-table td.priority-amount{color:#493456;font-weight:700;text-align:right}
.responsive-finance-table th.priority-amount{text-align:right}
.responsive-finance-table .priority-identity{white-space:nowrap!important;word-break:keep-all!important}
.responsive-finance-table .priority-detail{white-space:normal!important;word-break:break-word;overflow-wrap:anywhere}
@media(max-width:650px){
  .appbody header .messagebutton span{display:flex!important;align-items:center!important;justify-content:center!important;line-height:0!important}
  .appbody header .messagebutton span svg{width:17px;height:17px;transform:translateY(-.25px)}
  .appbody header .useridentity{display:grid!important;grid-template-columns:minmax(0,1fr)!important;padding-inline:8px!important}
  .appbody main table:not(.unifiedlogtable){font-size:10.75px!important;line-height:1.3!important}
  .appbody main table:not(.unifiedlogtable) th,
  .appbody main table:not(.unifiedlogtable) td{padding:7px 4px!important;vertical-align:top}
  .appbody main .responsive-finance-table th.priority-amount,
  .appbody main .responsive-finance-table td.priority-amount{min-width:62px;padding-left:6px!important;padding-right:5px!important;font-size:10.5px!important}
  .appbody main .responsive-finance-table .priority-identity{font-size:9.75px!important}
  .appbody main .responsive-finance-table .priority-detail{min-width:48px;line-height:1.35}
  .appbody main .responsive-finance-table tbody tr{border-bottom:1px solid rgba(94,71,112,.08)}
  .appbody main .responsive-finance-table .tag,
  .appbody main .responsive-finance-table .categorytag{display:inline-block;padding:3px 6px;font-size:9px}
}
@media(max-width:370px){
  .appbody main table:not(.unifiedlogtable){font-size:10px!important}
  .appbody main .responsive-finance-table th.priority-amount,
  .appbody main .responsive-finance-table td.priority-amount{min-width:58px;font-size:10px!important}
  .appbody main .responsive-finance-table .priority-detail{min-width:42px}
}

/* 手机端账单改为信息卡片，彻底避免多列表格挤压 */
@media(max-width:650px){
  .appbody main .responsive-finance-table{
    display:block;
    width:100%!important;
    min-width:0!important;
    border:0;
    background:transparent;
  }
  .appbody main .responsive-finance-table thead{display:none}
  .appbody main .responsive-finance-table tbody,
  .appbody main .responsive-finance-table tfoot{
    display:grid;
    width:100%;
    gap:11px;
  }
  .appbody main .responsive-finance-table tfoot{margin-top:11px}
  .appbody main .responsive-finance-table tr{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
    gap:0 10px;
    padding:11px 12px;
    border:1px solid rgba(94,71,112,.11)!important;
    border-radius:15px;
    background:rgba(255,255,255,.72);
    box-shadow:0 7px 20px rgba(58,41,70,.045);
  }
  .appbody main .responsive-finance-table td{
    display:flex;
    min-width:0!important;
    min-height:0;
    padding:7px 0!important;
    flex-direction:column;
    justify-content:flex-start;
    border:0!important;
    color:#453c4a;
    font-size:12px!important;
    line-height:1.38!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .appbody main .responsive-finance-table td:before{
    content:attr(data-label);
    display:block;
    margin-bottom:3px;
    color:#958a9b;
    font-size:9px;
    font-weight:600;
    letter-spacing:.02em;
  }
  .appbody main .responsive-finance-table td.priority-amount{
    min-width:0!important;
    color:#432a52;
    font-size:13px!important;
    font-weight:750;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
  }
  .appbody main .responsive-finance-table td.priority-identity{
    min-width:0!important;
    font-size:11px!important;
    white-space:nowrap!important;
  }
  .appbody main .responsive-finance-table td.priority-detail,
  .appbody main .responsive-finance-table td.priority-action{
    grid-column:1/-1;
  }
  .appbody main .responsive-finance-table td.priority-detail{
    padding-top:8px!important;
    border-top:1px solid rgba(94,71,112,.07)!important;
  }
  .appbody main .responsive-finance-table td.priority-action{
    margin-top:3px;
    padding-top:9px!important;
    border-top:1px solid rgba(94,71,112,.08)!important;
  }
  .appbody main .responsive-finance-table td.priority-action .rowactions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%!important;
    gap:7px!important;
  }
  .appbody main .responsive-finance-table td.priority-action .rowactions>*{
    width:100%!important;
    min-width:0!important;
  }
  .appbody main .responsive-finance-table td.priority-action a,
  .appbody main .responsive-finance-table td.priority-action button{
    width:100%!important;
    min-height:36px!important;
    padding:7px 9px!important;
    text-align:center;
  }
  .appbody main .responsive-finance-table td.empty{
    grid-column:1/-1;
    display:block;
    padding:25px 10px!important;
    color:#908594;
    text-align:center!important;
  }
  .appbody main .responsive-finance-table td.empty:before{display:none}
  .appbody main .responsive-finance-table tfoot tr{background:rgba(239,233,244,.82)}
}
@media(max-width:350px){
  .appbody main .responsive-finance-table tr{grid-template-columns:1fr;padding:10px 11px}
  .appbody main .responsive-finance-table td.priority-detail,
  .appbody main .responsive-finance-table td.priority-action{grid-column:auto}
}

/* 2.4.8 手机账单恢复为逐行列表；分栏移除重复字段 */
.splitclonetable .column-category,
.splitclonetable .column-flow,
.splitclonetable .column-creator{display:none!important}
.ledgersplitpane .splitclonetable{width:100%;min-width:0!important;font-size:11px}
.ledgersplitpane .splitclonetable th,.ledgersplitpane .splitclonetable td{padding:7px 5px}
@media(max-width:650px){
  .appbody main .responsive-finance-table{
    display:table;
    width:100%!important;
    min-width:0!important;
    table-layout:auto;
    border-collapse:collapse;
  }
  .appbody main .responsive-finance-table thead{display:table-header-group}
  .appbody main .responsive-finance-table tbody{display:table-row-group}
  .appbody main .responsive-finance-table tfoot{display:table-footer-group;margin:0}
  .appbody main .responsive-finance-table tr{
    display:table-row;
    width:auto;
    padding:0;
    border:0!important;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .appbody main .responsive-finance-table th.mobile-optional,
  .appbody main .responsive-finance-table td.mobile-optional{display:none!important}
  .appbody main .responsive-finance-table th{
    display:table-cell;
    padding:8px 4px!important;
    border-bottom:1px solid rgba(94,71,112,.12)!important;
    color:#877b8d;
    font-size:9.5px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .appbody main .responsive-finance-table td{
    display:table-cell;
    min-width:0!important;
    padding:10px 4px!important;
    border-bottom:1px solid rgba(94,71,112,.09)!important;
    color:#453c4a;
    font-size:10.75px!important;
    line-height:1.3!important;
    text-align:left!important;
    vertical-align:middle;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    background:transparent!important;
  }
  .appbody main .responsive-finance-table td:before{display:none!important;content:none!important}
  .appbody main .responsive-finance-table td.priority-amount{
    width:1%;
    min-width:65px!important;
    padding-left:6px!important;
    color:#432a52;
    font-size:11px!important;
    font-weight:750;
    text-align:right!important;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
  }
  .appbody main .responsive-finance-table th.priority-amount{text-align:right!important}
  .appbody main .responsive-finance-table td.priority-identity{
    width:1%;
    min-width:56px!important;
    font-size:9.75px!important;
    white-space:nowrap!important;
  }
  .appbody main .responsive-finance-table td.priority-detail{
    min-width:54px!important;
    padding-top:10px!important;
    border-top:0!important;
  }
  .appbody main .responsive-finance-table td.priority-action{
    width:1%;
    min-width:58px!important;
    margin:0;
    padding-top:10px!important;
    border-top:0!important;
  }
  .appbody main .responsive-finance-table td.priority-action .rowactions{
    display:flex!important;
    width:auto!important;
    gap:4px!important;
    flex-wrap:wrap!important;
  }
  .appbody main .responsive-finance-table td.priority-action .rowactions>*{width:auto!important}
  .appbody main .responsive-finance-table td.priority-action a,
  .appbody main .responsive-finance-table td.priority-action button{
    width:auto!important;
    min-width:0!important;
    min-height:30px!important;
    padding:5px 7px!important;
    font-size:9px!important;
  }
  .appbody main .responsive-finance-table td.empty{
    display:table-cell;
    padding:26px 8px!important;
    text-align:center!important;
  }
}

@media(max-width:700px){
  body.appbody dialog.chat-dialog .chat-compose-tools>button,
  body.appbody dialog.chat-dialog .chat-compose-tools>label,
  body.appbody dialog.chat-dialog button.chat-send{
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:0!important;
    border-radius:999px!important;
  }
}

@media(max-width:700px){
  body.appbody dialog.chat-dialog #chatComposer .chat-compose-tools>button,
  body.appbody dialog.chat-dialog #chatComposer .chat-compose-tools>label,
  body.appbody dialog.chat-dialog #chatComposer button.chat-send{
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:0!important;
    border-radius:50%!important;
  }
}

/* Native mobile structures v5.4.7 */
.periodcompletedmobile,.mobileloglist{display:none}
@media(max-width:700px){
  .periodcompleteddesktop,.desktoplogtable{display:none!important}
  .periodcompletedpanel{overflow:hidden!important}
  .periodcompletedmobile{display:grid!important;gap:12px!important}
  .periodcompletedcard{display:grid;gap:12px;min-width:0;padding:15px;border:1px solid rgba(70,52,84,.09);border-radius:17px;background:#fff;box-shadow:0 9px 26px rgba(45,31,56,.055)}
  .periodcompletedcardhead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
  .periodcompletedcardhead>div{display:grid;gap:3px;min-width:0}
  .periodcompletedcardhead small{color:#887c8d;font-size:9px;font-weight:720}
  .periodcompletedcardhead a{overflow:hidden;color:#59446a;font-size:14px;font-weight:760;text-overflow:ellipsis;white-space:nowrap}
  .periodcompletedcardhead>span{flex:0 0 auto;padding:5px 8px;border-radius:99px;background:#e3f1e9;color:#347052;font-size:9px;font-weight:740}
  .periodcompletedcard h3{margin:0;overflow-wrap:anywhere;color:#302837;font-size:15px;line-height:1.45}
  .periodcompletedamounts,.periodcompleteddates{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .periodcompletedamounts>span,.periodcompleteddates>span{display:grid;gap:4px;min-width:0;padding:11px;border-radius:12px;background:#f6f3f7}
  .periodcompletedcard small{color:#8c8190;font-size:9px}
  .periodcompletedamounts strong{overflow-wrap:anywhere;color:#44344e;font-size:15px}
  .periodcompleteddates b{color:#5f5565;font-size:11px}
  .periodcompletedactions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-top:2px}
  .periodcompletedactions form,.periodcompletedactions a,.periodcompletedactions button{width:100%!important;margin:0!important;text-align:center}
  .mobileempty{margin:0;padding:28px 12px;border:1px dashed rgba(75,56,89,.14);border-radius:15px;color:#8c8191;text-align:center}

  .mobileloglist{display:grid!important;gap:10px!important;min-width:0!important}
  .mobilelogcard{display:grid;gap:10px;min-width:0;padding:13px;border:1px solid rgba(70,52,84,.09);border-radius:15px;background:#fff;box-shadow:0 7px 20px rgba(45,31,56,.045)}
  .mobileloghead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
  .mobileloghead time{min-width:0;color:#8e8392;font-size:9px;text-align:right;overflow-wrap:anywhere}
  .mobilelogidentity,.mobilelogaction{display:grid;gap:3px;min-width:0;padding:9px 10px;border-radius:11px;background:#f6f3f7}
  .mobilelogcard small{color:#918696;font-size:9px;font-weight:720}
  .mobilelogcard strong,.mobilelogcard b{min-width:0;overflow-wrap:anywhere;color:#4e4355;font-size:11px}
  .mobilelogcard p{max-width:100%;margin:0;padding-top:2px;overflow-wrap:anywhere;word-break:break-word;color:#655b6b;font-size:10px;line-height:1.6}
  .auditlogpanel .accessrolefilters{max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important}

  /* Header/profile avatars are always clipped circles, regardless of source image ratio. */
  body.appbody header #userMenuButton.useridentity{overflow:hidden!important;border-radius:50%!important;contain:paint}
  body.appbody header #userMenuButton .user-mini-avatar,
  body.appbody header #userMenuButton .user-mini-avatar>img{
    box-sizing:border-box!important;
    width:34px!important;
    min-width:34px!important;
    max-width:34px!important;
    height:34px!important;
    min-height:34px!important;
    max-height:34px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    clip-path:circle(50% at 50% 50%)!important;
    object-fit:cover!important;
    object-position:center!important;
    overflow:hidden!important;
  }

  /* Profile center is a single, predictable scroll document on phones. */
  body.appbody dialog#profileCenterDialog.profile-center-dialog[open]{
    inset:0!important;
    display:flex!important;
    flex-direction:column!important;
    box-sizing:border-box!important;
    width:calc(100vw - 12px)!important;
    min-width:0!important;
    max-width:calc(100vw - 12px)!important;
    height:calc(100dvh - 12px)!important;
    min-height:0!important;
    max-height:calc(100dvh - 12px)!important;
    margin:auto!important;
    padding:0!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  body.appbody dialog#profileCenterDialog .profile-center-head{display:flex!important;flex:0 0 auto!important;align-items:flex-start!important;padding:17px 16px 13px!important;gap:12px!important}
  body.appbody dialog#profileCenterDialog .profile-center-head h2{font-size:20px!important}
  body.appbody dialog#profileCenterDialog .profile-center-head p{font-size:10px!important;line-height:1.45!important}
  body.appbody dialog#profileCenterDialog .profile-center-body{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    flex:1 1 auto!important;
    align-content:start!important;
    gap:11px!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:11px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
  }
  body.appbody dialog#profileCenterDialog .profile-identity-card,
  body.appbody dialog#profileCenterDialog .profile-security-card{display:block!important;box-sizing:border-box!important;width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin:0!important;padding:15px!important;border-radius:16px!important;overflow:visible!important}
  body.appbody dialog#profileCenterDialog .profile-identity-card form,
  body.appbody dialog#profileCenterDialog .profile-security-card form{position:static!important;display:grid!important;grid-template-columns:1fr!important;gap:12px!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important}
  body.appbody dialog#profileCenterDialog .profile-avatar-editor{display:grid!important;grid-template-columns:64px minmax(0,1fr)!important;align-items:center!important;gap:12px!important}
  body.appbody dialog#profileCenterDialog .profile-avatar-preview,
  body.appbody dialog#profileCenterDialog .profile-avatar-preview>img{width:64px!important;min-width:64px!important;height:64px!important;min-height:64px!important;margin:0!important;border-radius:50%!important;clip-path:circle(50% at 50% 50%)!important;object-fit:cover!important;overflow:hidden!important}
  body.appbody dialog#profileCenterDialog .profile-avatar-upload{box-sizing:border-box!important;width:100%!important;min-height:58px!important;margin:0!important;padding:10px 12px!important}
  body.appbody dialog#profileCenterDialog .profile-title{margin:0!important;padding:0!important}
  body.appbody dialog#profileCenterDialog .profile-title strong{font-size:16px!important}
  body.appbody dialog#profileCenterDialog .profile-form-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;width:100%!important;min-width:0!important}
  body.appbody dialog#profileCenterDialog .profile-form-grid .span2{grid-column:auto!important}
  body.appbody dialog#profileCenterDialog :is(.profile-form-grid,.profile-security-card) label{display:grid!important;gap:5px!important;width:100%!important;min-width:0!important;margin:0!important}
  body.appbody dialog#profileCenterDialog :is(input,textarea){box-sizing:border-box!important;width:100%!important;min-width:0!important;height:46px!important;min-height:46px!important;margin:0!important;padding:10px 12px!important;font-size:16px!important}
  body.appbody dialog#profileCenterDialog textarea{height:86px!important;min-height:86px!important;resize:vertical!important}
  body.appbody dialog#profileCenterDialog .profile-save,
  body.appbody dialog#profileCenterDialog .profile-security-card form button{position:static!important;inset:auto!important;align-self:auto!important;width:100%!important;height:46px!important;min-height:46px!important;margin:0!important}
  body.appbody dialog#profileCenterDialog .profile-security-card h3{margin:12px 0 5px!important}
  body.appbody dialog#profileCenterDialog .profile-security-card>p{margin:0 0 13px!important}
}

@media(max-width:360px){
  .periodcompletedamounts,.periodcompleteddates,.periodcompletedactions{grid-template-columns:1fr!important}
}

/* 5.4.9 desktop message entry — isolate it from global button min-height rules. */
@media(min-width:701px){
  .appbody header .messagebutton{
    display:grid!important;
    place-items:center!important;
    box-sizing:border-box!important;
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    margin:0 2px 0 0!important;
    padding:0!important;
    border-radius:50%!important;
    overflow:visible!important;
  }
  .appbody header .messagebutton>span{
    display:grid!important;
    place-items:center!important;
    width:20px!important;
    min-width:20px!important;
    height:20px!important;
    min-height:20px!important;
    line-height:0!important;
  }
  .appbody header .messagebutton>span>svg{
    display:block!important;
    width:18px!important;
    height:18px!important;
    margin:0!important;
    transform:none!important;
  }
}

/* 2.5.2 账单详情内修改浮窗 */
.ordereditdialog{
  width:min(900px,calc(100vw - 28px))!important;
  max-width:none!important;
  max-height:min(88dvh,820px)!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.8)!important;
  border-radius:25px!important;
  background:rgba(246,243,248,.98)!important;
  box-shadow:0 34px 110px rgba(30,21,37,.36)!important;
}
.ordereditdialog::backdrop{background:rgba(28,21,34,.5);backdrop-filter:blur(10px)}
.ordereditdialog>.orderdetailhead{min-height:66px}
.ordereditbody{max-height:calc(min(88dvh,820px) - 66px);padding:20px;overflow:auto}
.ordereditbody>form{
  max-width:none!important;
  margin:0!important;
  border-radius:19px!important;
  box-shadow:none!important;
}
.ordereditbody>form>.paneltitle:first-child{margin-bottom:18px}
.ordereditbody .actions{position:sticky;bottom:0;z-index:2;margin:22px -4px -4px;padding:12px 4px 4px;background:linear-gradient(transparent,rgba(255,255,255,.98) 28%)}
.ordereditbody .actions button{min-width:130px}

@media(max-width:650px){
  .ordereditdialog{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:none!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
  .ordereditbody{height:calc(100dvh - 64px);max-height:none;padding:10px}
  .ordereditbody>form{padding:16px!important;border-radius:17px!important}
  .ordereditbody .simplegrid{grid-template-columns:1fr!important}
  .ordereditbody .actions button{width:100%}
}

/* 2.5.3 消息自动置顶、独立图片入口与优雅动效 */
.messageimagebutton{
  display:grid!important;
  place-items:center;
  width:27px!important;
  min-width:27px!important;
  height:27px!important;
  min-height:27px!important;
  margin:0!important;
  padding:0!important;
  border-radius:8px!important;
  background:#ece8f6!important;
  color:#6755a0!important;
  cursor:pointer;
  font-size:14px!important;
}
.messageimagebutton input{display:none}
.messagepersonrow.has-new-message{
  background:linear-gradient(135deg,rgba(237,230,245,.96),rgba(246,241,249,.88));
  box-shadow:inset 3px 0 #80629a,0 7px 20px rgba(76,52,92,.06);
  animation:messageContactRise .38s cubic-bezier(.2,.75,.25,1) both;
}
.messagepersonrow.has-new-message .messageperson small{color:#755989;font-weight:700}
.messagedialog[open]{animation:messageWindowIn .3s cubic-bezier(.2,.78,.25,1) both}
.messagedialog[open]::backdrop{animation:messageBackdropIn .28s ease both}
.messagepersonrow{transition:transform .22s ease,background .22s ease,box-shadow .22s ease}
.messagepersonrow:hover{transform:translateY(-1px)}
.messagebubble.messageappear{animation:messageBubbleIn .34s cubic-bezier(.2,.8,.25,1) both}
.messageemojipanel:not([hidden]){transform-origin:bottom left;animation:messageEmojiIn .2s cubic-bezier(.2,.8,.25,1) both}
.messageimage img{transition:transform .25s ease,filter .25s ease}
.messageimage:hover img{transform:scale(1.012);filter:saturate(1.04)}
.messagesendbutton{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.messagesendbutton:hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 9px 22px rgba(91,61,115,.2)!important}

@keyframes messageWindowIn{
  from{opacity:0;transform:translateY(12px) scale(.982)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes messageBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes messageBubbleIn{
  from{opacity:0;transform:translateY(7px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes messageEmojiIn{
  from{opacity:0;transform:translateY(6px) scale(.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes messageContactRise{
  from{opacity:.55;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}

@media(max-width:650px){
  .periodcompletedtable{width:940px!important;min-width:940px!important}
  .appbody main .periodcompletedtable th.mobile-optional,
  .appbody main .periodcompletedtable td.mobile-optional{display:table-cell!important}
  .periodcompletedtable th,
  .periodcompletedtable td{white-space:nowrap!important}
  .periodcompletedtable td[data-label*="公司"]{white-space:normal!important}
}

@media(prefers-reduced-motion:reduce){
  .messagedialog[open],
  .messagedialog[open]::backdrop,
  .messagepersonrow.has-new-message,
  .messagebubble.messageappear,
  .messageemojipanel:not([hidden]){animation:none!important}
  .messagepersonrow,.messageimage img,.messagesendbutton{transition:none!important}
}

/* 2.5.4 公司总账新建账单强调入口 */
.financeworkbenchhub .financecreatecard{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-color:rgba(111,76,139,.24)!important;
  background:
    linear-gradient(135deg,rgba(248,242,252,.98),rgba(231,220,241,.94))!important;
  color:#3f2c4d!important;
  box-shadow:0 14px 34px rgba(77,49,99,.13),inset 0 1px rgba(255,255,255,.8)!important;
}
.financeworkbenchhub .financecreatecard::before{
  content:"";
  position:absolute;
  z-index:-1;
  width:150px;
  height:150px;
  top:-92px;
  right:-52px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(167,125,200,.32),rgba(167,125,200,0) 70%);
  animation:financeCreateGlow 5.4s ease-in-out infinite alternate;
}
.financeworkbenchhub .financecreatecard::after{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(112deg,transparent 20%,rgba(255,255,255,.56) 43%,transparent 64%);
  transform:translateX(-125%);
  animation:financeCreateSheen 6.8s ease-in-out infinite;
}
.financeworkbenchhub .financecreatecard span{
  background:linear-gradient(145deg,#825da0,#66427f)!important;
  color:#fff!important;
  box-shadow:0 7px 18px rgba(91,61,115,.22)!important;
}
.financeworkbenchhub .financecreatecard b{font-size:15.5px}
.financeworkbenchhub .financecreatecard small{color:#705f7a!important}
.financeworkbenchhub .financecreatecard:hover{
  transform:translateY(-3px) scale(1.008)!important;
  border-color:rgba(111,76,139,.34)!important;
  box-shadow:0 18px 42px rgba(77,49,99,.18),inset 0 1px rgba(255,255,255,.9)!important;
}
@keyframes financeCreateGlow{
  from{transform:translate3d(-10px,4px,0) scale(.9);opacity:.65}
  to{transform:translate3d(7px,13px,0) scale(1.16);opacity:1}
}
@keyframes financeCreateSheen{
  0%,58%{transform:translateX(-125%)}
  76%,100%{transform:translateX(125%)}
}
@media(prefers-reduced-motion:reduce){
  .financeworkbenchhub .financecreatecard::before,
  .financeworkbenchhub .financecreatecard::after{animation:none!important}
}

/* 2.5.5 个人账单工作台与账期工作台统一 */
.personaldashboardhero{margin-bottom:18px}
.personalworkbenchhub{grid-template-columns:repeat(4,minmax(0,1fr))}
.personalworkbenchhub .personalcreatecard{
  border-color:rgba(112,83,137,.2);
  background:linear-gradient(150deg,#faf6fc,#eee6f4);
}
.personalworkbenchhub .personalcreatecard span{
  background:linear-gradient(145deg,#806198,#67487f);
  color:#fff;
  box-shadow:0 7px 18px rgba(90,62,111,.18);
}
@media(max-width:1050px){
  .personalworkbenchhub{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .personalworkbenchhub{grid-template-columns:1fr}
  .personaldashboardhero{margin-bottom:14px}
}

/* 2.4.14 账期日期入口、详情登记与手机公司信息 */
.periodquicksettle{
  flex:1 1 100%;
  order:-1;
  border:1px solid rgba(91,68,111,.12);
  border-radius:15px;
  background:#f8f5fa;
}
.periodquicksettle summary{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  padding:10px 16px;
  border-radius:13px;
  background:#76528f;
  color:#fff;
  font-weight:700;
  cursor:pointer;
  list-style:none;
}
.periodquicksettle summary::-webkit-details-marker{display:none}
.periodquicksettle[open]{padding:10px}
.periodquicksettle[open] summary{margin-bottom:11px}
.periodquicksettle form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px;
}
.periodquicksettle form label{margin:0;color:#706477;font-size:12px}
.periodquicksettle form input{margin-top:5px}
.periodquicksettle form button{align-self:end}

@media(max-width:650px){
  .periodtable,
  .periodcompletedtable{
    width:100%!important;
    min-width:0!important;
    table-layout:auto!important;
  }
  .periodtable th[data-label*="公司"],
  .periodtable td[data-label*="公司"],
  .periodcompletedtable th[data-label*="公司"],
  .periodcompletedtable td[data-label*="公司"]{
    display:table-cell!important;
    min-width:88px!important;
    color:#312839!important;
    font-size:12px!important;
    font-weight:700;
    line-height:1.35!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  .periodtable .datadetaillink,
  .periodcompletedtable .datadetaillink{font-size:11.5px;font-weight:700}
  .periodtable td.priority-action button,
  .periodcompletedtable td.priority-action a,
  .periodcompletedtable td.priority-action button{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    font-size:10px!important;
    line-height:1.2!important;
    white-space:nowrap!important;
  }
  .periodquicksettle form{grid-template-columns:1fr}
  .periodquicksettle summary{display:flex;width:100%}
  .periodworkbenchhub b,
  .periodworkbenchhub small{display:block!important}
}

/* 2.5.0 账期登记浮窗与消息中心 Beta 1.1 */
.perioddetailactions{flex-wrap:wrap}
.periodsettlebutton{min-width:120px}
.perioddetailsettlemodal{
  width:min(560px,calc(100vw - 24px))!important;
  padding:0!important;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.8)!important;
  border-radius:24px!important;
  background:rgba(250,248,251,.98)!important;
  box-shadow:0 30px 90px rgba(37,25,45,.3)!important;
}
.perioddetailsettlemodal::backdrop{background:rgba(31,23,36,.45);backdrop-filter:blur(9px)}
.perioddetailsettlemodal>form{padding:0!important}
.perioddetailsettlemodal .modalhead{padding:19px 20px;border-bottom:1px solid rgba(91,68,111,.1);background:#fff}
.periodsettleformgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:20px}
.periodsettleformgrid label{margin:0;color:#6f6575;font-size:12px;font-weight:650}
.perioddetailsettlemodal .modalactions{margin:0;padding:0 20px 20px}
.perioddetailsettlemodal .modalactions button{width:100%;min-height:46px}

.messagepersonrow{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 28px;align-items:center;gap:3px;border-radius:15px}
.messagepersonrow.pinned{background:rgba(236,229,242,.55)}
.messagepersonrow .messageperson{min-width:0}
.messagepin{display:grid!important;place-items:center;width:27px!important;min-width:27px!important;height:27px!important;min-height:27px!important;padding:0!important;border-radius:9px!important;background:transparent!important;color:#9a8ca1!important;box-shadow:none!important;font-size:12px!important}
.messagepersonrow.pinned .messagepin{color:#76558b!important}
.messagethreadhead>div:nth-child(2){flex:1}
.messagethreadactions{display:flex!important;align-items:center;gap:6px;overflow:visible!important}
.messagethreadactions button{min-height:32px!important;padding:6px 9px!important;border-radius:9px!important;background:#eee8f2!important;color:#675271!important;box-shadow:none!important;font-size:10px!important}
.messagethreadactions button.danger{background:#f8e9eb!important;color:#b34455!important}
.messagebubble{min-width:80px}
.messageimage{display:block;margin-top:7px}
.messageimage img{display:block;max-width:min(320px,100%);max-height:260px;border-radius:12px;object-fit:cover}
.messageattachment{display:flex;align-items:center;gap:8px;max-width:300px;margin-top:7px;padding:9px 10px;border-radius:11px;background:rgba(117,88,139,.09);color:inherit}
.messageattachment b{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.messagebubble.mine .messageattachment{background:rgba(255,255,255,.14);color:#fff}
.messagecompose{position:relative;min-width:0}
#messageSendForm{align-items:end}
#messageSendForm textarea{width:100%;padding-bottom:35px}
.messagecomposebar{position:absolute;right:8px;bottom:6px;left:8px;display:flex;align-items:center;gap:5px;height:27px}
.messagecomposebar button,.messagefilebutton{display:grid!important;place-items:center;width:27px!important;min-width:27px!important;height:27px!important;min-height:27px!important;margin:0!important;padding:0!important;border-radius:8px!important;background:#f0ebf3!important;color:#6c567a!important;box-shadow:none!important;cursor:pointer;font-size:15px!important}
.messagefilebutton input{display:none}
#messageFileName{min-width:0;overflow:hidden;color:#8a7e90;font-size:9px;text-overflow:ellipsis;white-space:nowrap}
.messageemojipanel{position:absolute;right:0;bottom:calc(100% + 8px);z-index:5;display:grid;grid-template-columns:repeat(8,32px);gap:4px;padding:9px;border:1px solid rgba(92,70,108,.12);border-radius:15px;background:rgba(255,255,255,.98);box-shadow:0 16px 42px rgba(40,28,48,.18)}
.messageemojipanel[hidden]{display:none}
.messageemojipanel button{display:grid!important;place-items:center;width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;padding:0!important;border-radius:8px!important;background:transparent!important;box-shadow:none!important;font-size:18px!important}
.messageemojipanel button:hover{background:#eee8f2!important}
.messagesendbutton{min-width:72px}

@media(max-width:650px){
  .perioddetailsettlemodal{width:calc(100vw - 14px)!important;border-radius:21px!important}
  .periodsettleformgrid{grid-template-columns:1fr;padding:16px}
  .perioddetailsettlemodal .modalactions{padding:0 16px 16px}
  .messagepersonrow{grid-template-columns:minmax(0,1fr) 32px}
  .messagethreadhead{flex-wrap:wrap}
  .messagethreadactions{flex:1 1 100%;justify-content:flex-end}
  #messageSendForm{grid-template-columns:minmax(0,1fr) auto!important}
  .messageemojipanel{right:auto;left:0;grid-template-columns:repeat(6,32px);max-width:238px}
  .messageimage img{max-height:220px}
}

/* 2.5.1 手机账期表格支持自然左右滑动 */
@media(max-width:650px){
  .periodtable,
  .periodcompletedtable{
    width:860px!important;
    min-width:860px!important;
    table-layout:auto!important;
  }
  .periodtable{
    margin-bottom:4px;
  }
  .periodtable,
  .periodcompletedtable,
  .periodtable *,
  .periodcompletedtable *{
    touch-action:pan-x pan-y;
  }
  .periodtable.parent-scroll-ready,
  .periodcompletedtable.parent-scroll-ready{overscroll-behavior-inline:contain}
  .panel:has(> .periodtable),
  .tablewrap:has(> .periodcompletedtable){
    overflow-x:auto!important;
    overflow-y:visible;
    scrollbar-width:thin;
    scrollbar-color:rgba(102,77,121,.28) transparent;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-inline:contain;
  }
  .panel:has(> .periodtable)::after,
  .tablewrap:has(> .periodcompletedtable)::after{
    content:"左右滑动查看更多";
    position:sticky;
    left:0;
    display:block;
    width:max-content;
    margin:7px 0 0;
    color:#8b7f91;
    font-size:10px;
    letter-spacing:.02em;
  }
  .periodtable th,
  .periodtable td,
  .periodcompletedtable th,
  .periodcompletedtable td{
    white-space:nowrap!important;
  }
  .periodtable td[data-label*="公司"],
  .periodcompletedtable td[data-label*="公司"]{
    min-width:120px!important;
    max-width:180px;
    white-space:normal!important;
  }
}
@media(max-width:370px){
  .appbody main .responsive-finance-table th{padding-inline:3px!important;font-size:9px!important}
  .appbody main .responsive-finance-table td{padding-inline:3px!important;font-size:10px!important}
  .appbody main .responsive-finance-table td.priority-amount{min-width:59px!important;font-size:10px!important}
  .appbody main .responsive-finance-table td.priority-identity{min-width:52px!important;font-size:9px!important}
}
.datadetaillink {
    display: inline-flex;
    align-items: center;
    max-width: 100%;
    color: var(--text-primary, #1d1d1f);
    font-weight: 650;
    line-height: 1.35;
    white-space: nowrap;
    text-decoration: underline;
    text-decoration-color: rgba(89, 66, 104, .28);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
    transition: color .18s ease, text-decoration-color .18s ease;
}

.datadetaillink:hover,
.datadetaillink:focus-visible {
    color: #684f79;
    text-decoration-color: currentColor;
}

/* 2.4.12 账单日期、金额颜色与字号统一 */
.datadetaillink,
.datadetaillink:hover,
.datadetaillink:focus-visible {
  color:#65349b;
  text-decoration:none!important;
}
.moneyin{color:#238457!important;font-weight:750!important}
.moneyout{color:#d04b4b!important;font-weight:750!important}
.appbody main table:not(.unifiedlogtable){font-size:13px!important;line-height:1.45!important}
.appbody main table:not(.unifiedlogtable) th{font-size:11.5px!important}
.appbody main table:not(.unifiedlogtable) td{padding:10px 7px!important}
.billpaper,.orderdetailbody>.billpaper{font-size:15px}
.billpaper .billhero small,.billpaper .billhero p{font-size:13.5px;line-height:1.55}
.billpaper .billfacts dt{font-size:13px}
.billpaper .billfacts dd{font-size:15px}
.billpaper table{font-size:13.5px!important}
.ledgersplitpane .splitclonetable{font-size:12.5px!important}

@media(max-width:650px){
  .appbody main .responsive-finance-table th{font-size:10.5px!important}
  .appbody main .responsive-finance-table td{font-size:12px!important;line-height:1.4!important}
  .appbody main .responsive-finance-table td.priority-amount{font-size:12.25px!important}
  .appbody main .responsive-finance-table td.priority-identity{font-size:11px!important}
  .billpaper,.orderdetailbody>.billpaper{font-size:14px}
  .billpaper .billhero small,.billpaper .billhero p{font-size:12.5px}
  .billpaper .billfacts dt{font-size:12px}
  .billpaper .billfacts dd{font-size:14px}
}

@media(max-width:370px){
  .appbody main .responsive-finance-table th{font-size:10px!important}
  .appbody main .responsive-finance-table td{font-size:11.5px!important}
  .appbody main .responsive-finance-table td.priority-amount{font-size:11.75px!important}
  .appbody main .responsive-finance-table td.priority-identity{font-size:10.5px!important}
}

/* 2.4.13 收支分栏左右排版对齐 */
.ledgersplitview{align-items:start}
.ledgersplitpane{min-width:0}
.ledgersplitpane .tablewrap{width:100%;overflow:hidden}
.ledgersplitpane .splitclonetable{
  width:100%!important;
  table-layout:fixed;
  border-collapse:collapse;
}
.ledgersplitpane .splitclonetable th,
.ledgersplitpane .splitclonetable td{
  height:44px;
  padding:9px 6px!important;
  line-height:1.4!important;
  vertical-align:middle!important;
}
.ledgersplitpane .splitclonetable th{
  height:40px;
  white-space:nowrap;
}
.ledgersplitpane .splitclonetable td{
  overflow-wrap:anywhere;
}
.ledgersplitpane .splitclonetable td.priority-amount{
  white-space:nowrap!important;
  overflow-wrap:normal!important;
}

@media(max-width:650px){
  .ledgersplitpane .splitclonetable th,
  .ledgersplitpane .splitclonetable td{
    height:42px;
    padding:8px 5px!important;
    line-height:1.35!important;
  }
}
.businessnav{margin-bottom:18px}
.businesshero{background:linear-gradient(135deg,#29213d 0%,#473566 55%,#776098 100%);color:#fff;box-shadow:0 22px 48px rgba(34,24,54,.2)}
.businesshero h2,.businesshero p{color:#fff}
.businessherostat{min-width:220px;padding:18px 22px;border:1px solid rgba(255,255,255,.2);border-radius:22px;background:rgba(255,255,255,.12);backdrop-filter:blur(18px)}
.businessherostat small,.businessherostat strong{display:block}.businessherostat small{opacity:.72;margin-bottom:7px}.businessherostat strong{font-size:25px;letter-spacing:-.03em}
.businessledgergrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:28px}
.businessledgercard{position:relative;display:grid;width:100%;grid-template-columns:48px minmax(0,1fr) auto 18px;align-items:center;gap:15px;padding:20px;border:1px solid rgba(87,67,114,.12);border-radius:24px;background:rgba(255,255,255,.86);color:inherit;text-align:left;font:inherit;text-decoration:none;box-shadow:0 12px 32px rgba(52,38,72,.08);cursor:pointer;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}
.businessledgercard:hover{transform:translateY(-3px);border-color:rgba(104,74,145,.28);box-shadow:0 18px 38px rgba(52,38,72,.13)}
.businessledgericon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:linear-gradient(145deg,#6f568f,#3d2e57);color:#fff;font-size:20px;font-weight:750}
.businessledgercard small,.businessledgercard p{color:#847b8d}.businessledgercard h3{margin:4px 0;font-size:17px}.businessledgercard p{margin:0;font-size:13px}
.businessledgercard>strong{white-space:nowrap;color:#332642;font-size:16px}.businessledgercard>i{font-size:26px;color:#9b8da7;font-style:normal}
.businessledgerpanel{overflow:visible}.businessfilters{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto auto;align-items:end;gap:10px;margin:18px 0}
.businessfilters label{margin:0}.businessfilters input{min-height:42px}.businesstable td{vertical-align:middle}
.businessdatebutton{border:0;background:none;padding:0;color:#67507f;font:inherit;font-weight:700;text-decoration:none;cursor:pointer;white-space:nowrap}
.businessdatebutton:hover{color:#332642}.businessmoney{color:#237a4b;font-weight:750;white-space:nowrap}
.businessdialogbody{padding:26px}.businessdetail{width:min(860px,calc(100vw - 24px))}.businessedit{width:min(820px,calc(100vw - 24px))}
.businessamount{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:20px 22px;margin:4px 0 18px;border-radius:20px;background:linear-gradient(135deg,#f0eaf6,#faf8fc)}
.businessamount span{color:#756b7c}.businessamount strong{font-size:27px;color:#2c714b;white-space:nowrap}
.businessdetailgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.businessdetailgrid>div{min-width:0;padding:13px 15px;border-radius:15px;background:#f7f4f9;border:1px solid rgba(78,58,101,.08)}
.businessdetailgrid small,.businessdetailgrid strong{display:block}.businessdetailgrid small{margin-bottom:5px;color:#8a8190;font-size:12px}.businessdetailgrid strong{overflow-wrap:anywhere;font-size:14px}
.businessreceipts{margin-top:20px}.businessreceipts h4{margin:0 0 10px}.businessreceipts>div{display:flex;gap:12px;overflow-x:auto;padding:2px 2px 7px}
.businessreceipts button{appearance:none;border:0;background:transparent;padding:0;display:grid;gap:7px;text-align:left;color:inherit;cursor:pointer}.businessreceipts button span{font-size:12px;font-weight:700;color:var(--muted)}
.businessreceipts img{display:block;width:150px;height:110px;object-fit:cover;border-radius:15px;border:1px solid rgba(70,54,88,.12);box-shadow:0 8px 22px rgba(44,30,62,.09);transition:transform .2s ease,box-shadow .2s ease}.businessreceipts button:hover img{transform:translateY(-2px);box-shadow:0 12px 28px rgba(44,30,62,.15)}
.businessimagefields{margin-top:18px;padding:18px;border-radius:18px;background:rgba(255,255,255,.48);border:1px solid rgba(70,54,88,.1)}.businessimagefields h4{margin:3px 0 4px;font-size:17px}.businessimagefields p{margin:0;color:var(--muted);font-size:12px}
.businessimagefieldgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.businessimagefield{display:flex!important;flex-direction:column;align-items:stretch;gap:8px;padding:12px;border-radius:15px;background:rgba(255,255,255,.72);border:1px solid rgba(70,54,88,.1)}.businessimagefield>span{font-weight:800}.businessimagefield img{width:100%;height:105px;object-fit:cover;border-radius:11px}.businessimagefield small{color:var(--muted)}.businessimagefield input[type=file]{width:100%;font-size:12px}.businessimagefield i{display:flex;align-items:center;gap:6px;font-style:normal;color:#b23b43;font-size:12px}.businessimagefield i input{width:auto;margin:0}
.businessimagepreview{width:min(92vw,980px);max-width:980px}.businessimagepreviewbody{padding:20px}.businessimagepreviewbody>img{display:block;max-width:100%;max-height:76vh;margin:14px auto 0;border-radius:18px;object-fit:contain;background:#f0edf3;box-shadow:0 18px 55px rgba(35,24,50,.2)}
@media(max-width:720px){.businessimagefieldgrid{grid-template-columns:1fr}.businessimagefield img{height:150px}.businessimagepreviewbody{padding:14px}.businessimagepreviewbody>img{max-height:72vh}}
.businessdetailactions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.businessdetailactions form{margin:0}
.businessedit>form{padding:26px}.businessformgrid textarea{width:100%}
.businessmonthdialog{width:min(560px,calc(100vw - 24px))}
.businessmonthlist{display:grid;gap:10px;margin-top:16px}
.businessmonthlist>a{display:grid;grid-template-columns:minmax(0,1fr) auto 18px;align-items:center;gap:18px;padding:16px 18px;border:1px solid rgba(83,62,108,.11);border-radius:18px;background:linear-gradient(135deg,#faf8fc,#f3eef7);color:inherit;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.businessmonthlist>a:hover{transform:translateY(-2px);border-color:rgba(102,73,139,.28);box-shadow:0 12px 26px rgba(52,38,72,.09)}
.businessmonthlist span,.businessmonthlist small,.businessmonthlist strong,.businessmonthlist b{display:block}
.businessmonthlist small{margin-bottom:4px;color:#8a8190;font-size:12px}.businessmonthlist strong{font-size:17px}.businessmonthlist b{color:#2c714b;white-space:nowrap}.businessmonthlist i{font-size:24px;color:#9b8da7;font-style:normal}
.businessdbmaintenance{margin-top:18px}.businessdbmaintenance table td:first-child{min-width:150px}.businessdbmaintenance .tag{white-space:nowrap}
.businessnewbutton{min-width:150px;background:rgba(255,255,255,.95)!important;color:#47345d!important;box-shadow:0 12px 26px rgba(28,18,43,.18)}
.businessworkbenchintro{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:26px 28px}.businessworkbenchintro h2{margin:5px 0}.businessworkbenchintro p{margin:0;color:#7c7284}
.businesscompanydialog{width:min(700px,calc(100vw - 24px))}.businesscompanychoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}
.businesscompanychoices>button{display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:12px;padding:14px;border:1px solid rgba(83,62,108,.11);border-radius:18px;background:linear-gradient(135deg,#faf8fc,#f3eef7);color:inherit;text-align:left;cursor:pointer}
.businesscompanychoices>button:hover{border-color:rgba(102,73,139,.3);box-shadow:0 10px 24px rgba(52,38,72,.09)}.businesscompanychoices strong,.businesscompanychoices small{display:block}.businesscompanychoices small{grid-column:2;color:#8b8191}.businesscompanychoices i{grid-column:3;grid-row:1/3;font-size:24px;color:#9b8da7;font-style:normal}
.businesscommonintro{margin-bottom:16px;padding:22px 25px;border-radius:22px;background:linear-gradient(135deg,#332642,#6b5485);color:#fff}.businesscommonintro h2{margin:5px 0}.businesscommonintro p{margin:0;opacity:.75}
.businesscommoninfogrid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.businesscommoninfogrid .commoninfocard{display:flex;flex-direction:column;height:min(440px,52vh);min-height:340px}.businesscommoninfogrid .commonlist{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:5px;scrollbar-width:thin;scrollbar-color:rgba(94,72,115,.28) transparent}.businesscommoninfogrid .commonlist>div{flex:0 0 auto}
.businessedit,.businessdetail{max-height:min(88dvh,820px)!important;overflow:hidden!important}.businessedit>form,.businessdetail>.businessdialogbody{max-height:min(88dvh,820px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(94,72,115,.3) transparent}.businessedit .modalhead,.businessdetail .modalhead{position:sticky;top:-26px;z-index:8;margin:-26px -26px 18px;padding:24px 26px 16px;background:rgba(255,255,255,.96);border-bottom:1px solid rgba(87,65,105,.09);backdrop-filter:blur(20px)}.businessedit .modalactions,.businessdetailactions{position:sticky;bottom:-26px;z-index:7;margin:20px -26px -26px;padding:15px 26px 24px;background:linear-gradient(180deg,rgba(255,255,255,.82),#fff 38%);border-top:1px solid rgba(87,65,105,.08)}
@media(max-width:760px){.businessworkbenchintro{align-items:flex-start;flex-direction:column}.businessworkbenchintro button{width:100%}.businesscompanychoices{grid-template-columns:1fr}}
.businessquicksearch{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;margin:18px 0}.businessquicksearch input{min-height:44px}.businessfilterdialog{width:min(800px,calc(100vw - 24px))}.businessfilterdialog>form{padding:26px}.businessfiltergrid{margin-top:16px}
@media(max-width:600px){.businessquicksearch{grid-template-columns:1fr 1fr}.businessquicksearch input{grid-column:1/-1}.businessquicksearch button,.businessquicksearch a{text-align:center}.businessfilterdialog>form{padding:18px}}
.businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(5,minmax(140px,1fr))}.businessamountfilters{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto;align-items:end}.businessamountfilters .filteractions{align-self:end}
@media(max-width:900px){.businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}.businessamountfilters{grid-template-columns:1fr 1fr}.businessamountfilters .filteractions{grid-column:1/-1}}
@media(max-width:560px){.businessadvancedfilters .filterrow-secondary,.businessamountfilters{grid-template-columns:1fr}}
@media(max-width:760px){
  .businessledgergrid{grid-template-columns:1fr}.businessledgercard{grid-template-columns:44px minmax(0,1fr) 16px;padding:16px}.businessledgercard>strong{grid-column:2}.businessledgericon{width:44px;height:44px}
  .businesshero{align-items:flex-start}.businessherostat{width:100%;min-width:0}.businessmetrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .businessfilters{grid-template-columns:1fr 1fr}.businessfilters>input:first-child{grid-column:1/-1}.businessfilters button,.businessfilters a{text-align:center}
  .businesstable table{min-width:0}.businesstable th:nth-child(2),.businesstable td:nth-child(2),.businesstable th:nth-child(5),.businesstable td:nth-child(5){display:none}
  .businesstable th,.businesstable td{padding:12px 7px;font-size:13px}.businesstable td:nth-child(3),.businesstable td:nth-child(4){max-width:100px;white-space:normal}
  .businessdialogbody,.businessedit>form{padding:18px}.businessedit,.businessdetail{max-height:calc(100dvh - 20px)!important}.businessedit>form,.businessdetail>.businessdialogbody{max-height:calc(100dvh - 20px)}.businessedit .modalhead,.businessdetail .modalhead{top:-18px;margin:-18px -18px 14px;padding:18px 18px 13px}.businessedit .modalactions,.businessdetailactions{bottom:-18px;margin:18px -18px -18px;padding:13px 18px 18px}.businesscommoninfogrid{grid-template-columns:1fr!important}.businesscommoninfogrid .commoninfocard{height:min(390px,58vh);min-height:300px}.businessamount{align-items:flex-start;flex-direction:column;padding:16px}.businessdetailgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:430px){.businessdetailgrid{grid-template-columns:1fr}.businessmetrics{grid-template-columns:1fr 1fr}.businessdetailactions{flex-direction:column}.businessdetailactions>*{width:100%}.businessdetailactions button{width:100%}}


/* SOURCE: future-ui.css */
:root{--ui-font:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","PingFang SC","Microsoft YaHei UI","Microsoft YaHei",sans-serif;--ui-bg:#e9e5ef;--ui-surface:rgba(255,255,255,.82);--ui-surface-solid:#fbfafc;--ui-ink:#221d29;--ui-muted:#756d7d;--ui-line:rgba(66,49,81,.11);--ui-accent:#70508c;--ui-accent-dark:#432c58;--ui-accent-soft:#eee8f3;--ui-shadow:0 18px 50px rgba(44,31,57,.09),0 2px 8px rgba(44,31,57,.04);--ui-shadow-hover:0 24px 62px rgba(44,31,57,.14),0 4px 12px rgba(44,31,57,.06);--ui-radius:22px;--ink:var(--ui-ink);--muted:var(--ui-muted);--bg:var(--ui-bg);--paper:var(--ui-surface-solid);--line:var(--ui-line);--green:var(--ui-accent-dark);--mint:var(--ui-accent-soft)}
html{background:var(--ui-bg);scroll-behavior:smooth}
body{font-family:var(--ui-font)!important;color:var(--ui-ink);background:radial-gradient(circle at 8% -8%,rgba(131,102,158,.18),transparent 28rem),radial-gradient(circle at 92% 12%,rgba(99,130,171,.12),transparent 25rem),linear-gradient(155deg,#e5e0eb 0%,#eeeaf2 48%,#e4e5ec 100%) fixed!important;font-size:14px;line-height:1.58;letter-spacing:-.008em}
button,input,select,textarea{font-family:var(--ui-font)!important}::selection{background:rgba(112,80,140,.2)}
.appbody header{width:min(1440px,calc(100% - 28px));min-height:68px;margin:14px auto 0;padding:10px 14px 10px 18px;border:1px solid rgba(255,255,255,.7);border-radius:22px;background:rgba(43,33,55,.91)!important;color:#fff;box-shadow:0 18px 48px rgba(31,23,40,.2);backdrop-filter:blur(24px) saturate(140%)}
.appbody header .brand b{font-size:14px;letter-spacing:-.01em}.appbody header .brand small{letter-spacing:.12em;color:rgba(255,255,255,.58)}
.appbody header nav{gap:4px}.appbody header nav a{min-height:40px;padding:9px 13px;border-radius:12px;color:rgba(255,255,255,.7);font-size:13px;font-weight:650;letter-spacing:.005em;transition:background .2s,color .2s,transform .2s}
.appbody header nav a:hover{background:rgba(255,255,255,.1);color:#fff;transform:translateY(-1px)}.appbody header nav a.is-current{background:rgba(255,255,255,.16)!important;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.appbody main{width:min(1380px,100%);max-width:1380px;padding:34px 28px 84px}.pagehead{margin-bottom:22px}.pagehead h1{font-family:var(--ui-font)!important;font-size:clamp(25px,2.2vw,32px)!important;font-weight:760!important;line-height:1.2;letter-spacing:-.045em;color:#211a28}.pagehead p{font-size:12px;color:#817888;letter-spacing:.015em}
.adminnav{gap:5px!important;padding:6px!important;border:1px solid rgba(255,255,255,.7)!important;border-radius:17px!important;background:rgba(255,255,255,.55)!important;box-shadow:0 8px 25px rgba(50,36,64,.06)!important;backdrop-filter:blur(18px)}
.adminnav a{min-height:39px;padding:9px 14px!important;border-radius:12px!important;color:#6f6677!important;font-size:13px!important;font-weight:680!important}.adminnav a:hover{background:rgba(255,255,255,.7)!important;color:#3f314c!important}.adminnav a.active{background:linear-gradient(135deg,#765691,#503965)!important;color:#fff!important;box-shadow:0 8px 20px rgba(75,49,94,.2)!important}
.panel,.metric,.glasscard,.commoninfocard{border:1px solid rgba(255,255,255,.78)!important;border-radius:var(--ui-radius)!important;background:var(--ui-surface)!important;box-shadow:var(--ui-shadow)!important;backdrop-filter:blur(20px) saturate(120%)}
.panel{padding:24px}.metric{min-height:122px;padding:20px 21px;border-top:1px solid rgba(255,255,255,.78)!important}.metric small,.metric span{color:var(--ui-muted);font-size:12px;font-weight:590}.metric strong{margin:9px 0 4px;font-family:var(--ui-font)!important;font-size:25px;font-weight:760;letter-spacing:-.04em;color:#2b2332}
.paneltitle{margin-bottom:20px}.paneltitle h2,.panel h2{font-size:18px;font-weight:740;letter-spacing:-.025em;color:#2a2231}.paneltitle p{margin-top:5px;color:var(--ui-muted);font-size:13px;line-height:1.55}.eyebrow{font-size:9px!important;font-weight:800!important;letter-spacing:.18em!important;text-transform:uppercase}
.primary,button.primary,form button:not(.secondary):not(.danger):not(.icon):not(.modalclose):not(.tiny):not(.userlogoutbutton):not(.messageemojibutton):not(.messagethreadaction){border:1px solid rgba(255,255,255,.12)!important;border-radius:13px!important;background:linear-gradient(135deg,#765590,#4b345f)!important;color:#fff!important;box-shadow:0 9px 22px rgba(74,48,92,.18)!important;font-weight:680!important;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.primary:hover,button.primary:hover,form button:not(.secondary):not(.danger):not(.icon):not(.modalclose):not(.tiny):not(.userlogoutbutton):not(.messageemojibutton):not(.messagethreadaction):hover{transform:translateY(-1px);filter:brightness(1.04);box-shadow:0 13px 28px rgba(74,48,92,.24)!important}.secondary{border:1px solid rgba(82,61,99,.08)!important;border-radius:13px!important;background:rgba(238,233,243,.9)!important;color:#5d466f!important;font-weight:670!important}.danger{border-radius:12px!important;background:#f4e5e8!important;color:#a23d49!important;box-shadow:none!important}
.modalclose{display:grid!important;place-items:center!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:50%!important;background:#ebe7ee!important;color:#5c5362!important;box-shadow:inset 0 0 0 1px rgba(70,53,82,.06)!important;font-size:20px!important;font-weight:400!important}
input,select,textarea{min-height:45px;border:1px solid rgba(81,64,94,.16)!important;border-radius:13px!important;background:rgba(255,255,255,.82)!important;color:var(--ui-ink)!important;padding:10px 13px!important;box-shadow:inset 0 1px 2px rgba(44,31,57,.025);transition:border-color .18s,box-shadow .18s,background .18s}
input:hover,select:hover,textarea:hover{border-color:rgba(104,77,128,.28)!important;background:#fff!important}input:focus,select:focus,textarea:focus{outline:0;border-color:rgba(112,80,140,.58)!important;background:#fff!important;box-shadow:0 0 0 4px rgba(112,80,140,.1)!important}label{font-size:12px;font-weight:620;color:#6f6677!important}
.tablewrap{border:1px solid var(--ui-line);border-radius:17px;background:rgba(255,255,255,.54);overflow:auto}table{font-size:13px}th{height:43px;padding:11px 12px!important;background:rgba(242,239,246,.9);color:#746a7d!important;font-size:11px!important;font-weight:720!important;letter-spacing:.025em;border-bottom:1px solid var(--ui-line)!important}td{height:48px;padding:11px 12px!important;border-bottom:1px solid rgba(70,53,82,.075)!important;color:#342c3b}tbody tr{transition:background .16s ease}tbody tr:hover{background:rgba(113,83,140,.045)}tbody tr:last-child td{border-bottom:0!important}
dialog.homemodal,dialog.settlementmodal{border:1px solid rgba(255,255,255,.85)!important;border-radius:24px!important;background:rgba(252,251,253,.96)!important;box-shadow:0 34px 110px rgba(30,21,39,.3)!important;backdrop-filter:blur(30px) saturate(130%)}dialog::backdrop{background:rgba(25,19,31,.48)!important;backdrop-filter:blur(8px)}dialog .modalhead{border-bottom-color:rgba(74,56,88,.09)!important}dialog .modalhead h3{font-size:20px!important;font-weight:760!important;letter-spacing:-.035em!important;color:#29202f}dialog .modalhead p{color:#807686!important}
.success,.error{border:1px solid transparent;border-radius:14px!important;box-shadow:0 10px 26px rgba(42,31,53,.07)}.success{border-color:rgba(46,123,83,.12);background:rgba(228,242,234,.95)!important;color:#286b49!important}.error{border-color:rgba(174,68,78,.12);background:rgba(248,231,233,.95)!important;color:#9a3945!important}.tag{border-radius:999px!important;font-weight:650}footer{color:#8a8190;font-size:11px;letter-spacing:.04em}
.periodhero,.homewelcome,.businesshero{border-radius:26px!important;box-shadow:0 22px 58px rgba(51,34,67,.15)!important}.periodworkbenchhub>a,.shortcutgrid>a,.businessledgercard,.exportcard{border-color:rgba(255,255,255,.82)!important;border-radius:20px!important;background:rgba(255,255,255,.76)!important;box-shadow:0 12px 32px rgba(50,35,64,.07)!important;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease!important}.periodworkbenchhub>a:hover,.shortcutgrid>a:hover,.businessledgercard:hover,.exportcard:hover{transform:translateY(-3px)!important;box-shadow:var(--ui-shadow-hover)!important}
.messagethreadactions button,.messagecomposebar button,.messageemojipanel button{box-shadow:none!important;transform:none!important}.messagethreadactions button{background:#eee8f2!important;color:#675271!important;border-color:transparent!important}.messagecomposebar button{background:#f0ebf3!important;color:#6c567a!important;border-color:transparent!important}.messageemojipanel button{background:transparent!important;color:inherit!important;border-color:transparent!important}
.businessquicktoggle.active{background:linear-gradient(135deg,#765590,#4b345f)!important;color:#fff!important;box-shadow:0 8px 20px rgba(74,48,92,.18)!important}.businessquickcell{position:relative;min-width:104px;white-space:nowrap}.business-quick-review .businessquickcell{cursor:cell;outline:1px dashed rgba(112,80,140,.32);outline-offset:-4px;background:rgba(112,80,140,.035)}.business-quick-review .businessquickcell:hover{background:rgba(112,80,140,.1)}.businessquickinput{position:absolute!important;inset:5px 7px!important;width:calc(100% - 14px)!important;min-width:0!important;min-height:calc(100% - 10px)!important;height:calc(100% - 10px)!important;margin:0!important;padding:4px 8px!important;border-radius:9px!important;text-align:right;font-size:13px!important;z-index:2}.businessquickcell.saving{opacity:.55}.businessquickcell.saved{animation:businessQuickSaved .7s ease}@keyframes businessQuickSaved{0%,100%{background:transparent}35%{background:rgba(44,142,87,.16)}}
.shortcutgrid{grid-template-columns:repeat(5,minmax(0,1fr))!important}.businessledgertable table{min-width:1540px!important}.businessledgertable th,.businessledgertable td{display:table-cell!important}.businessedit{width:min(1040px,calc(100vw - 28px))!important;max-width:1040px!important}.businessedit>form{max-height:min(90dvh,860px)!important;padding:28px!important}.businessedit .businessformgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:15px!important}.businessedit .businessimagefields{grid-column:1/-1}.businessedit .modalhead{margin:-28px -28px 20px!important;padding:25px 28px 17px!important}.businessedit .modalactions{margin:22px -28px -28px!important;padding:16px 28px 25px!important}
.businessdetail.orderdetaildialog{width:min(94vw,1080px)!important;height:min(90dvh,860px)!important;max-height:860px!important;padding:0!important;overflow:hidden!important}.businessdetail .orderdetailbody{height:calc(100% - 70px)!important;padding:22px!important;overflow-y:auto;background:#f2eff4!important}.businessdetail .businessdetailpaper{margin:0!important;padding:25px!important;border:1px solid rgba(91,69,108,.1)!important;border-radius:21px!important;background:rgba(255,255,255,.9)!important;box-shadow:0 14px 42px rgba(59,42,73,.075)!important}.businessdetail .businessdetailfacts{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:10px!important;margin:18px 0!important}.businessdetail .businessdetailfacts>div{padding:13px 14px!important;border:1px solid rgba(91,69,108,.07);border-radius:14px!important;background:#f7f4f9!important}.businessdetail .businessdetailfacts dt{margin:0 0 5px;color:#817786;font-size:12px}.businessdetail .businessdetailfacts dd{margin:0;overflow-wrap:anywhere;font-size:14px;font-weight:650;color:#302737}.businessdetail .businessdetailactions{position:static!important;justify-content:flex-end!important;bottom:auto!important;margin:20px 0 0!important;padding:16px 0 0!important;border-top:1px solid rgba(91,69,108,.09)!important;background:transparent!important}.businessdetail .businessreceipts{margin-top:20px;padding-top:18px}.businessdetail .businessreceipts h3{margin:0 0 12px;font-size:16px}.businessdetail .businessreceipts h3 span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;border-radius:99px;background:#eee8f3;color:#624b75;font-size:11px}
@media(max-width:1050px){.shortcutgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:900px){.appbody header{width:100%;margin:0;border-radius:0!important;border-width:0 0 1px!important;background:rgba(43,33,55,.96)!important}.appbody header nav a{background:rgba(255,255,255,.07)!important;color:rgba(255,255,255,.72)!important}.appbody main{padding:25px 16px 78px}.panel{padding:20px}.metrics{gap:13px!important}.businessedit .businessformgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:650px){body{font-size:14px}.appbody main{padding:18px 11px 72px}.pagehead{margin-bottom:15px}.pagehead h1{font-size:23px!important}.panel,.metric,.glasscard,.commoninfocard{border-radius:18px!important}.panel{padding:16px}.metric{min-height:106px;padding:16px}.metric strong{font-size:21px}.adminnav{margin-left:0!important;margin-right:0!important;border-radius:14px!important}.adminnav a{padding:8px 12px!important}.paneltitle h2,.panel h2{font-size:17px}.tablewrap{border-radius:14px}button,.primary,.secondary{min-height:43px}.periodhero,.homewelcome,.businesshero{border-radius:20px!important}.shortcutgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.businessedit{width:calc(100vw - 12px)!important}.businessedit>form{max-height:calc(100dvh - 18px)!important;padding:18px!important}.businessedit .businessformgrid{grid-template-columns:1fr!important}.businessedit .modalhead{margin:-18px -18px 15px!important;padding:18px 18px 13px!important}.businessedit .modalactions{margin:18px -18px -18px!important;padding:14px 18px 18px!important}.businessdetail.orderdetaildialog{width:calc(100vw - 12px)!important;height:calc(100dvh - 18px)!important;max-height:calc(100dvh - 18px)!important}.businessdetail .orderdetailbody{height:calc(100% - 62px)!important;padding:10px!important}.businessdetail .businessdetailpaper{padding:16px!important;border-radius:17px!important}.businessdetail .billhero{display:block!important}.businessdetail .billamount{min-width:0;margin-top:14px;text-align:left}.businessdetail .businessdetailfacts{grid-template-columns:repeat(2,minmax(0,1fr))!important}.businessdetail .businessdetailactions{flex-direction:column}.businessdetail .businessdetailactions>*{width:100%}.businessdetail .businessdetailactions button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.unifiedexportform .unifiedexportactions{position:static!important;inset:auto!important}
.exchangecontent>.unifiedexportform{width:min(100%,820px)!important;margin:0 auto!important}.exchangecontent>.unifiedexportform>.exportfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important}.exchangecontent>.unifiedexportform>.exportoptions{align-items:stretch!important}.exchangecontent>.unifiedexportform>.selectall{justify-self:center;min-width:190px;justify-content:center}.exchangecontent>.unifiedexportform .unifiedexportactions{justify-content:center!important}.exchangecontent>.unifiedexportform .unifiedexportactions button{min-width:240px!important}.exchangecontent>.unifiedexportform>.uploadbox{text-align:center}.exchangecontent>.unifiedexportform>label:not(.selectall){width:min(100%,520px);justify-self:center}
@media(max-width:650px){.exchangecontent>.unifiedexportform>.exportfilters,.exchangecontent>.unifiedexportform>.exportoptions{grid-template-columns:1fr!important}.exchangecontent>.unifiedexportform>.selectall{width:100%;min-width:0}.exchangecontent>.unifiedexportform .unifiedexportactions button{width:100%!important;min-width:0!important}}
@media(max-width:760px){.businesstable{width:100%;max-width:100%;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-gutter:auto}.businesstable table{width:max-content!important;min-width:1900px!important;table-layout:auto!important}.businessledgertable table{min-width:1540px!important}.businesstable th,.businesstable td{display:table-cell!important;min-width:110px!important;max-width:none!important;white-space:nowrap!important;padding:11px 12px!important}.businesstable th:first-child,.businesstable td:first-child{position:sticky;left:0;z-index:2;min-width:112px!important;background:#f8f5fa}.businesstable thead th:first-child{z-index:3;background:#eee8f2}}
.businessqueryprompt{display:grid;justify-items:center;gap:5px;margin-top:16px;padding:38px 20px;border:1px dashed rgba(103,77,126,.2);border-radius:18px;background:rgba(248,245,250,.68);text-align:center}.businessqueryprompt>span{display:grid;place-items:center;width:46px;height:46px;margin-bottom:5px;border-radius:15px;background:#eee7f4;color:#70558a;font-size:23px}.businessqueryprompt h3{margin:0;font-size:16px}.businessqueryprompt p{max-width:520px;margin:0;color:var(--ui-muted);font-size:13px}

/* Unified ledger and business query workspace */
.ledgerqueryfilters,.businessadvancedfilters,.businessqueryfilters{gap:15px!important;padding:18px!important;border:1px solid rgba(91,69,108,.09);border-radius:18px;background:rgba(246,243,248,.72)}
.ledgerqueryfilters .filterrow,.businessadvancedfilters .filterrow{display:grid!important;gap:12px!important;align-items:end!important}
.ledgerqueryfilters .filterrow-primary,.ledgerqueryfilters .filterrow-secondary,.businessadvancedfilters .filterrow-primary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.businessadvancedfilters .businessamountfilters{grid-template-columns:repeat(2,minmax(180px,1fr))!important;max-width:calc(40% - 5px)}
.ledgerqueryfilters label,.businessadvancedfilters label,.businessqueryfilters label{display:grid!important;min-width:0;gap:7px!important}
.queryactionbar{display:flex;grid-column:1/-1;align-items:center;justify-content:flex-end;gap:10px;margin-top:1px;padding-top:14px;border-top:1px solid rgba(91,69,108,.08)}
.queryactionbar .querysubmit{min-width:172px!important;min-height:49px!important;padding:12px 24px!important;font-size:14px!important}
.queryactionbar .secondary{display:inline-grid;place-items:center;min-height:45px;padding:10px 17px}
.businessqueryfilters{display:grid!important;grid-template-columns:minmax(250px,1.6fr) repeat(2,minmax(170px,.7fr))!important;align-items:end!important}
.businessqueryfilters .queryactionbar{margin:0;padding-top:14px}
.tablewrap{-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
button,a,input,select,textarea{touch-action:manipulation}
main>section.panel{content-visibility:auto;contain-intrinsic-size:auto 420px}
.shortcutcard.glasscard{height:auto!important;max-height:none!important;overflow:visible!important}
.shortcutcard .shortcutgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(132px,auto)!important}
.shortcutcard .shortcutgrid>a{display:flex!important;width:100%!important;min-width:0!important;min-height:132px!important;padding:18px!important;flex-direction:column;justify-content:flex-end;visibility:visible!important;opacity:1!important}
.shortcutcard .shortcutgrid>a .shortcuticon{margin-bottom:auto!important}
.releaselog{margin-top:22px!important}.releasecurrent{display:inline-grid;place-items:center;min-height:35px;padding:7px 13px;border:1px solid rgba(112,80,140,.1);border-radius:999px;background:var(--ui-accent-soft);color:#624c74;font-size:12px;font-weight:700;white-space:nowrap}
.releasefeed{display:grid;gap:10px}.releaseitem{display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;padding:16px;border:1px solid rgba(91,69,108,.08);border-radius:17px;background:rgba(255,255,255,.56)}.releaseitem.latest{border-color:rgba(112,80,140,.2);background:linear-gradient(135deg,rgba(245,240,249,.96),rgba(255,255,255,.78));box-shadow:0 10px 28px rgba(62,42,78,.06)}
.releasebadge{display:flex;flex-direction:column;justify-content:center;padding:3px 15px;border-right:1px solid rgba(91,69,108,.09)}.releasebadge span{color:#7b6c84;font-size:10px;font-weight:750;letter-spacing:.08em}.releasebadge strong{margin:4px 0 1px;color:#493759;font-size:18px;letter-spacing:-.025em}.releasebadge small{color:#918795;font-size:11px}.releasecopy h3{margin:2px 0 7px;font-size:15px}.releasecopy ul{display:grid;gap:4px;margin:0;padding-left:18px;color:#716777;font-size:13px}.releasecopy li::marker{color:#806094}
.businesscompanytoolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0;padding:19px 21px;border:1px solid rgba(255,255,255,.78);border-radius:20px;background:rgba(255,255,255,.72);box-shadow:var(--ui-shadow)}.businesscompanytoolbar h2{margin:3px 0;font-size:18px}.businesscompanytoolbar p{margin:0;color:var(--ui-muted);font-size:13px}
.businesscompanyadmin{width:min(720px,calc(100vw - 28px))!important}.businesscompanyadmin>form,.businesscompanyadmin .businessdialogbody{padding:25px!important}.businesscompanyrows{display:grid;gap:10px;max-height:min(62dvh,560px);overflow:auto}.businesscompanyrow{display:grid;grid-template-columns:42px minmax(0,1fr) auto auto;align-items:end;gap:11px;padding:12px;border:1px solid rgba(91,69,108,.08);border-radius:15px;background:#f8f5fa}.businesscompanyrow label{display:grid;gap:5px}.businesscompanyrow small{align-self:center;color:var(--ui-muted);white-space:nowrap}.businesscompanyrow button{min-height:45px}
.exchangechoices button{display:grid!important;grid-template-columns:44px 1fr!important;grid-template-rows:auto auto!important;align-content:center!important;gap:3px 12px!important;min-height:118px!important;padding:18px!important;border:1px solid rgba(102,78,124,.13)!important;border-radius:20px!important;background:linear-gradient(150deg,#fffefef2,#f5f1f8ee)!important;color:#4f4659!important;text-align:left!important;box-shadow:0 10px 26px rgba(61,43,76,.055)!important;transform:none!important}.exchangechoices button:hover{transform:translateY(-2px)!important;box-shadow:0 16px 34px rgba(61,43,76,.11)!important;border-color:#b9a7d1!important}.exchangechoices button span{grid-row:1/3}.exchangechoices button b{font-size:15px}.exchangechoices button small{color:#887e90;line-height:1.4}
.exchangemodal{width:min(980px,calc(100vw - 28px))!important;height:min(88dvh,850px)!important;max-width:980px!important;max-height:850px!important;padding:0!important;overflow:hidden!important}.exchangeframebody{display:grid;grid-template-rows:auto minmax(0,1fr);height:100%}.exchangemodal .modalhead{margin:0!important;padding:20px 23px!important;background:rgba(252,251,253,.98)}.exchangecontent{min-height:0;padding:18px;overflow:auto;background:#f5f2f7}.exchangecontent>.panel{margin:0!important;box-shadow:none!important}.exchangecontent>.panel .paneltitle>a.secondary{display:none!important}.exchangecontent .simpleform{padding-bottom:18px!important}.exchangeframeloading{display:grid;min-height:240px;place-items:center;color:var(--ui-muted);font-size:13px}
.unifiedexportform{display:grid!important;gap:18px!important;margin:0!important;padding:4px!important;border:0!important;background:transparent!important;box-shadow:none!important}.unifiedexportform>.exportfilters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin:0!important;padding:16px!important;border:1px solid rgba(91,69,108,.08);border-radius:17px;background:rgba(255,255,255,.72)}.unifiedexportform>.exportfilters label,.unifiedexportform>label:not(.selectall){display:grid!important;gap:7px!important;min-width:0}.unifiedexportform>.exportoptions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin:0!important}.unifiedexportform .exportoption,.unifiedexportform>.exportoptions>label{display:flex!important;align-items:flex-start!important;gap:10px!important;min-height:76px!important;margin:0!important;padding:14px!important;border:1px solid rgba(91,69,108,.09)!important;border-radius:15px!important;background:rgba(255,255,255,.78)!important}.unifiedexportform .exportoption input,.unifiedexportform>.exportoptions>label input{flex:0 0 auto;width:18px!important;height:18px!important;min-height:18px!important;margin-top:2px}.unifiedexportform .exportoption span{display:grid;gap:3px}.unifiedexportform .exportoption b{color:#392e42;font-size:14px}.unifiedexportform .exportoption small{color:var(--ui-muted);font-size:12px;line-height:1.45}.unifiedexportform>.selectall{display:flex!important;align-items:center!important;gap:9px!important;min-height:42px;padding:9px 13px;border-radius:12px;background:rgba(238,232,243,.8)}.unifiedexportform>.selectall input{width:18px!important;height:18px!important;min-height:18px!important}.unifiedexportform .uploadbox{margin:0!important}.unifiedexportactions{display:flex!important;justify-content:flex-end!important;margin:0!important;padding:14px 0 0!important;border-top:1px solid rgba(91,69,108,.09)!important}.unifiedexportactions .primary,.unifiedexportactions button{min-width:190px!important;min-height:49px!important}

@media(max-width:980px){
  .ledgerqueryfilters .filterrow-primary,.ledgerqueryfilters .filterrow-secondary,.businessadvancedfilters .filterrow-primary,.businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .businessadvancedfilters .businessamountfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:none}
  .businessqueryfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .businessqueryfilters .businesskeyword{grid-column:1/-1}
}
@media(max-width:900px){
  .panel,.metric,.glasscard,.commoninfocard,.adminnav{backdrop-filter:blur(12px) saturate(108%)!important}
  dialog.homemodal,dialog.settlementmodal{backdrop-filter:blur(16px) saturate(110%)!important}
  dialog::backdrop{backdrop-filter:blur(4px)!important}
}
@media(max-width:650px){
  .ledgerqueryfilters,.businessadvancedfilters,.businessqueryfilters{gap:11px!important;margin-left:-5px;margin-right:-5px;padding:13px!important;border-radius:15px}
  .ledgerqueryfilters .filterrow-primary,.ledgerqueryfilters .filterrow-secondary,.businessadvancedfilters .filterrow-primary,.businessadvancedfilters .filterrow-secondary,.businessadvancedfilters .businessamountfilters,.businessqueryfilters{grid-template-columns:1fr!important}
  .businessqueryfilters .businesskeyword{grid-column:auto}
  .queryactionbar{display:grid;grid-template-columns:minmax(92px,.6fr) minmax(0,1.4fr);gap:8px;margin-top:2px;padding-top:12px}
  .queryactionbar .querysubmit,.queryactionbar .secondary{width:100%;min-width:0!important;min-height:47px!important}
  .queryactionbar .querysubmit:only-child{grid-column:1/-1}
  .panel,.metric,.glasscard,.commoninfocard,.adminnav,dialog.homemodal,dialog.settlementmodal{backdrop-filter:none!important}
  .tablewrap{scroll-snap-type:x proximity}
  th,td{font-size:12px!important}
  .shortcutcard .shortcutgrid{grid-auto-rows:minmax(112px,auto)!important}.shortcutcard .shortcutgrid>a{min-height:112px!important;padding:13px!important}
  .releaselog{margin-top:18px!important}.releaselog .paneltitle{gap:12px}.releasecurrent{align-self:flex-start}
  .releaseitem{grid-template-columns:1fr;gap:10px;padding:14px}.releasebadge{padding:0 0 9px;border-right:0;border-bottom:1px solid rgba(91,69,108,.09)}.releasebadge strong{font-size:16px}
  .businesscompanytoolbar{align-items:stretch;flex-direction:column;padding:16px}.businesscompanytoolbar .buttonrow{display:grid;grid-template-columns:1fr 1fr}.businesscompanytoolbar .buttonrow>*{width:100%}
  .businesscompanyadmin{width:calc(100vw - 12px)!important}.businesscompanyadmin>form,.businesscompanyadmin .businessdialogbody{padding:18px!important}.businesscompanyrow{grid-template-columns:38px minmax(0,1fr)}.businesscompanyrow small{display:none}.businesscompanyrow button{grid-column:1/-1;width:100%}
  .exchangemodal{width:calc(100vw - 8px)!important;height:calc(100dvh - 12px)!important;max-height:calc(100dvh - 12px)!important}.exchangemodal .modalhead{padding:16px!important}
  .exchangecontent{padding:12px}.unifiedexportform>.exportfilters,.unifiedexportform>.exportoptions{grid-template-columns:1fr!important}.unifiedexportform>.exportfilters{padding:13px!important}.unifiedexportform .exportoption,.unifiedexportform>.exportoptions>label{min-height:64px!important;padding:12px!important}.unifiedexportactions{position:static!important}.unifiedexportactions button{width:100%!important;min-width:0!important}
}

/* v4.7.1 — lighter Dock with a deeper animated workspace */
:root{--ui-bg:#d4ceda}
html{background:#d4ceda}
.appbody{
  background:
    radial-gradient(circle at 8% -7%,rgba(103,72,129,.27),transparent 31rem),
    radial-gradient(circle at 93% 10%,rgba(70,98,137,.2),transparent 28rem),
    linear-gradient(155deg,#d4ccdb 0%,#ddd6e2 47%,#cdd0dc 100%) fixed!important;
}
.appbody header{
  background:linear-gradient(135deg,rgba(121,105,134,.93),rgba(91,80,108,.93))!important;
  border-color:rgba(255,255,255,.22)!important;
  box-shadow:0 16px 42px rgba(47,35,58,.16)!important;
}
.appbody .systemambient{opacity:.82!important;filter:saturate(.96) contrast(1.03)}
.appbody .systemambient span{opacity:.5!important}
.appbody .systemambient span:nth-child(1){background:radial-gradient(circle,#c9b5dc 0,#bca4d2 46%,transparent 72%)!important}
.appbody .systemambient span:nth-child(2){background:radial-gradient(circle,#bdccde 0,#acbdd3 46%,transparent 72%)!important}
.appbody .systemambient span:nth-child(3){background:radial-gradient(circle,#d5c1ae 0,#c8af98 46%,transparent 72%)!important}
.appbody .systemambient span:nth-child(4){background:radial-gradient(circle,#c8b7dc 0,#b7a2d0 46%,transparent 72%)!important}
@media(max-width:900px){
  .appbody header{background:linear-gradient(135deg,rgba(121,105,134,.97),rgba(91,80,108,.97))!important}
}

/* v4.7.2 — restore native horizontal swiping for every mobile business ledger */
@media(max-width:760px){
  .appbody main .tablewrap.businesstable{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    overscroll-behavior-x:contain;
    scroll-snap-type:none!important;
    scrollbar-gutter:auto;
    touch-action:pan-x pan-y;
    -webkit-overflow-scrolling:touch;
  }
  .appbody main .tablewrap.businesstable>table,
  .appbody main .tablewrap.businesstable>table:not(.unifiedlogtable){
    display:table!important;
    width:max-content!important;
    min-width:1900px!important;
    max-width:none!important;
    table-layout:auto!important;
  }
  .appbody main .tablewrap.businesstable.businessledgertable>table,
  .appbody main .tablewrap.businesstable.businessledgertable>table:not(.unifiedlogtable){
    min-width:1660px!important;
  }
  .appbody main .tablewrap.businesstable th,
  .appbody main .tablewrap.businesstable td{
    display:table-cell!important;
    min-width:110px!important;
    max-width:none!important;
    padding:11px 12px!important;
    white-space:nowrap!important;
    overflow-wrap:normal!important;
  }
  .appbody main .tablewrap.businesstable th:first-child,
  .appbody main .tablewrap.businesstable td:first-child{
    position:sticky!important;
    left:0!important;
    z-index:2;
    min-width:116px!important;
    background:#f8f5fa!important;
    box-shadow:8px 0 16px -15px rgba(45,31,57,.65);
  }
  .appbody main .tablewrap.businesstable thead th:first-child{
    z-index:3;
    background:#eee8f2!important;
  }
}

.businessimagemultilist{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:38px}
.businessimagemultilist>span{position:relative;display:grid;gap:5px;min-width:0;padding:7px;border:1px solid rgba(91,69,108,.09);border-radius:12px;background:#f8f5fa}
.businessimagemultilist img{width:100%!important;height:82px!important;object-fit:cover;border-radius:9px!important}
.businessimagemultilist i{display:flex!important;align-items:center;justify-content:center;gap:5px!important;color:#a23d49!important;font-size:11px!important;font-style:normal!important}
.businessimagemultilist input[type=checkbox]{width:15px!important;height:15px!important;min-height:15px!important;margin:0!important}
.businessmaintenanceactions{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px!important;margin:0 0 18px!important}
.businessmaintenanceactions form,.businessmaintenanceactions button{width:100%}
@media(max-width:650px){
  .businessimagemultilist{grid-template-columns:repeat(3,minmax(0,1fr))}
  .businessimagemultilist img{height:72px!important}
  .businessmaintenanceactions{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Identity & Access Center · v4.9 */
.rememberlogin{display:flex!important;align-items:center;gap:12px;padding:12px 14px!important;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.055);cursor:pointer}
.rememberlogin input{width:18px!important;height:18px!important;margin:0;accent-color:#8b7df2;flex:0 0 auto}
.rememberlogin span{display:grid;gap:2px}.rememberlogin b{font-size:13px;font-weight:650;color:inherit}.rememberlogin small{font-size:11px;opacity:.62}
.loginsecure{max-width:100%;text-align:center}
.people-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:24px 0 18px;padding:30px 32px;border:1px solid rgba(255,255,255,.66);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.9),rgba(244,241,250,.72));box-shadow:0 24px 60px rgba(48,34,67,.09);backdrop-filter:blur(24px)}
.people-hero h1,.person-profile-hero h1{margin:5px 0 7px;font-size:clamp(25px,3vw,38px);letter-spacing:-.04em}.people-hero p,.person-profile-hero p{margin:0;color:var(--muted)}
.people-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.people-metrics article{display:flex;align-items:center;justify-content:space-between;min-height:76px;padding:17px 19px;border:1px solid rgba(255,255,255,.72);border-radius:20px;background:rgba(255,255,255,.68);box-shadow:0 12px 30px rgba(44,30,62,.055);backdrop-filter:blur(20px)}
.people-metrics span{font-size:12px;color:var(--muted)}.people-metrics strong{font-size:26px;letter-spacing:-.04em}
.people-directory{padding:0!important;overflow:hidden}.people-filters{display:grid;grid-template-columns:minmax(240px,1fr) 150px 150px auto auto;gap:10px;padding:18px;border-bottom:1px solid rgba(70,52,91,.09)}
.people-filters select,.people-filters button,.people-filters a{align-self:stretch;margin:0}.people-search{position:relative;margin:0!important}.people-search span{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:22px;color:#7e728d}.people-search input{height:100%;padding-left:42px!important}
.people-table-head,.people-row{display:grid;grid-template-columns:1.2fr 1fr 1.25fr .75fr auto;gap:18px;align-items:center}
.people-table-head{padding:11px 20px;background:rgba(91,70,112,.045);font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.people-row{min-height:88px;padding:14px 20px;border-top:1px solid rgba(70,52,91,.075);transition:background .2s ease,transform .2s ease}.people-row:hover{background:rgba(255,255,255,.58)}
.people-identity{display:flex;align-items:center;gap:12px;min-width:0}.people-identity>div,.people-role,.people-login,.people-state{display:grid;gap:4px;min-width:0}.people-identity strong,.people-login strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.people-identity span,.people-role small,.people-login span,.people-state small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--muted)}
.people-avatar{position:relative;display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:14px;color:#fff;font-weight:750;background:linear-gradient(145deg,#7561a4,#a48ed1);box-shadow:0 8px 18px rgba(93,70,130,.22)}.people-avatar.large{width:68px;height:68px;border-radius:22px;font-size:25px}.people-avatar i{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#a9a2ad}.people-avatar i.online{background:#37bf78}
.role-badge,.account-state,.session-kind{justify-self:start;padding:5px 9px;border-radius:999px;font-size:10px;font-weight:750;white-space:nowrap}.role-admin{color:#6e3fad;background:#f0e8fb}.role-staff{color:#246793;background:#e5f3fb}.role-guest{color:#756b61;background:#f2eee9}
.account-state.active{color:#17744b;background:#e0f5e9}.account-state.pending{color:#9a6916;background:#fff1cd}.account-state.disabled{color:#8a5660;background:#f7e6ea}.people-actions{display:flex;justify-content:flex-end}.people-empty{padding:52px;text-align:center;color:var(--muted)}
.people-dialog{width:min(660px,calc(100vw - 28px));padding:0;border:0;border-radius:26px;background:rgba(252,250,255,.97);box-shadow:0 35px 100px rgba(26,17,37,.32);overflow:hidden}.people-dialog::backdrop{background:rgba(25,17,34,.3);backdrop-filter:blur(10px)}.people-dialog>.modalhead{padding:24px 26px 18px}.people-dialog>form{padding:0 26px 26px}.people-dialog>form>button{width:100%;margin-top:10px}
.person-profile-hero{margin:22px 0 18px;padding:24px 28px;border:1px solid rgba(255,255,255,.72);border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.89),rgba(241,238,249,.76));box-shadow:0 22px 55px rgba(43,31,59,.085)}
.person-back{display:inline-flex;margin-bottom:20px;font-size:12px;color:var(--muted)}.person-profile-main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:17px}.person-profile-main h1{margin:2px 0}.person-security-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}.person-security-facts span{display:grid;gap:5px;padding:13px 15px;border-radius:16px;background:rgba(255,255,255,.62)}.person-security-facts small{font-size:10px;color:var(--muted)}.person-security-facts b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.person-admin-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.7fr);gap:16px}.person-admin-grid>.panel{margin:0}.person-security{display:flex;flex-direction:column;gap:13px}.person-security h2,.person-security p{margin:0}.person-security form{display:grid;gap:10px}.person-security form+form{margin-top:auto}
.person-log-panel{margin-top:16px}.session-list,.access-timeline{display:grid;gap:0}.session-list article,.access-timeline article{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:13px 4px;border-top:1px solid rgba(72,52,92,.08)}.session-list article:first-child,.access-timeline article:first-child{border-top:0}.session-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#eee8f7;color:#735c96}.session-list div,.access-timeline div{display:grid;gap:3px;min-width:0}.session-list strong,.access-timeline strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-list div span,.access-timeline div span{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-kind{color:#5e4b78;background:#eee8f6}.access-timeline i{width:8px;height:8px;border-radius:50%;background:#d99d36;box-shadow:0 0 0 5px #fff1da}.access-timeline i.ok{background:#38b978;box-shadow:0 0 0 5px #e3f6eb}.access-timeline em{font-style:normal;font-size:10px;color:var(--muted)}
@media(max-width:900px){.people-metrics{grid-template-columns:repeat(3,1fr)}.people-table-head{display:none}.people-row{grid-template-columns:1fr 1fr auto}.people-login{grid-column:1/3}.people-state{grid-column:3;grid-row:1}.people-actions{grid-column:3;grid-row:2}.people-filters{grid-template-columns:1fr 1fr}.people-search{grid-column:1/-1}.person-admin-grid{grid-template-columns:1fr}.person-security-facts{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.people-hero{align-items:flex-start;padding:22px;border-radius:22px}.people-hero p{font-size:12px}.people-hero .primary{padding:10px 12px;white-space:nowrap}.people-metrics{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px}.people-metrics article{min-width:132px;scroll-snap-align:start}.people-filters{grid-template-columns:1fr}.people-search{grid-column:auto}.people-row{grid-template-columns:1fr auto;gap:10px;padding:16px}.people-role,.people-login{grid-column:1/2}.people-state,.people-actions{grid-column:2;grid-row:auto;justify-self:end}.person-profile-hero{padding:20px}.person-profile-main{grid-template-columns:auto 1fr}.person-profile-main>.account-state{grid-column:2}.person-security-facts{grid-template-columns:1fr 1fr}.people-dialog .simplegrid{grid-template-columns:1fr}.session-list article,.access-timeline article{grid-template-columns:auto minmax(0,1fr)}.session-kind,.access-timeline em{grid-column:2}.rememberlogin{padding:11px 12px!important}}
/* Identity directory alignment and role center · v4.9.1 */
.people-hero{align-items:center}.people-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.people-directory{border:1px solid rgba(71,52,91,.1)!important;border-radius:24px!important}
.people-filters{grid-template-columns:minmax(300px,1fr) 172px 172px 96px auto;align-items:center;gap:12px;padding:16px 18px}
.people-filters>*{box-sizing:border-box;height:44px!important;min-height:44px!important;margin:0!important}.people-filters label{display:block}.people-filters input,.people-filters select,.people-filters button{height:44px!important;min-height:44px!important;margin:0!important;border-radius:13px!important}
.people-filters select{padding:0 36px 0 13px!important;line-height:44px!important}.people-filters button,.people-filters>a{display:inline-flex!important;align-items:center;justify-content:center;padding:0 16px!important;line-height:1!important}
.people-search span{top:22px}.people-search input{width:100%;padding-top:0!important;padding-bottom:0!important}.people-table-head,.people-row{grid-template-columns:minmax(190px,1.2fr) minmax(150px,1fr) minmax(220px,1.25fr) minmax(110px,.7fr) 104px;column-gap:20px}.people-table-head{min-height:40px;padding:0 22px;align-items:center}.people-row{min-height:92px;padding:16px 22px}
.person-detail-dialog,.role-center-dialog{width:min(1180px,calc(100vw - 40px));height:min(860px,calc(100dvh - 40px));max-width:none;max-height:none;padding:0;border:0;border-radius:28px;background:#f7f5fa;box-shadow:0 36px 120px rgba(25,17,36,.38);overflow:hidden}.person-detail-dialog[open],.role-center-dialog[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.person-detail-dialog::backdrop,.role-center-dialog::backdrop{background:rgba(24,17,31,.35);backdrop-filter:blur(14px)}
.person-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 26px;border-bottom:1px solid rgba(65,45,83,.09);background:rgba(255,255,255,.82)}.person-dialog-head h2,.person-dialog-head p{margin:3px 0}.person-detail-dialog iframe{width:100%;height:100%;border:0;background:#f5f3f8}.person-modal-page{padding:18px 22px 32px!important;min-height:auto}.person-modal-page .person-back{display:none!important}.person-modal-page .person-profile-hero{margin-top:0}
.role-page-intro{display:grid;justify-items:start;gap:8px;padding:32px;border:1px solid rgba(255,255,255,.65);border-radius:28px;background:rgba(255,255,255,.65)}.role-page-intro h2,.role-page-intro p{margin:0}.role-page-intro button{margin-top:8px}
.role-center-layout{display:grid;grid-template-columns:270px minmax(0,1fr);min-height:0}.role-center-layout>aside{padding:18px;border-right:1px solid rgba(62,45,80,.1);overflow:auto;background:rgba(255,255,255,.55)}.new-role-trigger{width:100%;margin-bottom:12px}.system-role-list{display:grid;gap:8px}.system-role-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:12px;border:1px solid transparent;border-radius:15px;background:transparent;color:inherit;text-align:left;box-shadow:none}.system-role-card:hover,.system-role-card.is-active{border-color:rgba(102,79,137,.15);background:#fff}.system-role-card i{width:10px;height:34px;border-radius:99px;background:var(--role-color)}.system-role-card span{display:grid;gap:3px}.system-role-card small,.system-role-card em{font-size:10px;color:var(--muted);font-style:normal}.role-center-layout>main{overflow:auto;padding:22px}
.system-role-editor{display:grid;gap:20px}.role-editor-meta{display:grid;grid-template-columns:1fr 1.5fr 86px;gap:12px}.role-permission-matrix{display:grid;gap:10px}.role-permission-matrix section{display:grid;grid-template-columns:190px 1fr;gap:18px;align-items:center;padding:15px 17px;border:1px solid rgba(75,55,95,.09);border-radius:16px;background:rgba(255,255,255,.65)}.role-permission-matrix section>div:first-child{display:grid;gap:3px}.role-permission-matrix small{font-size:10px;color:var(--muted)}.role-permission-matrix section>div:last-child{display:flex;flex-wrap:wrap;gap:8px}.role-permission-matrix label{margin:0}.role-permission-matrix label input{position:absolute;opacity:0}.role-permission-matrix label span{display:block;padding:7px 11px;border:1px solid rgba(74,54,94,.13);border-radius:10px;background:#fff;font-size:11px;cursor:pointer}.role-permission-matrix label input:checked+span{border-color:#7964a0;color:#5c447e;background:#eee8f7}.role-editor-actions{display:flex;align-items:center;gap:10px}.switchline{margin-right:auto!important}
@media(max-width:980px){.people-filters{grid-template-columns:1fr 1fr 1fr}.people-search{grid-column:1/-1}.people-table-head,.people-row{grid-template-columns:minmax(180px,1.2fr) minmax(145px,1fr) minmax(100px,.65fr) 100px}.people-login{display:none}.role-center-layout{grid-template-columns:220px 1fr}.role-permission-matrix section{grid-template-columns:150px 1fr}}
@media(max-width:640px){.people-hero{align-items:flex-start}.people-hero-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.people-filters{grid-template-columns:1fr 1fr}.people-search{grid-column:1/-1}.people-row{grid-template-columns:minmax(0,1fr) auto}.person-detail-dialog,.role-center-dialog{width:100vw;height:100dvh;border-radius:0}.person-dialog-head{padding:16px 18px}.person-modal-page{padding:12px!important}.role-center-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.role-center-layout>aside{border-right:0;border-bottom:1px solid rgba(62,45,80,.1);padding:12px}.system-role-list{display:flex;overflow-x:auto}.system-role-card{min-width:180px}.role-center-layout>main{padding:14px}.role-editor-meta{grid-template-columns:1fr}.role-permission-matrix section{grid-template-columns:1fr}.role-editor-actions{flex-wrap:wrap}}
/* System role workspace · v4.9.3 */
.role-center-page{display:grid;grid-template-rows:auto minmax(0,1fr);width:100%;min-width:0;border:1px solid rgba(74,54,94,.1);border-radius:26px;background:rgba(248,246,251,.86);box-shadow:0 22px 56px rgba(45,31,61,.08);overflow:hidden}
.role-center-page .person-dialog-head{position:relative;z-index:2;padding:24px 28px}.role-center-page .role-center-layout{min-height:640px;align-items:stretch}.role-center-page .role-center-layout>aside{max-height:none;overflow:visible}.role-center-page .role-center-layout>main{min-width:0;overflow:visible;padding:26px 28px 34px}
.role-center-page .system-role-editor,.role-center-page .role-permission-matrix{min-width:0}.role-center-page .role-permission-matrix section{grid-template-columns:minmax(150px,190px) minmax(0,1fr)}.role-center-page .role-permission-matrix section>div:last-child{min-width:0}
.role-center-page .role-editor-actions{position:sticky;bottom:12px;z-index:3;margin:4px -8px -10px;padding:14px 16px;border:1px solid rgba(76,56,96,.1);border-radius:16px;background:rgba(250,249,252,.93);box-shadow:0 12px 30px rgba(52,36,70,.1);backdrop-filter:blur(18px)}
.role-center-page input,.role-center-page select,.role-center-page button{max-width:100%}.role-center-page .role-editor-meta label{min-width:0}.role-center-page .role-editor-meta input{width:100%;box-sizing:border-box}.superadmintabs{grid-template-columns:repeat(5,minmax(0,1fr))}
.system-role-editor[hidden]{display:none!important}.preset-role-summary{display:grid;gap:5px;margin-bottom:14px;padding:13px;border:1px solid rgba(102,79,137,.12);border-radius:15px;background:rgba(255,255,255,.72)}.preset-role-summary span{font-size:12px;font-weight:700;color:#5f4c76}.preset-role-summary small{font-size:10px;line-height:1.5;color:var(--muted)}.role-list-label{margin:4px 2px 9px;font-size:10px;font-weight:750;letter-spacing:.08em;color:var(--muted)}
@media(max-width:900px){.role-center-page .role-center-layout{grid-template-columns:210px minmax(0,1fr)}.role-center-page .role-editor-meta{grid-template-columns:1fr 1fr}.role-center-page .role-editor-meta label:last-child{grid-column:1/-1}.role-center-page .role-permission-matrix section{grid-template-columns:1fr}.superadmintabs{display:flex;overflow-x:auto}.superadmintabs a{flex:0 0 170px}}
@media(max-width:640px){.role-center-page{border-radius:20px}.role-center-page .person-dialog-head{padding:19px}.role-center-page .role-center-layout{grid-template-columns:1fr;min-height:0}.role-center-page .role-center-layout>aside{position:relative;padding:12px}.role-center-page .role-center-layout>main{padding:16px}.role-center-page .role-editor-meta{grid-template-columns:1fr}.role-center-page .role-permission-matrix section{padding:13px}.role-center-page .role-editor-actions{position:static;margin:0;padding:12px}.role-center-page .role-editor-actions button{flex:1 1 120px}}
/* Personnel dialogs precision · v4.9.4 */
.people-dialog{width:min(720px,calc(100vw - 32px));max-height:min(720px,calc(100dvh - 32px));overflow:auto}.people-dialog>.modalhead{position:sticky;top:0;z-index:2;padding:22px 26px 16px;background:rgba(252,250,255,.96);backdrop-filter:blur(18px)}.people-dialog>form{display:grid;gap:16px;padding:4px 26px 26px}.people-dialog .simplegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}.people-dialog .simplegrid label{display:grid;align-content:start;gap:7px;margin:0;min-width:0}.people-dialog .simplegrid input,.people-dialog .simplegrid select{box-sizing:border-box;width:100%;height:44px;margin:0}.people-dialog>form>button{height:46px;margin:2px 0 0}
.person-detail-dialog{height:min(720px,calc(100dvh - 36px));width:min(1120px,calc(100vw - 36px))}.person-detail-dialog iframe{display:block;min-height:0}.person-modal-page{box-sizing:border-box;margin:0;padding:14px 20px 24px!important;background:#f7f5fa}.person-modal-page .person-profile-hero{margin:0 0 14px;padding:20px 22px}.person-modal-page .person-security-facts{margin-top:16px}.person-modal-page .person-admin-grid{gap:14px}.person-modal-page .panel{padding:20px}.person-modal-page .person-log-panel{margin-top:14px}
@media(max-width:640px){.people-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:20px}.people-dialog .simplegrid{grid-template-columns:1fr}.people-dialog>.modalhead{padding:18px 18px 12px}.people-dialog>form{padding:4px 18px 20px}.person-detail-dialog{width:100vw;height:100dvh}.person-modal-page{padding:10px!important}.person-modal-page .person-profile-hero,.person-modal-page .panel{padding:16px}}
/* Personnel modal sizing and login memory · v4.9.5 */
.people-dialog{width:min(620px,calc(100vw - 28px));max-height:calc(100dvh - 28px);overflow:hidden}.people-dialog>.modalhead{position:relative;padding:20px 22px 14px}.people-dialog>form{max-height:calc(100dvh - 126px);overflow:auto;padding:4px 22px 22px;gap:14px}.people-dialog .simplegrid{gap:12px 14px}.people-dialog .simplegrid input,.people-dialog .simplegrid select{height:42px}.people-dialog>form>button{height:44px}
.person-detail-dialog{width:min(1060px,calc(100vw - 36px));height:auto!important;max-height:calc(100dvh - 36px)}.person-detail-dialog[open]{grid-template-rows:auto auto}.person-detail-dialog iframe{height:560px;max-height:calc(100dvh - 112px);overflow:auto}.person-modal-page{min-height:0!important}.person-modal-page:after{display:none!important}.person-modal-page .person-log-panel:last-child{margin-bottom:0}
@media(max-width:640px){.people-dialog{width:calc(100vw - 14px);max-height:calc(100dvh - 14px)}.people-dialog>form{max-height:calc(100dvh - 108px)}.person-detail-dialog{width:100vw;max-height:100dvh}.person-detail-dialog iframe{max-height:calc(100dvh - 78px)}}
/* Personnel, remembered login and read-only memo polish · v4.9.7 */
.people-dialog{width:min(680px,calc(100vw - 28px));max-height:min(610px,calc(100dvh - 24px));overflow:hidden}.people-dialog>.modalhead{padding:19px 22px 13px}.people-dialog>form{max-height:calc(100dvh - 112px);padding:2px 22px 20px}.people-dialog .simplegrid{gap:10px 14px}.people-dialog .simplegrid label{gap:5px}.people-dialog .simplegrid input,.people-dialog .simplegrid select{height:40px}.people-dialog>form>button{height:42px}
.person-detail-dialog iframe{height:320px;min-height:0;max-height:calc(100dvh - 104px)}
.memodetailreadonly{width:min(620px,calc(100vw - 28px))}.memodetailreadonly .memoreadonly{margin-top:18px;padding:24px;border:1px solid rgba(93,72,112,.1);border-radius:18px;background:linear-gradient(145deg,#fff,rgba(245,241,249,.72))}.memodetailreadonly .memoreadonly p{font-size:15px;line-height:1.85;color:#3f3548}.memodetailfooter{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:16px;padding:0 4px;color:var(--muted);font-size:11px}
.memoreminderdialog{width:min(650px,calc(100vw - 28px))!important}.loginreminderlist{display:grid;gap:12px;max-height:min(54vh,520px);overflow:auto;padding:2px}.loginremindercard{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;padding:18px;border:1px solid rgba(91,69,111,.1);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(245,241,249,.82));box-shadow:0 10px 28px rgba(50,35,65,.06)}.loginremindernumber{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ede7f5;color:#725891;font-size:12px;font-weight:800;letter-spacing:.08em}.loginremindercard h4{margin:1px 0 7px;font-size:16px;color:#302638}.loginremindercard p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;color:#62576b;font-size:13px;line-height:1.7}.memoreminderdialog .modalactions{justify-content:flex-end}.memoreminderdialog .modalactions .primary{min-width:110px}
@media(max-width:640px){.people-dialog{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.people-dialog .simplegrid{grid-template-columns:1fr}.loginremindercard{grid-template-columns:34px minmax(0,1fr);padding:14px}.loginremindernumber{width:34px;height:34px}.memodetailreadonly .memoreadonly{padding:18px}}
/* Personnel dialogs: single authoritative layout · v4.10.0 */
.people-dialog{
  box-sizing:border-box;
  width:min(650px,calc(100vw - 32px))!important;
  height:auto!important;
  max-height:calc(100dvh - 32px)!important;
  padding:0!important;
  overflow:hidden!important;
}
.people-dialog>.modalhead{
  position:relative!important;
  padding:20px 24px 15px!important;
  border-bottom:1px solid rgba(72,52,92,.08);
}
.people-dialog>form{
  display:grid!important;
  gap:16px!important;
  max-height:calc(100dvh - 126px)!important;
  padding:18px 24px 24px!important;
  overflow:auto!important;
}
.people-dialog .simplegrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:15px 18px!important;
}
.people-dialog .simplegrid label{display:grid!important;gap:6px!important;margin:0!important;min-width:0!important}
.people-dialog .simplegrid input,.people-dialog .simplegrid select{width:100%!important;height:44px!important;min-height:44px!important;margin:0!important}
.people-dialog>form>button{width:100%!important;height:46px!important;margin:0!important}
.person-detail-dialog{
  box-sizing:border-box;
  width:min(1040px,calc(100vw - 32px))!important;
  height:min(820px,calc(100dvh - 32px))!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
}
.person-detail-dialog[open]{display:grid!important;grid-template-rows:auto minmax(0,1fr)!important}
.person-detail-dialog>.person-dialog-head{padding:18px 24px!important}
.person-detail-dialog iframe{display:block!important;width:100%!important;height:100%!important;min-height:0!important;max-height:none!important;border:0!important}
.person-modal-page{box-sizing:border-box!important;min-height:0!important;padding:16px 20px 24px!important;overflow-x:hidden!important}
.person-modal-page .person-profile-hero{margin:0 0 14px!important;padding:18px 20px!important;border-radius:20px!important}
.person-modal-page .person-profile-main{gap:13px!important}
.person-modal-page .person-profile-main h1{font-size:25px!important}
.person-modal-page .person-security-facts{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;margin-top:14px!important}
.person-modal-page .person-security-facts span{padding:10px 12px!important;border-radius:12px!important}
.person-modal-page .person-admin-grid{grid-template-columns:minmax(0,1.65fr) minmax(240px,.7fr)!important;gap:14px!important}
.person-modal-page .panel{padding:18px!important;overflow:visible!important}
.person-modal-page .paneltitle{margin-bottom:14px!important}
.person-modal-page .usereditpanel{margin:0!important}
.person-modal-page .usereditpanel .simplegrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px 14px!important}
.person-modal-page .usereditpanel .simplegrid label{margin:0!important;min-width:0!important}
.person-modal-page .usereditpanel input,.person-modal-page .usereditpanel select{height:42px!important;min-height:42px!important;margin-top:5px!important}
.person-modal-page .usereditpanel .actions{margin-top:14px!important}
.person-modal-page .person-security{gap:12px!important}
.person-modal-page .person-security button{width:100%!important}
.person-modal-page .person-log-panel{margin-top:14px!important}
@media(max-width:760px){
  .people-dialog{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;border-radius:20px!important}
  .people-dialog>.modalhead{padding:17px 18px 12px!important}
  .people-dialog>form{max-height:calc(100dvh - 102px)!important;padding:14px 18px 18px!important}
  .people-dialog .simplegrid{grid-template-columns:1fr!important;gap:12px!important}
  .person-detail-dialog{width:100vw!important;height:100dvh!important;border-radius:0!important}
  .person-detail-dialog>.person-dialog-head{padding:14px 16px!important}
  .person-modal-page{padding:10px!important}
  .person-modal-page .person-security-facts{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .person-modal-page .person-admin-grid{grid-template-columns:1fr!important}
  .person-modal-page .usereditpanel .simplegrid{grid-template-columns:1fr!important}
}
/* Desktop controls and business records workspace · v4.10.1 */
@media(min-width:761px){
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]),
  select{
    box-sizing:border-box!important;
    width:100%;
    height:44px!important;
    min-height:44px!important;
    max-height:44px;
    margin-top:6px;
    padding:0 12px!important;
    line-height:42px!important;
    vertical-align:middle;
  }
  input[type="date"],input[type="month"],input[type="time"],input[type="datetime-local"]{
    appearance:none;
    -webkit-appearance:none;
    padding:0 10px 0 12px!important;
    line-height:42px!important;
  }
  input[type="date"]::-webkit-date-and-time-value,
  input[type="month"]::-webkit-date-and-time-value,
  input[type="time"]::-webkit-date-and-time-value,
  input[type="datetime-local"]::-webkit-date-and-time-value{
    min-height:42px;
    line-height:42px;
    text-align:left;
  }
  input[type="date"]::-webkit-calendar-picker-indicator,
  input[type="month"]::-webkit-calendar-picker-indicator,
  input[type="time"]::-webkit-calendar-picker-indicator,
  input[type="datetime-local"]::-webkit-calendar-picker-indicator{margin:0;padding:8px}
}
.business-records-workspace{
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(77,55,95,.1)!important;
  border-radius:26px!important;
  background:rgba(252,251,253,.94)!important;
  box-shadow:0 24px 65px rgba(46,31,62,.08)!important;
}
.business-records-heading{
  align-items:center!important;
  margin:0!important;
  padding:25px 28px 21px!important;
  border-bottom:1px solid rgba(77,55,95,.08);
  background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(245,241,249,.82));
}
.business-records-heading h2{margin:4px 0 5px!important;font-size:24px!important;letter-spacing:-.025em}
.business-records-heading p{max-width:720px!important}
.business-records-heading .buttonrow{display:flex!important;gap:9px!important}
.business-records-heading .buttonrow>*{display:inline-grid;place-items:center;min-height:42px!important;padding:9px 15px!important;white-space:nowrap}
.business-records-workspace>.businessadvancedfilters{
  margin:20px 24px!important;
  padding:20px!important;
  gap:16px!important;
  border:1px solid rgba(83,61,101,.09)!important;
  border-radius:19px!important;
  background:#f7f4f9!important;
}
.business-records-workspace .businessadvancedfilters .filterrow{gap:13px!important}
.business-records-workspace .businessadvancedfilters .filterrow-primary{grid-template-columns:repeat(2,minmax(0,1fr)) 1.15fr 1.5fr!important}
.business-records-workspace .businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.business-records-workspace .businessadvancedfilters .businessamountfilters{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:50%!important}
.business-records-workspace .businessadvancedfilters label{gap:5px!important;margin:0!important;font-size:11px!important;font-weight:650;color:#756b7b!important}
.business-records-workspace .businessadvancedfilters input,.business-records-workspace .businessadvancedfilters select{margin:0!important;background:#fff!important;border-color:rgba(75,55,91,.13)!important;border-radius:11px!important}
.business-records-workspace .queryactionbar{margin-top:2px!important;padding-top:16px!important}
.business-records-workspace .queryactionbar .querysubmit{min-width:150px!important;min-height:44px!important}
.business-records-workspace>.filtertotals{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0 24px 18px!important;
}
.business-records-workspace>.filtertotals .metric{
  min-height:96px!important;
  padding:16px 18px!important;
  border:1px solid rgba(78,57,96,.08)!important;
  border-top:0!important;
  border-radius:16px!important;
  background:linear-gradient(145deg,#fff,#f7f4f9)!important;
  box-shadow:none!important;
}
.business-records-workspace>.filtertotals .metric small{font-size:10px!important;letter-spacing:.06em}
.business-records-workspace>.filtertotals .metric strong{margin:7px 0 0!important;font-size:20px!important;color:#514060}
.business-records-workspace>.viewoptions{
  margin:0 24px 16px!important;
  border:1px solid rgba(81,59,98,.09)!important;
  border-radius:14px!important;
  background:#faf8fb!important;
}
.business-records-workspace>.viewoptions summary{padding:12px 15px!important;font-size:12px!important;font-weight:700;color:#665470}
.business-records-workspace>.viewoptions>div{padding:4px 15px 14px!important}
.business-records-workspace>.businesstable{
  margin:0 24px 24px!important;
  width:calc(100% - 48px)!important;
  max-width:calc(100% - 48px)!important;
  overflow:auto!important;
  border:1px solid rgba(75,54,91,.1)!important;
  border-radius:17px!important;
  background:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.business-records-workspace>.businesstable table{width:max-content!important;min-width:1780px!important;border-collapse:separate!important;border-spacing:0!important}
.business-records-workspace>.businesstable thead th{
  position:sticky;
  top:0;
  z-index:2;
  height:46px;
  padding:0 13px!important;
  border-bottom:1px solid rgba(70,51,86,.12)!important;
  background:#eee9f2!important;
  color:#615569!important;
  font-size:10px!important;
  font-weight:750!important;
  letter-spacing:.04em;
  white-space:nowrap!important;
}
.business-records-workspace>.businesstable tbody td{
  height:51px;
  padding:9px 13px!important;
  border-bottom:1px solid rgba(73,54,88,.065)!important;
  background:#fff;
  color:#43394a;
  font-size:12px!important;
  white-space:nowrap!important;
}
.business-records-workspace>.businesstable tbody tr:nth-child(even) td{background:#fbfafc}
.business-records-workspace>.businesstable tbody tr:hover td{background:#f4f0f7!important}
.business-records-workspace>.businesstable th:first-child,.business-records-workspace>.businesstable td:first-child{
  position:sticky;
  left:0;
  z-index:1;
  min-width:112px!important;
  box-shadow:1px 0 0 rgba(74,54,90,.08);
}
.business-records-workspace>.businesstable thead th:first-child{z-index:3!important;background:#e8e1ed!important}
.business-records-workspace>.businesstable th:nth-child(6),.business-records-workspace>.businesstable td:nth-child(6),
.business-records-workspace>.businesstable th:nth-child(7),.business-records-workspace>.businesstable td:nth-child(7),
.business-records-workspace>.businesstable th:nth-child(8),.business-records-workspace>.businesstable td:nth-child(8),
.business-records-workspace>.businesstable th:nth-child(9),.business-records-workspace>.businesstable td:nth-child(9),
.business-records-workspace>.businesstable th:nth-child(10),.business-records-workspace>.businesstable td:nth-child(10),
.business-records-workspace>.businesstable th:nth-child(13),.business-records-workspace>.businesstable td:nth-child(13),
.business-records-workspace>.businesstable th:nth-child(15),.business-records-workspace>.businesstable td:nth-child(15){text-align:right!important}
.business-records-workspace .businessdatebutton{display:inline-grid!important;place-items:center;min-width:91px;min-height:31px;padding:6px 9px!important;border-radius:9px!important;background:#eee8f5!important;color:#634d7d!important;font-size:11px!important}
.business-records-workspace .businessquickcell{border-radius:0!important;transition:background .16s ease,color .16s ease}
.business-records-workspace .businessquickcell[data-quick-amount]:hover{background:#e9f3ed!important;color:#236a46!important}
@media(max-width:1000px){
  .business-records-workspace .businessadvancedfilters .filterrow-primary,.business-records-workspace .businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .business-records-workspace .businessadvancedfilters .businessamountfilters{max-width:none!important}
}
@media(max-width:760px){
  .business-records-workspace{margin-inline:-4px!important;border-radius:20px!important}
  .business-records-heading{align-items:stretch!important;padding:20px 17px 16px!important}
  .business-records-heading .buttonrow{display:grid!important;grid-template-columns:1fr 1fr!important}
  .business-records-workspace>.businessadvancedfilters{margin:14px!important;padding:14px!important}
  .business-records-workspace .businessadvancedfilters .filterrow-primary,.business-records-workspace .businessadvancedfilters .filterrow-secondary,.business-records-workspace .businessadvancedfilters .businessamountfilters{grid-template-columns:1fr!important}
  .business-records-workspace>.filtertotals{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;margin:0 14px 14px!important}
  .business-records-workspace>.viewoptions{margin:0 14px 14px!important}
  .business-records-workspace>.businesstable{width:calc(100% - 28px)!important;max-width:calc(100% - 28px)!important;margin:0 14px 16px!important}
}
/* Unified modal sizing system · v4.10.2 */
:root{
  --modal-small:480px;
  --modal-medium:620px;
  --modal-large:900px;
  --modal-workspace:1120px;
  --modal-gap:32px;
  --modal-radius:24px;
  --modal-max-height:calc(100dvh - 40px);
}
dialog{
  box-sizing:border-box;
  color:var(--ink);
}
dialog::backdrop{
  background:rgba(25,18,31,.46)!important;
  backdrop-filter:blur(9px) saturate(105%)!important;
}
dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal)),
dialog.settlementmodal{
  width:min(var(--modal-medium),calc(100vw - var(--modal-gap)))!important;
  height:auto!important;
  max-width:none!important;
  max-height:var(--modal-max-height)!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.82)!important;
  border-radius:var(--modal-radius)!important;
  overflow:hidden!important;
  background:rgba(252,251,253,.98)!important;
  box-shadow:0 32px 100px rgba(30,21,39,.28)!important;
}
dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>form,
dialog.settlementmodal>form,
dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>.memodialogbody,
dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>.businessdialogbody{
  box-sizing:border-box!important;
  max-height:var(--modal-max-height)!important;
  padding:24px!important;
  overflow:auto!important;
  overscroll-behavior:contain;
  scrollbar-width:thin;
}
dialog .modalhead{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:18px!important;
  min-height:54px;
  margin:0 0 19px!important;
  padding:0 0 16px!important;
  border-bottom:1px solid rgba(78,58,94,.09)!important;
}
dialog .modalhead>div{min-width:0}
dialog .modalhead h3{margin:2px 0 0!important;font-size:20px!important;line-height:1.25!important}
dialog .modalhead p{margin:5px 0 0!important;font-size:12px!important;line-height:1.5!important}
dialog .modalactions{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:9px!important;
  margin:20px 0 0!important;
  padding:16px 0 0!important;
  border-top:1px solid rgba(78,58,94,.08);
}
dialog .modalactions>*{min-width:108px!important}
/* Small: short confirmations and compact actions */
dialog.settlementmodal,
dialog.backupdeletemodal,
dialog#locationDialog,
dialog#businessCompanyAdd{
  width:min(440px,calc(100vw - var(--modal-gap)))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 48px))!important;
}
dialog.perioddetailsettlemodal{width:min(560px,calc(100vw - var(--modal-gap)))!important}
/* Medium: ordinary forms, lists and read-only content */
dialog.memomanager,
dialog.memobrowser,
dialog.memoreminderdialog,
dialog.businessmonthdialog,
dialog.businesscompanydialog,
dialog.people-dialog{
  width:min(560px,calc(100vw - var(--modal-gap)))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(680px,calc(100dvh - 48px))!important;
}
dialog.memobrowser .memoalllist,
dialog.memoreminderdialog .loginreminderlist,
dialog.businessmonthdialog .businessmonthlist{max-height:min(54dvh,520px)!important;overflow:auto!important}
/* Large: multi-column forms and management lists */
dialog.businessedit{
  width:min(var(--modal-large),calc(100vw - var(--modal-gap)))!important;
  height:auto!important;
  max-width:none!important;
  max-height:var(--modal-max-height)!important;
  border-radius:26px!important;
}
dialog.businessedit>form{box-sizing:border-box!important;max-height:var(--modal-max-height)!important;overflow:auto!important}
dialog.businessfilterdialog,
dialog.businesscompanymanage{width:min(800px,calc(100vw - var(--modal-gap)))!important}
/* Workspace: dense tools that benefit from stable usable area */
dialog.orderdetaildialog,
dialog.person-detail-dialog,
dialog.role-center-dialog,
dialog.exchangemodal,
dialog.messagedialog{
  width:min(var(--modal-workspace),calc(100vw - var(--modal-gap)))!important;
  height:min(840px,var(--modal-max-height))!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.78)!important;
  border-radius:28px!important;
  overflow:hidden!important;
  background:rgba(247,245,249,.98)!important;
  box-shadow:0 36px 120px rgba(26,18,34,.33)!important;
}
dialog.messagedialog{width:min(980px,calc(100vw - var(--modal-gap)))!important;height:min(720px,var(--modal-max-height))!important}
dialog.exchangemodal{width:min(1000px,calc(100vw - var(--modal-gap)))!important;height:min(820px,var(--modal-max-height))!important}
dialog.person-detail-dialog{width:min(1040px,calc(100vw - var(--modal-gap)))!important;height:min(820px,var(--modal-max-height))!important}
dialog.role-center-dialog{width:min(1180px,calc(100vw - var(--modal-gap)))!important;height:min(860px,var(--modal-max-height))!important}
/* Image preview follows the image instead of a form preset */
dialog.businessimagepreview{
  width:auto!important;
  height:auto!important;
  max-width:calc(100vw - var(--modal-gap))!important;
  max-height:var(--modal-max-height)!important;
  padding:0!important;
  border:0!important;
  border-radius:22px!important;
  overflow:hidden!important;
  background:#17131b!important;
}
dialog.businessimagepreview .businessimagepreviewbody{max-width:calc(100vw - var(--modal-gap));max-height:var(--modal-max-height);overflow:auto}
dialog.businessimagepreview img{display:block;max-width:100%;max-height:calc(100dvh - 120px);object-fit:contain}
dialog.settlementmodal>form,
dialog.backupdeletemodal>form,
dialog#locationDialog>form,
dialog#businessCompanyAdd>form{
  height:auto!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 48px))!important;
  padding:18px!important;
}
dialog.memomanager>.memodialogbody,
dialog.memobrowser>.memodialogbody,
dialog.memoreminderdialog>.memodialogbody,
dialog.businessmonthdialog>.businessdialogbody,
dialog.businesscompanydialog>.businessdialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(680px,calc(100dvh - 48px))!important;
  padding:20px!important;
}
dialog.settlementmodal .modalhead,
dialog.backupdeletemodal .modalhead,
dialog#locationDialog .modalhead,
dialog#businessCompanyAdd .modalhead{min-height:0!important;margin-bottom:14px!important;padding-bottom:12px!important}
dialog.settlementmodal .modalactions,
dialog.backupdeletemodal .modalactions,
dialog#locationDialog .modalactions,
dialog#businessCompanyAdd .modalactions{margin-top:14px!important;padding-top:12px!important}
@media(max-width:700px){
  :root{--modal-gap:14px;--modal-radius:20px;--modal-max-height:calc(100dvh - 14px)}
  dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal)),
  dialog.settlementmodal,
  dialog.people-dialog{
    width:calc(100vw - var(--modal-gap))!important;
    max-height:var(--modal-max-height)!important;
    border-radius:20px!important;
  }
  dialog.settlementmodal,
  dialog.backupdeletemodal,
  dialog#locationDialog,
  dialog#businessCompanyAdd,
  dialog.memomanager,
  dialog.memobrowser,
  dialog.memoreminderdialog,
  dialog.businessmonthdialog,
  dialog.businesscompanydialog{
    width:calc(100vw - 24px)!important;
    height:fit-content!important;
    min-height:0!important;
    max-height:calc(100dvh - 24px)!important;
  }
  dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>form,
  dialog.settlementmodal>form,
  dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>.memodialogbody,
  dialog.homemodal:where(:not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal))>.businessdialogbody{
    padding:18px!important;
  }
  dialog .modalhead{margin-bottom:15px!important;padding-bottom:13px!important}
  dialog .modalactions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}
  dialog .modalactions>*{width:100%!important;min-width:0!important}
  dialog .modalactions>*:only-child{grid-column:1/-1}
  dialog.businessedit{width:calc(100vw - 10px)!important;max-height:calc(100dvh - 10px)!important;border-radius:19px!important}
  dialog.orderdetaildialog,
  dialog.person-detail-dialog,
  dialog.role-center-dialog,
  dialog.exchangemodal,
  dialog.messagedialog{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
}
/* Refined system weather card · v4.10.4 */
.appbody .weathercard{
  --weather-accent:#79618f;
  --weather-accent-soft:#eee8f4;
  --weather-glow:rgba(121,97,143,.13);
  position:relative!important;
  isolation:isolate;
  min-width:0;
  padding:25px 26px 22px!important;
  overflow:hidden!important;
  color:#332a39!important;
  border:1px solid rgba(255,255,255,.88)!important;
  border-radius:26px!important;
  background:
    radial-gradient(circle at 92% 4%,var(--weather-glow) 0,transparent 34%),
    linear-gradient(145deg,rgba(255,255,255,.97),rgba(247,244,249,.94))!important;
  box-shadow:0 22px 58px rgba(49,34,62,.09),inset 0 1px 0 #fff!important;
  animation:none!important;
}
.appbody .weathercard.weather-sunny{--weather-accent:#b47c35;--weather-accent-soft:#fbf1df;--weather-glow:rgba(224,170,85,.2)}
.appbody .weathercard.weather-cloudy{--weather-accent:#687b8c;--weather-accent-soft:#edf1f4;--weather-glow:rgba(119,143,161,.17)}
.appbody .weathercard.weather-fog{--weather-accent:#778481;--weather-accent-soft:#eef1ef;--weather-glow:rgba(140,154,150,.16)}
.appbody .weathercard.weather-rain{--weather-accent:#4d7890;--weather-accent-soft:#e8f1f5;--weather-glow:rgba(82,139,168,.18)}
.appbody .weathercard.weather-snow{--weather-accent:#5f8792;--weather-accent-soft:#e8f3f4;--weather-glow:rgba(103,166,180,.18)}
.appbody .weathercard.weather-thunder{--weather-accent:#665a7b;--weather-accent-soft:#ede9f3;--weather-glow:rgba(99,82,128,.2)}
.appbody .weathercard::before{
  content:""!important;
  position:absolute!important;
  z-index:-1!important;
  top:0!important;
  right:0!important;
  bottom:auto!important;
  left:auto!important;
  width:46%!important;
  height:4px!important;
  opacity:1!important;
  border-radius:0 26px 0 99px;
  background:linear-gradient(90deg,transparent,var(--weather-accent))!important;
  filter:none!important;
  animation:none!important;
}
.appbody .weathercard .weather-scene{
  z-index:-1!important;
  opacity:.08!important;
  filter:saturate(.35);
}
.appbody .weathercard .weather-precip,.appbody .weathercard .weather-flash,.appbody .weathercard .weather-mist{opacity:0!important;animation:none!important}
.appbody .weathercard .weather-cloud{opacity:.22!important;background:var(--weather-accent-soft)!important}
.appbody .weathercard .weather-stars{opacity:.12!important}
.appbody .weathercard .weather-celestial{opacity:.32!important;transform:scale(.72);background:var(--weather-accent-soft)!important;box-shadow:none!important}
.appbody .weathercard .weatherhead{
  position:relative;
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:18px;
  min-height:48px;
}
.appbody .weathercard .weatherhead>div{min-width:0}
.appbody .weathercard .weatherhead .eyebrow{
  color:var(--weather-accent)!important;
  font-size:9px!important;
  font-weight:800!important;
  letter-spacing:.16em!important;
}
.appbody .weathercard .weatherhead .eyebrow::before{
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  margin-right:7px;
  border-radius:50%;
  background:var(--weather-accent);
  box-shadow:0 0 0 4px var(--weather-accent-soft);
  vertical-align:1px;
}
.appbody .weathercard .weatherhead h2{
  max-width:100%;
  margin:6px 0 0!important;
  overflow:hidden;
  color:#352d3b!important;
  font-size:20px!important;
  font-weight:760!important;
  letter-spacing:-.025em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.appbody .weathercard .circlebutton{
  flex:0 0 40px;
  width:40px!important;
  height:40px!important;
  min-height:40px!important;
  border:1px solid rgba(85,63,102,.08)!important;
  border-radius:13px!important;
  background:#f0ebf3!important;
  color:#654d77!important;
  box-shadow:none!important;
  transition:transform .18s ease,background .18s ease!important;
}
.appbody .weathercard .circlebutton:hover{transform:translateY(-1px)!important;background:#e8e1ed!important}
.appbody .weathercard .weathercurrent{
  display:grid!important;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center!important;
  gap:17px!important;
  margin:19px 0 18px!important;
}
.appbody .weathercard .weathericon{
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  border:1px solid rgba(255,255,255,.8);
  border-radius:23px;
  background:var(--weather-accent-soft);
  color:var(--weather-accent);
  font-size:42px!important;
  line-height:1!important;
  filter:none!important;
  box-shadow:inset 0 1px 0 #fff,0 12px 28px var(--weather-glow);
  animation:none!important;
}
.appbody .weathercard .weathercurrent>div:last-child{
  display:grid;
  align-content:center;
  justify-items:start;
  min-width:0;
}
.appbody .weathercard .weathercurrent strong{
  color:#2e2634!important;
  font-size:58px!important;
  font-weight:720!important;
  line-height:.9!important;
  letter-spacing:-.065em!important;
}
.appbody .weathercard .weathercurrent span{
  margin:8px 0 0!important;
  color:#756b7b!important;
  font-size:14px!important;
  font-weight:650;
  line-height:1.2;
}
.appbody .weathercard .weatherfacts{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px!important;
}
.appbody .weathercard .weatherfacts span{
  display:grid;
  place-items:center;
  min-width:0;
  min-height:42px;
  padding:8px 9px!important;
  overflow:hidden;
  border:1px solid rgba(78,58,94,.075)!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.72)!important;
  color:#625969!important;
  font-size:11px!important;
  font-weight:650;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.appbody .weathercard .hourlytitle{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  margin:20px 0 11px!important;
  padding-top:17px!important;
  border-top:1px solid rgba(76,56,91,.085)!important;
}
.appbody .weathercard .hourlytitle b{color:#463b4d;font-size:13px!important}
.appbody .weathercard .hourlytitle span{color:#94899a!important;font-size:10px!important}
.appbody .weathercard .hourlyweather{
  display:flex!important;
  gap:8px!important;
  margin:0 -2px;
  padding:2px 2px 7px!important;
  overflow-x:auto;
  scroll-snap-type:x proximity;
}
.appbody .weathercard .houritem{
  position:relative;
  flex:0 0 68px!important;
  min-height:105px;
  padding:11px 7px!important;
  border:1px solid rgba(78,58,94,.07)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.7)!important;
  color:#4c4253!important;
  box-shadow:none!important;
  scroll-snap-align:start;
  animation:none!important;
}
.appbody .weathercard .houritem:first-child{
  border-color:color-mix(in srgb,var(--weather-accent) 24%,transparent)!important;
  background:var(--weather-accent-soft)!important;
}
.appbody .weathercard .houritem span{color:#8b818f!important;font-size:9px!important}
.appbody .weathercard .houritem b{height:25px!important;margin:6px 0 4px!important;color:var(--weather-accent)!important;font-size:20px!important}
.appbody .weathercard .houritem strong{color:#3b3242!important;font-size:14px!important}
.appbody .weathercard .houritem small{margin-top:3px!important;color:#958a9b!important;font-size:9px!important}
.appbody .weathercard .weatherloading,.appbody .weathercard .weathererror{color:#827786!important}
.appbody .weathercard .weathererror{padding:10px 12px;border-radius:11px;background:#f7ecee;color:#9a4b55!important}
.appbody .weathercard .weathersource{
  margin-top:8px!important;
  color:#aaa1ad!important;
  font-size:9px!important;
  text-align:right;
}
.appbody .weathercard.weather-locating::after{
  right:24px!important;
  bottom:18px!important;
  padding:6px 9px!important;
  border:1px solid rgba(78,58,94,.08)!important;
  background:rgba(255,255,255,.88)!important;
  color:#6d6073!important;
  box-shadow:0 8px 24px rgba(45,31,58,.08)!important;
}
@media(max-width:650px){
  .appbody .weathercard{padding:20px 18px 17px!important;border-radius:21px!important}
  .appbody .weathercard .weathercurrent{grid-template-columns:62px minmax(0,1fr);gap:13px!important;margin:16px 0!important}
  .appbody .weathercard .weathericon{width:62px;height:62px;border-radius:19px;font-size:34px!important}
  .appbody .weathercard .weathercurrent strong{font-size:46px!important}
  .appbody .weathercard .weathercurrent span{font-size:12px!important}
  .appbody .weathercard .weatherfacts{gap:6px!important}
  .appbody .weathercard .weatherfacts span{min-height:39px;padding:7px 5px!important;font-size:10px!important}
  .appbody .weathercard .houritem{flex-basis:64px!important}
}

/* System weather widget · isolated rebuild v4.10.6 */
.appbody .system-weather{
  --sw-accent:#766486;
  --sw-soft:#eee9f2;
  --sw-glow:rgba(118,100,134,.13);
  --sw-base-a:#fff;
  --sw-base-b:#f5f1f7;
  --sw-time:#fff;
  --sw-time-glow:rgba(255,255,255,.28);
  position:relative;
  min-width:0;
  padding:24px;
  overflow:hidden;
  border:1px solid rgba(86,65,101,.08);
  border-radius:24px;
  background:
    radial-gradient(circle at 88% 12%,var(--sw-glow) 0,transparent 32%),
    radial-gradient(circle at 8% 100%,var(--sw-time-glow) 0,transparent 38%),
    linear-gradient(145deg,
      color-mix(in srgb,var(--sw-base-a) 78%,var(--sw-time) 22%) 0%,
      color-mix(in srgb,var(--sw-base-b) 84%,var(--sw-time) 16%) 100%);
  color:#302936;
  box-shadow:0 18px 48px rgba(47,35,57,.08),inset 0 1px 0 #fff;
  transition:background .75s ease,border-color .45s ease,box-shadow .45s ease;
}
.appbody .system-weather[data-tone="sunny"]{--sw-accent:#a77735;--sw-soft:#faf0dd;--sw-glow:rgba(218,164,78,.22);--sw-base-a:#fffdf8;--sw-base-b:#f8eedc}
.appbody .system-weather[data-tone="cloudy"]{--sw-accent:#687989;--sw-soft:#ebf0f3;--sw-glow:rgba(103,130,150,.18);--sw-base-a:#fbfcfd;--sw-base-b:#edf1f4}
.appbody .system-weather[data-tone="fog"]{--sw-accent:#74817e;--sw-soft:#edf1ef;--sw-glow:rgba(112,135,129,.17);--sw-base-a:#fbfcfb;--sw-base-b:#edf1ef}
.appbody .system-weather[data-tone="rain"]{--sw-accent:#4e778d;--sw-soft:#e6f0f4;--sw-glow:rgba(65,130,160,.2);--sw-base-a:#f8fbfd;--sw-base-b:#e5eef3}
.appbody .system-weather[data-tone="snow"]{--sw-accent:#5e8590;--sw-soft:#e7f2f3;--sw-glow:rgba(84,151,166,.19);--sw-base-a:#fcfefe;--sw-base-b:#e8f3f4}
.appbody .system-weather[data-tone="thunder"]{--sw-accent:#685a79;--sw-soft:#ece8f1;--sw-glow:rgba(93,74,119,.21);--sw-base-a:#faf9fc;--sw-base-b:#e9e5ef}
.appbody .system-weather[data-period="dawn"]{--sw-time:#f6ddcf;--sw-time-glow:rgba(238,178,143,.2)}
.appbody .system-weather[data-period="day"]{--sw-time:#fff;--sw-time-glow:rgba(255,255,255,.36)}
.appbody .system-weather[data-period="dusk"]{--sw-time:#eadce8;--sw-time-glow:rgba(199,151,181,.2)}
.appbody .system-weather[data-period="night"]{--sw-time:#dce3ef;--sw-time-glow:rgba(97,116,155,.16)}
.appbody .system-weather::before{
  content:"";
  position:absolute;
  top:-54px;
  right:-46px;
  width:150px;
  height:150px;
  border-radius:50%;
  background:var(--sw-glow);
  filter:blur(12px);
  opacity:.72;
  pointer-events:none;
}
.appbody .sw-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
.appbody .sw-head>div{min-width:0}
.appbody .sw-head .eyebrow{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--sw-accent);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
.appbody .sw-head .eyebrow::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--sw-accent);
  box-shadow:0 0 0 4px var(--sw-soft);
}
.appbody .sw-head h2{
  max-width:100%;
  margin:7px 0 0;
  overflow:hidden;
  color:#352e3a;
  font-size:20px;
  font-weight:760;
  letter-spacing:-.02em;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.appbody .sw-location{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 40px;
  width:40px;
  min-width:40px;
  height:40px;
  min-height:40px;
  padding:0;
  border:1px solid rgba(87,67,101,.08);
  border-radius:12px;
  background:#f1edf3;
  color:#665371;
  position:relative;
  font-size:0;
  line-height:1;
  box-shadow:none;
}
.appbody .sw-location::before{content:none!important}
.appbody .sw-location svg{
  display:block;
  flex:0 0 18px;
  width:18px;
  height:18px;
  margin:0;
  overflow:visible;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
  transform:none;
}
.appbody .sw-location:hover{background:#e9e3ed;transform:translateY(-1px)}
.appbody .sw-current{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:18px;
  margin:20px 0 18px;
}
.appbody .sw-icon{
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  border:1px solid rgba(255,255,255,.9);
  border-radius:22px;
  background:var(--sw-soft);
  color:var(--sw-accent);
  font-family:"Segoe UI Symbol","Arial Unicode MS",sans-serif;
  font-size:41px;
  font-weight:400;
  line-height:1;
  box-shadow:0 12px 27px var(--sw-glow),inset 0 1px 0 #fff;
}
.appbody .sw-reading{
  display:grid;
  justify-items:start;
  align-content:center;
  min-width:0;
}
.appbody .sw-reading strong{
  color:#2d2732;
  font-size:56px;
  font-weight:720;
  line-height:.88;
  letter-spacing:-.06em;
}
.appbody .sw-reading span{
  margin-top:9px;
  color:#756c79;
  font-size:14px;
  font-weight:650;
  line-height:1.2;
}
.appbody .sw-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
}
.appbody .sw-facts>span{
  display:grid;
  min-width:0;
  padding:9px 10px;
  border:1px solid rgba(77,58,90,.07);
  border-radius:12px;
  background:rgba(255,255,255,.72);
}
.appbody .sw-facts small{
  overflow:hidden;
  color:#9a909d;
  font-size:9px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.appbody .sw-facts strong{
  margin-top:4px;
  overflow:hidden;
  color:#554b5b;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.appbody .sw-hourly-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:19px 0 10px;
  padding-top:15px;
  border-top:1px solid rgba(78,58,92,.08);
}
.appbody .sw-hourly-head b{color:#473e4d;font-size:13px}
.appbody .sw-hourly-head span{color:#9b929e;font-size:10px}
.appbody .sw-hourly{
  display:flex;
  gap:8px;
  margin:0 -1px;
  padding:1px 1px 7px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
  scroll-snap-type:x proximity;
}
.appbody .sw-hourly::-webkit-scrollbar{display:none}
.appbody .sw-hour{
  display:grid;
  justify-items:center;
  flex:0 0 72px;
  min-width:0;
  padding:10px 6px 9px;
  border:1px solid rgba(76,58,89,.07);
  border-radius:14px;
  background:rgba(255,255,255,.7);
  scroll-snap-align:start;
}
.appbody .sw-hour:first-child{border-color:var(--sw-soft);background:var(--sw-soft)}
.appbody .sw-hour time{color:#8e8492;font-size:9px}
.appbody .sw-hour b{
  height:25px;
  margin:5px 0 3px;
  color:var(--sw-accent);
  font-family:"Segoe UI Symbol","Arial Unicode MS",sans-serif;
  font-size:20px;
  font-weight:400;
  line-height:25px;
}
.appbody .sw-hour strong{color:#3e3544;font-size:15px;line-height:1.2}
.appbody .sw-hour small{margin-top:3px;color:#9a909d;font-size:8px;line-height:1.2;white-space:nowrap}
.appbody .sw-source{
  min-height:12px;
  margin-top:6px;
  color:#aaa2ad;
  font-size:9px;
  line-height:1.3;
  text-align:right;
}
.appbody .sw-error:empty{display:none}
.appbody .sw-error{
  margin-top:10px;
  padding:9px 11px;
  border:1px solid rgba(155,69,82,.1);
  border-radius:10px;
  background:#f9eff1;
  color:#994a56;
  font-size:11px;
}
.appbody .system-weather.is-loading .sw-hourly{opacity:.55}
.appbody .system-weather.weather-locating::after{
  content:"正在更新位置…";
  position:absolute;
  right:22px;
  bottom:18px;
  z-index:4;
  padding:6px 9px;
  border:1px solid rgba(77,58,90,.08);
  border-radius:9px;
  background:rgba(255,255,255,.94);
  color:#6e6174;
  font-size:10px;
  box-shadow:0 8px 24px rgba(44,32,53,.08);
}
@media(max-width:650px){
  .appbody .system-weather{padding:19px 17px 16px;border-radius:20px}
  .appbody .sw-current{grid-template-columns:62px minmax(0,1fr);gap:14px;margin:17px 0}
  .appbody .sw-icon{width:62px;height:62px;border-radius:18px;font-size:34px}
  .appbody .sw-reading strong{font-size:46px}
  .appbody .sw-reading span{margin-top:7px;font-size:12px}
  .appbody .sw-facts{gap:6px}
  .appbody .sw-facts>span{padding:8px 7px}
  .appbody .sw-hour{flex-basis:67px}
}

/* Memo dialogs · separated reminder/detail/edit flows v4.10.7 */
.appbody dialog#newMemoDialog,
.appbody dialog#guestMemoDialog{
  width:min(480px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(620px,calc(100dvh - 32px))!important;
}
.appbody dialog#newMemoDialog>form,
.appbody dialog#guestMemoDialog>form{
  height:auto!important;
  min-height:0!important;
  max-height:min(620px,calc(100dvh - 32px))!important;
  padding:20px!important;
}
.appbody dialog#newMemoDialog .modalhead,
.appbody dialog#guestMemoDialog .modalhead{
  min-height:0!important;
  margin-bottom:15px!important;
  padding-bottom:13px!important;
}
.appbody dialog#newMemoDialog textarea,
.appbody dialog#guestMemoDialog textarea{
  min-height:108px!important;
  max-height:220px!important;
  resize:vertical;
}
.appbody .memonewreminder{
  min-height:38px;
  margin-top:2px;
  padding:8px 10px;
  border:1px solid rgba(78,58,94,.08);
  border-radius:10px;
  background:#f8f6f9;
}
.appbody dialog#newMemoDialog .modalactions,
.appbody dialog#guestMemoDialog .modalactions{
  margin-top:15px!important;
  padding-top:13px!important;
}
.appbody dialog.memomanager{
  width:min(540px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(640px,calc(100dvh - 32px))!important;
}
.appbody dialog.memomanager>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(640px,calc(100dvh - 32px))!important;
  padding:20px!important;
  overflow:auto!important;
}
.appbody dialog.memomanager .modalhead{
  min-height:0!important;
  margin-bottom:14px!important;
  padding-bottom:12px!important;
}
.appbody dialog.memomanager .memoreadonly{
  max-height:min(240px,34dvh);
  padding:16px;
  overflow:auto;
  border-radius:14px;
}
.appbody dialog.memomanager .memoreadonly p{
  color:#443b49;
  font-size:14px;
  line-height:1.7;
}
.appbody dialog.memomanager .memodetailfooter{
  gap:6px 13px;
  margin-top:11px;
  padding:0 2px;
  font-size:10px;
}
.appbody .memomanageactions{
  display:grid;
  grid-template-columns:auto minmax(150px,1fr);
  gap:9px;
  margin-top:15px;
  padding-top:14px;
  border-top:1px solid rgba(78,58,94,.08);
}
.appbody .memomanageactions form{
  display:block!important;
  margin:0;
  padding:0!important;
  background:transparent!important;
}
.appbody .memomanageactions button{width:100%;min-height:40px}
.appbody .memomanagenotice{
  margin:14px 0 0;
  padding:10px 12px;
  border-radius:10px;
  background:#f5f2f7;
  color:#84788b;
  font-size:11px;
}
.appbody .memoeditform[hidden],
.appbody [data-memo-read-view][hidden],
.appbody [data-memo-view-actions][hidden]{display:none!important}
.appbody dialog.memomanager .memoeditform{
  padding:0!important;
  gap:12px;
  margin-top:2px;
  background:transparent!important;
}
.appbody dialog.memomanager .memoeditform textarea{
  min-height:112px!important;
  max-height:230px!important;
  resize:vertical;
}
.appbody dialog.memomanager .memoeditform .switchline{
  min-height:38px;
  padding:8px 10px;
  border:1px solid rgba(78,58,94,.08);
  border-radius:10px;
  background:#f8f6f9;
}
.appbody dialog.memomanager .memoeditform .modalactions{
  margin-top:2px!important;
  padding-top:13px!important;
}
.appbody dialog.memobrowser{
  width:min(520px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(600px,calc(100dvh - 32px))!important;
}
.appbody dialog.memobrowser>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(600px,calc(100dvh - 32px))!important;
  padding:19px!important;
}
.appbody dialog.memobrowser .modalhead{min-height:0!important;margin-bottom:13px!important;padding-bottom:12px!important}
.appbody dialog.memobrowser .memoalllist{max-height:min(420px,57dvh)!important;gap:7px}
.appbody dialog.memobrowser .memoallitem{min-height:58px;padding:10px 12px;border-radius:12px}
.appbody dialog.memoreminderdialog{
  width:min(520px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 32px))!important;
}
.appbody dialog.memoreminderdialog>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 32px))!important;
  padding:18px!important;
}
.appbody dialog.memoreminderdialog .modalhead{
  min-height:0!important;
  margin-bottom:12px!important;
  padding-bottom:11px!important;
}
.appbody dialog.memoreminderdialog .loginreminderlist{
  max-height:min(330px,48dvh)!important;
  gap:8px;
}
.appbody dialog.memoreminderdialog .loginremindercard{
  grid-template-columns:32px minmax(0,1fr);
  gap:10px;
  padding:11px 12px;
  border-radius:13px;
  box-shadow:none;
}
.appbody dialog.memoreminderdialog .loginremindernumber{
  width:32px;
  height:32px;
  border-radius:10px;
  font-size:10px;
}
.appbody dialog.memoreminderdialog .loginremindercard h4{margin:0 0 4px;font-size:14px}
.appbody dialog.memoreminderdialog .loginremindercard p{font-size:12px;line-height:1.55}
.appbody dialog.memoreminderdialog .modalactions{margin-top:12px!important;padding-top:11px!important}
@media(max-width:640px){
  .appbody dialog#newMemoDialog,
  .appbody dialog#guestMemoDialog,
  .appbody dialog.memomanager,
  .appbody dialog.memobrowser,
  .appbody dialog.memoreminderdialog{
    width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
  }
  .appbody dialog.memomanager>.memodialogbody,
  .appbody dialog.memobrowser>.memodialogbody,
  .appbody dialog.memoreminderdialog>.memodialogbody{padding:16px!important}
  .appbody .memomanageactions{grid-template-columns:1fr 1fr}
}

/* Optical centering for compact navigation icons */
.appbody .memoarrow,
.appbody .memoallitem>span:last-child{
  position:relative;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  font-size:0!important;
  line-height:0!important;
}
.appbody .memoarrow::before,
.appbody .memoallitem>span:last-child::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  box-sizing:border-box;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:translate(-62%,-50%) rotate(-45deg);
  transform-origin:center;
}
.appbody .memoallitem>span:last-child{
  flex:0 0 28px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#eeebf7;
  color:#715e86;
}

/* Definitive compact memo sizing v4.10.9 */
.appbody dialog#newMemoDialog,
.appbody dialog#guestMemoDialog{
  width:min(440px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(500px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog#newMemoDialog>form,
.appbody dialog#guestMemoDialog>form{
  height:auto!important;
  min-height:0!important;
  max-height:min(500px,calc(100dvh - 32px))!important;
  padding:17px!important;
  overflow-y:auto!important;
}
.appbody dialog.memomanager{
  width:min(480px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(460px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog.memomanager.memo-is-editing{
  max-height:min(540px,calc(100dvh - 32px))!important;
}
.appbody dialog.memomanager>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(460px,calc(100dvh - 32px))!important;
  padding:17px!important;
  overflow-y:auto!important;
}
.appbody dialog.memomanager.memo-is-editing>.memodialogbody{
  max-height:min(540px,calc(100dvh - 32px))!important;
}
.appbody dialog.memomanager .memoreadonly{max-height:min(168px,28dvh)!important}
.appbody dialog.memomanager .memoeditform textarea{
  min-height:92px!important;
  max-height:160px!important;
}
.appbody dialog.memobrowser{
  width:min(460px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(460px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog.memobrowser>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(460px,calc(100dvh - 32px))!important;
  padding:17px!important;
  overflow:hidden!important;
}
.appbody dialog.memobrowser .memoalllist{
  max-height:min(306px,48dvh)!important;
  overflow-y:auto!important;
}
.appbody dialog.memoreminderdialog{
  width:min(460px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(420px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog.memoreminderdialog>.memodialogbody{
  height:auto!important;
  min-height:0!important;
  max-height:min(420px,calc(100dvh - 32px))!important;
  padding:16px!important;
  overflow:hidden!important;
}
.appbody dialog.memoreminderdialog .loginreminderlist{
  max-height:min(226px,38dvh)!important;
  overflow-y:auto!important;
}
.appbody dialog.memoreminderdialog .modalactions{flex:0 0 auto}
.appbody .sw-hourly:focus-visible{
  outline:2px solid color-mix(in srgb,var(--sw-accent) 34%,transparent);
  outline-offset:2px;
  border-radius:14px;
}
@media(max-width:640px){
  .appbody dialog#newMemoDialog,
  .appbody dialog#guestMemoDialog,
  .appbody dialog.memomanager,
  .appbody dialog.memobrowser,
  .appbody dialog.memoreminderdialog{
    width:calc(100vw - 20px)!important;
  }
  .appbody dialog.memomanager{max-height:min(440px,calc(100dvh - 20px))!important}
  .appbody dialog.memomanager.memo-is-editing{max-height:min(520px,calc(100dvh - 20px))!important}
  .appbody dialog.memoreminderdialog{max-height:min(400px,calc(100dvh - 20px))!important}
}

/* Isolated memo window system v4.11.0 — no generic homemodal inheritance */
.appbody dialog.memo-shell{
  box-sizing:border-box!important;
  min-width:0!important;
  min-height:0!important;
  margin:auto!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.86)!important;
  border-radius:20px!important;
  background:rgba(252,251,253,.985)!important;
  color:#342d38!important;
  box-shadow:0 28px 86px rgba(30,21,39,.26),inset 0 1px 0 #fff!important;
}
.appbody dialog.memo-shell::backdrop{
  background:rgba(25,18,31,.42)!important;
  backdrop-filter:blur(8px) saturate(105%)!important;
}
.appbody dialog.memo-shell[open]{
  display:block!important;
  animation:memoShellIn .22s cubic-bezier(.2,.8,.25,1) both;
}
.appbody dialog.memo-create-shell{width:min(430px,calc(100vw - 28px))!important}
.appbody dialog.memo-reminder-shell{width:min(450px,calc(100vw - 28px))!important}
.appbody dialog.memo-browser-shell{width:min(450px,calc(100vw - 28px))!important}
.appbody dialog.memo-detail-shell{width:min(470px,calc(100vw - 28px))!important}
.appbody dialog.memo-shell>:is(form,.memodialogbody){
  box-sizing:border-box!important;
  min-height:0!important;
  margin:0!important;
  padding:16px!important;
  background:transparent!important;
  scrollbar-width:thin;
  overscroll-behavior:contain;
}
.appbody dialog.memo-shell .modalhead{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  min-height:0!important;
  margin:0 0 12px!important;
  padding:0 0 11px!important;
  border-bottom:1px solid rgba(78,58,94,.08)!important;
}
.appbody dialog.memo-shell .modalhead h3{margin:1px 0 0!important;font-size:18px!important;line-height:1.22!important}
.appbody dialog.memo-shell .modalhead p{margin:3px 0 0!important;font-size:11px!important;line-height:1.35!important}
.appbody dialog.memo-shell .modalclose{
  flex:0 0 32px!important;
  width:32px!important;
  min-width:32px!important;
  height:32px!important;
  min-height:32px!important;
}
.appbody dialog.memo-shell .modalactions{
  min-height:0!important;
  margin:12px 0 0!important;
  padding:11px 0 0!important;
}
.appbody dialog.memo-shell .memoalllist{max-height:292px!important}
.appbody dialog.memo-shell .loginreminderlist{max-height:220px!important}
.appbody dialog.memo-shell .memoreadonly{max-height:154px!important}
.appbody dialog.memo-shell .memoeditform textarea{min-height:88px!important;max-height:144px!important}
.appbody dialog.memo-shell .memodetailfooter{margin-top:9px!important}
.appbody dialog.memo-shell .memomanageactions{margin-top:12px!important;padding-top:11px!important}
@keyframes memoShellIn{
  from{opacity:0;transform:translateY(8px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@media(max-width:640px){
  .appbody dialog.memo-shell{
    width:calc(100vw - 20px)!important;
    border-radius:18px!important;
  }
  .appbody dialog.memo-shell>:is(form,.memodialogbody){padding:14px!important}
}

/* Memo natural-height policy v4.11.1 */
.appbody dialog.memo-shell{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
}
.appbody dialog.memo-shell.memo-is-editing{max-height:calc(100dvh - 32px)!important}
.appbody dialog.memo-shell>:is(form,.memodialogbody){
  min-height:0!important;
}
.appbody dialog.memo-shell .memoalllist,
.appbody dialog.memo-shell .loginreminderlist,
.appbody dialog.memo-shell .memoreadonly{
  max-height:none!important;
  overflow:visible!important;
}
@media(max-width:640px){
  .appbody dialog.memo-shell,
  .appbody dialog.memo-shell.memo-is-editing{max-height:calc(100dvh - 20px)!important}
}
/* 登录人员：桌面端使用固定尺寸 SVG，避免搜索图标随字体缩放后侵入文字。 */
.appbody .people-filters .people-search{position:relative;display:block!important}
.appbody .people-filters .people-search .people-search-icon{position:absolute!important;inset:auto!important;left:14px!important;top:50%!important;width:18px!important;height:18px!important;transform:translateY(-50%)!important;display:flex!important;align-items:center!important;justify-content:center!important;pointer-events:none;z-index:2;font-size:0!important;line-height:0!important}
.appbody .people-filters .people-search .people-search-icon svg{display:block;width:17px;height:17px;fill:none;stroke:#7e728d;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.appbody .people-filters .people-search input{padding-left:43px!important}

/* Memo neutral surface repair v4.11.4 */
.appbody dialog.memo-shell{
  background:#fbfafc!important;
  color:#342d38!important;
  accent-color:#75628d;
  -webkit-tap-highlight-color:transparent;
}
.appbody dialog.memo-shell :is(.memoreadonly,.loginremindercard,.memoallitem,.memomanagenotice,.memonewreminder,.switchline){
  border-color:rgba(72,58,82,.09)!important;
  background:#f7f5f8!important;
  background-image:none!important;
  box-shadow:none!important;
}
.appbody dialog.memo-shell .loginremindernumber{
  background:#ebe7ee!important;
  background-image:none!important;
  color:#665a70!important;
  box-shadow:none!important;
}
.appbody dialog.memo-shell :is(input,textarea,select){
  background:#fff!important;
  background-image:none!important;
}
.appbody dialog.memo-shell :is(button,input,textarea,select):focus,
.appbody dialog.memo-shell :is(button,input,textarea,select):focus-visible{
  outline:none!important;
  box-shadow:0 0 0 3px rgba(117,98,141,.14)!important;
}
.appbody dialog.memo-shell button::-moz-focus-inner{border:0}

/* Harmonious dialog sizing and in-page bill creation v4.12.0 */
.appbody dialog:where(:not(.memo-shell):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal):not(.messagedialog)){
  width:min(620px,calc(100vw - 28px));
  height:auto!important;
  min-height:0!important;
  max-height:min(680px,calc(100dvh - 32px))!important;
  overflow:auto!important;
}
.appbody dialog.billing-create-dialog{
  box-sizing:border-box;
  width:min(720px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(650px,calc(100dvh - 32px))!important;
  margin:auto;
  padding:0;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.88);
  border-radius:22px;
  background:#fbfafc;
  box-shadow:0 30px 90px rgba(29,20,38,.29);
}
.appbody dialog.billing-create-dialog::backdrop{background:rgba(25,18,31,.42)!important;backdrop-filter:blur(9px)}
.appbody dialog.billing-create-dialog>form{
  display:block!important;
  box-sizing:border-box;
  max-height:min(650px,calc(100dvh - 32px));
  margin:0!important;
  padding:20px!important;
  overflow:auto;
  background:transparent!important;
}
.appbody dialog.billing-create-dialog .modalhead{margin:0 0 16px!important;padding:0 0 14px!important}
.appbody .billing-create-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.appbody .billing-create-grid label{min-width:0;margin:0}
.appbody .billing-create-grid .span2{grid-column:1/-1}
.appbody .billing-create-grid :is(input,select){box-sizing:border-box;width:100%;height:42px!important;min-height:42px!important}
.appbody .billing-upload{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;padding:11px 13px;border:1px solid rgba(76,57,92,.1);border-radius:13px;background:#f7f5f8}
.appbody .billing-upload input{grid-column:1/-1;height:auto!important;min-height:0!important;padding:7px!important;background:#fff}
.appbody .billing-upload small{font-size:10px;color:var(--muted)}
.appbody dialog.billing-create-dialog .modalactions{margin-top:16px!important;padding-top:14px!important}
.appbody :is(dialog.person-detail-dialog,dialog.role-center-dialog){
  height:min(760px,calc(100dvh - 48px))!important;
  max-height:calc(100dvh - 48px)!important;
}
.appbody :is(dialog.orderdetaildialog,dialog.businessedit,dialog.businessimagepreview,dialog.exchangemodal,dialog.messagedialog){
  max-height:min(780px,calc(100dvh - 40px))!important;
}
@media(max-width:640px){
  .appbody dialog.billing-create-dialog{width:calc(100vw - 16px)!important;max-height:calc(100dvh - 16px)!important;border-radius:18px}
  .appbody dialog.billing-create-dialog>form{max-height:calc(100dvh - 16px);padding:15px!important}
  .appbody .billing-create-grid{grid-template-columns:1fr;gap:10px}
  .appbody .billing-create-grid .span2{grid-column:auto}
}

/* Refined memo create/edit forms and compact reminder switch v4.12.1 */
.appbody dialog.memo-create-shell{width:min(460px,calc(100vw - 28px))!important}
.appbody dialog.memo-create-shell>form,
.appbody dialog.memo-detail-shell>.memodialogbody{padding:18px!important}
.appbody dialog.memo-shell .memo-form-fields,
.appbody dialog.memo-shell .memoeditform{display:grid!important;gap:13px!important}
.appbody dialog.memo-shell .memoeditform[hidden],
.appbody dialog.memo-shell [data-memo-read-view][hidden],
.appbody dialog.memo-shell [data-memo-view-actions][hidden]{display:none!important}
.appbody dialog.memo-shell .memo-form-fields label,
.appbody dialog.memo-shell .memoeditform>label:not(.memo-reminder-control){
  display:grid!important;
  gap:7px!important;
  margin:0!important;
  color:#5f5565;
  font-size:11px;
  font-weight:680;
}
.appbody dialog.memo-shell .memo-form-fields :is(input,textarea),
.appbody dialog.memo-shell .memoeditform>label:not(.memo-reminder-control) :is(input,textarea){
  width:100%;
  margin:0!important;
  border:1px solid rgba(75,58,88,.12)!important;
  border-radius:12px!important;
  background:#fff!important;
  box-shadow:0 1px 0 rgba(255,255,255,.9),inset 0 1px 2px rgba(44,32,52,.025)!important;
}
.appbody dialog.memo-shell .memo-form-fields input,
.appbody dialog.memo-shell .memoeditform>label:not(.memo-reminder-control) input{height:42px!important;min-height:42px!important}
.appbody dialog.memo-shell .memo-form-fields textarea,
.appbody dialog.memo-shell .memoeditform textarea{
  min-height:104px!important;
  padding:11px 12px!important;
  line-height:1.65!important;
  resize:none!important;
}
.appbody dialog.memo-shell .memo-reminder-control{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
  min-height:0!important;
  margin:14px 0 0!important;
  padding:10px 12px!important;
  border:1px solid rgba(75,58,88,.09)!important;
  border-radius:13px!important;
  background:#f7f5f8!important;
  cursor:pointer;
}
.appbody dialog.memo-shell .memo-reminder-control>span:first-child{display:grid;gap:2px;min-width:0}
.appbody dialog.memo-shell .memo-reminder-control b{color:#403746;font-size:12px;line-height:1.3}
.appbody dialog.memo-shell .memo-reminder-control small{color:#8a808f;font-size:10px;line-height:1.35;font-weight:500}
.appbody dialog.memo-shell .memo-switch{
  position:relative;
  display:block;
  flex:0 0 38px;
  width:38px;
  height:22px;
}
.appbody dialog.memo-shell .memo-switch input{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  cursor:pointer;
}
.appbody dialog.memo-shell .memo-switch i{
  position:absolute;
  inset:0;
  border:1px solid rgba(80,67,88,.12);
  border-radius:999px;
  background:#dcd8df;
  transition:background .2s ease,border-color .2s ease;
  pointer-events:none;
}
.appbody dialog.memo-shell .memo-switch i::after{
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  box-shadow:0 2px 6px rgba(40,30,48,.2);
  transition:transform .22s cubic-bezier(.2,.8,.25,1);
}
.appbody dialog.memo-shell .memo-switch input:checked+i{border-color:#75628d;background:#75628d}
.appbody dialog.memo-shell .memo-switch input:checked+i::after{transform:translateX(16px)}
.appbody dialog.memo-shell .memo-switch input:focus-visible+i{box-shadow:0 0 0 3px rgba(117,98,141,.16)}
.appbody dialog.memo-shell .memo-reminder-control:has(input:checked){border-color:rgba(117,98,141,.18)!important;background:#f3eff7!important}
.appbody dialog.memo-shell .memoeditform .modalactions,
.appbody dialog.memo-create-shell .modalactions{margin-top:14px!important;padding-top:13px!important}
.appbody dialog.memo-shell .modalactions>button{min-width:94px!important;height:38px!important;min-height:38px!important;padding:0 16px!important}
@media(max-width:640px){
  .appbody dialog.memo-create-shell>form,
  .appbody dialog.memo-detail-shell>.memodialogbody{padding:15px!important}
  .appbody dialog.memo-shell .memo-reminder-control{padding:9px 11px!important}
}

/* Definitive dialog overflow and neutral color policy v4.12.3 */
.appbody dialog{
  overflow-x:hidden!important;
  scrollbar-width:thin;
  scrollbar-color:#b9b1be transparent;
  accent-color:#75628d!important;
}
.appbody dialog::-webkit-scrollbar,
.appbody dialog *::-webkit-scrollbar{width:7px;height:7px}
.appbody dialog::-webkit-scrollbar-track,
.appbody dialog *::-webkit-scrollbar-track{background:transparent}
.appbody dialog::-webkit-scrollbar-thumb,
.appbody dialog *::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:999px;background:#b9b1be;background-clip:padding-box}
.appbody dialog:where(:not(.memo-shell):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal):not(.messagedialog):not(.billing-create-dialog)){
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
  overflow-y:auto!important;
}
.appbody dialog:where(:not(.memo-shell):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal):not(.messagedialog):not(.billing-create-dialog))>:is(form,.memodialogbody,.businessdialogbody){
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.appbody dialog.billing-create-dialog>form{
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
.appbody dialog.memo-shell>:is(form,.memodialogbody){
  scrollbar-color:#b9b1be transparent;
}
.appbody dialog :is(input,textarea,select):-webkit-autofill,
.appbody dialog :is(input,textarea,select):-webkit-autofill:hover,
.appbody dialog :is(input,textarea,select):-webkit-autofill:focus{
  -webkit-text-fill-color:#342d38!important;
  -webkit-box-shadow:0 0 0 1000px #fff inset!important;
  box-shadow:0 0 0 1000px #fff inset!important;
  transition:background-color 99999s ease-out 0s;
}
.appbody dialog input[type="file"]{color:#6d6372!important;background:#fff!important}
.appbody dialog input[type="file"]::file-selector-button{
  margin-right:10px;
  border:0;
  border-radius:9px;
  padding:7px 11px;
  background:#eeeaf1;
  color:#5e5366;
  font:inherit;
  cursor:pointer;
}
.appbody dialog :is(button,a,input,textarea,select):focus,
.appbody dialog :is(button,a,input,textarea,select):focus-visible{
  outline:none!important;
  border-color:rgba(117,98,141,.34)!important;
  box-shadow:0 0 0 3px rgba(117,98,141,.14)!important;
}
.appbody dialog ::selection{background:rgba(117,98,141,.18)!important;color:inherit}
.appbody dialog .role-staff{background:#eeeaf2!important;color:#665773!important}
@media(max-width:640px){
  .appbody dialog:where(:not(.memo-shell):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.businessedit):not(.businessimagepreview):not(.exchangemodal):not(.messagedialog):not(.billing-create-dialog)),
  .appbody dialog.billing-create-dialog>form{max-height:calc(100dvh - 16px)!important}
}

/* Business dialog reconstruction and clipped scrollbars v4.12.4 */
.appbody dialog::-webkit-scrollbar-button,
.appbody dialog *::-webkit-scrollbar-button{display:none!important;width:0!important;height:0!important;background:transparent!important}
.appbody dialog::-webkit-scrollbar-corner,
.appbody dialog *::-webkit-scrollbar-corner{background:transparent!important}
.appbody dialog.businesscompanymanage{
  box-sizing:border-box;
  width:min(640px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 32px))!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:22px!important;
  background:#fbfafc!important;
}
.appbody dialog.businesscompanymanage>.businessdialogbody{
  display:flex!important;
  flex-direction:column;
  box-sizing:border-box;
  height:auto!important;
  min-height:0!important;
  max-height:min(560px,calc(100dvh - 32px))!important;
  padding:20px!important;
  overflow:hidden!important;
  background:#fbfafc!important;
}
.appbody dialog.businesscompanymanage .modalhead{flex:0 0 auto;margin:0 0 13px!important;padding:0 0 12px!important}
.appbody dialog.businesscompanymanage .businesscompanyrows{
  display:grid;
  flex:0 1 auto;
  gap:8px;
  min-height:0;
  max-height:min(390px,calc(100dvh - 170px))!important;
  padding:1px 4px 1px 1px;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
.appbody dialog.businesscompanymanage .businesscompanyrow{
  grid-template-columns:36px minmax(0,1fr) auto auto;
  gap:9px;
  padding:9px 10px;
  border-color:rgba(73,57,86,.09);
  border-radius:12px;
  background:#f7f5f8;
}
.appbody dialog.businesscompanymanage .businessledgericon{width:36px;height:36px;border-radius:10px;background:#ebe7ee;color:#665773}
.appbody dialog.businesscompanymanage .businesscompanyrow input{height:38px!important;min-height:38px!important;margin:0!important}
.appbody dialog.businesscompanymanage .businesscompanyrow button{height:38px!important;min-height:38px!important;padding:0 13px!important}
.appbody dialog.businessedit{
  box-sizing:border-box;
  width:min(900px,calc(100vw - 28px))!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(680px,calc(100dvh - 32px))!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:22px!important;
  background:#fbfafc!important;
}
.appbody dialog.businessedit>form{
  box-sizing:border-box;
  height:auto!important;
  min-height:0!important;
  max-height:min(680px,calc(100dvh - 32px))!important;
  margin:0!important;
  padding:20px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  background:#fbfafc!important;
}
.appbody dialog.businessedit .modalhead{margin:-20px -20px 15px!important;padding:19px 20px 13px!important}
.appbody dialog.businessedit .businessformgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:9px 11px!important}
.appbody dialog.businessedit .businessformgrid label{gap:4px!important;margin:0!important;font-size:10px}
.appbody dialog.businessedit .businessformgrid input{height:38px!important;min-height:38px!important;margin:0!important;padding:7px 10px!important;border-radius:10px!important}
.appbody dialog.businessedit .modalactions{margin:15px -20px -20px!important;padding:13px 20px 17px!important}
.appbody dialog.businessedit .businessimagefields{
  display:block;
  margin:14px 0 0!important;
  border:1px solid rgba(73,57,86,.09);
  border-radius:13px;
  background:#f7f5f8;
  overflow:hidden;
}
.appbody dialog.businessedit .businessimagefields>summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:48px;
  padding:9px 13px;
  list-style:none;
  cursor:pointer;
}
.appbody dialog.businessedit .businessimagefields>summary::-webkit-details-marker{display:none}
.appbody dialog.businessedit .businessimagefields>summary>span{display:grid;gap:1px}
.appbody dialog.businessedit .businessimagefields>summary b{color:#44394b;font-size:12px}
.appbody dialog.businessedit .businessimagefields>summary small{color:#8b818f;font-size:10px;font-weight:500}
.appbody dialog.businessedit .businessimagefields>summary>i{
  width:8px;
  height:8px;
  border-right:1.5px solid #756b7c;
  border-bottom:1.5px solid #756b7c;
  transform:rotate(45deg);
  transition:transform .2s ease;
}
.appbody dialog.businessedit .businessimagefields[open]>summary>i{transform:rotate(225deg)}
.appbody dialog.businessedit .businessimagefieldintro{padding:12px 13px 4px;border-top:1px solid rgba(73,57,86,.08)}
.appbody dialog.businessedit .businessimagefieldintro p{margin:3px 0 0;color:#847a89;font-size:10px}
.appbody dialog.businessedit .businessimagefieldgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important;padding:10px 13px 13px}
.appbody dialog.businessedit .businessimagefield{padding:10px!important;border-radius:11px!important;background:#fff!important}
@media(max-width:700px){
  .appbody dialog.businesscompanymanage,
  .appbody dialog.businessedit{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important;border-radius:18px!important}
  .appbody dialog.businesscompanymanage>.businessdialogbody,
  .appbody dialog.businessedit>form{max-height:calc(100dvh - 14px)!important;padding:15px!important}
  .appbody dialog.businesscompanymanage .businesscompanyrows{max-height:calc(100dvh - 145px)!important}
  .appbody dialog.businesscompanymanage .businesscompanyrow{grid-template-columns:32px minmax(0,1fr)}
  .appbody dialog.businesscompanymanage .businesscompanyrow small{display:none}
  .appbody dialog.businesscompanymanage .businesscompanyrow button{grid-column:2;width:100%}
  .appbody dialog.businessedit .modalhead{margin:-15px -15px 13px!important;padding:16px 15px 12px!important}
  .appbody dialog.businessedit .businessformgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .appbody dialog.businessedit .businessimagefieldgrid{grid-template-columns:1fr!important}
  .appbody dialog.businessedit .modalactions{margin:14px -15px -15px!important;padding:12px 15px 15px!important}
}
@media(max-width:460px){
  .appbody dialog.businessedit .businessformgrid{grid-template-columns:1fr!important}
}

/* Canonical business modal flow v4.12.5 — removes all legacy sticky/negative geometry */
.appbody dialog.businessedit{
  width:min(900px,calc(100vw - 28px))!important;
  height:auto!important;
  max-height:min(640px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog.businessedit>form{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(640px,calc(100dvh - 32px))!important;
  padding:18px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  scroll-padding:16px 0;
}
.appbody dialog.businessedit .modalhead{
  position:static!important;
  inset:auto!important;
  margin:0 0 14px!important;
  padding:0 0 12px!important;
  background:transparent!important;
  backdrop-filter:none!important;
}
.appbody dialog.businessedit .modalactions{
  position:static!important;
  inset:auto!important;
  margin:14px 0 0!important;
  padding:12px 0 0!important;
  background:transparent!important;
}
.appbody dialog.businessedit .businessimagefields{
  box-sizing:border-box!important;
  margin:13px 0 0!important;
  padding:0!important;
}
.appbody dialog.businessedit .businessimagefieldgrid{margin:0!important}
.appbody dialog.businessmonthdialog,
.appbody dialog.businesscompanydialog{
  box-sizing:border-box;
  width:min(520px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(500px,calc(100dvh - 32px))!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:21px!important;
  background:#fbfafc!important;
}
.appbody dialog.businessmonthdialog>.businessdialogbody,
.appbody dialog.businesscompanydialog>.businessdialogbody{
  display:flex!important;
  flex-direction:column;
  box-sizing:border-box;
  height:auto!important;
  min-height:0!important;
  max-height:min(500px,calc(100dvh - 32px))!important;
  padding:18px!important;
  overflow:hidden!important;
  background:#fbfafc!important;
}
.appbody dialog.businessmonthdialog .modalhead,
.appbody dialog.businesscompanydialog .modalhead{
  flex:0 0 auto;
  margin:0 0 12px!important;
  padding:0 0 11px!important;
}
.appbody dialog.businessmonthdialog .businessmonthlist,
.appbody dialog.businesscompanydialog .businesscompanychoices{
  flex:0 1 auto;
  min-height:0;
  max-height:min(330px,calc(100dvh - 155px))!important;
  margin:0!important;
  padding:1px 4px 1px 1px;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
.appbody dialog.businessmonthdialog .businessmonthlist{gap:7px}
.appbody dialog.businessmonthdialog .businessmonthlist>a{gap:12px;padding:11px 13px;border-radius:13px;background:#f7f5f8}
.appbody dialog.businessmonthdialog .businessmonthlist small{margin-bottom:2px;font-size:10px}
.appbody dialog.businessmonthdialog .businessmonthlist strong{font-size:14px}
.appbody dialog.businesscompanydialog .businesscompanychoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.appbody dialog.businesscompanydialog .businesscompanychoices>button{min-height:62px;padding:9px 11px;border-radius:13px;background:#f7f5f8}
@media(max-width:700px){
  .appbody dialog.businessedit{width:calc(100vw - 14px)!important;max-height:calc(100dvh - 14px)!important}
  .appbody dialog.businessedit>form{max-height:calc(100dvh - 14px)!important;padding:15px!important}
  .appbody dialog.businessmonthdialog,
  .appbody dialog.businesscompanydialog{width:calc(100vw - 18px)!important;max-height:calc(100dvh - 18px)!important}
  .appbody dialog.businessmonthdialog>.businessdialogbody,
  .appbody dialog.businesscompanydialog>.businessdialogbody{max-height:calc(100dvh - 18px)!important;padding:15px!important}
  .appbody dialog.businessmonthdialog .businessmonthlist,
  .appbody dialog.businesscompanydialog .businesscompanychoices{max-height:calc(100dvh - 135px)!important}
}
@media(max-width:480px){
  .appbody dialog.businesscompanydialog .businesscompanychoices{grid-template-columns:1fr}
}

/* Modal-open page lock and native focus cleanup v4.12.8 */
html:has(body.appbody dialog[open]),
body.appbody:has(dialog[open]){
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
.appbody dialog summary:focus,
.appbody dialog summary:focus-visible{outline:none!important}
.appbody dialog.businessedit .businessimagefields:focus-within{
  border-color:rgba(117,98,141,.24)!important;
  box-shadow:0 0 0 3px rgba(117,98,141,.1)!important;
}

/* Canonical non-business dialog geometry v4.12.9
   Natural content height, one scroll owner, and no desktop full-screen fallback. */
.appbody dialog:where(:not(.memo-shell):not(.memomanager):not(.memobrowser):not(.memoreminderdialog):not(.billing-create-dialog):not(.people-dialog):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.ordereditdialog):not(.exchangemodal):not(.messagedialog):not(.businessedit):not(.businessimagepreview):not(.businessmonthdialog):not(.businesscompanydialog):not(.businesscompanyadmin):not(.businesscompanymanage):not(.businessfilterdialog)){
  box-sizing:border-box!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(620px,calc(100dvh - 32px))!important;
  overflow:hidden!important;
}
.appbody dialog:where(:not(.memo-shell):not(.memomanager):not(.memobrowser):not(.memoreminderdialog):not(.billing-create-dialog):not(.people-dialog):not(.person-detail-dialog):not(.role-center-dialog):not(.orderdetaildialog):not(.ordereditdialog):not(.exchangemodal):not(.messagedialog):not(.businessedit):not(.businessimagepreview):not(.businessmonthdialog):not(.businesscompanydialog):not(.businesscompanyadmin):not(.businesscompanymanage):not(.businessfilterdialog))>:is(form,.memodialogbody,.businessdialogbody){
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(620px,calc(100dvh - 32px))!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}

/* Total ledger, personal ledger and account-period creation dialogs. */
.appbody dialog.billing-create-dialog{
  box-sizing:border-box!important;
  width:min(760px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(720px,calc(100dvh - 28px))!important;
  overflow:hidden!important;
}
.appbody dialog.billing-create-dialog>form{
  display:block!important;
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(720px,calc(100dvh - 28px))!important;
  margin:0!important;
  padding:18px 20px 20px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.appbody dialog.billing-create-dialog .modalhead{
  position:static!important;
  inset:auto!important;
  min-height:0!important;
  margin:0 0 13px!important;
  padding:0 0 12px!important;
  background:transparent!important;
  backdrop-filter:none!important;
}
.appbody dialog.billing-create-dialog .billing-create-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px 12px!important;
}
.appbody dialog.billing-create-dialog .billing-create-grid label{
  display:grid!important;
  align-content:start!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
}
.appbody dialog.billing-create-dialog .billing-create-grid .span2{grid-column:1/-1!important}
.appbody dialog.billing-create-dialog .billing-create-grid :is(input,select){
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
}
.appbody dialog.billing-create-dialog .billing-upload{
  gap:4px 10px!important;
  padding:9px 11px!important;
}
.appbody dialog.billing-create-dialog .billing-upload input{
  height:auto!important;
  min-height:0!important;
  padding:6px!important;
}
.appbody dialog.billing-create-dialog .modalactions{
  position:static!important;
  inset:auto!important;
  margin:13px 0 0!important;
  padding:12px 0 0!important;
  background:transparent!important;
}
.appbody dialog.period-create-dialog{width:min(720px,calc(100vw - 28px))!important}

/* Login-person creation follows its real content instead of the viewport. */
.appbody dialog.people-dialog{
  box-sizing:border-box!important;
  width:min(680px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(600px,calc(100dvh - 28px))!important;
  overflow:hidden!important;
}
.appbody dialog.people-dialog>.modalhead{
  position:static!important;
  inset:auto!important;
  margin:0!important;
  padding:18px 22px 13px!important;
  background:transparent!important;
  backdrop-filter:none!important;
}
.appbody dialog.people-dialog>form{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  max-height:calc(100dvh - 112px)!important;
  margin:0!important;
  padding:12px 22px 20px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
.appbody dialog.people-dialog .simplegrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px 14px!important;
}
.appbody dialog.people-dialog>form>button{margin-top:12px!important}

/* General-ledger, personal-ledger and account-period edit dialogs. */
.appbody dialog.ordereditdialog{
  inset:0!important;
  box-sizing:border-box!important;
  width:min(860px,calc(100vw - 28px))!important;
  height:fit-content!important;
  min-height:0!important;
  max-height:min(700px,calc(100dvh - 28px))!important;
  margin:auto!important;
  padding:0!important;
  overflow:hidden!important;
  border:1px solid rgba(255,255,255,.82)!important;
  border-radius:24px!important;
}
.appbody dialog.ordereditdialog>.orderdetailhead{
  position:static!important;
  min-height:64px!important;
  padding:16px 20px!important;
}
.appbody dialog.ordereditdialog>.ordereditbody{
  box-sizing:border-box!important;
  height:auto!important;
  min-height:0!important;
  max-height:min(634px,calc(100dvh - 94px))!important;
  padding:14px!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.appbody dialog.ordereditdialog .ordereditbody>form.simpleform{
  box-sizing:border-box!important;
  width:100%!important;
  max-width:none!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:16px!important;
  border-radius:16px!important;
}
.appbody dialog.ordereditdialog .simplegrid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:11px 13px!important;
}
.appbody dialog.ordereditdialog .simplegrid label{
  display:grid!important;
  gap:5px!important;
  min-width:0!important;
  margin:0!important;
}
.appbody dialog.ordereditdialog .simplegrid :is(input,select){
  width:100%!important;
  height:40px!important;
  min-height:40px!important;
  margin:0!important;
}
.appbody dialog.ordereditdialog .simplegrid .span2{grid-column:1/-1!important}
.appbody dialog.ordereditdialog .actions{
  position:static!important;
  inset:auto!important;
  margin:14px 0 0!important;
  padding:12px 0 0!important;
  background:transparent!important;
}

/* Dense management workspaces stay large, but never stretch down the screen. */
.appbody dialog.person-detail-dialog{
  width:min(1040px,calc(100vw - 32px))!important;
  height:min(700px,calc(100dvh - 32px))!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:hidden!important;
}
.appbody dialog.role-center-dialog{
  width:min(1120px,calc(100vw - 32px))!important;
  height:min(720px,calc(100dvh - 32px))!important;
  min-height:0!important;
  max-height:calc(100dvh - 32px)!important;
  overflow:hidden!important;
}

@media(max-width:560px){
  .appbody dialog.billing-create-dialog,
  .appbody dialog.people-dialog,
  .appbody dialog.ordereditdialog{
    inset:0!important;
    width:calc(100vw - 12px)!important;
    height:fit-content!important;
    max-height:calc(100dvh - 12px)!important;
    margin:auto!important;
    border:1px solid rgba(255,255,255,.82)!important;
    border-radius:18px!important;
  }
  .appbody dialog.billing-create-dialog>form{max-height:calc(100dvh - 12px)!important;padding:15px!important}
  .appbody dialog.billing-create-dialog .billing-create-grid,
  .appbody dialog.people-dialog .simplegrid,
  .appbody dialog.ordereditdialog .simplegrid{grid-template-columns:1fr!important}
  .appbody dialog.billing-create-dialog .billing-create-grid .span2,
  .appbody dialog.ordereditdialog .simplegrid .span2{grid-column:auto!important}
  .appbody dialog.people-dialog>.modalhead{padding:16px 17px 11px!important}
  .appbody dialog.people-dialog>form{max-height:calc(100dvh - 94px)!important;padding:11px 17px 17px!important}
  .appbody dialog.ordereditdialog>.ordereditbody{max-height:calc(100dvh - 78px)!important;padding:8px!important}
  .appbody dialog.ordereditdialog .ordereditbody>form.simpleform{padding:14px!important}
  .appbody dialog.person-detail-dialog,
  .appbody dialog.role-center-dialog{
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    max-height:100dvh!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
}

/* Messenger 3.0 */
.appbody dialog.chat-dialog{
  box-sizing:border-box!important;
  width:min(1120px,calc(100vw - 34px))!important;
  height:min(820px,calc(100dvh - 34px))!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.84)!important;
  border-radius:28px!important;
  background:#f6f3f8!important;
  color:#302936!important;
  box-shadow:0 42px 140px rgba(28,19,36,.36)!important;
  overflow:hidden!important;
}
.appbody dialog.chat-dialog::backdrop{background:rgba(24,17,31,.4);backdrop-filter:blur(14px) saturate(.85)}
.chat-shell{display:grid;grid-template-columns:310px minmax(0,1fr);height:100%;min-height:0;background:linear-gradient(145deg,#faf8fb 0%,#f1edf4 100%)}
.chat-sidebar{display:flex;min-width:0;min-height:0;flex-direction:column;border-right:1px solid rgba(72,52,88,.1);background:rgba(255,255,255,.64);backdrop-filter:blur(28px)}
.chat-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 20px 14px}
.chat-sidebar-head h2{margin:3px 0 0!important;font-size:25px!important;letter-spacing:-.7px}
.chat-close{display:grid!important;place-items:center;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border:0!important;border-radius:50%!important;background:#ece8ef!important;color:#655b6a!important;box-shadow:none!important;font:400 22px/1 system-ui!important;transition:transform .18s ease,background .18s ease!important}
.chat-close:hover{transform:rotate(4deg);background:#e3dde7!important}
.chat-contact-search{position:relative;display:block;margin:0 16px 12px}
.chat-contact-search svg{position:absolute;top:50%;left:13px;width:17px;height:17px;transform:translateY(-50%);fill:none;stroke:#887c8d;stroke-width:1.8;stroke-linecap:round}
.chat-contact-search input{box-sizing:border-box;width:100%;height:42px!important;min-height:42px!important;padding:0 13px 0 40px!important;border:1px solid rgba(77,57,91,.09)!important;border-radius:13px!important;background:#eeebf1!important;box-shadow:none!important;font-size:12px!important}
.chat-contact-search input:focus{border-color:rgba(117,89,143,.3)!important;background:#fff!important;box-shadow:0 0 0 3px rgba(117,89,143,.1)!important}
.chat-filters{display:flex;gap:5px;margin:0 16px 12px;padding:4px;border-radius:12px;background:#ece8ef}
.chat-filters button{flex:1;min-height:30px!important;padding:5px 8px!important;border:0!important;border-radius:9px!important;background:transparent!important;color:#7e7283!important;box-shadow:none!important;font-size:11px!important}
.chat-filters button.active{background:#fff!important;color:#4b3b55!important;box-shadow:0 3px 10px rgba(57,41,68,.08)!important;font-weight:750}
.chat-people{display:grid;align-content:start;gap:4px;min-height:0;padding:0 9px 15px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(91,70,106,.22) transparent}
.chat-person{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;min-height:68px!important;padding:9px 10px!important;border:1px solid transparent!important;border-radius:17px!important;background:transparent!important;color:#3b333f!important;text-align:left;box-shadow:none!important;transition:transform .18s ease,background .18s ease,border-color .18s ease!important}
.chat-person:hover{transform:translateY(-1px);background:rgba(242,237,245,.84)!important}
.chat-person.active{border-color:rgba(112,84,134,.09)!important;background:linear-gradient(135deg,#ede5f2,#e5dce9)!important;box-shadow:0 8px 20px rgba(63,43,75,.075)!important}
.chat-person.unread:not(.active){background:rgba(246,241,249,.82)!important}
.chat-avatar{position:relative;display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:linear-gradient(145deg,#8b70a6,#6b537f);color:#fff;font-size:15px;font-weight:800;box-shadow:0 8px 18px rgba(83,59,102,.17)}
.chat-avatar>i{position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border:2px solid #f8f5fa;border-radius:50%;background:#b3aab7}
.chat-avatar>i.online{background:#32b979;box-shadow:0 0 0 2px rgba(50,185,121,.12)}
.chat-person-copy,.chat-person-line{min-width:0}.chat-person-line{display:flex;align-items:center;justify-content:space-between;gap:8px}
.chat-person-line b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.chat-person-line time{flex:0 0 auto;color:#a095a4;font-size:9px}
.chat-person-preview{display:block;margin-top:5px;overflow:hidden;color:#8b808f;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.chat-person-preview em{color:#776680;font-style:normal}
.chat-person.unread .chat-person-line b{color:#4e365e}.chat-person.unread .chat-person-preview{color:#67576e;font-weight:650}
.chat-person-state{display:grid;justify-items:end;gap:5px;color:#8c7d92;font-size:9px}.chat-person-state>strong{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;background:#76588e;color:#fff;font-size:9px}.chat-person-state>i{font-style:normal}.chat-pin{font-size:7px!important;transform:rotate(45deg)}
.chat-list-loading,.chat-list-empty{display:grid;place-items:center;align-content:center;gap:5px;min-height:190px;padding:20px;color:#978c9b;text-align:center}.chat-list-empty>span{font-size:22px}.chat-list-empty b{color:#665b6a;font-size:12px}.chat-list-empty small{font-size:10px}
.chat-main{position:relative;display:flex;min-width:0;min-height:0;flex-direction:column;background:radial-gradient(circle at 80% 0,rgba(233,224,240,.65),transparent 38%),rgba(250,249,251,.78)}
.chat-empty{display:grid;place-items:center;align-content:center;gap:8px;flex:1;padding:40px;text-align:center}.chat-empty[hidden]{display:none!important}.chat-empty-icon{display:grid;place-items:center;width:76px;height:76px;margin-bottom:4px;border-radius:26px;background:linear-gradient(145deg,#eee6f3,#e2d7e9);box-shadow:0 18px 40px rgba(67,46,81,.12)}.chat-empty-icon svg{width:38px;height:38px;fill:none;stroke:#765c8b;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}.chat-empty h3{margin:0;font-size:20px}.chat-empty p{max-width:360px;margin:0;color:#8d8191;font-size:12px;line-height:1.65}
.chat-conversation{display:flex;min-width:0;min-height:0;flex:1;flex-direction:column}.chat-conversation[hidden]{display:none!important}
.chat-thread-head{position:relative;z-index:12;display:flex;align-items:center;gap:12px;min-height:76px;padding:12px 18px;border-bottom:1px solid rgba(78,57,93,.09);background:rgba(255,255,255,.73);backdrop-filter:blur(24px)}
.chat-thread-head .chat-avatar{width:44px;height:44px;border-radius:15px}.chat-thread-person{min-width:0;flex:1}.chat-thread-person strong,.chat-thread-person span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-thread-person strong{font-size:15px}.chat-thread-person span{margin-top:3px;color:#8d8291;font-size:10px}
.chat-thread-tools{display:flex;gap:6px}.chat-thread-tools button,.chat-back{display:grid!important;place-items:center;width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;padding:0!important;border:1px solid rgba(83,62,98,.07)!important;border-radius:12px!important;background:#efebf1!important;color:#625568!important;box-shadow:none!important;font-size:12px!important}.chat-thread-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.chat-back{display:none!important;font-size:25px!important}
.chat-thread-menu{position:absolute;z-index:20;top:62px;right:18px;display:grid;width:210px;padding:7px;border:1px solid rgba(77,58,91,.1);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 20px 54px rgba(42,29,52,.2);animation:chatMenuIn .18s cubic-bezier(.2,.8,.25,1)}.chat-thread-menu[hidden]{display:none}.chat-thread-menu button{min-height:37px!important;padding:8px 11px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:#514756!important;text-align:left;box-shadow:none!important;font-size:11px!important}.chat-thread-menu button:hover{background:#f0ebf3!important}.chat-thread-menu button.danger{color:#c34254!important}
.chat-thread-search{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;padding:9px 14px;border-bottom:1px solid rgba(82,61,96,.08);background:#f7f4f8}.chat-thread-search[hidden]{display:none}.chat-thread-search input{height:37px!important;min-height:37px!important;padding:7px 11px!important;border-radius:11px!important;font-size:11px!important}.chat-thread-search button{min-height:37px!important;padding:7px 11px!important;border-radius:10px!important;font-size:10px!important}
.chat-messages{position:relative;flex:1;min-height:0;padding:18px 21px 22px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(95,74,109,.23) transparent}
.chat-date{display:flex;justify-content:center;margin:14px 0 11px}.chat-date span,.chat-search-summary{padding:5px 9px;border-radius:99px;background:rgba(224,218,228,.72);color:#837789;font-size:9px}.chat-search-summary{width:max-content;max-width:90%;margin:0 auto 15px}
.chat-load-more{display:block!important;min-height:32px!important;margin:0 auto 14px!important;padding:6px 12px!important;border:0!important;border-radius:99px!important;background:#ebe5ef!important;color:#725d80!important;box-shadow:none!important;font-size:10px!important}
.chat-message{position:relative;display:grid;grid-template-columns:34px minmax(0,auto) minmax(0,1fr);align-items:end;gap:8px;margin:4px 0}.chat-message.mine{grid-template-columns:minmax(0,1fr) minmax(0,auto) 0}.chat-message.compact{margin-top:1px}.chat-message-avatar{width:32px;height:32px;border-radius:11px;font-size:11px}.chat-message.compact .chat-message-avatar-spacer,.chat-message.compact .chat-message-avatar{height:0}.chat-message-stack{min-width:0;max-width:min(560px,78%)}.chat-message.mine .chat-message-stack{grid-column:2;justify-self:end}.chat-message.theirs .chat-message-stack{grid-column:2}
.chat-bubble{position:relative;width:fit-content;max-width:100%;padding:10px 13px;border:1px solid rgba(87,65,101,.07);border-radius:18px 18px 18px 6px;background:#fff;box-shadow:0 7px 20px rgba(48,33,58,.055);overflow:hidden}.chat-message.mine .chat-bubble{margin-left:auto;border-color:transparent;border-radius:18px 18px 6px 18px;background:linear-gradient(145deg,#806499,#6d527f);color:#fff;box-shadow:0 9px 22px rgba(87,59,107,.17)}.chat-bubble>p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55}.chat-bubble.deleted{background:rgba(238,234,240,.76)!important;color:#948a98!important;box-shadow:none}.chat-recalled{font-size:10px!important;font-style:italic}
.chat-reply-quote{display:block!important;width:100%;min-height:0!important;margin:0 0 8px!important;padding:7px 9px!important;border:0!important;border-left:3px solid #a187b1!important;border-radius:7px!important;background:rgba(112,83,132,.08)!important;color:inherit!important;text-align:left;box-shadow:none!important}.chat-message.mine .chat-reply-quote{border-left-color:#dacbe4!important;background:rgba(255,255,255,.13)!important}.chat-reply-quote b,.chat-reply-quote span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-reply-quote b{font-size:9px}.chat-reply-quote span{margin-top:2px;opacity:.76;font-size:9px}
.chat-image{display:block!important;max-width:100%;min-height:0!important;margin:7px 0 0!important;padding:0!important;border:0!important;border-radius:13px!important;background:transparent!important;box-shadow:none!important;overflow:hidden}.chat-image img{display:block;max-width:min(360px,100%);max-height:310px;object-fit:cover;transition:transform .25s ease}.chat-image:hover img{transform:scale(1.012)}
.chat-attachment{display:flex;align-items:center;gap:9px;min-width:230px;max-width:100%;margin-top:7px;padding:9px 11px;border:1px solid rgba(82,61,96,.08);border-radius:13px;background:rgba(245,242,247,.9);color:#4d4351;text-decoration:none}.chat-message.mine .chat-attachment{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.14);color:#fff}.chat-attachment>span:first-child{display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#e8dfed;color:#6e567d;font-size:16px}.chat-message.mine .chat-attachment>span:first-child{background:rgba(255,255,255,.17);color:#fff}.chat-attachment>span:last-child{min-width:0}.chat-attachment b,.chat-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-attachment b{font-size:10px}.chat-attachment small{margin-top:2px;opacity:.7;font-size:8px}
.chat-message-meta{display:flex;align-items:center;gap:5px;margin:3px 4px 0;color:#a096a3;font-size:8px}.chat-message.mine .chat-message-meta{justify-content:flex-end}.chat-reactions{display:flex;flex-wrap:wrap;gap:3px;margin-top:-4px;position:relative;z-index:2}.chat-message.mine .chat-reactions{justify-content:flex-end}.chat-reaction{min-height:23px!important;padding:3px 6px!important;border:1px solid rgba(91,68,107,.1)!important;border-radius:99px!important;background:#fff!important;color:#55475e!important;box-shadow:0 3px 9px rgba(48,34,57,.08)!important;font-size:10px!important}.chat-reaction.mine{border-color:#8d70a3!important;background:#eee6f3!important}.chat-reaction span{font-size:8px}
.chat-message-actions{position:static;z-index:4;display:flex;align-self:center;gap:3px;padding:0;border:0;border-radius:10px;background:transparent;box-shadow:none;opacity:.55;transition:opacity .15s ease,transform .15s ease}.chat-message.theirs .chat-message-actions{grid-column:3;justify-self:start}.chat-message.mine .chat-message-actions{grid-column:1;justify-self:end;flex-direction:row-reverse}.chat-message-actions button:not(.chat-action-more){display:none!important}.chat-message:hover .chat-message-actions,.chat-message:focus-within .chat-message-actions,.chat-message.actions-open .chat-message-actions{padding:4px;border:1px solid rgba(80,59,95,.08);background:rgba(255,255,255,.97);box-shadow:0 8px 22px rgba(43,29,52,.14);opacity:1}.chat-message:hover .chat-message-actions button,.chat-message:focus-within .chat-message-actions button,.chat-message.actions-open .chat-message-actions button{display:block!important}.chat-message-actions button{min-height:28px!important;padding:4px 7px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:#675a6c!important;box-shadow:none!important;font-size:9px!important}.chat-message-actions button:hover{background:#eee8f1!important}.chat-message-actions .chat-action-more{display:block!important;min-width:29px!important;padding:2px 6px!important;font-size:11px!important;letter-spacing:1px}
.chat-reaction-picker{position:absolute;z-index:9;top:calc(50% + 20px);left:46px;display:flex;gap:4px;padding:6px;border:1px solid rgba(74,53,90,.09);border-radius:13px;background:#fff;box-shadow:0 15px 34px rgba(40,27,49,.18);animation:chatMenuIn .16s ease}.chat-message.mine .chat-reaction-picker{right:8px;left:auto}.chat-reaction-picker[hidden]{display:none}.chat-reaction-picker button{display:grid!important;place-items:center;width:31px!important;min-width:31px!important;height:31px!important;min-height:31px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;box-shadow:none!important;font-size:16px!important}.chat-reaction-picker button:hover{background:#eee8f2!important;transform:scale(1.08)}
.chat-no-messages{display:grid;place-items:center;align-content:center;gap:5px;min-height:100%;color:#958a99;text-align:center}.chat-no-messages>span{font-size:25px}.chat-no-messages b{color:#665b6b;font-size:13px}.chat-no-messages small{font-size:10px}
.chat-typing{display:flex;align-items:center;gap:3px;padding:0 23px 7px;color:#8b7f90;font-size:9px}.chat-typing[hidden]{display:none}.chat-typing i{width:5px;height:5px;border-radius:50%;background:#8e74a2;animation:chatTyping 1.1s infinite ease-in-out}.chat-typing i:nth-child(2){animation-delay:.14s}.chat-typing i:nth-child(3){animation-delay:.28s}.chat-typing span{margin-left:5px}
.chat-composer{position:relative;z-index:10;padding:10px 13px 9px;border-top:1px solid rgba(77,57,91,.09);background:rgba(255,255,255,.82);backdrop-filter:blur(26px)}
.chat-compose-row{display:grid;grid-template-columns:auto minmax(0,1fr) 42px;align-items:end;gap:8px}.chat-compose-tools{display:flex;gap:4px;padding-bottom:5px}.chat-compose-tools>button,.chat-compose-tools>label{display:grid!important;place-items:center;width:31px!important;min-width:31px!important;height:31px!important;min-height:31px!important;margin:0!important;padding:0!important;border:0!important;border-radius:10px!important;background:#eee9f1!important;color:#6d5a77!important;box-shadow:none!important;cursor:pointer;font-size:16px!important}.chat-compose-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.chat-compose-tools input{display:none!important}.chat-composer textarea{box-sizing:border-box;width:100%;height:44px;min-height:44px!important;max-height:124px!important;margin:0!important;padding:11px 13px!important;border:1px solid rgba(83,62,97,.12)!important;border-radius:14px!important;background:#f6f3f7!important;box-shadow:none!important;resize:none!important;font:inherit;line-height:1.45;overflow-y:auto}.chat-composer textarea:focus{border-color:rgba(117,88,140,.36)!important;background:#fff!important;box-shadow:0 0 0 3px rgba(117,88,140,.09)!important}.chat-send{display:grid!important;place-items:center;width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;padding:0!important;border-radius:14px!important;background:linear-gradient(145deg,#80639a,#6b507e)!important;box-shadow:0 8px 18px rgba(86,59,105,.2)!important}.chat-send svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chat-send:hover{transform:translateY(-1px)}
.chat-compose-hint{display:flex;justify-content:space-between;gap:12px;margin:6px 3px 0;color:#aaa0ad;font-size:8px}.chat-compose-context{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 8px;padding:7px 9px;border-left:3px solid #806397;border-radius:8px;background:#f0ebf3}.chat-compose-context[hidden]{display:none}.chat-compose-context>span{min-width:0}.chat-compose-context b,.chat-compose-context small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-compose-context b{font-size:9px}.chat-compose-context small{margin-top:2px;color:#897d8e;font-size:8px}.chat-compose-context button{width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;padding:0!important;border:0!important;border-radius:8px!important;background:#e3dce7!important;color:#6b5d70!important;box-shadow:none!important}
.chat-file-preview{display:flex;gap:6px;margin:0 0 8px;padding:2px 1px;overflow-x:auto}.chat-file-preview[hidden]{display:none}.chat-file-preview>span{display:grid;grid-template-columns:auto minmax(70px,1fr) auto auto;align-items:center;gap:5px;min-width:190px;padding:6px 7px;border:1px solid rgba(84,62,99,.09);border-radius:10px;background:#f4f0f5;font-size:9px}.chat-file-preview b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-file-preview small{color:#9a8fa0;font-size:7px}.chat-file-preview button{width:22px!important;min-width:22px!important;height:22px!important;min-height:22px!important;padding:0!important;border:0!important;border-radius:7px!important;background:#e8e1eb!important;color:#6b5e70!important;box-shadow:none!important}
.chat-emoji-panel{position:absolute;z-index:24;bottom:77px;left:13px;display:grid;grid-template-columns:repeat(8,34px);gap:3px;padding:9px;border:1px solid rgba(78,57,92,.1);border-radius:16px;background:rgba(255,255,255,.98);box-shadow:0 20px 48px rgba(39,26,48,.2);animation:chatMenuIn .18s cubic-bezier(.2,.8,.25,1)}.chat-emoji-panel[hidden]{display:none}.chat-emoji-panel button{display:grid!important;place-items:center;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border:0!important;border-radius:9px!important;background:transparent!important;color:#403646!important;box-shadow:none!important;font-size:17px!important}.chat-emoji-panel button:hover{background:#eee8f2!important;transform:scale(1.06)}.chat-emoji-panel button:last-child,.chat-emoji-panel button:nth-last-child(2){font-size:11px!important}
.chat-lightbox{position:absolute;z-index:50;inset:0;display:grid;place-items:center;padding:60px 50px;background:rgba(24,18,29,.88);backdrop-filter:blur(18px);animation:chatFadeIn .2s ease}.chat-lightbox[hidden]{display:none}.chat-lightbox img{max-width:100%;max-height:100%;border-radius:15px;box-shadow:0 22px 70px rgba(0,0,0,.4);object-fit:contain}.chat-lightbox button{position:absolute;top:18px;right:18px;display:grid!important;place-items:center;width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;padding:0!important;border:0!important;border-radius:50%!important;background:rgba(255,255,255,.15)!important;color:#fff!important;box-shadow:none!important;font-size:22px!important}.chat-lightbox a{position:absolute;right:22px;bottom:20px;padding:9px 13px;border-radius:11px;background:#fff;color:#46394d;text-decoration:none;font-size:10px}
.chat-toast{position:absolute;z-index:60;left:50%;bottom:88px;max-width:min(420px,80%);padding:9px 13px;border-radius:11px;background:#3f3544;color:#fff;box-shadow:0 12px 34px rgba(35,24,42,.24);transform:translateX(-50%);font-size:10px;animation:chatToastIn .22s ease}.chat-toast[hidden]{display:none}.chat-toast.error{background:#b84355}
.chat-message-new{animation:chatMessageIn .28s cubic-bezier(.2,.82,.25,1)}.chat-highlight .chat-bubble{animation:chatHighlight 1.2s ease}
@keyframes chatMenuIn{from{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:none}}
@keyframes chatFadeIn{from{opacity:0}to{opacity:1}}
@keyframes chatToastIn{from{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes chatMessageIn{from{opacity:0;transform:translateY(6px) scale(.99)}to{opacity:1;transform:none}}
@keyframes chatTyping{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-3px);opacity:1}}
@keyframes chatHighlight{0%,100%{box-shadow:0 7px 20px rgba(48,33,58,.055)}35%{box-shadow:0 0 0 5px rgba(136,103,160,.2),0 8px 25px rgba(75,49,92,.16)}}
@media(max-width:820px){
  .appbody dialog.chat-dialog{inset:0!important;width:100vw!important;height:100dvh!important;margin:0!important;border:0!important;border-radius:0!important}
  .chat-shell{display:block;position:relative}
  .chat-sidebar,.chat-main{position:absolute;inset:0}
  .chat-main{display:none}
  .chat-dialog.has-selection .chat-sidebar{display:none}
  .chat-dialog.has-selection .chat-main{display:flex}
  .chat-sidebar-head{padding-top:max(18px,env(safe-area-inset-top))}
  .chat-back{display:grid!important}
  .chat-thread-head{padding-top:max(12px,env(safe-area-inset-top))}
  .chat-message-stack{max-width:86%}
  .chat-message-actions{position:static;grid-column:2;max-width:100%;margin-top:3px;overflow-x:auto;opacity:1;pointer-events:auto;transform:none!important;box-shadow:none;background:transparent;border:0;padding:0}
  .chat-message.mine .chat-message-actions{grid-column:2;justify-self:end}
  .chat-compose-row{grid-template-columns:auto minmax(0,1fr) 40px}
  .chat-compose-tools>button,.chat-compose-tools>label{width:29px!important;min-width:29px!important}
  .chat-emoji-panel{grid-template-columns:repeat(6,34px);bottom:82px;max-width:calc(100vw - 26px)}
}
@media(max-width:480px){
  .chat-thread-head{min-height:66px;padding-inline:10px}.chat-thread-head .chat-avatar{width:39px;height:39px;border-radius:13px}.chat-thread-tools{gap:3px}.chat-thread-tools button,.chat-back{width:33px!important;min-width:33px!important;height:33px!important;min-height:33px!important}
  .chat-messages{padding:14px 10px 18px}.chat-message{grid-template-columns:30px minmax(0,auto) minmax(0,1fr);gap:6px}.chat-message.mine{grid-template-columns:minmax(0,1fr) minmax(0,auto) 0}.chat-message-avatar{width:28px;height:28px;border-radius:10px}.chat-message-stack{max-width:91%}.chat-bubble{padding:9px 11px}
  .chat-composer{padding:8px 8px max(8px,env(safe-area-inset-bottom))}.chat-compose-row{gap:5px}.chat-compose-tools{gap:2px}.chat-compose-tools>button,.chat-compose-tools>label{width:27px!important;min-width:27px!important;height:29px!important;min-height:29px!important}.chat-send{width:39px!important;min-width:39px!important;height:39px!important;min-height:39px!important}.chat-composer textarea{min-height:41px!important;padding:10px 11px!important;font-size:13px}
  .chat-compose-hint span:first-child{display:none}.chat-compose-hint{justify-content:flex-end}.chat-thread-search{grid-template-columns:minmax(0,1fr) auto}.chat-thread-search button:last-child{grid-column:1/-1}
  .chat-lightbox{padding:55px 12px}.chat-attachment{min-width:190px}
}
@media(prefers-reduced-motion:reduce){
  .chat-dialog[open],.chat-message-new,.chat-thread-menu,.chat-emoji-panel,.chat-toast,.chat-lightbox{animation:none!important}
  .chat-person,.chat-close,.chat-image img,.chat-send{transition:none!important}
}

/* Messenger 3.1 — Apple-style interaction polish */
.chat-contact-search{isolation:isolate;display:grid!important;grid-template-columns:30px minmax(0,1fr);align-items:center;column-gap:2px;height:44px;margin:0 16px 12px;padding:0 7px;border:1px solid rgba(77,57,91,.09);border-radius:13px;background:#eeebf1;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.chat-contact-search svg{position:static!important;z-index:2;grid-column:1;width:16px!important;height:16px!important;transform:none!important;justify-self:center;pointer-events:none}
.chat-contact-search input{appearance:none;grid-column:2;min-width:0;width:100%;height:42px!important;min-height:42px!important;margin:0!important;padding:0 8px!important;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;line-height:42px!important;text-indent:0!important}
.chat-contact-search:focus-within{border-color:rgba(117,89,143,.34);background:rgba(255,255,255,.92);box-shadow:0 0 0 3px rgba(117,89,143,.09)}
.chat-contact-search input:focus{border:0!important;background:transparent!important;box-shadow:none!important}
.chat-thread-head{flex:0 0 auto}
.chat-thread-search{position:relative;z-index:11;grid-template-columns:minmax(0,1fr) auto auto;flex:0 0 auto;margin:16px 14px 0;padding:6px;border:1px solid rgba(82,61,96,.09);border-radius:15px;background:rgba(255,255,255,.86);box-shadow:0 8px 24px rgba(54,38,65,.07);backdrop-filter:blur(22px)}
.chat-thread-search label{position:relative;display:grid!important;grid-template-columns:30px minmax(0,1fr);align-items:center;column-gap:2px;min-width:0;height:42px;padding:0 7px;border:1px solid rgba(77,57,91,.08);border-radius:11px;background:#f0edf2;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.chat-thread-search label svg{position:static!important;z-index:2;grid-column:1;width:16px;height:16px;transform:none!important;justify-self:center;fill:none;stroke:#8b7f90;stroke-width:1.8;stroke-linecap:round;pointer-events:none}
.chat-thread-search input{appearance:none;grid-column:2;min-width:0;width:100%;height:40px!important;min-height:40px!important;margin:0!important;padding:0 8px!important;border:0!important;outline:0!important;border-radius:10px!important;background:transparent!important;box-shadow:none!important;line-height:40px!important;text-indent:0!important}
.chat-thread-search label:focus-within{border-color:rgba(117,89,143,.34);background:rgba(255,255,255,.92);box-shadow:0 0 0 3px rgba(117,89,143,.09)}
.chat-thread-search input:focus{border:0!important;background:transparent!important;box-shadow:none!important}
.chat-thread-search button{height:42px!important;min-height:42px!important;padding:0 13px!important;border:0!important;border-radius:11px!important;background:#eeeaef!important;color:#64576a!important;box-shadow:none!important}
.chat-thread-search button[type="submit"]{background:#79608d!important;color:#fff!important}
.chat-message{display:flex!important;grid-template-columns:none!important;align-items:flex-end;width:100%;gap:8px}
.chat-message.mine{flex-direction:row-reverse}
.chat-message-stack{flex:0 1 auto;max-width:min(680px,calc(100% - 92px))!important}
.chat-message.mine .chat-message-stack,.chat-message.theirs .chat-message-stack{grid-column:auto;justify-self:auto}
.chat-message-avatar,.chat-message-avatar-spacer{flex:0 0 34px}
.chat-message-avatar-spacer{width:34px}
.chat-message.compact .chat-message-avatar-spacer,.chat-message.compact .chat-message-avatar{height:0}
.chat-bubble>p{max-width:100%;white-space:pre-wrap;overflow-wrap:break-word;word-break:normal}
.chat-message-actions{position:relative!important;z-index:8;display:block!important;flex:0 0 30px;width:30px;height:30px;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;opacity:1!important}
.chat-message.mine .chat-message-actions{grid-column:auto;justify-self:auto;flex-direction:initial}
.chat-message-actions .chat-action-more{display:grid!important;place-items:center;width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;margin:0!important;padding:0!important;border:1px solid rgba(79,61,91,.08)!important;border-radius:50%!important;background:rgba(238,234,241,.88)!important;color:#74687a!important;box-shadow:0 4px 12px rgba(48,34,58,.07)!important;opacity:.82;overflow:hidden;transition:opacity .18s ease,background .18s ease!important}
.chat-message-actions .chat-action-more>svg{display:block;width:17px;height:17px;fill:currentColor;overflow:visible}
.chat-message:hover .chat-action-more,.chat-message.actions-open .chat-action-more,.chat-action-more:focus-visible{background:#fff!important;opacity:1;transform:none}
.chat-message:hover .chat-message-actions,.chat-message:focus-within .chat-message-actions,.chat-message.actions-open .chat-message-actions{padding:0;border:0;background:transparent;box-shadow:none}
.chat-message-actions button:not(.chat-action-more){display:flex!important}
.chat-message-menu{position:absolute;z-index:18;top:36px;display:grid;gap:1px;width:122px;padding:4px;border:1px solid rgba(72,53,85,.1);border-radius:13px;background:rgba(255,255,255,.96);box-shadow:0 14px 36px rgba(39,27,47,.18),0 2px 8px rgba(39,27,47,.06);backdrop-filter:blur(26px) saturate(1.2);animation:chatContextIn .18s cubic-bezier(.2,.82,.25,1)}
.chat-message-menu[hidden]{display:none!important}
.chat-message.theirs .chat-message-menu{left:37px;transform-origin:left center}
.chat-message.mine .chat-message-menu{right:37px;transform-origin:right center}
.chat-message.menu-up .chat-message-menu{top:auto;bottom:36px;transform-origin:center bottom}
.chat-message-menu button{display:flex!important;align-items:center;gap:7px;width:100%;height:29px!important;min-height:29px!important;padding:3px 8px!important;border:0!important;border-radius:8px!important;background:transparent!important;color:#514756!important;box-shadow:none!important;text-align:left;font-size:11px!important;line-height:1!important}
.chat-message .chat-message-menu button,.chat-message:hover .chat-message-menu button,.chat-message:focus-within .chat-message-menu button,.chat-message.actions-open .chat-message-menu button{display:flex!important}
.chat-message-menu button:hover,.chat-message-menu button:focus-visible{background:#f0ecf2!important}
.chat-message-menu button.danger{color:#c54154!important}
.chat-message-menu .chat-menu-icon{display:grid;place-items:center;flex:0 0 16px;width:16px;height:16px;color:#86768d}
.chat-message-menu .chat-menu-icon svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.chat-message-menu button.danger span{color:#c54154}
.chat-compose-row{grid-template-columns:auto minmax(0,1fr) 42px!important;align-items:center!important;gap:8px}
.chat-compose-tools{align-items:center;gap:5px;padding:0!important}
.chat-compose-tools>button,.chat-compose-tools>label,.chat-send{width:42px!important;min-width:42px!important;height:42px!important;min-height:42px!important;margin:0!important;border-radius:14px!important}
.chat-composer textarea{height:42px!important;min-height:42px!important;padding:10px 14px!important;line-height:20px!important}
.chat-send{align-self:center}
.chat-confirm{position:absolute;z-index:80;inset:0;display:grid;place-items:center;padding:24px;background:rgba(29,22,34,.26);backdrop-filter:blur(12px) saturate(.9);animation:chatFadeIn .18s ease}
.chat-confirm[hidden]{display:none!important}
.chat-confirm>section{width:min(340px,calc(100% - 24px));padding:22px;border:1px solid rgba(255,255,255,.75);border-radius:22px;background:rgba(251,249,252,.97);box-shadow:0 28px 80px rgba(31,21,38,.3);text-align:center;animation:chatConfirmIn .22s cubic-bezier(.2,.86,.25,1)}
.chat-confirm-icon{display:grid;place-items:center;width:42px;height:42px;margin:0 auto 11px;border-radius:14px;background:#f4e5e8;color:#bc4555;font:700 20px/1 -apple-system,BlinkMacSystemFont,sans-serif}
.chat-confirm h3{margin:0;color:#3f3644;font-size:17px;letter-spacing:-.25px}
.chat-confirm p{margin:8px 0 18px;color:#827687;font-size:11px;line-height:1.65}
.chat-confirm section>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.chat-confirm button{height:39px!important;min-height:39px!important;padding:0 12px!important;border:0!important;border-radius:12px!important;background:#ece8ee!important;color:#5e5363!important;box-shadow:none!important;font-size:11px!important}
.chat-confirm button.danger{background:#bd4556!important;color:#fff!important;box-shadow:0 8px 18px rgba(181,60,78,.2)!important}
@keyframes chatContextIn{from{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:none}}
@keyframes chatConfirmIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:820px){
  .chat-thread-search{grid-template-columns:minmax(0,1fr) auto;margin:10px 9px 0}
  .chat-thread-search button:last-child{grid-column:auto}
  .chat-message{display:flex!important}
  .chat-message-stack{max-width:calc(100% - 72px)!important}
  .chat-message-avatar,.chat-message-avatar-spacer{flex-basis:28px;width:28px}
  .chat-message-actions{position:relative!important;grid-column:auto!important;flex:0 0 30px;overflow:visible;margin:0}
  .chat-message.mine .chat-message-actions{grid-column:auto;justify-self:auto}
}
@media(max-width:560px){
  .chat-compose-row{grid-template-columns:auto minmax(0,1fr) 38px!important;gap:5px}
  .chat-compose-tools{gap:3px}
  .chat-compose-tools>button,.chat-compose-tools>label,.chat-send{width:38px!important;min-width:38px!important;height:38px!important;min-height:38px!important;border-radius:12px!important}
  .chat-composer textarea{height:38px!important;min-height:38px!important;padding:9px 11px!important}
  .chat-message-menu{width:126px}
}

/* Messenger 3.1.2 — final search geometry and motion layer (must stay last) */
.chat-contact-search{
  position:relative!important;
  isolation:isolate!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  box-sizing:border-box!important;
  width:auto!important;
  height:44px!important;
  min-height:44px!important;
  margin:0 16px 12px!important;
  padding:0 12px!important;
  border:1px solid rgba(77,57,91,.09)!important;
  border-radius:12px!important;
  background:#eeebf1!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.chat-contact-search>svg,
.chat-thread-search label>svg{
  position:static!important;
  display:block!important;
  flex:0 0 16px!important;
  width:16px!important;
  height:16px!important;
  margin:0!important;
  transform:none!important;
  fill:none!important;
  stroke:#887c8d!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  pointer-events:none!important;
}
.chat-contact-search input,
.chat-thread-search input{
  position:static!important;
  display:block!important;
  flex:1 1 auto!important;
  box-sizing:border-box!important;
  min-width:0!important;
  width:100%!important;
  height:42px!important;
  min-height:42px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  outline:0!important;
  appearance:none!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#514756!important;
  font:500 12px/42px -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif!important;
  text-indent:0!important;
}
.chat-contact-search:focus-within,
.chat-thread-search label:focus-within{
  border-color:rgba(77,57,91,.09)!important;
  background:#eeebf1!important;
  box-shadow:none!important;
}
.chat-contact-search input:focus,
.chat-thread-search input:focus{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.chat-contact-search input::placeholder,
.chat-thread-search input::placeholder{
  color:#887c8d!important;
  opacity:1!important;
}
.chat-thread-search{
  position:relative!important;
  z-index:11!important;
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  box-sizing:border-box!important;
  flex:0 0 auto!important;
  min-height:58px!important;
  margin:14px 14px 0!important;
  padding:6px!important;
  border:1px solid rgba(82,61,96,.09)!important;
  border-radius:15px!important;
  background:rgba(255,255,255,.9)!important;
  box-shadow:0 8px 24px rgba(54,38,65,.07)!important;
  backdrop-filter:blur(22px)!important;
  animation:chatSearchReveal .24s cubic-bezier(.2,.8,.25,1) both!important;
}
.chat-thread-search[hidden]{display:none!important}
.chat-thread-search label{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  box-sizing:border-box!important;
  flex:1 1 auto!important;
  min-width:0!important;
  width:auto!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid rgba(77,57,91,.09)!important;
  border-radius:11px!important;
  background:#eeebf1!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.chat-thread-search button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  width:auto!important;
  height:44px!important;
  min-height:44px!important;
  margin:0!important;
  padding:0 14px!important;
  border:0!important;
  border-radius:11px!important;
  line-height:1!important;
  transform:none!important;
}
.chat-thread-search button:hover{transform:translateY(-1px)!important}
.chat-dialog[open]{animation:chatDialogEnter .3s cubic-bezier(.18,.82,.24,1) both!important}
.chat-dialog[open] .chat-shell{animation:chatShellEnter .34s cubic-bezier(.18,.82,.24,1) both!important}
.chat-conversation:not([hidden]){animation:chatConversationEnter .24s ease-out both}
.chat-person{transition:transform .2s cubic-bezier(.2,.8,.25,1),background-color .2s ease,border-color .2s ease,box-shadow .2s ease!important}
.chat-message-new{animation:chatMessageFlow .32s cubic-bezier(.16,.84,.28,1) both!important}
.chat-message-menu{animation:chatMenuSpring .2s cubic-bezier(.16,.86,.28,1) both!important}
.chat-action-more,.chat-thread-tools button,.chat-compose-tools>button,.chat-compose-tools>label,.chat-send{
  transition:transform .18s cubic-bezier(.2,.8,.25,1),background-color .18s ease,color .18s ease,box-shadow .18s ease,opacity .18s ease!important;
}
.chat-action-more:active,.chat-thread-tools button:active,.chat-compose-tools>button:active,.chat-compose-tools>label:active,.chat-send:active{transform:scale(.94)!important}
@keyframes chatSearchReveal{from{opacity:0;transform:translateY(-7px) scale(.99)}to{opacity:1;transform:none}}
@keyframes chatDialogEnter{from{opacity:0}to{opacity:1}}
@keyframes chatShellEnter{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@keyframes chatConversationEnter{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
@keyframes chatMessageFlow{from{opacity:0;transform:translateY(7px) scale(.992)}to{opacity:1;transform:none}}
@keyframes chatMenuSpring{from{opacity:0;transform:translateY(-5px) scale(.955)}to{opacity:1;transform:none}}
@media(max-width:560px){
  .chat-thread-search{flex-wrap:wrap!important;margin:10px 9px 0!important}
  .chat-thread-search label{flex:1 0 100%!important}
  .chat-thread-search button{flex:1 1 calc(50% - 4px)!important}
}
@media(prefers-reduced-motion:reduce){
  .chat-dialog[open],.chat-dialog[open] .chat-shell,.chat-conversation:not([hidden]),.chat-thread-search,.chat-message-new,.chat-message-menu{animation:none!important}
}
.chat-contact-search::before,.chat-contact-search::after,
.chat-thread-search label::before,.chat-thread-search label::after{content:none!important;display:none!important}
.chat-contact-search input,
.chat-thread-search input{
  -webkit-appearance:none!important;
  background-image:none!important;
}
.chat-contact-search input::-webkit-search-decoration,
.chat-contact-search input::-webkit-search-cancel-button,
.chat-contact-search input::-webkit-search-results-button,
.chat-contact-search input::-webkit-search-results-decoration,
.chat-thread-search input::-webkit-search-decoration,
.chat-thread-search input::-webkit-search-cancel-button,
.chat-thread-search input::-webkit-search-results-button,
.chat-thread-search input::-webkit-search-results-decoration{
  display:none!important;
  -webkit-appearance:none!important;
}

/* Personal profile center */
.useridentity{display:flex!important;align-items:center!important;gap:9px!important;padding:3px 7px 3px 4px!important}
.useridentity-copy{display:grid;min-width:0;text-align:left}.useridentity-copy b,.useridentity-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.user-mini-avatar,.user-popover-avatar,.profile-avatar-preview{display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,#8b70a6,#6b537f);color:#fff;font-weight:780;box-shadow:0 7px 18px rgba(70,48,87,.2)}
.user-mini-avatar{width:30px;height:30px;flex:0 0 30px;border-radius:10px;font-size:12px}.user-popover-avatar{width:46px;height:46px;flex:0 0 46px;border-radius:15px;font-size:17px}.user-mini-avatar img,.user-popover-avatar img,.profile-avatar-preview img,.chat-avatar img,.people-avatar img,.presenceavatar img{display:block;width:100%;height:100%;object-fit:cover}
.userpopover{width:238px!important;padding:10px!important;border-radius:19px!important}.userpopover-profile{display:flex;align-items:center;gap:11px;padding:5px 5px 10px}.userpopover-profile>div{min-width:0}.userpopover-profile strong,.userpopover-profile small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.userprofilebutton{display:grid!important;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%!important;min-height:54px!important;margin:0!important;padding:7px 9px!important;border:0!important;border-radius:13px!important;background:#f2eef5!important;color:#584861!important;box-shadow:none!important;text-align:left}
.userprofilebutton:hover{background:#ebe4f0!important}.userprofilebutton>svg{width:19px;height:19px;justify-self:center;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round}.userprofilebutton>span{display:grid;gap:2px}.userprofilebutton b{font-size:12px}.userprofilebutton small{margin:0!important;font-size:9px!important}.userprofilebutton>i{font-size:20px;font-style:normal;color:#9a8da0}.userpopover form{margin-top:7px!important}
.profile-center-dialog{box-sizing:border-box;width:min(900px,calc(100vw - 36px));max-height:min(720px,calc(100dvh - 40px));margin:auto;padding:0;border:1px solid rgba(255,255,255,.82);border-radius:27px;background:rgba(250,248,252,.98);box-shadow:0 38px 120px rgba(28,19,36,.34);overflow:hidden;color:#322a38}
.profile-center-dialog::backdrop{background:rgba(28,21,34,.38)!important;backdrop-filter:blur(12px) saturate(.9)}
.profile-center-dialog[open]{animation:profileDialogIn .28s cubic-bezier(.18,.84,.24,1)}
.profile-center-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:24px 26px 19px;border-bottom:1px solid rgba(72,54,84,.08);background:rgba(255,255,255,.7)}.profile-center-head h2{margin:4px 0 3px;font-size:22px;letter-spacing:-.04em}.profile-center-head p{margin:0;color:#847989;font-size:11px}
.profile-center-body{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,.8fr);gap:14px;padding:16px;overflow:auto;overscroll-behavior:contain}
.profile-identity-card,.profile-security-card{border:1px solid rgba(76,57,90,.08);border-radius:21px;background:rgba(255,255,255,.78);box-shadow:0 12px 34px rgba(51,36,63,.055)}
.profile-identity-card{padding:20px}.profile-security-card{align-self:start;padding:20px}
.profile-avatar-editor{display:flex;align-items:center;gap:15px}.profile-avatar-preview{width:78px;height:78px;flex:0 0 78px;border-radius:24px;font-size:27px}.profile-avatar-upload{display:grid!important;align-content:center;min-height:58px;padding:9px 13px!important;border:1px dashed rgba(105,78,128,.25);border-radius:14px;background:#f5f1f7;cursor:pointer}.profile-avatar-upload input{display:none!important}.profile-avatar-upload span{color:#5c456c;font-size:12px;font-weight:740}.profile-avatar-upload small{margin-top:4px;color:#988d9c;font-size:9px;font-weight:500}
.profile-title{display:grid;gap:3px;margin:14px 0 16px}.profile-title strong{font-size:19px;letter-spacing:-.03em}.profile-title span{color:#8d8291;font-size:10px}
.profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.profile-form-grid label,.profile-security-card label{display:grid;gap:6px;margin:0!important}.profile-form-grid .span2{grid-column:1/-1}.profile-form-grid input,.profile-form-grid textarea,.profile-security-card input{box-sizing:border-box;width:100%;margin:0!important}.profile-form-grid textarea{min-height:82px!important;resize:vertical}.profile-save{width:100%;height:43px!important;margin-top:13px!important}
.profile-security-icon{display:grid;place-items:center;width:45px;height:45px;border-radius:15px;background:linear-gradient(145deg,#ede6f2,#e3d8ea);color:#765b89}.profile-security-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.profile-security-card h3{margin:14px 0 5px;font-size:16px}.profile-security-card>p{margin:0 0 15px;color:#887d8d;font-size:10px;line-height:1.6}.profile-security-card form{display:grid;gap:11px}.profile-security-card form button{height:42px!important;margin-top:2px!important}
.chat-avatar,.people-avatar,.presenceavatar{overflow:visible}.chat-avatar img,.people-avatar img,.presenceavatar img{border-radius:inherit}.chat-avatar>img~i,.people-avatar>img~i{z-index:2}
@keyframes profileDialogIn{from{opacity:0;transform:translateY(13px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:720px){
  .profile-center-dialog{width:calc(100vw - 18px);max-height:calc(100dvh - 18px);border-radius:22px}
  .profile-center-head{padding:19px 18px 15px}.profile-center-body{grid-template-columns:1fr;padding:10px}.profile-form-grid{grid-template-columns:1fr}.profile-form-grid .span2{grid-column:auto}.profile-avatar-preview{width:68px;height:68px;flex-basis:68px;border-radius:21px}.profile-security-card{align-self:stretch}
}
@media(prefers-reduced-motion:reduce){.profile-center-dialog[open]{animation:none}}
.appbody dialog.profile-center-dialog[open]{display:flex!important;flex-direction:column!important;width:min(900px,calc(100vw - 32px))!important;height:min(700px,calc(100dvh - 24px))!important;min-height:0!important;max-height:min(700px,calc(100dvh - 24px))!important}
.appbody dialog.profile-center-dialog .profile-center-head{flex:0 0 auto!important}
.appbody dialog.profile-center-dialog .profile-center-body{flex:1 1 auto!important;min-height:0!important}
.appbody dialog.profile-center-dialog .profile-avatar-preview{width:54px!important;height:54px!important;flex-basis:54px!important;border-radius:17px!important;font-size:19px!important}
.appbody dialog.profile-center-dialog .profile-avatar-upload{min-height:42px!important}
.appbody dialog.profile-center-dialog .profile-title{margin:6px 0 8px!important}.appbody dialog.profile-center-dialog .profile-title strong{font-size:15px!important}.appbody dialog.profile-center-dialog .profile-title span{font-size:9px!important}
.appbody dialog.profile-center-dialog .profile-form-grid{gap:6px 9px!important}.appbody dialog.profile-center-dialog .profile-form-grid input,.appbody dialog.profile-center-dialog .profile-security-card input{height:36px!important;min-height:36px!important;padding:5px 10px!important}.appbody dialog.profile-center-dialog .profile-form-grid textarea{height:48px!important;min-height:48px!important}
.appbody dialog.profile-center-dialog .profile-save{height:36px!important;margin-top:7px!important}
.appbody dialog.profile-center-dialog .profile-identity-card form{position:relative!important}
.appbody dialog.profile-center-dialog .profile-save{position:absolute!important;top:61px!important;right:0!important;width:112px!important;margin:0!important}
.appbody dialog.profile-center-dialog .profile-title{padding-right:124px!important}

/* Profile center 2.1 — equal columns and complete desktop layout */
.appbody dialog.profile-center-dialog[open]{
  width:min(920px,calc(100vw - 32px))!important;
  height:min(650px,calc(100dvh - 24px))!important;
  max-height:min(650px,calc(100dvh - 24px))!important;
}
.appbody dialog.profile-center-dialog .profile-center-body{
  display:grid!important;
  grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr)!important;
  grid-template-rows:minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:12px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
.appbody dialog.profile-center-dialog .profile-identity-card,
.appbody dialog.profile-center-dialog .profile-security-card{
  align-self:stretch!important;
  box-sizing:border-box!important;
  min-height:0!important;
  height:100%!important;
  margin:0!important;
  overflow:hidden!important;
}
.appbody dialog.profile-center-dialog .profile-identity-card form{
  display:flex!important;
  flex-direction:column!important;
  box-sizing:border-box!important;
  height:100%!important;
  min-height:0!important;
}
.appbody dialog.profile-center-dialog .profile-avatar-editor{flex:0 0 auto!important}
.appbody dialog.profile-center-dialog .profile-title{flex:0 0 auto!important}
.appbody dialog.profile-center-dialog .profile-form-grid{flex:1 1 auto!important;align-content:start!important;min-height:0!important}
.appbody dialog.profile-center-dialog .profile-save{
  position:static!important;
  top:auto!important;
  right:auto!important;
  width:100%!important;
  margin-top:auto!important;
}
.appbody dialog.profile-center-dialog .profile-title{padding-right:0!important}
.appbody dialog.profile-center-dialog .profile-form-grid{flex:0 0 auto!important}
.appbody dialog.profile-center-dialog .profile-security-card{
  display:flex!important;
  flex-direction:column!important;
}
.appbody dialog.profile-center-dialog .profile-security-card form{
  display:flex!important;
  flex-direction:column!important;
  align-content:start!important;
  flex:1 1 auto!important;
}
.appbody dialog.profile-center-dialog .profile-security-card form button{
  align-self:end!important;
  width:100%!important;
  margin-top:auto!important;
}
@media(max-width:720px){
  .appbody dialog.profile-center-dialog[open]{
    width:calc(100vw - 14px)!important;
    height:calc(100dvh - 14px)!important;
    max-height:calc(100dvh - 14px)!important;
  }
  .appbody dialog.profile-center-dialog .profile-center-body{
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    overflow-y:auto!important;
  }
  .appbody dialog.profile-center-dialog .profile-identity-card,
  .appbody dialog.profile-center-dialog .profile-security-card{height:auto!important;overflow:visible!important}
}
.profile-center-head{padding:18px 22px 14px!important}.profile-center-body{gap:12px!important;padding:12px!important}
.profile-identity-card,.profile-security-card{padding:16px!important}.profile-avatar-preview{width:66px;height:66px;flex-basis:66px;border-radius:20px;font-size:23px}.profile-avatar-upload{min-height:50px!important;padding:7px 11px!important}
.profile-title{margin:10px 0 12px!important}.profile-title strong{font-size:17px}.profile-form-grid{gap:8px 10px!important}.profile-form-grid label,.profile-security-card label{gap:4px!important}.profile-form-grid input,.profile-security-card input{height:40px!important;min-height:40px!important;padding:7px 11px!important}.profile-form-grid textarea{height:58px!important;min-height:58px!important;padding:8px 11px!important;resize:none!important}.profile-save{height:40px!important;margin-top:9px!important}
.profile-security-card h3{margin:10px 0 4px!important}.profile-security-card>p{margin-bottom:11px!important}.profile-security-card form{gap:8px!important}.profile-security-card form button{height:40px!important}

/* Messenger avatar rendering isolation */
.chat-dialog .chat-avatar{position:relative!important;isolation:isolate!important;box-sizing:border-box!important;padding:0!important;overflow:visible!important}
.chat-dialog .chat-avatar-fallback{position:absolute!important;z-index:0!important;inset:0!important;display:grid!important;place-items:center!important;border-radius:inherit!important;overflow:hidden!important;background:linear-gradient(145deg,#8b70a6,#6b537f)!important;color:#fff!important;font-weight:800!important;line-height:1!important}
.chat-dialog .chat-avatar>img{position:absolute!important;z-index:1!important;inset:0!important;display:block!important;box-sizing:border-box!important;width:100%!important;min-width:100%!important;max-width:none!important;height:100%!important;min-height:100%!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:inherit!important;background:#ece7f0!important;object-fit:cover!important;object-position:center!important;transform:none!important}
.chat-dialog .chat-avatar>i{z-index:3!important}
.chat-dialog .chat-message-avatar{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important;flex:0 0 32px!important;border-radius:11px!important}
.chat-dialog .chat-message.compact .chat-message-avatar{width:32px!important;min-width:32px!important;height:32px!important;min-height:32px!important}
.chat-dialog .chat-message{align-items:flex-end!important}
.chat-dialog .chat-message-avatar{align-self:flex-start!important}
.chat-dialog .chat-bubble{box-sizing:border-box!important;min-height:32px!important}

/* 5.4 unified Apple-inspired interface and query workspaces */
:root{
  --ui-font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","PingFang SC","Hiragino Sans GB","Microsoft YaHei UI",sans-serif;
  --ui-ink:#201b27;
  --ui-muted:#746d7c;
  --ui-accent:#69507e;
  --ui-accent-dark:#3c2d49;
  --ui-accent-soft:#eee9f3;
  --ui-line:rgba(57,43,69,.105);
  --ui-surface:rgba(255,255,255,.86);
  --ui-shadow:0 18px 55px rgba(42,31,53,.085),0 2px 8px rgba(42,31,53,.035);
}
html{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body{font-feature-settings:"kern" 1,"liga" 1,"calt" 1;font-variant-numeric:tabular-nums}
h1,h2,h3,h4,.metric strong,.adminmetrics strong{letter-spacing:-.035em;text-wrap:balance}
p,.muted,.paneltitle p{letter-spacing:-.006em;text-wrap:pretty}
.appbody main{width:min(1440px,100%);max-width:1440px;padding:30px clamp(18px,2.4vw,34px) 88px}
.pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:20px;padding:0 2px}
.pagehead h1{font-size:clamp(25px,2vw,31px)!important;font-weight:720!important}
.pagehead p{margin:0 0 3px;padding:6px 10px;border:1px solid rgba(80,61,95,.07);border-radius:999px;background:rgba(255,255,255,.44);backdrop-filter:blur(12px)}
.panel{padding:clamp(19px,2vw,25px)}
.paneltitle{align-items:flex-start;gap:18px;margin-bottom:18px}
.paneltitle h2,.panel>h2{font-size:clamp(17px,1.6vw,20px);font-weight:720}
.paneltitle p{max-width:720px;line-height:1.55}
button,.primary,.secondary,a.primary,a.secondary{min-height:44px;border-radius:12px!important;line-height:1.15}
button,.primary,.secondary{letter-spacing:-.008em}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(109,81,133,.18)!important;outline-offset:2px}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]),select,textarea{border-color:rgba(67,51,80,.11)!important;background:rgba(255,255,255,.9)!important;color:#2d2634!important;box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):hover,select:hover,textarea:hover{border-color:rgba(91,65,112,.22)!important}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):focus,select:focus,textarea:focus{border-color:rgba(100,72,124,.4)!important;box-shadow:0 0 0 4px rgba(106,79,130,.08)!important}
.tablewrap{border:1px solid rgba(64,48,76,.09)!important;border-radius:17px!important;background:rgba(255,255,255,.68)!important;box-shadow:0 8px 28px rgba(45,32,56,.045)}
table{font-size:13px}th{height:43px!important;padding:10px 13px!important;background:rgba(238,234,242,.88)!important;color:#6c6372!important;font-size:11px!important;letter-spacing:.035em!important}td{height:49px;padding:11px 13px!important}
tbody tr:nth-child(even){background:rgba(90,65,109,.018)}tbody tr:hover{background:rgba(101,73,124,.055)!important}
.advancedfilters,.ledgerqueryfilters,.businessadvancedfilters,.businessqueryfilters,.people-filters{
  position:relative;display:grid!important;gap:13px!important;margin:18px 0 20px!important;padding:18px!important;
  border:1px solid rgba(75,56,90,.095)!important;border-radius:19px!important;
  background:linear-gradient(145deg,rgba(249,247,251,.94),rgba(241,237,245,.82))!important;
  box-shadow:0 12px 34px rgba(48,34,60,.05),0 1px 0 #fff inset!important;
}
.advancedfilters label,.ledgerqueryfilters label,.businessadvancedfilters label,.businessqueryfilters label,.people-filters label{
  display:grid!important;align-content:end;gap:6px!important;min-width:0;margin:0!important;color:#6d6474;font-size:11px!important;font-weight:680!important;letter-spacing:.015em;
}
.advancedfilters input,.advancedfilters select,.ledgerqueryfilters input,.ledgerqueryfilters select,.businessadvancedfilters input,.businessadvancedfilters select,.businessqueryfilters input,.businessqueryfilters select,.people-filters input,.people-filters select{
  width:100%!important;height:44px!important;min-height:44px!important;margin:0!important;padding:0 13px!important;border-radius:12px!important;font-size:13px!important;font-weight:520!important;letter-spacing:-.008em!important;
}
.advancedfilters .filterrow,.ledgerqueryfilters .filterrow,.businessadvancedfilters .filterrow{display:grid!important;gap:11px!important;align-items:end!important;margin:0!important}
.advancedfilters .filterrow{grid-template-columns:repeat(4,minmax(0,1fr))}
.businessadvancedfilters .businessamountfilters{grid-column:1/-1!important;grid-template-columns:repeat(2,minmax(180px,1fr))!important;max-width:none!important}
.filteractions,.queryactionbar{display:flex!important;grid-column:1/-1!important;align-items:center!important;justify-content:flex-end!important;gap:9px!important;min-height:58px;margin:2px 0 -3px!important;padding:13px 0 0!important;border-top:1px solid rgba(73,54,87,.085)!important}
.filteractions button,.filteractions a,.queryactionbar button,.queryactionbar a{display:inline-grid!important;place-items:center;min-width:126px;min-height:44px!important;margin:0!important;padding:10px 17px!important}
.queryactionbar .querysubmit{min-width:178px!important;min-height:46px!important}
.filtertotals{margin:0 0 18px!important}.filtertotals .metric{min-height:108px!important}
.business-records-workspace{overflow:visible}.business-records-heading{padding-bottom:4px}
.business-records-heading .buttonrow{align-items:center}
.businessqueryprompt{padding:45px 22px;border-style:solid;background:linear-gradient(145deg,rgba(248,245,250,.76),rgba(255,255,255,.5))}

.databasehero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:16px;padding:28px 30px;border:1px solid rgba(255,255,255,.55);border-radius:24px;background:radial-gradient(circle at 90% 10%,rgba(143,119,164,.28),transparent 42%),linear-gradient(135deg,#3d3049,#5e486e);color:#fff;box-shadow:0 22px 58px rgba(46,32,58,.2)}
.databasehero h2{margin:5px 0;font-size:clamp(22px,2.3vw,31px);font-weight:720}.databasehero p{max-width:720px;margin:0;color:rgba(255,255,255,.68)}
.databaseherostate{display:grid;grid-template-columns:12px auto;align-items:center;gap:2px 9px;min-width:160px;padding:14px 16px;border:1px solid rgba(255,255,255,.13);border-radius:16px;background:rgba(255,255,255,.09);backdrop-filter:blur(18px)}
.databaseherostate i,.databaseoverview i{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:#e57984;box-shadow:0 0 0 5px rgba(229,121,132,.12)}.databaseherostate i.good,.databaseoverview i.good{background:#66d39a;box-shadow:0 0 0 5px rgba(102,211,154,.13)}
.databaseherostate span{font-size:10px;color:rgba(255,255,255,.62);letter-spacing:.08em}.databaseherostate strong{font-size:14px}
.databasemetrics{grid-template-columns:repeat(4,minmax(0,1fr))!important}.databasemetrics .good{color:#276d4b}
.databaseoverview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}.databaseoverview article{display:grid;grid-template-columns:10px 1fr;align-items:center;gap:2px 10px;padding:13px 15px;border:1px solid rgba(72,53,86,.08);border-radius:15px;background:rgba(255,255,255,.6)}.databaseoverview span{font-size:11px;color:var(--ui-muted)}.databaseoverview strong{font-size:13px}.databaseoverview i{grid-row:1/3}
.databaseworkspace{display:grid;grid-template-columns:minmax(360px,.82fr) minmax(520px,1.18fr);gap:16px;align-items:start}
.databasecontrolpanel,.backupmanagementpanel{margin:0!important}.databaseactions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important}.databaseactions form{display:grid;align-content:start;gap:5px;padding:12px;border:1px solid rgba(75,55,90,.08);border-radius:15px;background:rgba(247,244,249,.82)}.databaseactions form button{width:100%}.databaseactions small{color:var(--ui-muted);font-size:11px;line-height:1.4}
.backupcount{display:grid;place-items:center;min-width:36px;height:36px;border-radius:12px;background:var(--ui-accent-soft);color:var(--ui-accent);font-weight:750}
.backuplist{display:grid!important;gap:9px!important;margin:0!important;padding:0!important}.backuplist>li.backupset{display:grid!important;grid-template-columns:minmax(180px,1fr) auto;gap:10px 14px;align-items:center;padding:13px 14px!important;border:1px solid rgba(74,55,88,.08)!important;border-radius:15px!important;background:rgba(249,247,250,.86)!important}
.backupsetidentity{display:grid;gap:3px;min-width:0}.backupsetidentity span{overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700}.backupsetidentity small{color:var(--ui-muted);font-size:10px}
.backupcoverage{display:flex;grid-column:1/-1;gap:5px;flex-wrap:wrap}.backupcoverage span{padding:4px 7px;border-radius:7px;background:#eee9ed;color:#958994;font-size:9px;font-weight:700}.backupcoverage span.ready{background:#e3f1e9;color:#347052}
.backupactions{display:flex!important;grid-column:1/-1;justify-content:flex-end;gap:6px!important;flex-wrap:wrap}.backupactions form{margin:0}.backupactions .tiny{min-height:34px!important;padding:6px 10px!important}
.restoreupload{margin-top:16px;padding-top:16px;border-top:1px solid var(--ui-line)}.restoreupload label{display:grid;gap:6px}
.system-action-confirm{width:min(430px,calc(100vw - 24px))!important;padding:20px!important}.system-action-confirm .modalhead{margin:0 0 16px!important;padding:0 0 14px!important}.system-action-confirm .modalactions{margin:0!important;padding:0!important}

@media(max-width:1050px){
  .databaseworkspace{grid-template-columns:1fr}.databasemetrics,.databaseoverview{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
  .pagehead{display:block}.pagehead p{display:inline-flex;margin-top:7px}
  .advancedfilters .filterrow,.ledgerqueryfilters .filterrow-primary,.ledgerqueryfilters .filterrow-secondary,.businessadvancedfilters .filterrow-primary,.businessadvancedfilters .filterrow-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .filteractions,.queryactionbar{justify-content:stretch!important}.filteractions>* ,.queryactionbar>*{flex:1;min-width:0!important}
  .databasehero{align-items:flex-start;flex-direction:column;padding:22px}.databaseherostate{width:100%}.databaseactions{grid-template-columns:1fr}
}
@media(max-width:520px){
  .advancedfilters .filterrow,.ledgerqueryfilters .filterrow-primary,.ledgerqueryfilters .filterrow-secondary,.businessadvancedfilters .filterrow-primary,.businessadvancedfilters .filterrow-secondary,.businessadvancedfilters .businessamountfilters{grid-template-columns:1fr!important}
  .databasemetrics,.databaseoverview{grid-template-columns:1fr!important}.backuplist>li.backupset{grid-template-columns:1fr}.backupactions{justify-content:stretch}.backupactions>*{flex:1}.backupactions .tiny{width:100%}
}

/* 5.4.1 database card alignment and mobile system layout */
@media(min-width:1051px){
  .databaseworkspace{align-items:stretch!important}
  .databasecontrolpanel,.backupmanagementpanel{
    box-sizing:border-box!important;
    height:clamp(560px,66dvh,720px)!important;
    min-height:560px!important;
    max-height:720px!important;
  }
  .databasecontrolpanel{overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
  .backupmanagementpanel{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
  .backupmanagementpanel>.paneltitle{flex:0 0 auto}
  .backupmanagementpanel>.backuplist{flex:1 1 auto;min-height:0;overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:5px!important}
}
.databasecontrolpanel,.backupmanagementpanel{align-self:stretch}
.backuplist{scrollbar-width:thin;scrollbar-color:rgba(103,78,123,.28) transparent}
.backuplist::-webkit-scrollbar,.databasecontrolpanel::-webkit-scrollbar{width:7px}
.backuplist::-webkit-scrollbar-thumb,.databasecontrolpanel::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:99px;background:rgba(103,78,123,.28);background-clip:padding-box}
.backuplist::-webkit-scrollbar-track,.databasecontrolpanel::-webkit-scrollbar-track{background:transparent}

@media(max-width:1050px){
  .databaseworkspace{align-items:start!important}
  .databasecontrolpanel,.backupmanagementpanel{width:100%;height:auto!important;min-height:0!important;max-height:none!important}
  .backupmanagementpanel{display:flex!important;flex-direction:column!important;overflow:hidden!important}
  .backupmanagementpanel>.backuplist{max-height:min(520px,58dvh);overflow-y:auto!important;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:4px!important}
}

@media(max-width:700px){
  html,body{width:100%;max-width:100%;overflow-x:hidden}
  body.appbody{background-attachment:scroll!important}
  .appbody header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    align-items:center!important;
    gap:7px 8px!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:max(8px,env(safe-area-inset-top)) 10px 8px!important;
    border-radius:0!important;
  }
  .appbody header .brand{min-width:0;gap:8px}
  .appbody header .brandlogo{width:34px!important;min-width:34px!important;height:34px!important;flex-basis:34px!important}
  .appbody header .brand>div{min-width:0}
  .appbody header .brand b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px!important}
  .appbody header .user{grid-column:2;grid-row:1;max-width:none!important;overflow:visible!important}
  .appbody header .useridentity-copy{display:none!important}
  .appbody header .useridentity{width:38px!important;min-width:38px!important;height:38px!important;padding:0!important;border-radius:12px!important}
  .appbody header .user-mini-avatar{width:34px!important;height:34px!important;flex-basis:34px!important}
  .appbody header .messagebutton{width:38px!important;min-width:38px!important;height:38px!important;margin:0!important}
  .appbody header nav{
    grid-column:1/-1!important;
    grid-row:2!important;
    display:flex!important;
    width:calc(100% + 20px)!important;
    max-width:none!important;
    margin:0 -10px -8px!important;
    padding:5px 9px 8px!important;
    gap:5px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .appbody header nav::-webkit-scrollbar{display:none}
  .appbody header nav a{flex:0 0 auto;min-height:36px!important;padding:8px 11px!important;border-radius:10px!important;scroll-snap-align:start;white-space:nowrap}
  .appbody main{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding:15px 10px calc(72px + env(safe-area-inset-bottom))!important;overflow:visible!important}
  .pagehead{display:block!important;margin:0 2px 13px!important;padding:0!important}
  .pagehead h1{margin:0!important;font-size:22px!important;line-height:1.22!important}
  .pagehead p{display:inline-flex!important;margin:7px 0 0!important;padding:4px 8px!important;font-size:9px!important}
  .adminnav,.superadmintabs,.accessrolefilters{
    display:flex!important;width:100%!important;max-width:100%!important;margin:0 0 13px!important;padding:5px!important;gap:5px!important;
    overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none;scroll-snap-type:x proximity;white-space:nowrap;
  }
  .adminnav::-webkit-scrollbar,.superadmintabs::-webkit-scrollbar,.accessrolefilters::-webkit-scrollbar{display:none}
  .adminnav a,.superadmintabs a,.accessrolefilters a{flex:0 0 auto!important;min-height:38px!important;padding:8px 11px!important;scroll-snap-align:start}
  .superadmintabs a{min-width:140px!important;min-height:62px!important;padding:10px 12px!important;white-space:normal}
  .panel,.glasscard,.commoninfocard{box-sizing:border-box!important;width:100%;max-width:100%;margin-left:0!important;margin-right:0!important;padding:14px!important;border-radius:18px!important}
  .paneltitle{align-items:flex-start!important;flex-direction:column!important;gap:10px!important;margin-bottom:13px!important}
  .paneltitle>div{width:100%;min-width:0}
  .paneltitle>.buttonrow,.paneltitle>.primary,.paneltitle>.secondary{width:100%!important}
  .paneltitle>.buttonrow{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .paneltitle>.buttonrow>*{width:100%!important;min-width:0!important;text-align:center}
  .metrics,.metrics-five,.adminmetrics,.periodmetrics,.perioddetailmetrics,.filtertotals,.supermetrics,.databasemetrics{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;
  }
  .metric,.adminmetrics article{min-width:0!important;min-height:92px!important;padding:13px!important;border-radius:16px!important}
  .metric strong,.adminmetrics strong{overflow-wrap:anywhere;font-size:19px!important}
  .advancedfilters,.ledgerqueryfilters,.businessadvancedfilters,.businessqueryfilters,.people-filters,.periodcompletedfilters{
    box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:12px 0 15px!important;padding:12px!important;gap:10px!important;border-radius:16px!important;
  }
  .advancedfilters .filterrow,.ledgerqueryfilters .filterrow,.businessadvancedfilters .filterrow,.businessqueryfilters,.people-filters,.periodcompletedfilters{
    grid-template-columns:1fr!important;
  }
  .advancedfilters input,.advancedfilters select,.ledgerqueryfilters input,.ledgerqueryfilters select,.businessadvancedfilters input,.businessadvancedfilters select,.businessqueryfilters input,.businessqueryfilters select,.people-filters input,.people-filters select{
    height:46px!important;min-height:46px!important;font-size:16px!important;
  }
  .filteractions,.queryactionbar{
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;min-height:0!important;margin:2px 0 0!important;padding-top:11px!important;gap:7px!important;
  }
  .filteractions>*,.queryactionbar>*{width:100%!important;min-width:0!important;min-height:44px!important}
  .tablewrap{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin:0!important;padding-bottom:5px!important;border-radius:14px!important;overflow-x:auto!important;overflow-y:hidden!important}
  .tablewrap table{width:max-content!important;min-width:100%!important}
  .tablewrap th,.tablewrap td{min-width:98px;padding:10px!important;white-space:nowrap}
  .tablewrap th:first-child,.tablewrap td:first-child{min-width:100px}
  .rowactions{gap:5px!important}.rowactions .tiny{min-height:36px!important;padding:6px 9px!important}
  .periodhero,.homewelcome,.businesshero,.people-hero,.databasehero{box-sizing:border-box!important;width:100%;padding:18px!important;border-radius:20px!important}
  .periodhero,.businesshero,.people-hero{align-items:flex-start!important;flex-direction:column!important}
  .perioddashboardactions,.people-hero-actions,.businesshero .buttonrow{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%!important;gap:7px!important}
  .perioddashboardactions>*,.people-hero-actions>*,.businesshero .buttonrow>*{width:100%!important;min-width:0!important;text-align:center}
  .business-records-heading{align-items:stretch!important}
  .business-records-workspace{padding:14px!important}
  .businessadvancedfilters .businessamountfilters{grid-template-columns:1fr!important}
  .databasehero{gap:16px!important}.databasehero h2{font-size:23px!important}.databasehero p{font-size:12px}
  .databaseoverview{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .databaseoverview article{min-width:0;padding:11px 12px}
  .databaseworkspace{grid-template-columns:1fr!important;gap:12px!important}
  .databaseactions{grid-template-columns:1fr!important}
  .backupmanagementpanel>.backuplist{max-height:min(460px,55dvh)!important;padding-right:3px!important}
  .backuplist>li.backupset{grid-template-columns:1fr!important;padding:12px!important}
  .backupsetidentity span{white-space:normal;overflow-wrap:anywhere}
  .backupactions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch!important}
  .backupactions>*,.backupactions form,.backupactions .tiny{width:100%!important;min-width:0!important}
  dialog:not(.chat-dialog):not(.messagedialog){
    box-sizing:border-box!important;width:calc(100vw - 12px)!important;max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 14px)!important;margin:auto!important;border-radius:20px!important;
  }
  dialog .modalhead{align-items:flex-start!important;padding:17px 17px 13px!important}
  dialog .modalactions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  dialog .modalactions>*{width:100%!important;min-width:0!important}
  .userpopover{position:fixed!important;top:64px!important;right:8px!important;width:min(290px,calc(100vw - 16px))!important}
}

@media(max-width:390px){
  .appbody main{padding-left:8px!important;padding-right:8px!important}
  .metrics,.metrics-five,.adminmetrics,.periodmetrics,.perioddetailmetrics,.filtertotals,.supermetrics,.databasemetrics{grid-template-columns:1fr!important}
  .paneltitle>.buttonrow,.perioddashboardactions,.people-hero-actions,.businesshero .buttonrow,.filteractions,.queryactionbar,.backupactions{grid-template-columns:1fr!important}
  .shortcutgrid{grid-template-columns:1fr!important}
  .databaseoverview{grid-template-columns:1fr!important}
}

/* Mobile priority repair v5.4.3 — final cascade layer */
@media(max-width:700px){
  html{scroll-padding-top:calc(104px + env(safe-area-inset-top));background:#e5dce8}
  body.appbody{overflow-x:hidden!important}
  .appbody header{
    position:sticky!important;
    z-index:100!important;
    top:0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-rows:auto auto!important;
    width:100%!important;
    margin:0!important;
    padding:max(9px,env(safe-area-inset-top)) 12px 8px!important;
    gap:8px 10px!important;
    border-radius:0!important;
    box-shadow:0 10px 30px rgba(30,22,38,.18)!important;
  }
  .appbody header .brand{display:flex!important;align-items:center!important;min-width:0!important;max-width:none!important;gap:9px!important;overflow:visible!important}
  .appbody header .brandlogo{display:grid!important;flex:0 0 36px!important;width:36px!important;min-width:36px!important;height:36px!important;border-radius:11px!important}
  .appbody header .brand>div{display:grid!important;min-width:0!important;gap:2px!important}
  .appbody header .brand b{display:block!important;max-width:100%!important;overflow:hidden!important;color:#fff!important;font-size:12px!important;line-height:1.25!important;text-overflow:ellipsis!important;white-space:nowrap!important}
  .appbody header .brand small{display:block!important;overflow:hidden;color:rgba(255,255,255,.56)!important;font-size:8px!important;text-overflow:ellipsis;white-space:nowrap}
  .appbody header .user{display:flex!important;grid-column:2!important;grid-row:1!important;align-items:center!important;gap:7px!important;max-width:none!important;overflow:visible!important}
  .appbody header .messagebutton,
  .appbody header .useridentity{
    display:grid!important;
    place-items:center!important;
    box-sizing:border-box!important;
    flex:0 0 40px!important;
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.15)!important;
    border-radius:50%!important;
    background:rgba(255,255,255,.1)!important;
    overflow:visible!important;
  }
  .appbody header .messagebutton span{display:grid!important;width:20px!important;height:20px!important;place-items:center!important;line-height:0!important}
  .appbody header .messagebutton svg{display:block!important;width:19px!important;height:19px!important;margin:0!important;transform:none!important}
  .appbody header .useridentity-copy,.appbody header .useridentity::after{display:none!important}
  .appbody header .user-mini-avatar{display:grid!important;place-items:center!important;width:34px!important;min-width:34px!important;height:34px!important;min-height:34px!important;border-radius:50%!important;overflow:hidden!important}
  .appbody header .user-mini-avatar img{display:block!important;width:100%!important;height:100%!important;border-radius:50%!important;object-fit:cover!important}
  .appbody header nav{grid-column:1/-1!important;grid-row:2!important;width:calc(100% + 24px)!important;margin:0 -12px -8px!important;padding:5px 11px 8px!important}
  .appbody header nav a{min-height:38px!important}
  .appbody main{padding-top:18px!important}

  /* Account-period completed orders become readable cards instead of a clipped desktop table. */
  .periodcompletedfilters{display:grid!important;grid-template-columns:1fr!important;padding:14px!important;gap:13px!important}
  .periodcompletedfilters .periodcheckfilters{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:7px!important}
  .periodcompletedfilters .periodcheckfilters label{display:flex!important;align-items:center!important;justify-content:center!important;min-width:0!important;min-height:42px!important;margin:0!important;padding:9px 6px!important;border:1px solid rgba(76,57,90,.09);border-radius:12px;background:#fff;color:#62576a;font-size:11px;font-weight:680}
  .periodcompletedfilters .periodcheckfilters input{flex:0 0 17px!important;width:17px!important;height:17px!important;min-height:17px!important;margin:0 6px 0 0!important}
  .periodcompletedfilters>label{display:grid!important;gap:6px!important;margin:0!important}
  .periodcompletedfilters select{height:46px!important;min-height:46px!important;margin:0!important;font-size:16px!important}
  .periodcompletedfilters .filteractions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin:0!important;padding-top:12px!important}
  .periodcompletedtable{display:block!important;width:100%!important;min-width:0!important;background:transparent!important}
  .periodcompletedtable thead{display:none!important}
  .periodcompletedtable tbody{display:grid!important;gap:12px!important;width:100%!important}
  .periodcompletedtable tr{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0 14px!important;width:100%!important;padding:14px!important;border:1px solid rgba(69,51,82,.09)!important;border-radius:16px!important;background:rgba(255,255,255,.91)!important;box-shadow:0 9px 25px rgba(43,30,53,.055)!important}
  .periodcompletedtable td{display:grid!important;grid-template-columns:1fr!important;align-content:start!important;min-width:0!important;height:auto!important;min-height:55px!important;padding:9px 0!important;border-bottom:1px solid rgba(74,55,88,.075)!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .periodcompletedtable td::before{content:attr(data-label);display:block;margin-bottom:4px;color:#8c8191;font-size:9px;font-weight:720;letter-spacing:.045em}
  .periodcompletedtable td:nth-child(1),.periodcompletedtable td:nth-child(5),.periodcompletedtable td:last-child{grid-column:1/-1!important}
  .periodcompletedtable td:last-child{padding-bottom:0!important;border-bottom:0!important}
  .periodcompletedtable .billnolink{font-size:14px!important}
  .periodcompletedtable .rowactions{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:8px!important}
  .periodcompletedtable .rowactions>*,.periodcompletedtable .rowactions form,.periodcompletedtable .rowactions a,.periodcompletedtable .rowactions button{width:100%!important;min-height:42px!important;margin:0!important;text-align:center!important}

  /* Administrator and super-administrator log tables use vertical log cards. */
  .adminlogpanel,.auditlogpanel{padding:15px!important;overflow:hidden!important}
  .adminlogwrap,.auditlogpanel>.tablewrap{max-height:none!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
  .adminlogtable,.unifiedlogtable{display:block!important;width:100%!important;min-width:0!important;background:transparent!important}
  .adminlogtable thead,.unifiedlogtable thead{display:none!important}
  .adminlogtable tbody,.unifiedlogtable tbody{display:grid!important;gap:10px!important;width:100%!important}
  .adminlogtable tr,.unifiedlogtable tr{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0 12px!important;width:100%!important;padding:12px 13px!important;border:1px solid rgba(72,53,87,.09)!important;border-radius:15px!important;background:#fff!important;box-shadow:0 7px 20px rgba(45,31,57,.045)!important}
  .adminlogtable td,.unifiedlogtable td{display:block!important;min-width:0!important;height:auto!important;min-height:0!important;padding:8px 0!important;border-bottom:1px solid rgba(72,53,87,.065)!important;white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .adminlogtable td::before,.unifiedlogtable td::before{content:attr(data-label);display:block;margin-bottom:4px;color:#918696;font-size:9px;font-weight:720;letter-spacing:.04em}
  .adminlogtable td:last-child,.unifiedlogtable td:last-child{grid-column:1/-1!important;border-bottom:0!important}
  .adminlogtable .logdetail,.unifiedlogtable .logdetail{max-width:none!important;color:#625969!important;font-size:11px!important;line-height:1.55!important}
  .auditlogpanel .accessrolefilters{margin-bottom:12px!important}

  /* Super-admin people cards: wrap long location names, coordinates and device details. */
  .superpeoplepanel{padding:15px!important;overflow:hidden!important}
  .superpeoplelist{grid-template-columns:1fr!important;gap:11px!important}
  .superpersoncard{width:100%!important;min-width:0!important;padding:13px!important;overflow:hidden!important}
  .superpersonhead{display:grid!important;grid-template-columns:42px minmax(0,1fr)!important;align-items:center!important}
  .superpersonhead .presencetag{grid-column:1/-1!important;width:max-content!important;max-width:100%!important;margin-top:3px!important}
  .superpersonhead h3,.superpersonhead p{max-width:100%!important}
  .superpersonfacts{grid-template-columns:1fr 1fr!important}
  .personlocation{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:start!important;width:100%!important;min-width:0!important;padding:11px!important;overflow:hidden!important}
  .personlocation>div:first-child{width:100%!important;min-width:0!important}
  .personlocation strong{white-space:normal!important;overflow-wrap:anywhere!important;word-break:break-word!important;line-height:1.5!important}
  .personlocation>div:first-child>span{white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.45!important}
  .personlocation .coordinates{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;min-width:0!important;gap:7px!important;text-align:left!important}
  .personlocation .coordinates span{display:grid!important;min-width:0!important;padding:8px!important;border-radius:10px!important;background:rgba(255,255,255,.75)!important}
  .personlocation .coordinates b{display:block!important;max-width:100%!important;margin-top:3px!important;overflow-wrap:anywhere!important;font-size:10px!important}
  .superpersoncard details,.superpersoncard details p{max-width:100%!important;overflow-wrap:anywhere!important;word-break:break-word!important}

  /* Messenger: true circular, optically centered controls and reliable avatars. */
  .appbody dialog.chat-dialog{width:100vw!important;max-width:100vw!important;height:100dvh!important;max-height:100dvh!important}
  .chat-sidebar-head{padding:max(16px,env(safe-area-inset-top)) 15px 12px!important}
  .chat-close,.chat-back,.chat-thread-tools button,
  .chat-compose-tools>button,.chat-compose-tools>label,.chat-send{
    display:grid!important;
    place-items:center!important;
    box-sizing:border-box!important;
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    margin:0!important;
    padding:0!important;
    border-radius:50%!important;
    line-height:0!important;
  }
  .chat-close{font-size:23px!important;line-height:1!important}
  .chat-thread-head{min-height:68px!important;padding:max(10px,env(safe-area-inset-top)) 10px 10px!important;gap:9px!important}
  .chat-thread-head .chat-avatar{flex:0 0 40px!important;width:40px!important;min-width:40px!important;height:40px!important;min-height:40px!important;border-radius:50%!important}
  .chat-thread-tools{display:flex!important;align-items:center!important;gap:6px!important}
  .chat-thread-tools svg,.chat-compose-tools svg,.chat-send svg{display:block!important;margin:auto!important;transform:none!important}
  .chat-compose-row{grid-template-columns:auto minmax(0,1fr) 40px!important;align-items:center!important;gap:7px!important}
  .chat-compose-tools{display:flex!important;align-items:center!important;gap:5px!important;padding:0!important}
  .chat-composer{padding:9px 9px max(9px,env(safe-area-inset-bottom))!important}
  .chat-composer textarea{height:40px!important;min-height:40px!important;padding:9px 12px!important;border-radius:15px!important}
  .chat-avatar,.chat-message-avatar{overflow:visible!important}
  .chat-avatar>img,.chat-message-avatar>img{display:block!important;width:100%!important;height:100%!important;margin:0!important;border-radius:inherit!important;object-fit:cover!important;object-position:center!important}
  .chat-person .chat-avatar{width:44px!important;min-width:44px!important;height:44px!important;min-height:44px!important;border-radius:50%!important}
  .chat-message-avatar{width:30px!important;min-width:30px!important;height:30px!important;min-height:30px!important;flex-basis:30px!important;border-radius:50%!important}
}

@media(max-width:360px){
  .appbody header{padding-left:9px!important;padding-right:9px!important;column-gap:6px!important}
  .appbody header .brand{gap:7px!important}
  .appbody header .brandlogo{flex-basis:32px!important;width:32px!important;min-width:32px!important;height:32px!important}
  .appbody header .brand b{font-size:11px!important}
  .appbody header .brand small{display:none!important}
  .appbody header .messagebutton,.appbody header .useridentity{flex-basis:37px!important;width:37px!important;min-width:37px!important;max-width:37px!important;height:37px!important;min-height:37px!important;max-height:37px!important}
  .appbody header .user-mini-avatar{width:31px!important;min-width:31px!important;height:31px!important;min-height:31px!important}
  .periodcompletedfilters .periodcheckfilters{grid-template-columns:1fr!important}
  .periodcompletedtable tr,.adminlogtable tr,.unifiedlogtable tr{grid-template-columns:1fr!important}
  .periodcompletedtable td,.adminlogtable td,.unifiedlogtable td{grid-column:1!important}
}

@media(max-width:700px){
  .appbody dialog.chat-dialog :is(.chat-close,.chat-back,.chat-thread-tools button,.chat-compose-tools>button,.chat-compose-tools>label,.chat-send){
    box-sizing:border-box!important;
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:0!important;
    border-radius:50%!important;
  }
}

@media(max-width:700px){
  body.appbody dialog.chat-dialog .chat-compose-tools>button,
  body.appbody dialog.chat-dialog .chat-compose-tools>label,
  body.appbody dialog.chat-dialog button.chat-send{
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:0!important;
    border-radius:999px!important;
  }
}

@media(max-width:700px){
  body.appbody dialog.chat-dialog #chatComposer .chat-compose-tools>button,
  body.appbody dialog.chat-dialog #chatComposer .chat-compose-tools>label,
  body.appbody dialog.chat-dialog #chatComposer button.chat-send{
    width:40px!important;
    min-width:40px!important;
    max-width:40px!important;
    height:40px!important;
    min-height:40px!important;
    max-height:40px!important;
    padding:0!important;
    border-radius:50%!important;
  }
}
/* 7.1.0 调度系统 Beta：沿用总账视觉骨架，仅增加清晰的试运行标识 */
.beta-nav-label{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.beta-nav-label i{display:inline-flex;align-items:center;justify-content:center;min-height:18px;padding:1px 7px;border-radius:999px;background:linear-gradient(135deg,#5d8fb3,#7162a2);color:#fff;font-size:10px;font-style:normal;font-weight:800;letter-spacing:.04em;box-shadow:0 4px 12px rgba(83,103,151,.22)}
.beta-dashboard-hero{background:linear-gradient(135deg,#263e59 0%,#426d8c 52%,#71628e 100%)}
.financeworkbenchhub button.financecreatecard{display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto;gap:3px 12px;width:100%;min-width:0;min-height:96px;margin:0;padding:16px;border:1px solid rgba(94,71,112,.11);border-radius:18px;text-align:left;font:inherit;color:#403747;cursor:pointer}
.financeworkbenchhub button.financecreatecard:hover{transform:translateY(-2px);border-color:rgba(112,84,137,.2);box-shadow:0 14px 31px rgba(58,41,70,.09)}
.financeworkbenchhub button.financecreatecard span,.financeworkbenchhub button.financecreatecard b,.financeworkbenchhub button.financecreatecard small{pointer-events:none}
.financeworkbenchhub button.financecreatecard>span{grid-column:1;grid-row:1/3}
.financeworkbenchhub button.financecreatecard>b{grid-column:2;grid-row:1;align-self:end;display:block}
.financeworkbenchhub button.financecreatecard>small{grid-column:2;grid-row:2;align-self:start;display:block;margin:3px 0 0}
@media(max-width:760px){.beta-nav-label{gap:4px}.beta-nav-label i{padding-inline:5px;font-size:9px}.financeworkbenchhub button.financecreatecard{min-height:92px;padding:14px}}
.beta-order-grid textarea{width:100%;min-height:82px;resize:vertical}
.beta-attachment-remove{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:12px}
.beta-attachment-remove label{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:8px;padding:10px;border:1px solid rgba(91,72,111,.13);border-radius:14px;background:rgba(255,255,255,.74);cursor:pointer}
.beta-attachment-remove img{grid-column:1/-1;width:100%;height:104px;border-radius:10px;object-fit:cover;background:#f2eff5}
.beta-attachment-remove span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.beta-common-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:start!important;gap:18px!important;width:100%;min-width:0}
.beta-common-grid>.panel{display:flex;flex-direction:column;min-width:0;min-height:360px;padding:22px!important;overflow:hidden}
.beta-common-grid .paneltitle{display:block!important;margin:0 0 18px!important;padding:0 0 15px;border-bottom:1px solid rgba(82,62,103,.1)}
.beta-common-grid .paneltitle h2{margin:0 0 5px;font-size:19px;line-height:1.3}
.beta-common-grid .paneltitle p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.beta-common-grid .inlineform{display:grid!important;grid-template-columns:minmax(0,1fr) 76px!important;align-items:end!important;gap:9px!important;width:100%;margin:0 0 18px!important;padding:0!important}
.beta-common-grid .inlineform>input[type=hidden]{display:none!important}
.beta-common-grid .inlineform>input:not([type=hidden]){box-sizing:border-box;width:100%!important;min-width:0!important;height:42px!important;margin:0!important;padding:0 12px!important}
.beta-common-grid .inlineform>button{box-sizing:border-box;width:76px!important;min-width:76px!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0 12px!important;line-height:42px!important;text-align:center!important}
.beta-common-grid .settingslist{flex:1;min-width:0;max-height:330px;margin:0!important;padding:0!important;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(87,65,108,.25) transparent;list-style:none}
.beta-common-grid .settingslist>li{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:10px!important;min-width:0;min-height:48px;margin:0!important;padding:9px 2px!important;border-bottom:1px solid rgba(82,62,103,.08)}
.beta-common-grid .settingslist>li>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:650}
.beta-common-grid .settingslist>li>form{display:block!important;margin:0!important;padding:0!important;border:0!important}
.beta-common-grid .settingslist>li button{display:grid!important;place-items:center!important;width:58px!important;min-width:58px!important;height:32px!important;min-height:32px!important;margin:0!important;padding:0 9px!important;line-height:1!important}
.beta-common-grid .settingslist>li.empty{display:grid!important;grid-template-columns:1fr!important;place-items:center!important;min-height:128px!important;border:1px dashed rgba(82,62,103,.15)!important;border-radius:14px!important;color:var(--muted);text-align:center}
@media(max-width:1080px){.beta-common-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.beta-common-grid{grid-template-columns:1fr!important;gap:13px!important}.beta-common-grid>.panel{min-height:0;padding:17px!important}.beta-common-grid .settingslist{max-height:280px}.beta-common-grid .inlineform{grid-template-columns:minmax(0,1fr) 72px!important}.beta-common-grid .inlineform>button{width:72px!important;min-width:72px!important}.beta-order-grid{grid-template-columns:1fr}.beta-order-grid .span2{grid-column:auto}.beta-attachment-remove{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:390px){.beta-common-grid .inlineform{grid-template-columns:1fr!important}.beta-common-grid .inlineform>button{width:100%!important;min-width:0!important}}
.beta-common-hero{display:flex;align-items:center;min-height:132px;margin-bottom:18px;padding:24px 28px;border:1px solid rgba(255,255,255,.72);border-radius:22px;background:linear-gradient(135deg,rgba(44,67,91,.96),rgba(91,73,121,.92));box-shadow:0 18px 42px rgba(45,36,61,.14);color:#fff;overflow:hidden}
.beta-common-hero .eyebrow{color:rgba(255,255,255,.76)!important}
.beta-common-hero h2{margin:6px 0 5px;color:#fff!important;font-size:25px}
.beta-common-hero p{margin:0;color:rgba(255,255,255,.82)!important}
.beta-common-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;width:100%;min-width:0}
.beta-common-card{display:flex!important;flex-direction:column!important;box-sizing:border-box!important;min-width:0!important;min-height:390px!important;padding:21px!important;overflow:hidden!important}
.beta-common-card>header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;margin:0 0 17px!important;padding:0 0 15px!important;border:0!important;border-bottom:1px solid rgba(82,62,103,.1)!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--text)!important}
.beta-common-card>header>div{min-width:0}
.beta-common-card>header h2{margin:0 0 4px;color:var(--text)!important;font-size:19px;line-height:1.3}
.beta-common-card>header p{margin:0;color:var(--muted)!important;font-size:12px;line-height:1.45}
.beta-common-card>header>strong{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:rgba(91,69,114,.09);color:#614778;font-size:14px}
.beta-common-add{display:grid!important;grid-template-columns:minmax(0,1fr) 72px!important;align-items:end!important;gap:9px!important;margin:0 0 17px!important;padding:0!important}
.beta-common-add>input[type=hidden]{display:none!important}
.beta-common-add label{display:grid!important;gap:6px!important;min-width:0!important;margin:0!important;color:var(--muted);font-size:11px;font-weight:700}
.beta-common-add input{box-sizing:border-box!important;width:100%!important;min-width:0!important;height:42px!important;margin:0!important;padding:0 11px!important}
.beta-common-add button{display:grid!important;place-items:center!important;box-sizing:border-box!important;width:72px!important;min-width:72px!important;height:42px!important;min-height:42px!important;margin:0!important;padding:0 10px!important;line-height:1!important}
.beta-common-list{flex:1;min-width:0;max-height:340px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(87,65,108,.25) transparent}
.beta-common-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:49px;padding:8px 1px;border-bottom:1px solid rgba(82,62,103,.08)}
.beta-common-item>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
.beta-common-item>form{display:block!important;margin:0!important;padding:0!important;border:0!important}
.beta-common-item button{display:grid!important;place-items:center!important;width:58px!important;min-width:58px!important;height:32px!important;min-height:32px!important;margin:0!important;padding:0 8px!important;line-height:1!important}
.beta-common-empty{display:grid;place-items:center;align-content:center;min-height:150px;padding:18px;border:1px dashed rgba(82,62,103,.17);border-radius:15px;color:var(--muted);text-align:center}
.beta-common-empty b{color:var(--text);font-size:14px}.beta-common-empty small{margin-top:5px}
@media(max-width:1080px){.beta-common-layout{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.beta-common-hero{min-height:112px;padding:20px;border-radius:19px}.beta-common-hero h2{font-size:22px}.beta-common-layout{grid-template-columns:1fr;gap:13px}.beta-common-card{min-height:0!important;padding:17px!important}.beta-common-list{max-height:280px}}
@media(max-width:390px){.beta-common-add{grid-template-columns:1fr!important}.beta-common-add button{width:100%!important;min-width:0!important}}
/* Beta visual system: one radius scale and stable spacing across every view. */
.appbody main:has(.beta-ledger-nav){--beta-radius-lg:20px;--beta-radius-md:14px;--beta-radius-sm:11px}
.appbody main:has(.beta-ledger-nav) .beta-ledger-nav{border-radius:var(--beta-radius-md)!important}
.appbody main:has(.beta-ledger-nav) :is(.panel,.metric,.financeworkbenchhub>a,.financeworkbenchhub>button,.beta-common-hero){border-radius:var(--beta-radius-lg)!important}
.appbody main:has(.beta-ledger-nav) :is(.advancedfilters,.tablewrap,.attachmentsection,.beta-common-empty){border-radius:var(--beta-radius-md)!important}
.appbody main:has(.beta-ledger-nav) :is(input,select,textarea,.primary,.secondary,button:not(.modalclose)){border-radius:var(--beta-radius-sm)!important}
.appbody main:has(.beta-ledger-nav) .metrics{align-items:stretch!important}
.appbody main:has(.beta-ledger-nav) .metric{display:flex!important;flex-direction:column!important;justify-content:center!important;box-sizing:border-box!important;min-height:118px!important;padding:20px!important}
.appbody main:has(.beta-ledger-nav) .metric small{line-height:1.35!important}.appbody main:has(.beta-ledger-nav) .metric strong{line-height:1.12!important}
.appbody main:has(.beta-ledger-nav) .periodstatheading{margin:25px 0 12px!important}
.appbody main:has(.beta-ledger-nav) .periodstatheading:first-of-type{margin-top:0!important}
.appbody main:has(.beta-ledger-nav) .panel{box-sizing:border-box!important;min-width:0!important}
.appbody main:has(.beta-ledger-nav) .paneltitle{align-items:center!important}
.appbody main:has(.beta-ledger-nav) table th{white-space:nowrap}
.appbody main:has(.beta-ledger-nav) .beta-common-card>header{border-radius:0!important}
@media(max-width:700px){.appbody main:has(.beta-ledger-nav){--beta-radius-lg:18px;--beta-radius-md:13px;--beta-radius-sm:10px}.appbody main:has(.beta-ledger-nav) .metric{min-height:108px!important;padding:16px!important}.appbody main:has(.beta-ledger-nav) .paneltitle{align-items:stretch!important}.appbody main:has(.beta-ledger-nav) .beta-ledger-nav{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important;overflow:visible!important}.appbody main:has(.beta-ledger-nav) .beta-ledger-nav a{display:grid!important;place-items:center!important;min-width:0!important;padding:9px 5px!important;text-align:center!important}}
#betaVoucherCreateDialog{border-radius:20px!important}
#betaVoucherCreateDialog :is(input,select,textarea,button:not(.modalclose)){border-radius:11px!important}
@media(max-width:700px){#betaVoucherCreateDialog{border-radius:18px!important}#betaVoucherCreateDialog :is(input,select,textarea,button:not(.modalclose)){border-radius:10px!important}}

/* Beta isolated surface · prevents legacy page rules from changing its layout. */
.beta-app{--b-lg:20px;--b-md:14px;--b-sm:11px;--b-gap:18px;display:block;width:100%;min-width:0;color:var(--text)}
.beta-app,.beta-app *{box-sizing:border-box}
.beta-tabs{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:6px;width:100%;margin:0 0 22px;padding:7px;border:1px solid rgba(255,255,255,.76);border-radius:var(--b-md);background:rgba(247,244,250,.78);box-shadow:0 12px 32px rgba(52,37,66,.06);backdrop-filter:blur(18px)}
.beta-tabs a{display:grid;place-items:center;min-width:0;min-height:42px;padding:8px 12px;border-radius:10px;color:#655d6d;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease}
.beta-tabs a:hover{background:rgba(255,255,255,.72);color:#4f3566;transform:translateY(-1px)}
.beta-tabs a.active{background:linear-gradient(145deg,#6d4b84,#54386e);color:#fff;box-shadow:0 8px 18px rgba(73,47,91,.21)}
.beta-view{display:block;min-width:0}
.beta-view :is(.panel,.metric,.periodhero,.financeworkbenchhub>a,.financeworkbenchhub>button,.beta-common-hero,.beta-common-card){border-radius:var(--b-lg)!important}
.beta-view :is(.advancedfilters,.tablewrap,.attachmentsection,.exportoption,.beta-common-empty){border-radius:var(--b-md)!important}
.beta-view :is(input,select,textarea,button:not(.modalclose),.primary,.secondary){border-radius:var(--b-sm)!important}
.beta-view>.metrics{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;align-items:stretch!important;gap:var(--b-gap)!important;margin:0 0 24px!important}
.beta-view .metric{display:flex!important;flex-direction:column!important;justify-content:center!important;min-width:0!important;min-height:118px!important;margin:0!important;padding:20px!important;overflow:hidden!important}
.beta-view .metric small{margin:0!important;color:var(--muted)!important;font-size:12px!important;line-height:1.35!important}
.beta-view .metric strong{margin:8px 0 0!important;color:var(--text)!important;font-size:25px!important;line-height:1.12!important;white-space:nowrap}
.beta-view .periodstatheading{display:flex!important;align-items:end!important;justify-content:space-between!important;margin:26px 0 12px!important}
.beta-view .periodstatheading:first-child{margin-top:0!important}
.beta-view .periodstatheading h2{margin:0!important;font-size:19px!important}.beta-view .periodstatheading p{margin:5px 0 0!important}
.beta-view>.panel{width:100%!important;min-width:0!important;margin:0 0 20px!important;padding:24px!important;overflow:hidden!important}
.beta-view>.panel+.panel{margin-top:0!important}
.beta-view .paneltitle{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;margin:0 0 20px!important}
.beta-view .paneltitle>div{min-width:0!important}.beta-view .paneltitle h2{margin:0 0 5px!important;font-size:20px!important}.beta-view .paneltitle p{margin:0!important}
.beta-view .buttonrow{display:flex!important;align-items:center!important;gap:9px!important;flex:0 0 auto!important}
.beta-view .tablewrap{width:100%!important;max-width:100%!important;overflow:auto!important;border:1px solid rgba(83,64,102,.1)!important}
.beta-view-workspace>.beta-record-list>.tablewrap,.beta-view-vouchers>.beta-record-list>.tablewrap{width:calc(100% + 48px)!important;max-width:none!important;margin:0 -24px -24px!important;border-right:0!important;border-bottom:0!important;border-left:0!important;border-radius:0 0 var(--b-lg) var(--b-lg)!important}
.beta-view table{width:100%!important;min-width:760px!important;margin:0!important;border-collapse:collapse!important}
.beta-view th,.beta-view td{height:50px!important;padding:11px 14px!important;vertical-align:middle!important;text-align:left!important}
.beta-view th{white-space:nowrap!important;background:rgba(245,241,248,.88)!important;color:#6c6273!important;font-size:12px!important}
.beta-view td{border-top:1px solid rgba(83,64,102,.075)!important}
.beta-view .advancedfilters{display:grid!important;gap:14px!important;margin:0 0 20px!important;padding:18px!important;border:1px solid rgba(83,64,102,.1)!important;background:rgba(249,247,251,.72)!important}
.beta-view .filterrow{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:13px!important;margin:0!important}
.beta-view .filterrow-secondary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.beta-view .advancedfilters label{display:grid!important;gap:7px!important;min-width:0!important;margin:0!important;color:var(--muted)!important;font-size:12px!important;font-weight:700!important}
.beta-view .advancedfilters :is(input,select){width:100%!important;min-width:0!important;height:43px!important;margin:0!important}
.beta-view .queryactionbar{display:flex!important;justify-content:flex-end!important;gap:9px!important;margin:0!important;padding-top:2px!important}
.beta-view .financeworkbenchhub{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:var(--b-gap)!important;margin:0 0 25px!important}
.beta-view .financeworkbenchhub>*{min-width:0!important;min-height:104px!important;margin:0!important;padding:17px!important;overflow:hidden!important}
.beta-view .beta-dashboard-hero{margin-bottom:20px!important;padding:27px!important}
.beta-view .beta-dashboard-hero h2{color:#fff!important}.beta-view .beta-dashboard-hero p{color:rgba(255,255,255,.8)!important}
.beta-common-layout{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important;gap:var(--b-gap)!important}
.appbody .beta-app .beta-common-layout>.beta-common-card{min-width:0!important;min-height:370px!important;margin:0!important;padding:20px!important}
.appbody .beta-app .beta-common-card>header{position:static!important;isolation:auto!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
.appbody .beta-app .beta-common-card>header::before,.appbody .beta-app .beta-common-card>header::after{display:none!important;content:none!important;background:none!important;box-shadow:none!important}
.appbody .beta-app .beta-common-card>header>div{background:transparent!important;box-shadow:none!important}
.beta-common-hero{margin-bottom:var(--b-gap)!important}
.beta-view .actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:wrap!important}
.beta-view .detailpanel{display:block!important}
.beta-view .detailgrid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin:0 0 20px!important}
.beta-view .detailgrid>div{min-width:0!important;margin:0!important;padding:15px 17px!important;border:1px solid rgba(83,64,102,.09)!important;border-radius:var(--b-md)!important;background:rgba(248,246,250,.74)!important}
.beta-view .detailgrid>div.span2{grid-column:1/-1!important}
.beta-view .detailgrid dt{margin:0 0 7px!important;color:var(--muted)!important;font-size:12px!important;font-weight:700!important;line-height:1.35!important}
.beta-view .detailgrid dd{min-width:0!important;margin:0!important;color:var(--text)!important;font-size:15px!important;font-weight:650!important;line-height:1.55!important;overflow-wrap:anywhere!important}
.beta-view .detailpanel>.attachmentsection{margin:0 0 20px!important;padding:18px!important;border:1px solid rgba(83,64,102,.09)!important;background:rgba(249,247,251,.68)!important}
.beta-view .detailpanel>.attachmentsection h3{margin:0 0 12px!important}
.beta-view .detailpanel>.actions{margin:0!important;padding-top:18px!important;border-top:1px solid rgba(83,64,102,.09)!important}
.logpager{display:grid;grid-template-columns:minmax(92px,1fr) auto minmax(92px,1fr);align-items:center;gap:12px;margin-top:18px}.logpager>a:first-child{justify-self:start}.logpager>a:last-child{justify-self:end}.logpager>span{color:var(--muted);font-size:13px;text-align:center}.logpager>a{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:520px){.logpager{grid-template-columns:1fr 1fr}.logpager>span:nth-child(2){grid-column:1/-1;grid-row:1}.logpager>a{width:100%}.logpager>a:first-child{grid-column:1}.logpager>a:last-child{grid-column:2}}
#betaVoucherCreateDialog{width:min(760px,calc(100vw - 28px))!important;max-width:760px!important;border-radius:var(--b-lg,20px)!important}
.beta-record-dialog{width:min(820px,calc(100vw - 28px));max-width:820px;max-height:calc(100dvh - 28px);padding:0;border:0;border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(34,24,43,.28);overflow:hidden}.beta-record-dialog::backdrop{background:rgba(28,21,34,.35);backdrop-filter:blur(10px)}.beta-record-shell{max-height:calc(100dvh - 28px);padding:22px;overflow:auto;overscroll-behavior:contain}.beta-record-shell>.detailpanel,.beta-record-shell>.beta-order-form{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}.beta-record-shell .paneltitle{align-items:flex-start!important}.beta-record-loading,.beta-record-error{display:grid;place-items:center;min-height:240px;color:var(--muted);text-align:center}.beta-record-error{gap:8px}.beta-record-error b{color:var(--text);font-size:18px}.beta-record-error button{margin-top:10px}.beta-form-error{margin:14px 0 0;padding:11px 13px;border-radius:11px;background:#fff0f0;color:#a72e39;font-size:13px}.beta-record-shell .beta-order-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}.beta-record-shell .beta-order-grid label{min-width:0!important;margin:0!important}.beta-record-shell .beta-order-grid :is(input,textarea){width:100%!important;margin:0!important}.beta-record-shell .beta-order-grid .span2{grid-column:1/-1!important}.beta-record-shell .attachmentsection{margin-top:18px!important}.beta-record-shell .actions{position:static!important;margin:20px 0 0!important;padding:17px 0 0!important;border-top:1px solid rgba(83,64,102,.09)!important;background:transparent!important}
#betaVoucherCreateDialog .billing-create-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
#betaVoucherCreateDialog .billing-create-grid label{min-width:0!important;margin:0!important}
#betaVoucherCreateDialog .billing-create-grid :is(input,select,textarea){width:100%!important;min-width:0!important;margin:0!important}
@media(max-width:980px){.beta-view>.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}.beta-view .filterrow{grid-template-columns:repeat(2,minmax(0,1fr))!important}.beta-common-layout{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:700px){.beta-view .metric strong{font-size:21px!important}}
@media(max-width:700px){.beta-app{--b-lg:18px;--b-md:13px;--b-sm:10px;--b-gap:12px}.beta-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:14px;padding:5px}.beta-tabs a{min-height:39px;padding:7px 4px;font-size:12px}.beta-view>.metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important;margin-bottom:18px!important}.beta-view .metric{min-height:104px!important;padding:15px!important}.beta-view .periodstatheading{margin:20px 0 10px!important}.beta-view>.panel{padding:16px!important;margin-bottom:14px!important}.beta-view-workspace>.beta-record-list>.tablewrap,.beta-view-vouchers>.beta-record-list>.tablewrap{width:calc(100% + 32px)!important;margin:0 -16px -16px!important}.beta-view .paneltitle{align-items:stretch!important;flex-direction:column!important;gap:12px!important}.beta-view .buttonrow{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important}.beta-view .buttonrow>*{width:100%!important;text-align:center!important}.beta-view .advancedfilters{padding:13px!important}.beta-view .filterrow,.beta-view .filterrow-secondary{grid-template-columns:1fr!important}.beta-view .queryactionbar{display:grid!important;grid-template-columns:1fr 1fr!important}.beta-view .financeworkbenchhub{grid-template-columns:1fr!important}.beta-view .beta-dashboard-hero{padding:20px!important}.beta-common-layout{grid-template-columns:1fr!important}.beta-common-card{min-height:0!important}.beta-view .detailgrid{grid-template-columns:1fr!important;gap:9px!important}.beta-view .detailgrid>div.span2{grid-column:auto!important}.beta-view .detailgrid>div{padding:12px 14px!important}.beta-view table{min-width:680px!important}#betaVoucherCreateDialog .billing-create-grid{grid-template-columns:1fr!important}#betaVoucherCreateDialog .billing-create-grid .span2{grid-column:auto!important}.beta-record-dialog{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);border-radius:18px}.beta-record-shell{max-height:calc(100dvh - 14px);padding:17px}.beta-record-shell .beta-order-grid{grid-template-columns:1fr!important}.beta-record-shell .beta-order-grid .span2{grid-column:auto!important}}

/* Cross-database order linking · isolated administrator surface */
.orderlinkhero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px;padding:28px;border:1px solid rgba(255,255,255,.7);border-radius:22px;background:linear-gradient(135deg,#314d67,#64507f);box-shadow:0 18px 44px rgba(42,35,58,.14);color:#fff;overflow:hidden}
.appbody .orderlinkhero h2{margin:6px 0;color:#fff!important}.appbody .orderlinkhero p{max-width:760px;margin:0;color:rgba(255,255,255,.82)!important}.appbody .orderlinkhero .eyebrow{color:rgba(255,255,255,.7)!important}.orderlinkhero>div:last-child{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:3px 9px;flex:0 0 auto;padding:15px 18px;border-radius:16px;background:rgba(255,255,255,.1)}.orderlinkhero strong{font-size:24px}.orderlinkhero span{font-size:12px;color:rgba(255,255,255,.75)}
.orderlinkexisting{margin-bottom:20px!important}.orderlinkexisting td>a{display:block;font-weight:750}.orderlinkexisting td>small{display:block;margin-top:4px;color:var(--muted)}
.orderlinkrulespanel{margin-bottom:20px!important}.orderlinkcardgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:14px}.orderlinkrulecard{display:grid;grid-template-columns:46px minmax(0,1fr) 28px;align-items:center;gap:14px;width:100%;min-width:0;min-height:108px;margin:0;padding:18px;border:1px solid rgba(85,63,104,.11);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(248,246,251,.9));box-shadow:0 8px 24px rgba(48,36,61,.06);color:var(--text);text-align:left;cursor:pointer;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.orderlinkrulecard:hover{transform:translateY(-2px);border-color:rgba(104,68,130,.25);box-shadow:0 14px 32px rgba(48,36,61,.1)}.orderlinkrulecard:active{transform:translateY(0) scale(.99)}.orderlinkrulecardicon{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#efe8f5,#e5edf7);color:#63427b;font-size:20px;font-weight:800}.orderlinkrulecardcopy{display:grid;align-content:center;gap:6px;min-width:0}.orderlinkrulecardcopy strong{overflow:hidden;color:var(--text);font-size:15px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.orderlinkrulecardcopy small{overflow:hidden;color:var(--muted);font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.orderlinkrulecardarrow{display:grid;place-items:center;width:28px;height:28px;color:#8c7b99;font-size:26px;line-height:1}.orderlinkrulecardnew{border-style:dashed;background:rgba(249,247,251,.62)}.orderlinkrulecardnew .orderlinkrulecardicon{background:#6b4a80;color:#fff}.orderlinkruledialog{width:min(860px,calc(100vw - 32px));max-width:860px;max-height:min(820px,calc(100dvh - 32px));padding:0;border:0;border-radius:22px;background:transparent;box-shadow:0 26px 80px rgba(28,20,37,.26);overflow:hidden}.orderlinkruledialog::backdrop{background:rgba(25,20,31,.36);backdrop-filter:blur(10px)}.orderlinkdialogshell{display:flex;flex-direction:column;max-height:min(820px,calc(100dvh - 32px));background:var(--surface,#fff)}.orderlinkdialoghead{display:flex;align-items:center;justify-content:space-between;gap:18px;flex:0 0 auto;padding:20px 22px;border-bottom:1px solid rgba(85,63,104,.09);background:rgba(255,255,255,.94)}.orderlinkdialoghead span{display:block;margin-bottom:3px;color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.08em}.orderlinkdialoghead h2{margin:0;color:var(--text);font-size:20px}.orderlinkdialoghead .iconbutton{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;min-height:38px;margin:0;padding:0;border-radius:50%;font-size:22px;line-height:1}.orderlinkdialogcontent{min-height:0;padding:20px;overflow:auto;overscroll-behavior:contain}.orderlinkruleform{margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.orderlinkrulehead{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.orderlinkrulehead h3{margin:4px 0 0}.orderlinkrulegrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.orderlinkrulegrid label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:12px;font-weight:700}.orderlinkrulegrid label.span2{grid-column:1/-1}.orderlinkrulegrid :is(input,select){width:100%;min-width:0;height:43px;margin:0}.orderlinkruleactions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid rgba(85,63,104,.09)}.orderlinkruleactions>.switchline{margin-right:auto}.orderlinkruleform input[type=checkbox]{flex:0 0 20px!important;width:20px!important;height:20px!important;min-height:20px!important;margin:0!important;accent-color:#684482}.orderlinkruleform .switchline{display:flex!important;align-items:center!important;gap:8px!important}
@media(max-width:700px){.orderlinkhero{align-items:stretch;flex-direction:column;padding:20px;border-radius:18px}.orderlinkhero>div:last-child{width:100%}.orderlinkexisting .paneltitle,.orderlinkrulespanel .paneltitle{align-items:stretch}.orderlinkexisting .paneltitle form,.orderlinkexisting .paneltitle button{width:100%}.orderlinkcardgrid{grid-template-columns:1fr;gap:10px}.orderlinkrulecard{min-height:92px;padding:14px;border-radius:15px}.orderlinkruledialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px}.orderlinkdialogshell{max-height:calc(100dvh - 16px)}.orderlinkdialoghead{padding:16px}.orderlinkdialogcontent{padding:16px}.orderlinkrulegrid{grid-template-columns:1fr}.orderlinkrulegrid label.span2{grid-column:auto}.orderlinkrulehead{align-items:flex-start}.orderlinkruleactions{display:grid;grid-template-columns:1fr 1fr}.orderlinkruleactions>.switchline{grid-column:1/-1}.orderlinkruleactions button{width:100%}}

/* Dispatch record dialog always keeps an explicit close control above dynamic content. */
.beta-record-dialog{position:relative}.beta-record-fixed-close{position:absolute!important;top:16px;right:16px;z-index:8}.beta-record-shell .paneltitle{padding-right:48px!important}

/* Dispatch record details follow the same stable shell as general-ledger order details. */
.beta-record-dialog.orderdetaildialog{width:min(94vw,920px)!important;height:min(88dvh,820px)!important;max-width:920px!important;max-height:820px!important;padding:0!important;overflow:hidden!important;border-radius:24px!important}.beta-record-dialog>.orderdetailhead{height:70px;min-height:70px;padding:15px 20px!important}.beta-record-dialog>.orderdetailhead h3{margin:2px 0 0!important}.beta-record-dialog>.beta-record-shell.orderdetailbody{height:calc(100% - 70px)!important;max-height:none!important;padding:20px!important;overflow-y:auto!important;background:#f4f1f6!important}.beta-record-shell>.detailpanel,.beta-record-shell>.beta-order-form{display:flex!important;flex-direction:column!important;min-height:100%!important;padding:22px!important;border:1px solid rgba(83,64,102,.09)!important;border-radius:19px!important;background:#fff!important;box-shadow:0 12px 34px rgba(50,36,62,.06)!important}.beta-record-shell>.detailpanel>.paneltitle,.beta-record-shell>.beta-order-form>.paneltitle{padding-right:0!important}.beta-record-shell>.detailpanel>.actions,.beta-record-shell>.beta-order-form>.actions{position:sticky!important;bottom:-22px!important;z-index:5;margin:auto -22px -22px!important;padding:15px 22px 22px!important;border-top:1px solid rgba(83,64,102,.09)!important;background:linear-gradient(180deg,rgba(255,255,255,.86),#fff 35%)!important}.beta-record-shell>.detailpanel>.actions{display:flex!important;min-height:76px;align-items:center!important;justify-content:flex-end!important}.beta-record-shell>.detailpanel>.actions>a,.beta-record-shell>.detailpanel>.actions form,.beta-record-shell>.detailpanel>.actions button{display:inline-flex!important;align-items:center!important;justify-content:center!important;visibility:visible!important;opacity:1!important}.beta-record-shell>.detailpanel>.actions form{margin:0!important}.beta-record-shell>.beta-order-form .beta-order-grid{margin-bottom:18px!important}

/* Release invariant: cards inside the database health grid are grid siblings,
   not vertically stacked panels. Keep this after generic .panel + .panel rules. */
html body.appbody .superdatabasesection>.dbstatusgrid>.panel.dbstatuscard{margin-top:0!important;margin-bottom:0!important}
@media(max-width:650px){.beta-record-dialog.orderdetaildialog{width:calc(100vw - 12px)!important;height:calc(100dvh - 16px)!important;max-height:calc(100dvh - 16px)!important;border-radius:20px!important}.beta-record-dialog>.orderdetailhead{height:62px;min-height:62px;padding:11px 14px!important}.beta-record-dialog>.beta-record-shell.orderdetailbody{height:calc(100% - 62px)!important;padding:9px!important}.beta-record-shell>.detailpanel,.beta-record-shell>.beta-order-form{padding:16px!important;border-radius:16px!important}.beta-record-shell>.detailpanel>.actions,.beta-record-shell>.beta-order-form>.actions{bottom:-16px!important;margin:auto -16px -16px!important;padding:13px 16px 16px!important}.beta-record-shell>.detailpanel>.actions{display:grid!important;grid-template-columns:1fr 1fr!important}.beta-record-shell>.detailpanel>.actions>*{width:100%!important}.beta-record-shell>.detailpanel>.actions button{width:100%!important}}

/* Dispatch detail: visual hierarchy matching the system's premium order sheets. */
.beta-detail-paper{gap:18px!important}.beta-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px;border-radius:18px;background:radial-gradient(circle at 92% 12%,rgba(255,255,255,.2),transparent 34%),linear-gradient(135deg,#344e68,#5b668a 55%,#755d87);color:#fff;box-shadow:0 16px 38px rgba(50,55,83,.16)}.beta-detail-identity{display:flex;align-items:center;gap:14px;min-width:0}.beta-detail-mark{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border:1px solid rgba(255,255,255,.2);border-radius:15px;background:rgba(255,255,255,.14);font-size:20px;font-weight:800}.beta-detail-identity>div{min-width:0}.beta-detail-identity .eyebrow{color:rgba(255,255,255,.65)!important}.beta-detail-identity h2{margin:5px 0 3px!important;overflow-wrap:anywhere;color:#fff!important;font-size:23px!important}.beta-detail-identity p{margin:0;color:rgba(255,255,255,.74);font-size:12px}.beta-detail-amount{flex:0 0 auto;min-width:220px;padding:15px 17px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:rgba(255,255,255,.1);text-align:right}.beta-detail-amount small,.beta-detail-amount strong,.beta-detail-amount span{display:block}.beta-detail-amount small{color:rgba(255,255,255,.68);font-size:11px}.beta-detail-amount strong{margin:5px 0 3px;color:#fff;font-size:27px;line-height:1.15}.beta-detail-amount span{color:rgba(255,255,255,.62);font-size:10px}.beta-detail-section{padding:18px;border:1px solid rgba(78,61,95,.085);border-radius:17px;background:#faf8fb}.beta-detail-section-title{display:flex;align-items:center;gap:11px;margin-bottom:14px}.beta-detail-section-title>span{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:#ece6f1;color:#665176;font-size:11px;font-weight:800}.beta-detail-section-title h3{margin:0;color:#302737;font-size:15px}.beta-detail-section-title p{margin:2px 0 0;color:#8a7f90;font-size:10px}.beta-detail-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:0}.beta-detail-facts>div{min-width:0;padding:12px 13px;border:1px solid rgba(78,61,95,.07);border-radius:13px;background:#fff}.beta-detail-facts dt{margin:0 0 5px;color:#8a8090;font-size:10px}.beta-detail-facts dd{margin:0;overflow-wrap:anywhere;color:#302737;font-size:13px;font-weight:700}.beta-detail-money{display:grid;grid-template-columns:1fr 24px 1fr 24px 1.15fr;align-items:center;gap:8px}.beta-detail-money article{padding:14px;border-radius:14px;background:#fff}.beta-detail-money article.total{background:linear-gradient(135deg,#eee8f4,#e8edf6)}.beta-detail-money small,.beta-detail-money strong{display:block}.beta-detail-money small{color:#887d8e;font-size:10px}.beta-detail-money strong{margin-top:5px;color:#33283c;font-size:18px}.beta-detail-money i{color:#9d91a3;font-size:18px;font-style:normal;text-align:center}.beta-detail-note{min-height:68px;padding:15px;border-left:3px solid #8267a0;border-radius:4px 13px 13px 4px;background:#fff;color:#43364d;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.beta-detail-receipt-grid{margin:0!important}.beta-detail-empty-receipt{display:flex;align-items:center;gap:13px;min-height:78px;padding:15px;border:1px dashed rgba(91,70,108,.18);border-radius:14px;background:#fff}.beta-detail-empty-receipt>span{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#eee9f2;color:#725c83;font-size:18px}.beta-detail-empty-receipt b,.beta-detail-empty-receipt small{display:block}.beta-detail-empty-receipt b{color:#45384f}.beta-detail-empty-receipt small{margin-top:3px;color:#918697;font-size:10px}.beta-detail-actions{gap:10px!important}.beta-detail-actions .secondary,.beta-detail-actions .danger{min-width:118px!important}
@media(max-width:650px){.beta-detail-paper{gap:11px!important}.beta-detail-hero{align-items:stretch;flex-direction:column;padding:17px}.beta-detail-amount{min-width:0;text-align:left}.beta-detail-section{padding:14px}.beta-detail-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.beta-detail-money{grid-template-columns:1fr}.beta-detail-money i{display:none}.beta-detail-money article{padding:12px}.beta-detail-actions .secondary,.beta-detail-actions .danger{min-width:0!important}}
