:root {
--nav: #102521;
--nav-2: #17362f;
--line: #d9e0e7;
--bg: #f5f7f9;
--panel: #ffffff;
--surface: #f8fafc;
--surface-2: #f1f6f4;
--text: #1f2a37;
--ink: #1f2a37;
--muted: #667085;
--brand: #18745f;
--blue: #2563a9;
--amber: #b56a12;
--red: #ba2b20;
--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 10px 24px rgba(15, 23, 42, .04);
--shadow-strong: 0 16px 36px rgba(16, 37, 33, .12);
--green-soft: #e8f4ef;
--blue-soft: #e9f2fb;
--amber-soft: #fff2df;
--red-soft: #fee7e4;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { margin: 0; background: #edf2f5; color: var(--text); }
.shell { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; }
.unified-module-bar { display: none; position: sticky; top: 0; z-index: 18; min-height: 58px; padding: 9px 14px; border-bottom: 1px solid #cfded8; background: rgba(255,255,255,.98); box-shadow: 0 8px 20px rgba(15, 23, 42, .08); align-items: center; gap: 12px; }
.unified-module-title { min-width: 0; display: grid; gap: 2px; }
.unified-module-title strong { font-size: 15px; overflow-wrap: anywhere; }
.unified-module-title span { color: var(--muted); font-size: 12px; line-height: 1.4; }
body.unified-module-mode .shell { grid-template-columns: minmax(0, 1fr); }
body.unified-module-mode aside, body.unified-module-mode .top, body.unified-module-mode .mobile-quickbar, body.unified-module-mode #kpiGrid { display: none !important; }
body.unified-module-mode .unified-module-bar:not(.auth-hidden) { display: flex; }
body.unified-module-mode .content { padding-top: 12px; }
.site-icp-footer { margin: 8px auto 0; padding: 10px 16px 2px; text-align: center; color: var(--muted); font-size: 12px; line-height: 1.7; }
.site-icp-footer a { color: var(--muted); text-decoration: none; }
.site-icp-footer a:hover { color: var(--brand); }
.site-police-beian { display: inline-flex; align-items: center; justify-content: center; gap: 4px; margin-left: 12px; vertical-align: middle; }
.site-police-beian[hidden] { display: none !important; }
.site-police-icon { width: 14px; height: 14px; border-radius: 50%; background: #d7e0e7; color: #fff; display: inline-grid; place-items: center; font-size: 10px; line-height: 1; }
.auth-hidden { display: none !important; }
.login-screen { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: linear-gradient(135deg, #f5f7f9, #e8f4ef); }
.login-card { width: min(420px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 22px; box-shadow: 0 16px 40px rgba(16,37,33,.12); }
.login-card h1 { font-size: 22px; margin-bottom: 6px; }
.login-card .field { margin-top: 12px; }
.login-card input { width: 100%; }
.login-card .btn { width: 100%; margin-top: 14px; }
.login-help { margin-top: 12px; padding: 10px; background: #f8fafc; border: 1px solid var(--line); border-radius: 6px; font-size: 12px; color: var(--muted); line-height: 1.7; }
aside { background: var(--nav); color: #f8fafc; padding: 16px 12px; position: sticky; top: 0; height: 100vh; overflow: auto; box-shadow: 6px 0 24px rgba(15, 23, 42, .12); }
.brand { padding: 6px 8px 14px; border-bottom: 1px solid rgba(255,255,255,.12); }
.brand-title { font-size: 18px; font-weight: 800; }
.brand-sub { font-size: 12px; color: #afc6bf; margin-top: 5px; line-height: 1.45; }
nav { display: grid; gap: 6px; margin-top: 12px; }
.nav-group { margin: 10px 6px 2px; color: #8fb2a8; font-size: 11px; font-weight: 800; letter-spacing: 0; }
.nav-group:first-child { margin-top: 0; }
nav button { border: 1px solid rgba(255,255,255,.1); border-left: 3px solid transparent; color: #e5eee9; background: rgba(255,255,255,.02); border-radius: 6px; padding: 10px 10px; text-align: left; font-size: 14px; cursor: pointer; transition: background .15s ease, border-color .15s ease, color .15s ease; }
nav button:hover { background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.16); }
nav button.active { background: var(--nav-2); border-color: #3d7568; border-left-color: #8fd4bd; color: #fff; font-weight: 800; }
.manager-role-nav, .standard-role-nav, .manager-nav-primary, .manager-nav-more-group { display: grid; gap: 6px; }
.manager-nav-more { position: relative; min-width: 0; }
.manager-nav-more > summary { min-height: 40px; border: 1px solid rgba(255,255,255,.1); border-left: 3px solid transparent; border-radius: 6px; padding: 9px 10px; color: #e5eee9; background: rgba(255,255,255,.02); cursor: pointer; list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
.manager-nav-more > summary::-webkit-details-marker { display: none; }
.manager-nav-more > summary span { min-width: 24px; padding: 1px 6px; border-radius: 999px; background: rgba(255,255,255,.1); color: #c9ddd6; text-align: center; font-size: 11px; }
.manager-nav-more > summary::after { content: "展开"; color: #afc6bf; font-size: 11px; font-weight: 700; }
.manager-nav-more[open] > summary { background: var(--nav-2); border-color: #3d7568; color: #fff; }
.manager-nav-more[open] > summary::after { content: "收起"; }
.manager-nav-more-panel { display: grid; gap: 10px; padding: 8px 0 0; }
.manager-nav-more-group > strong { margin: 5px 6px 1px; color: #8fb2a8; font-size: 11px; }
.permission-hidden { display: none !important; }
main { min-width: 0; max-width: 100%; overflow-x: hidden; background: #edf2f5; }
.top { background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); box-shadow: 0 8px 20px rgba(15, 23, 42, .04); padding: 12px 16px; display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 12px; align-items: center; position: sticky; top: 0; z-index: 5; }
h1 { margin: 0; font-size: 20px; }
.meta { color: var(--muted); font-size: 12px; margin-top: 4px; }
.opbar { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.account-summary { min-width: 174px; border: 1px solid #dbe7e1; border-left: 4px solid var(--brand); border-radius: 7px; background: #f8fcfa; padding: 7px 10px; display: grid; gap: 2px; line-height: 1.25; }
.account-summary .label { color: var(--muted); font-size: 11px; }
.account-summary strong { font-size: 14px; }
.account-summary span:last-child { color: var(--muted); font-size: 12px; }
.field label, .field .field-label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 4px; font-weight: 700; }
.field-wide { grid-column: 1 / -1; }
.drawer-form-section { grid-column: 1 / -1; padding: 10px 12px; border: 1px solid #dde8e2; border-radius: 7px; background: #f6faf7; color: #23483d; font-size: 13px; font-weight: 800; }
.drawer-form-section span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 600; }
#drawerContent { min-width: 0; }
input, select, button { font: inherit; }
input, select { height: 34px; border: 1px solid var(--line); border-radius: 5px; padding: 6px 8px; background: #fff; min-width: 116px; }
input, select, textarea { max-width: 100%; }
select { text-overflow: ellipsis; }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(24, 116, 95, .2); border-color: #7fb09a; }
.btn { height: 34px; border: 1px solid var(--line); background: #fff; border-radius: 5px; padding: 6px 10px; cursor: pointer; color: var(--text); transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
.btn:hover { border-color: #b8c6cf; box-shadow: 0 1px 5px rgba(15, 23, 42, .08); }
.btn:disabled { cursor: not-allowed; opacity: .62; box-shadow: none; }
.btn.primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn.blue { background: var(--blue); border-color: var(--blue); color: #fff; }
.btn.mini { height: 28px; padding: 4px 8px; font-size: 12px; }
.content { min-width: 0; max-width: 100%; padding: 16px 18px 28px; display: grid; gap: 16px; }
.view { display: none; }
.view.active { min-width: 0; max-width: 100%; display: grid; gap: 16px; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(168px, 1fr)); gap: 10px; margin-bottom: 12px; }
#financeAnomaly .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.dashboard-kpis { margin-bottom: 0; }
.kpi { background: var(--panel); border: 1px solid #dde6ee; border-top: 3px solid #c8d6df; border-radius: 7px; padding: 11px 12px; min-height: 82px; min-width: 0; text-align: left; color: inherit; box-shadow: var(--shadow); }
button.kpi { appearance: none; font: inherit; cursor: pointer; }
.kpi.kpi-link:hover { border-color: #7fb09a; box-shadow: 0 6px 16px rgba(45, 79, 63, .1); transform: translateY(-1px); }
.kpi.kpi-link:focus-visible { outline: 2px solid #7fb09a; outline-offset: 2px; }
.kpi.kpi-link[aria-pressed="true"] { border-color: var(--brand); border-top-color: var(--brand); background: #f2faf6; box-shadow: 0 0 0 2px rgba(45, 122, 91, .12); }
.kpi .label { font-size: 12px; color: var(--muted); }
.kpi .value { font-size: 22px; font-weight: 800; margin-top: 6px; line-height: 1.15; white-space: normal; overflow-wrap: anywhere; }
.kpi .hint { font-size: 12px; color: var(--muted); margin-top: 4px; }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 12px; align-items: start; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 7px; min-width: 0; max-width: 100%; overflow: hidden; box-shadow: var(--shadow); }
.view > .panel:first-child { border-color: #c9ddd6; }
.panel-head { min-height: 46px; padding: 11px 13px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); gap: 10px; background: var(--surface); }
.view > .panel:first-child > .panel-head { background: var(--surface-2); border-bottom-color: #d6e8df; }
.panel-head > * { min-width: 0; }
.panel-head h2 { margin: 0; font-size: 16px; overflow-wrap: anywhere; }
.panel-body { min-width: 0; max-width: 100%; padding: 13px; }
.panel-body > * { min-width: 0; max-width: 100%; }
.legend { display: flex; flex-wrap: wrap; gap: 8px; color: var(--muted); font-size: 12px; }
.dot { width: 9px; height: 9px; display: inline-block; border-radius: 50%; margin-right: 4px; }
.dot.occupied { background: var(--brand); }
.dot.arrival { background: #f4b04f; }
.dot.departure { background: var(--amber); }
.dot.vacant { background: #98a2b3; }
.room-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(122px, 1fr)); gap: 8px; }
#rooms .room-grid { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
#rooms .room-grid > .empty, #rooms .room-grid > .notice { grid-column: 1 / -1; }
#rooms .guest { white-space: normal; overflow-wrap: anywhere; }
#roomsPendingNotice .booking-pending { margin: 0 0 10px; }
@media (max-width: 600px) {
#rooms .room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#roomViewControls .btn { min-height: 44px; }
}
.room { border: 1px solid var(--line); border-left: 5px solid #98a2b3; background: #fff; border-radius: 6px; padding: 8px; min-height: 102px; cursor: pointer; }
.room.occupied { border-left-color: var(--brand); background: var(--green-soft); }
.room.arrival { border-left-color: #f4b04f; background: #fff7ed; }
.room.departure { border-left-color: var(--amber); background: var(--amber-soft); }
.room.selected { outline: 2px solid #1f7a65; }
.room-no { font-size: 18px; font-weight: 800; }
.room-type { display: inline-block; margin-top: 3px; border-radius: 999px; padding: 1px 7px; font-size: 11px; background: #eef7f4; color: #10634e; }
.room-status { color: var(--muted); font-size: 12px; margin-top: 2px; }
.guest { margin-top: 8px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dates { color: var(--muted); font-size: 12px; margin-top: 4px; line-height: 1.35; }
.booking-tools { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-top: 10px; padding: 8px 10px; border: 1px solid #e3ebf2; border-radius: 7px; background: #f8fbf9; }
.booking-tools strong { font-size: 13px; color: var(--ink); }
.booking-tools span { color: var(--muted); font-size: 12px; }
.booking-tool-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.booking-pending { margin: 0 10px 8px; border: 1px solid var(--line); border-radius: 7px; padding: 8px; overflow-wrap: anywhere; }
.booking-pending summary { cursor: pointer; font-weight: 700; }
.booking-pending > div { max-height: 28vh; overflow: auto; }
.booking-pending p { margin: 8px 0; font-size: 13px; }
.booking-month-label { display: flex; align-items: center; gap: 4px; font-size: 12px; white-space: nowrap; }
.booking-month-label input { width: 148px; min-width: 0; padding: 6px; }
.booking-coverage { background: #f8fbf9; }
.booking-fullscreen #bookingPendingNotice { max-height: 32vh; overflow: auto; }
.booking-date-month { display: none; }
.booking-table .month-head th > span { position: sticky; left: 100px; }
.booking-chart-panel.booking-fullscreen { position: fixed; inset: 0; z-index: 1800; margin: 0; border-radius: 0; width: 100%; height: 100vh; height: 100dvh; max-width: none; display: flex; flex-direction: column; background: #fff; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left); }
.booking-fullscreen > .panel-head, .booking-fullscreen > .booking-legend { display: none; }
.booking-fullscreen > .panel-body { flex: 0 0 auto; padding: 6px 8px; }
.booking-fullscreen > .panel-body > .meta { display: none; }
.booking-fullscreen .booking-tools { margin: 0; position: static; }
.booking-fullscreen .booking-wrap { flex: 1 1 auto; min-height: 0; max-height: none; border-radius: 0; }
.booking-fullscreen #bookingPendingNotice { flex: 0 0 auto; }
.booking-fullscreen .booking-pending { margin-bottom: 4px; }
.booking-wrap > .notice { position: sticky; left: 0; white-space: normal; overflow-wrap: anywhere; max-width: 100%; }
.booking-wrap { overflow: auto; max-height: 72vh; border-top: 1px solid var(--line); background: #fff; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; touch-action: pan-x pan-y; }
.booking-table { --booking-cell: 30px; --booking-row: 32px; --booking-font: 12px; border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; }
.booking-table th, .booking-table td { border: 1px solid #d7dde3; border-left: 0; border-top: 0; padding: 0; height: var(--booking-row); min-width: var(--booking-cell); font-size: var(--booking-font); text-align: center; white-space: nowrap; }
.booking-table th { background: #f8fafc; color: var(--text); }
.booking-table .month-head th { position: sticky; top: 0; z-index: 4; height: 34px; font-size: 16px; font-weight: 800; border-bottom: 2px solid #475467; border-top: 1px solid #d7dde3; }
.booking-table .day-head th { position: sticky; top: 34px; z-index: 4; height: 30px; font-weight: 700; }
.booking-table .room-label, .booking-table .corner { position: sticky; left: 0; z-index: 3; min-width: 96px; width: 96px; background: #fff; font-weight: 800; border-left: 1px solid #d7dde3; }
.booking-table .corner { background: #f8fafc; z-index: 6; }
.booking-table .type-row td { background: #fff4ec; font-weight: 800; font-size: 14px; height: 30px; }
.booking-table .type-row .room-label { background: #fff4ec; color: var(--text); }
.booking-table td { cursor: pointer; }
.booking-table td:hover { outline: 2px solid rgba(31, 122, 101, .32); outline-offset: -2px; }
.booking-table .booked { background: #57b894; }
.booking-table .booked.occupied { background: #57b894; }
.booking-table .booked.local.occupied { background: #76c9a8; }
.booking-table .booked.reserved { background: #f4b04f; }
.booking-table .booked.local.reserved { background: #f7c26d; }
.booking-table .booked.checked-out { background: #9b8bb8; }
.booking-table .booked.room-changed { background: #92babd; }
.booking-table .room-changed .booking-name::before { content: "换"; }
.booking-swatch.room-changed { background: #92babd; }
.room.unknown { border-left-color: #b7791f; background: #fff8e8; }
.booking-table .booked.local.checked-out { background: #b1a2ca; }
.booking-table .booked.past { background: #b7b7b7; }
.booking-table .booked.checked-out.past { background: #9b8bb8; }
.booking-table .today { box-shadow: inset 3px 0 0 #d92d20; background-image: linear-gradient(90deg, rgba(217, 45, 32, .10), rgba(217, 45, 32, 0)); }
.booking-table .month-start { border-left: 3px solid #344054; }
#bookingChartWrap .booking-conflict { background-image: repeating-linear-gradient(135deg, transparent 0 7px, rgba(180, 35, 24, .28) 7px 11px); outline: 1px solid #b42318; outline-offset: -1px; }
.booking-lane-label { display: block; color: #b42318; font-size: 11px; line-height: 14px; }
.booking-table .start { position: relative; }
.booking-name { display: inline-flex; align-items: center; gap: 3px; max-width: 98px; overflow: hidden; text-overflow: ellipsis; vertical-align: middle; background: rgba(15, 82, 66, .96); color: #fff; padding: 2px 5px; line-height: 18px; font-size: 12px; border-radius: 3px; }
.booking-table .reserved .booking-name { background: rgba(161, 82, 0, .96); }
.booking-table .checked-out .booking-name { background: rgba(91, 65, 135, .96); }
.booking-name::before { content: "住"; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; border-radius: 2px; background: rgba(255, 255, 255, .22); font-size: 11px; font-weight: 900; }
.booking-table .reserved .booking-name::before { content: "预"; }
.booking-table .checked-out .booking-name::before { content: "出"; }
.booking-day-no { display: inline-flex; align-items: center; justify-content: center; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 999px; background: rgba(255, 255, 255, .88); color: #0f513f; font-size: 11px; line-height: 18px; font-weight: 900; box-shadow: 0 1px 2px rgba(16, 24, 40, .12); vertical-align: middle; }
.booking-table .past .booking-day-no { color: #475467; background: rgba(255, 255, 255, .78); }
.booking-table .start .booking-day-no { margin-left: 3px; }
.booking-legend { position: sticky; bottom: 0; z-index: 8; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 8px 10px; border-top: 1px solid #e4eaf0; background: rgba(255, 255, 255, .96); color: var(--muted); font-size: 12px; }
.booking-legend span { display: inline-flex; align-items: center; gap: 5px; }
.booking-swatch { width: 18px; height: 10px; border-radius: 3px; border: 1px solid rgba(52, 64, 84, .16); display: inline-block; }
.booking-swatch.reserved { background: #f4b04f; }
.booking-swatch.occupied { background: #57b894; }
.booking-swatch.checked-out { background: #9b8bb8; }
.booking-swatch.local { background: repeating-linear-gradient(45deg, #76c9a8 0 6px, #f7c26d 6px 12px); }
.booking-swatch.past { background: #b7b7b7; }
.booking-swatch.today { background: linear-gradient(90deg, #d92d20 0 3px, rgba(217, 45, 32, .12) 3px); }
.side-list { display: grid; gap: 8px; }
.notice { border: 1px solid #e7edf3; border-radius: 6px; padding: 8px; display: grid; gap: 3px; }
.notice strong { font-size: 13px; }
.notice span { font-size: 12px; color: var(--muted); }
.occupancy-unscheduled-fold { border: 1px solid #e7edf3; border-radius: 6px; padding: 8px; }
.occupancy-unscheduled-fold summary { cursor: pointer; font-size: 13px; font-weight: 700; }
.occupancy-unscheduled-fold[open] summary { margin-bottom: 5px; }
.occupancy-unscheduled-fold .rowcard { padding-top: 6px; }
.occupancy-unscheduled-fold .empty { color: var(--muted); font-size: 12px; }
.attendance-policy-panel { margin: 10px 0; }
.attendance-policy-panel summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.attendance-policy-panel[open] summary { margin-bottom: 5px; }
.attendance-policy-panel .attendance-policy-conflict { color: #9f3a2c; font-weight: 700; }
.attendance-policy-scope { margin: 8px 0 10px; border-color: #cfe5db; background: #f6fcf9; }
.attendance-policy-scope > strong { color: #176b57; }
.attendance-policy-scope span strong { font-size: inherit; color: var(--text); }
.attendance-review-panel { display: grid; gap: 8px; min-width: 0; margin: 10px 0 14px; }
.attendance-review-panel .workbench-section-title { margin-bottom: 0; }
.attendance-review-panel > details.notice { min-width: 0; max-width: 100%; }
.attendance-review-panel .table-wrap { width: 100%; max-width: 100%; }
.attendance-review-panel table { min-width: 1120px; }
.swimwear-stock-panel { border: 1px solid #d6e8df; border-radius: 7px; background: #f8fdfb; padding: 10px; display: grid; gap: 8px; }
.swimwear-stock-panel[hidden] { display: none; }
.swimwear-stock-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; font-size: 13px; font-weight: 800; color: var(--text); }
.swimwear-stock-head span { color: var(--muted); font-size: 12px; font-weight: 600; }
.swimwear-stock-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 7px; }
.swimwear-stock-item { border: 1px solid #e6edf2; border-radius: 7px; background: #fff; padding: 8px; display: grid; gap: 2px; }
.swimwear-stock-item span { color: var(--muted); font-size: 12px; }
.swimwear-stock-item strong { font-size: 18px; color: var(--text); font-variant-numeric: tabular-nums; }
.redline-strip { border: 1px solid #d6e8df; border-radius: 7px; background: #f8fcfa; padding: 10px; display: grid; gap: 8px; margin: 10px 0; }
.redline-strip.redline-alert { border-color: #f2b8b5; background: #fff6f5; }
.redline-strip-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.redline-strip-head strong { font-size: 14px; }
.redline-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 7px; }
.redline-card { border: 1px solid #dfe8ef; border-left: 4px solid #22a06b; border-radius: 6px; background: #fff; padding: 8px; min-width: 0; }
.redline-card.warn { border-left-color: var(--red); background: #fff9f8; }
.redline-card .label { color: var(--muted); font-size: 12px; }
.redline-card .value { margin-top: 2px; font-size: 18px; font-weight: 900; }
.redemption-submit-summary { display: none; margin-top: 10px; border: 1px solid #cfe4da; border-left: 4px solid var(--brand); border-radius: 7px; background: #f7fcfa; padding: 10px; }
.redemption-submit-summary h4 { margin: 0 0 8px; font-size: 14px; }
.redemption-submit-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.redemption-submit-summary-item { border: 1px solid #e2ece7; border-radius: 6px; background: #fff; padding: 7px; min-width: 0; }
.redemption-submit-summary-item span { display: block; color: var(--muted); font-size: 11px; margin-bottom: 2px; }
.redemption-submit-summary-item strong { font-size: 13px; overflow-wrap: anywhere; }
.redemption-extra-summary { margin-top: 6px; border: 1px solid #e4ece8; border-radius: 7px; background: #fff; padding: 0 8px 8px; }
.redemption-extra-summary summary { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--muted); cursor: pointer; font-size: 12px; font-weight: 800; }
.redemption-risk-list { margin: 8px 0 0; padding-left: 18px; color: var(--red); font-size: 12px; line-height: 1.45; }
.tag { display: inline-block; border-radius: 999px; padding: 2px 8px; font-size: 12px; background: #eef2f6; color: #475467; white-space: nowrap; }
.tag.green { background: var(--green-soft); color: #10634e; }
.tag.blue { background: var(--blue-soft); color: #185a9d; }
.tag.amber { background: var(--amber-soft); color: #8a4d10; }
.tag.red { background: var(--red-soft); color: var(--red); }
.tag.receivable-status-pending { background: #ffead2; color: #8c2f0b; border: 1px solid #f59e0b; font-weight: 800; }
.tag.receivable-status-settled { background: #dcfce7; color: #14532d; border: 1px solid #22c55e; font-weight: 800; }
.filters { display: grid; grid-template-columns: repeat(6, minmax(120px, 1fr)); gap: 8px; margin-bottom: 10px; }
.table-wrap { width: 100%; min-width: 0; max-width: 100%; overflow: auto; max-height: min(68vh, 720px); border: 1px solid var(--line); border-radius: 7px; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; scrollbar-width: thin; background: #fff; }
.table-wrap::-webkit-scrollbar, .booking-wrap::-webkit-scrollbar, nav::-webkit-scrollbar, .kpis::-webkit-scrollbar { height: 10px; width: 10px; }
.table-wrap::-webkit-scrollbar-thumb, .booking-wrap::-webkit-scrollbar-thumb, nav::-webkit-scrollbar-thumb, .kpis::-webkit-scrollbar-thumb { background: #c8d3dc; border-radius: 999px; border: 2px solid #f8fafc; }
.table-wrap::-webkit-scrollbar-track, .booking-wrap::-webkit-scrollbar-track, nav::-webkit-scrollbar-track, .kpis::-webkit-scrollbar-track { background: #eef2f6; border-radius: 999px; }
.table-pager { min-height: 40px; display: flex; align-items: center; justify-content: flex-end; gap: 8px; padding: 7px 2px 0; color: var(--muted); font-size: 12px; }
.table-pager button { width: 36px; min-width: 36px; height: 32px; padding: 0; display: grid; place-items: center; font-size: 20px; line-height: 1; }
[data-accountant-query-pager] button, [data-accountant-independent-pager] button { width: auto; min-width: 64px; padding: 0 10px; white-space: nowrap; font-size: 12px; }
.table-pager button:disabled { opacity: .38; cursor: default; }
.table-pager span { min-width: 140px; text-align: center; }
table { border-collapse: collapse; width: max-content; min-width: 1040px; }
#financeAnomalyTable.owner-summary-table { width: 100%; min-width: 0; table-layout: fixed; }
#financeAnomalyTable.owner-summary-table th, #financeAnomalyTable.owner-summary-table td { white-space: normal; overflow-wrap: anywhere; }
#financeAnomalyTable.owner-summary-table th:nth-child(1), #financeAnomalyTable.owner-summary-table td:nth-child(1) { width: 70px; }
#financeAnomalyTable.owner-summary-table th:nth-child(2), #financeAnomalyTable.owner-summary-table td:nth-child(2) { width: 82px; }
#financeAnomalyTable.owner-summary-table th:nth-child(3), #financeAnomalyTable.owner-summary-table td:nth-child(3) { width: 24%; }
#financeAnomalyTable.owner-summary-table th:nth-child(4), #financeAnomalyTable.owner-summary-table td:nth-child(4) { width: 29%; }
th, td { border-bottom: 1px solid #e8edf2; padding: 8px 9px; text-align: left; vertical-align: top; font-size: 12px; }
th { position: sticky; top: 0; background: #f8fafc; color: #475467; z-index: 1; font-weight: 700; }
tbody tr:hover td { background: #fbfdfc; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
.summary { max-width: 420px; line-height: 1.42; }
.split { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(320px, .8fr); gap: 14px; }
.list { display: grid; gap: 8px; max-height: 58vh; overflow: auto; }
.rowcard { border-bottom: 1px solid #edf1f5; padding-bottom: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
button.module-summary-row { width: 100%; border: 0; border-bottom: 1px solid #edf1f5; background: #fff; padding: 0 0 8px; text-align: left; color: inherit; cursor: pointer; }
button.module-summary-row:hover { color: var(--brand); }
button.module-summary-row:focus-visible { outline: 2px solid #7fb09a; outline-offset: 2px; border-radius: 5px; }
.rowcard strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rowcard span { color: var(--muted); font-size: 12px; }
.record-actions { display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.mobile-card-list { display: none; gap: 8px; }
#kitchen .mobile-card-list { display: grid; }
.rehab-rule-line { grid-column: 1 / -1; border: 1px solid #d8eadf; background: #f7fbf8; color: #23483d; border-radius: 7px; padding: 9px 10px; font-size: 12px; line-height: 1.55; }
.rehab-rule-line strong { display: block; color: #10634e; font-size: 13px; margin-bottom: 2px; }
.water-mobile-card.rehab-paid { border-color: #ead7b5; background: #fffdf8; }
.water-mobile-card.rehab-gift { border-color: #d6e8df; background: #fbfefd; }
.water-today-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 8px; margin: 0 0 10px; }
.water-today-chip { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 10px; display: grid; gap: 3px; min-width: 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
button.water-today-chip { cursor: pointer; text-align: left; color: inherit; font: inherit; }
button.water-today-chip:hover { border-color: #7fb09a; box-shadow: 0 6px 16px rgba(45, 79, 63, .1); transform: translateY(-1px); }
.water-today-chip strong { font-size: 17px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.water-today-chip .chip-label { font-weight: 800; color: #26352f; font-size: 13px; }
.water-today-chip span { color: var(--muted); font-size: 12px; line-height: 1.38; overflow-wrap: anywhere; }
.water-today-chip.green { border-left: 4px solid #22a06b; }
.water-today-chip.blue { border-left: 4px solid #3182ce; }
.water-today-chip.amber { border-left: 4px solid #d28a22; }
.water-today-chip.red { border-left: 4px solid var(--red); }
.water-today-chip.active { background: #f1f8f5; border-color: #7fb09a; box-shadow: 0 0 0 2px rgba(127, 176, 154, .16); }
.water-booking-schedule { display: grid; gap: 10px; margin: 0 0 10px; }
.water-booking-schedule:empty { display: none; }
.water-schedule-day { border: 1px solid #dce7ef; border-radius: 7px; background: #fbfdfc; overflow: hidden; }
.water-schedule-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 10px; border-bottom: 1px solid #e5edf3; background: #f5faf7; }
.water-schedule-head strong { font-size: 14px; }
.water-schedule-head span { color: var(--muted); font-size: 12px; }
.water-schedule-list { display: grid; }
.water-schedule-slot { display: grid; grid-template-columns: 72px minmax(0, 1fr); border-bottom: 1px solid #edf2f5; }
.water-schedule-slot:last-child { border-bottom: 0; }
.water-schedule-time { padding: 11px 9px; background: #fff; color: #475467; font-size: 13px; font-weight: 900; font-variant-numeric: tabular-nums; border-right: 1px solid #edf2f5; }
.water-schedule-item { min-width: 0; padding: 9px 10px; display: grid; gap: 7px; background: #fff; }
.water-schedule-item.today { background: #fbfdfc; }
.water-schedule-item.cancelled { background: #fffafa; }
.water-schedule-main { display: grid; gap: 4px; min-width: 0; }
.water-schedule-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.water-schedule-title strong { overflow-wrap: anywhere; }
.water-schedule-meta { color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.water-schedule-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.water-schedule-empty { border: 1px dashed #d9e4ec; border-radius: 7px; background: #fff; color: var(--muted); padding: 12px; font-size: 13px; text-align: center; }
.water-member-tools { display: grid; gap: 8px; margin: 0 0 10px; padding: 9px; border: 1px solid #dce7ef; border-radius: 7px; background: #fbfdfc; }
.water-member-search { display: grid; gap: 4px; }
.water-member-search label { font-size: 12px; color: var(--muted); font-weight: 800; }
.water-member-search input { width: 100%; min-height: 38px; border: 1px solid #d7e2ea; border-radius: 7px; padding: 8px 10px; font: inherit; background: #fff; }
.water-member-search input:focus { outline: 2px solid rgba(31, 122, 101, .18); border-color: #8fbfaa; }
.water-member-filter-panel { border: 1px solid #d6e8df; border-radius: 8px; background: #fff; padding: 0; overflow: hidden; }
.water-member-filter-panel summary { display: flex; justify-content: space-between; gap: 8px; align-items: center; padding: 10px; cursor: pointer; font-weight: 900; color: #26352f; list-style: none; }
.water-member-filter-panel summary::-webkit-details-marker { display: none; }
.water-member-filter-panel summary strong { font-size: 14px; }
.water-member-filter-summary { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; min-width: 0; }
.water-member-filter-badge { border: 1px solid #bdd8ce; border-radius: 999px; background: #f5fbf8; color: #10634e; padding: 2px 8px; font-size: 12px; font-weight: 900; line-height: 1.5; white-space: nowrap; }
.water-member-filter-body { display: grid; gap: 10px; padding: 0 10px 10px; }
.water-filter-group { display: grid; gap: 6px; }
.water-filter-title { color: #475467; font-size: 12px; font-weight: 900; }
.water-initial-bar { display: flex; flex-wrap: wrap; gap: 6px; }
.water-initial-bar button { border: 1px solid #d7e2ea; border-radius: 999px; background: #fff; color: #475467; padding: 6px 10px; font: inherit; font-size: 12px; font-weight: 900; cursor: pointer; min-height: 32px; }
.water-initial-bar button.active { background: var(--green-soft); color: #10634e; border-color: #9fc6b6; }
.water-filter-chip-strip { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.water-filter-chip-strip .water-today-chip { display: inline-flex; align-items: center; gap: 5px; border: 1px solid #d7e2ea; border-left: 1px solid #d7e2ea; border-radius: 999px; box-shadow: none; padding: 6px 10px; min-height: 34px; background: #fff; }
.water-filter-chip-strip .water-today-chip.green,
.water-filter-chip-strip .water-today-chip.blue,
.water-filter-chip-strip .water-today-chip.amber,
.water-filter-chip-strip .water-today-chip.red { border-left: 1px solid #d7e2ea; }
.water-filter-chip-strip .water-today-chip.active { background: #f1f8f5; border-color: #7fb09a; color: #10634e; box-shadow: inset 0 0 0 1px rgba(127, 176, 154, .18); }
.water-filter-chip-strip .water-today-chip .chip-label { font-size: 12px; color: inherit; white-space: nowrap; }
.water-filter-chip-strip .water-today-chip strong { font-size: 12px; color: inherit; line-height: 1; }
.water-filter-chip-strip .water-today-chip span { display: none; }
.water-member-hint { color: var(--muted); font-size: 12px; line-height: 1.45; }
.water-more-row { display: flex; justify-content: center; padding: 10px 0 2px; }
.water-labor-pager { border-top: 1px dashed #e3ece7; margin-top: 8px; padding-top: 8px; display: grid; gap: 7px; }
.water-labor-pager-info { color: var(--muted); font-size: 12px; line-height: 1.45; text-align: center; overflow-wrap: anywhere; }
.water-labor-pager-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.water-labor-pager-actions .btn { width: 100%; justify-content: center; min-height: 36px; }
.water-mobile-card { border: 1px solid #e4eaf0; border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; padding: 10px; display: grid; gap: 8px; min-width: 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.water-mobile-card.today-priority { border-left-color: var(--brand); background: #fbfdfc; }
.water-mobile-card.due-priority { border-left-color: #d28a22; background: #fffdf8; }
.water-mobile-card.risk-priority { border-left-color: var(--red); background: #fffafa; }
.water-mobile-card.audit-priority { border-left-color: #d28a22; background: #fffdf8; }
.water-mobile-card.audit-risk { border-left-color: var(--red); background: #fffafa; }
.water-mobile-card.audit-info { border-left-color: #3182ce; background: #fbfdff; }
.water-mobile-card-head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; min-width: 0; }
.water-mobile-card-head strong { display: block; min-width: 0; overflow-wrap: anywhere; line-height: 1.35; }
.water-mobile-tags { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.water-mobile-meta { display: grid; gap: 4px; color: var(--muted); font-size: 12px; line-height: 1.45; min-width: 0; }
.water-mobile-meta span { overflow-wrap: anywhere; }
.water-mobile-meta b { color: #475467; }
.kitchen-confirm-card { padding: 8px 10px; gap: 5px; }
.kitchen-confirm-card .water-mobile-card-head { align-items: center; }
.kitchen-confirm-card .water-mobile-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px 8px; }
.kitchen-confirm-card .kitchen-confirm-note { grid-column: 1 / -1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.kitchen-confirm-card .water-mobile-actions { margin-top: 2px; }
.kitchen-customer-card { gap: 9px; }
.kitchen-customer-card .water-mobile-card-head { align-items: center; }
.kitchen-customer-meal-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.kitchen-meal-cell { border: 1px solid #e4ece8; border-radius: 7px; background: #fbfdfc; padding: 7px; display: grid; gap: 4px; min-width: 0; }
.kitchen-meal-cell.empty { background: #f8fafc; color: var(--muted); }
.kitchen-meal-cell strong { font-size: 12px; line-height: 1.2; color: #243832; }
.kitchen-meal-cell span { font-size: 11px; line-height: 1.35; color: var(--muted); overflow-wrap: anywhere; }
.kitchen-meal-detail { border-top: 1px dashed #e4ece8; padding-top: 6px; }
.kitchen-meal-detail summary { cursor: pointer; color: #475467; font-size: 12px; font-weight: 900; }
.kitchen-meal-detail-list { display: grid; gap: 6px; margin-top: 6px; }
.kitchen-meal-detail-row { border: 1px solid #edf2f4; border-radius: 7px; padding: 7px; display: grid; gap: 5px; background: #fff; }
.kitchen-meal-detail-row-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.kitchen-meal-detail-row-meta { color: var(--muted); font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.kitchen-meal-detail-row-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
#waterCustomerAccountCards .water-mobile-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
#waterCustomerAccountCards .water-mobile-meta span { border: 1px solid #e4ece8; border-radius: 6px; background: #fff; padding: 6px 7px; }
#waterCustomerAccountCards .water-mobile-meta b { display: block; font-size: 11px; margin-bottom: 2px; }
.water-card-detail { border-top: 1px dashed #e4ece8; padding-top: 6px; }
.water-card-detail summary { cursor: pointer; color: #475467; font-size: 12px; font-weight: 900; }
.water-card-detail-body { display: grid; gap: 8px; margin-top: 6px; }
.water-card-detail .water-mobile-meta { margin-top: 0; }
.water-entitlement-list { display: grid; gap: 7px; }
.water-entitlement-row { border: 1px solid #e4ece8; border-radius: 7px; background: #fff; padding: 8px; display: grid; gap: 6px; min-width: 0; }
.water-entitlement-row-head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.water-entitlement-row-head strong { color: #243832; font-size: 13px; overflow-wrap: anywhere; }
.water-entitlement-row-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; color: var(--muted); font-size: 11px; line-height: 1.4; }
.water-entitlement-row-meta span { border: 1px solid #edf1f5; border-radius: 6px; padding: 5px 6px; overflow-wrap: anywhere; }
.water-entitlement-row-meta b { display: block; color: #475467; font-size: 10px; margin-bottom: 1px; }
.water-entitlement-row-actions { display: flex; justify-content: flex-end; gap: 5px; flex-wrap: wrap; }
.labor-fee-ledger { display: grid; gap: 10px; min-width: 0; padding: 8px; }
.labor-fee-card { border: 1px solid #e1e8ed; border-left: 4px solid var(--brand); border-radius: 8px; background: #fff; display: grid; gap: 10px; padding: 10px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); min-width: 0; }
.labor-fee-card.needs-review { border-left-color: #d28a22; background: #fffdf8; }
.labor-fee-card.done { border-left-color: var(--brand); }
.labor-fee-card.rejected { border-left-color: var(--red); background: #fffafa; }
.labor-fee-card-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.labor-fee-card-title { display: grid; gap: 6px; min-width: 0; }
.labor-fee-card-title strong { font-size: 15px; line-height: 1.35; color: #1f332d; overflow-wrap: anywhere; }
.labor-fee-card-title .water-mobile-tags { justify-content: flex-start; }
.labor-fee-amount-box { min-width: 116px; border: 1px solid #edf1f5; border-radius: 7px; background: #f8fafc; padding: 7px 9px; text-align: right; display: grid; gap: 3px; }
.labor-fee-amount-box span { color: #667085; font-size: 11px; font-weight: 800; }
.labor-fee-amount-box strong { color: #1f332d; font-size: 16px; line-height: 1.2; }
.labor-fee-card-body { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr); gap: 9px; }
.labor-fee-panel { border: 1px solid #edf1f5; border-radius: 7px; background: #fbfdfc; padding: 9px; display: grid; gap: 8px; min-width: 0; }
.labor-fee-panel h4 { margin: 0; color: #26352f; font-size: 12px; font-weight: 900; }
.labor-fee-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.labor-fee-grid.wide { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.labor-fee-field { border: 1px solid #edf1f5; border-radius: 6px; padding: 6px 7px; color: #344054; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; background: #fff; min-width: 0; }
.labor-fee-field.wide { grid-column: 1 / -1; }
.labor-fee-field b { display: block; color: #667085; font-size: 10px; margin-bottom: 2px; }
.labor-fee-confirm-stack { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.labor-fee-card-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 6px; border-top: 1px dashed #e4ece8; padding-top: 8px; }
.labor-fee-empty { border: 1px dashed #d7e2ea; border-radius: 8px; padding: 14px; color: var(--muted); background: #fff; text-align: center; }
.labor-fee-scope-note { border: 1px solid #cfe3d8; border-radius: 7px; background: #f2f8f5; color: #35584a; padding: 8px 10px; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.labor-fee-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.labor-fee-filter-bar .btn { min-width: 0; max-width: 100%; white-space: normal; }
.labor-fee-filter-bar .btn.active { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 0 0 2px rgba(45, 122, 91, .12); }
.labor-fee-active-filter { color: #475467; font-size: 12px; font-weight: 800; line-height: 1.45; overflow-wrap: anywhere; }
.labor-fee-server-pager { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; color: #475467; font-size: 12px; min-height: 30px; }
.labor-fee-server-pager .btn { min-width: 76px; }
.labor-fee-loading { border: 1px dashed #cfdad5; border-radius: 8px; padding: 16px; color: #475467; background: #fbfdfc; text-align: center; }
.labor-fee-table-detail { margin-top: 2px; }
.labor-fee-table-detail summary { overflow-wrap: anywhere; }
.labor-fee-export-actions input[type="search"] { flex: 1 1 280px; min-width: min(280px, 100%); }
.accounting-total-stack { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; min-width: 0; }
.accounting-total-section { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; min-width: 0; }
.accounting-total-section > * { min-width: 0; max-width: 100%; }
.accounting-total-section-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; border-top: 1px solid #edf1f5; padding-top: 10px; }
.accounting-total-section:first-child .accounting-total-section-head { border-top: 0; padding-top: 0; }
.accounting-total-section-head h4 { margin: 0; color: #26352f; font-size: 14px; font-weight: 900; }
.labor-fee-service-row td { border-bottom: 0; }
.labor-fee-entitlement-row td { padding-top: 0; background: #fbfdfc; }
.labor-fee-entitlement-box { border: 1px solid #e4ece8; border-left: 4px solid var(--brand); border-radius: 8px; background: #fff; padding: 9px; display: grid; gap: 8px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.labor-fee-entitlement-title { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; color: #26352f; font-size: 12px; font-weight: 900; }
.labor-fee-entitlement-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.labor-fee-entitlement-grid span { border: 1px solid #edf1f5; border-radius: 6px; padding: 6px 7px; color: #344054; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; background: #fff; }
.labor-fee-entitlement-grid b { display: block; color: #667085; font-size: 10px; margin-bottom: 2px; }
.water-card-more { display: inline-grid; min-width: 86px; }
.water-card-more summary { min-height: 30px; display: grid; place-items: center; border: 1px solid #d8e2e8; border-radius: 6px; background: #fff; color: #344054; cursor: pointer; font-size: 12px; font-weight: 800; padding: 5px 8px; }
.water-card-more-body { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.water-mobile-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.water-mobile-actions .btn { min-width: 86px; }
.water-quick-deduct-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; margin: 0 0 10px; }
.water-quick-deduct-list:empty { display: none; }
.water-quick-deduct-list .water-mobile-card { border-left-color: #3182ce; }
.chart { display: grid; gap: 7px; }
.module-grid { min-width: 0; max-width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 10px; }
.module-card { border: 1px solid #e4eaf0; border-top: 3px solid #b7cbc3; border-radius: 7px; padding: 12px; background: #fff; min-height: 110px; min-width: 0; display: flex; flex-direction: column; gap: 8px; overflow: hidden; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.module-card h3 { margin: 0 0 5px; font-size: 14px; }
.module-card p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; flex: 1; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.card-actions, .section-actions { min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.card-actions .btn, .section-actions .btn { min-width: 0; max-width: 100%; white-space: normal; }
.card-actions { margin-top: auto; }
.section-actions { margin-bottom: 12px; padding: 8px; border: 1px solid #e4eaf0; border-radius: 7px; background: #f8fafc; }
.workbench-shell { border-color: #b8d9cb; overflow: hidden; box-shadow: var(--shadow-strong); }
.workbench-shell .panel-head { background: #f1f8f4; border-bottom-color: #cfe5da; }
.workbench-shell .panel-head h2 { font-size: 17px; }
.workbench-shell .panel-body { background: #fbfdfc; }
.workbench-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; margin-bottom: 12px; padding: 13px 14px; border: 1px solid #d9e9e1; border-radius: 7px; background: #f8fcfa; }
.workbench-head h3 { margin: 0 0 4px; font-size: 18px; }
.workbench-head p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.workbench-stage { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.workbench-stage button, .workbench-stage span { border: 1px solid #d7e2ea; border-radius: 999px; background: #fff; padding: 4px 8px; color: #475467; font-size: 12px; font-weight: 800; white-space: nowrap; }
.workbench-stage button { cursor: pointer; font-family: inherit; line-height: 1.2; transition: border-color .16s ease, background .16s ease, color .16s ease; }
.workbench-stage button:hover { border-color: #9fc6b6; color: #10634e; background: #f8fcfa; }
.workbench-stage button:first-child, .workbench-stage span:first-child { background: var(--green-soft); border-color: #c8e0d4; color: #10634e; }
.workbench-layout { min-width: 0; max-width: 100%; display: grid; grid-template-columns: minmax(260px, 1.15fr) minmax(240px, 1fr); gap: 14px; align-items: start; }
.workbench-block { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 12px; min-width: 0; box-shadow: var(--shadow); }
.workbench-block.primary { background: #f8fcfa; border-color: #cfe5da; border-left: 4px solid var(--brand); padding-left: 10px; }
.workbench-section-title { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; font-size: 13px; font-weight: 800; color: #26352f; }
.hr-headcount-tags { display: inline-flex; align-items: center; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.workbench-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 9px; }
.workbench-actions .btn { min-width: 0; width: 100%; }
.workbench-action-card { display: grid; gap: 8px; border: 1px solid #e2eaf0; border-radius: 7px; background: #fff; padding: 10px; min-width: 0; }
.workbench-action-card h4 { margin: 0; font-size: 13px; color: #243832; overflow-wrap: anywhere; }
.workbench-action-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.workbench-action-stats { display: flex; flex-wrap: wrap; gap: 5px; }
.workbench-action-tools { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.workbench-action-tools .btn:only-child { grid-column: 1 / -1; }
.workbench-focus { display: grid; gap: 8px; }
.workbench-recent-mini-block { grid-column: 1 / -1; background: #f8fafc; box-shadow: none; padding: 10px; }
.workbench-recent-mini { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; }
.workbench-recent-mini .todo-row { padding: 7px 8px; border-color: #e6edf2; grid-template-columns: minmax(0, 1fr) auto; }
.workbench-recent-mini .todo-row strong { font-size: 12px; }
.workbench-recent-mini .todo-row span { font-size: 11px; }
.focus-item { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 8px; align-items: start; color: #344054; font-size: 13px; line-height: 1.45; border: 1px solid #edf1f5; border-radius: 6px; background: #fff; padding: 8px; }
.focus-num { width: 22px; height: 22px; border-radius: 999px; display: grid; place-items: center; background: var(--brand); color: #fff; font-weight: 800; font-size: 12px; }
.workbench-todo-block { margin-top: 12px; background: #fffdf8; border-color: #ead7b5; border-left: 4px solid #d28a22; padding-left: 10px; }
.workbench-todo-list { display: grid; gap: 8px; }
.todo-row { border: 1px solid #edf1f5; border-radius: 6px; padding: 9px 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; background: #fff; }
.todo-row:hover { border-color: #d6e8df; background: #fbfdfc; }
.todo-row strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.todo-row span { display: block; color: var(--muted); font-size: 12px; margin-top: 2px; }
.todo-actions { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.workbench-record-head { margin-top: 12px; padding-top: 2px; color: #344054; }
.lane-count { color: var(--muted); font-size: 12px; }
.task-board { min-width: 0; max-width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(min(250px, 100%), 1fr)); gap: 14px; }
.task-col { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; min-height: 122px; min-width: 0; overflow: hidden; box-shadow: var(--shadow); }
.task-col h3 { margin: 0; padding: 10px 12px; border-bottom: 1px solid #edf1f5; border-left: 4px solid #b7cbc3; background: #f8fafc; font-size: 14px; overflow-wrap: anywhere; }
.workbench-lane-link { appearance: none; border: 0; background: transparent; padding: 0; margin: 0; color: inherit; font: inherit; font-weight: 800; cursor: pointer; }
.workbench-lane-link:hover { color: var(--brand); }
.workbench-lane-link:focus-visible { outline: 2px solid #7fb09a; outline-offset: 2px; border-radius: 4px; }
.task-col .empty { padding: 28px 12px; }
.workflow-guidance-shell { display: grid; gap: 12px; margin: 12px 0; padding: 14px; border: 1px solid #cfe2d8; border-radius: 10px; background: #f8fcfa; box-shadow: var(--shadow); }
.workflow-guidance-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.workflow-guidance-head h3 { margin: 0; color: #1f352d; font-size: 18px; }
.workflow-guidance-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.workflow-guidance-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.workflow-guidance-summary span { display: grid; gap: 2px; padding: 9px 10px; border: 1px solid #dce9e3; border-radius: 7px; background: #fff; color: #1f352d; font-size: 18px; font-weight: 800; }
.workflow-guidance-summary b { color: var(--muted); font-size: 11px; }
.workflow-guidance-list, .workflow-guidance-priority, .workflow-guidance-later { display: grid; gap: 10px; }
.workflow-guidance-priority, .workflow-guidance-later { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workflow-guidance-card { min-width: 0; display: grid; align-content: start; gap: 9px; padding: 12px; border: 1px solid #dfe7e3; border-left: 5px solid #d49b3c; border-radius: 9px; background: #fff; }
.workflow-guidance-card.risk-red { border-left-color: #c94d4d; }
.workflow-guidance-card.risk-green { border-left-color: #2f8f68; }
.workflow-guidance-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.workflow-guidance-card-head > div { display: flex; flex-wrap: wrap; gap: 5px; }
.workflow-guidance-card-head > strong { color: #475467; font-size: 11px; text-align: right; }
.workflow-guidance-card h4 { margin: 0; color: #1f302a; font-size: 15px; line-height: 1.35; overflow-wrap: anywhere; }
.workflow-guidance-primary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.workflow-guidance-primary span, .workflow-guidance-facts span { display: grid; gap: 3px; min-width: 0; padding: 8px; border-radius: 6px; background: #f6f9f8; color: #263b34; font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.workflow-guidance-primary b, .workflow-guidance-facts b { color: var(--muted); font-size: 10px; }
.workflow-guidance-next, .workflow-guidance-decision { display: grid; gap: 4px; padding: 9px; border-radius: 7px; background: #edf7f2; color: #1f4c3d; font-size: 12px; line-height: 1.5; }
.workflow-guidance-decision { background: #fff5e7; color: #68440c; }
.workflow-guidance-decision.neutral { background: #f7f8fa; color: #475467; }
.workflow-guidance-due { display: grid; grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr); gap: 5px 8px; align-items: baseline; color: #344054; font-size: 11px; }
.workflow-guidance-due b { color: var(--muted); }
.workflow-guidance-evidence, .workflow-guidance-more, .workflow-raw-details { border: 1px dashed #cfdcd6; border-radius: 7px; background: #fbfdfc; padding: 9px 10px; }
.workflow-guidance-evidence > summary, .workflow-guidance-more > summary, .workflow-raw-details > summary { cursor: pointer; color: #10634e; font-size: 12px; font-weight: 800; }
.workflow-guidance-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 9px; }
.workflow-guidance-date-note { margin: 8px 0; color: var(--muted); font-size: 11px; line-height: 1.45; }
.workflow-guidance-attribution { margin: 0; padding: 7px 8px; border: 1px solid #dfe9e4; border-radius: 6px; background: #f8fbfa; color: #475467; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.workflow-guidance-attribution.system-governance { border-color: #c9d9e8; background: #f4f8fc; color: #31536f; font-weight: 700; }
.workflow-guidance-original-list { display: grid; gap: 6px; margin-top: 8px; }
.workflow-guidance-original-row { background: #fff; }
.workflow-guidance-more { margin-top: 2px; }
.workflow-guidance-later { margin-top: 10px; }
.workflow-raw-details { margin-top: 12px; background: #fff; }
.workflow-raw-board { margin-top: 10px; }
#workflowRawDetails:not([open]) > .workflow-raw-board,
#workflowOwnerFilterNotice[hidden] { display: none !important; }
#workflowCenter [data-workflow-management-only][hidden] { display: none !important; }
#cashier .split { grid-template-columns: minmax(0, 1fr); }
.accounting-review-overview { margin-top: 10px; }
#cashier .accounting-review-overview .table-wrap { max-height: clamp(440px, 64vh, 760px); border: 1px solid var(--line); border-radius: 6px; scrollbar-width: auto; scrollbar-gutter: stable both-edges; }
#cashier .accounting-review-overview table { min-width: 960px; }
#cashier #accountingReviewTable { min-width: 2180px; }
#cashier #paymentMatchTable { min-width: 1040px; }
#cashier #receivableTrackingTable { min-width: 2380px; }
#cashier .accounting-review-overview th, #cashier .accounting-review-overview td { white-space: nowrap; }
#cashier .accounting-review-overview td.summary { min-width: 320px; max-width: 520px; white-space: normal; }
.cell-details { min-width: 56px; }
.cell-details > summary { cursor: pointer; color: var(--brand); font-size: 12px; font-weight: 700; list-style-position: inside; white-space: nowrap; }
.cell-details[open] > summary { margin-bottom: 5px; }
.cell-details-grid { display: grid; gap: 4px; min-width: 220px; padding: 7px; border: 1px solid #e1ebe6; border-radius: 6px; background: #fafdfc; }
.cell-details-grid > div { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 6px; align-items: start; font-size: 12px; line-height: 1.4; }
.cell-details-grid b { color: var(--muted); font-weight: 700; }
.cell-details-grid span { overflow-wrap: anywhere; }
#cashier .accounting-review-overview .num { min-width: 112px; }
.accounting-project-directory,
.accounting-project-board { min-width: 0; max-width: 100%; }
.accounting-project-directory[hidden],
.accounting-project-board[hidden],
.accounting-project-state[hidden] { display: none !important; }
.accounting-project-directory-head,
.accounting-project-board-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin: 2px 0 12px; padding: 13px 14px; border: 1px solid #d6e6df; border-radius: 9px; background: linear-gradient(135deg, #f6fbf8 0%, #edf6f2 100%); min-width: 0; }
.accounting-project-directory-head > *,
.accounting-project-board-head > * { min-width: 0; }
.accounting-project-eyebrow { margin: 0 0 3px; color: #2d7a5b; font-size: 11px; font-weight: 900; letter-spacing: .08em; }
.accounting-project-directory-head h4,
.accounting-project-board-head h4 { margin: 0; color: #183f33; font-size: 18px; line-height: 1.35; overflow-wrap: anywhere; }
.accounting-project-directory-head p:last-child,
.accounting-project-board-head p:last-child { margin: 5px 0 0; color: #52665f; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.accounting-project-folder-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 0; }
.accounting-project-folder-grid .accounting-project-folder { position: relative; min-height: 118px; padding: 19px 15px 13px; overflow: visible; border-color: #cbded6; border-top: 1px solid #cbded6; background: linear-gradient(180deg, #fbfefd 0%, #f1f8f5 100%); }
.accounting-project-folder-grid .accounting-project-folder::before { content: ""; position: absolute; left: 14px; top: -8px; width: 72px; height: 12px; border: 1px solid #cbded6; border-bottom: 0; border-radius: 7px 7px 0 0; background: #e5f1ec; }
.accounting-project-folder-grid .accounting-project-folder:hover::before,
.accounting-project-folder-grid .accounting-project-folder:focus-visible::before { border-color: #7fb09a; background: #d9eee5; }
.accounting-project-folder-grid .accounting-project-folder .label { color: #315248; font-size: 13px; font-weight: 900; }
.accounting-project-folder-grid .accounting-project-folder .value { color: #173f33; font-size: 21px; }
.accounting-project-folder-grid .accounting-project-folder .hint { line-height: 1.45; }
.accounting-project-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 2px 0 10px; color: var(--muted); font-size: 12px; }
.accounting-project-breadcrumb button { appearance: none; border: 0; padding: 0; background: transparent; color: #176c52; cursor: pointer; font: inherit; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
.accounting-project-breadcrumb button:focus-visible,
.accounting-project-board-head h4:focus-visible,
.accounting-project-directory-head h4:focus-visible,
.accounting-review-table-wrap:focus-visible { outline: 2px solid #7fb09a; outline-offset: 2px; }
.accounting-project-state { margin: 0 0 12px; }
.accounting-project-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.accounting-project-summary .kpi { min-height: 76px; box-shadow: none; }
.accounting-project-filter-panel { display: grid; gap: 8px; margin: 0 0 12px; padding: 10px; border: 1px solid #dce8e2; border-radius: 8px; background: #f8fcfa; min-width: 0; }
.accounting-project-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-width: 0; }
.accounting-project-filter-bar .btn { min-width: 0; max-width: 100%; white-space: normal; }
.accounting-project-filter-metric { display: block; margin-top: 2px; font-size: 10px; font-weight: 800; opacity: .82; }
.accounting-project-filter-bar .btn.active { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 0 0 2px rgba(45, 122, 91, .12); }
.accounting-project-filter-status { color: #344054; font-size: 12px; font-weight: 800; line-height: 1.5; overflow-wrap: anywhere; }
@media (max-width: 1050px) {
.accounting-project-folder-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.accounting-project-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
#cashier .table-scroll-guide,
#propertyContractStage .table-scroll-guide,
#propertyCollectionStage .table-scroll-guide { position: sticky; top: 68px; z-index: 4; display: none; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; min-height: 34px; margin: 8px 10px 0; padding: 5px 9px; border: 1px solid #b8c7d4; border-radius: 6px; background: #edf2f7; box-shadow: 0 2px 8px rgba(15, 23, 42, .08); }
#cashier .table-scroll-guide span,
#propertyContractStage .table-scroll-guide span,
#propertyCollectionStage .table-scroll-guide span { color: #475467; font-size: 12px; font-weight: 800; white-space: nowrap; }
#cashier .table-scroll-guide input[type="range"],
#propertyContractStage .table-scroll-guide input[type="range"],
#propertyCollectionStage .table-scroll-guide input[type="range"] { width: 100%; min-width: 0; height: 22px; margin: 0; padding: 0; border: 0; background: transparent; accent-color: #475467; cursor: ew-resize; }
#cashier .accounting-review-overview .table-wrap::-webkit-scrollbar { height: 16px; width: 12px; }
#cashier .accounting-review-overview .table-wrap::-webkit-scrollbar-thumb { background: #667085; border-radius: 999px; border: 3px solid #edf2f7; }
#cashier .accounting-review-overview .table-wrap::-webkit-scrollbar-track { background: #dbe3ec; border-radius: 999px; }
.finance-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 12px; padding: 8px; border: 1px solid #e4eaf0; border-radius: 7px; background: #f8fafc; }
.finance-tabs .btn.active { background: var(--brand); border-color: var(--brand); color: #fff; }
.finance-tab-hidden { display: none !important; }
.accountant-workbench-panel { min-width: 0; overflow: hidden; border-top: 4px solid var(--brand); }
.accountant-workbench-head { align-items: flex-start; }
.accountant-workbench-head h2 { margin-bottom: 4px; }
.accountant-workbench-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.accountant-primary-nav { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; padding: 10px; border: 1px solid #dce9e4; border-radius: 9px; background: #f7fbf9; }
.accountant-query-nav { position: relative; flex: 0 1 auto; min-width: 150px; }
.accountant-query-nav > summary { min-height: 32px; box-sizing: border-box; padding: 7px 10px; border: 1px solid #cfd9df; border-radius: 5px; color: #33434c; background: #fff; cursor: pointer; font-size: 12px; font-weight: 800; list-style-position: inside; }
.accountant-query-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; width: min(460px, calc(100vw - 330px)); margin-top: 7px; padding: 9px; border: 1px solid #dce5ea; border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.finance-work-detail { width: min(780px, calc(100vw - 24px)); max-height: calc(100dvh - 32px); box-sizing: border-box; padding: 20px; border: 1px solid #dce5e1; border-radius: 12px; color: var(--text); overflow-y: auto; overflow-wrap: anywhere; }
.finance-work-detail::backdrop { background: #10272280; }
.finance-work-detail-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.finance-work-detail-head h2 { margin: 0; }
.finance-work-detail article { padding: 12px 0; border-bottom: 1px solid #dce5e1; }
.finance-work-detail .finance-evidence-guide > div { padding: 5px 0; white-space: normal; }
.finance-work-detail .btn { white-space: normal; min-height: 40px; }
.accountant-workbench-kpis { margin: 16px 0; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.accountant-receivable-filters { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 10px; margin: 12px 0; }
.accountant-receivable-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.accountant-receivable-summary .accountant-receivable-status { height: auto; min-height: 72px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; white-space: normal; text-align: left; overflow-wrap: anywhere; }
.accountant-receivable-status strong { font-size: 18px; margin-top: auto; }
.accountant-receivable-status[aria-pressed="true"] { border-color: var(--brand); background: #eef8f4; color: #176c5b; }
.accountant-receivable-filters label { display: grid; gap: 6px; min-width: 0; }
.accountant-receivable-filters input, .accountant-receivable-filters select { width: 100%; min-width: 0; min-height: 40px; }
.accountant-business-panel td { white-space: normal; overflow-wrap: anywhere; }
.accountant-business-panel td details { margin-top: 6px; min-width: 160px; max-width: 280px; }
.accountant-business-panel td .btn { white-space: normal; min-width: 90px; min-height: 40px; }
.accountant-workbench-kpis .kpi { padding: 12px 14px; border-top: 1px solid #dce5e1; box-shadow: none; }
.accountant-workbench-kpis .value { font-size: 22px; }
.accountant-workbench-kpis .hint { font-size: 12px; line-height: 1.5; }
.accountant-workbench-kpis [aria-pressed="true"] { border-color: var(--brand); background: #eef7f3; box-shadow: inset 0 -3px var(--brand); }
.accountant-primary-nav [aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
.accountant-primary-nav .accountant-unassigned { margin-left: 12px; }
.accountant-primary-nav .accountant-query-nav { margin-left: auto; }
.accountant-scope-context { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; justify-content: space-between; }
.accountant-scope-context p { flex: 1 1 380px; margin: 0; line-height: 1.6; }
.accountant-scope-context .section-actions { margin: 0; padding: 0; background: transparent; border: 0; }
#accountantWorkbench [hidden] { display: none !important; }
.accountant-row-detail { margin-top: 5px; font-size: 12px; color: var(--muted); }
.accountant-row-detail summary { cursor: pointer; color: #376353; }
.accountant-memo-hint { max-width: 420px; margin-top: 4px; font-size: 12px; color: var(--muted); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; white-space: normal; }
.accountant-row-detail div { margin-top: 4px; white-space: normal; overflow-wrap: anywhere; max-width: 480px; }
#accountantWorkbench table { width: 100%; }
#accountantWorkbench td { vertical-align: top; }
#accountantWorkbench th { white-space: nowrap; }
#accountantWorkbench .task-col { margin: 0; }
.accountant-workbench-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; min-width: 0; }
.accountant-priority-panel { min-width: 0; margin: 0; }
.accountant-priority-panel .table-wrap { max-width: 100%; overflow-x: auto; }
.accountant-coordination-panel { display: grid; gap: 9px; min-width: 0; padding: 14px; border: 1px solid #dbe3e8; border-left: 4px solid #94a3ad; border-radius: 9px; background: #fbfcfd; }
.accountant-coordination-panel p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.accountant-coordination-count { color: #263f48; font-size: 28px; font-weight: 900; line-height: 1; }
.accountant-period-panel { margin: 12px 0 0; min-width: 0; }
.accountant-period-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 10px 0; }
.accountant-room-reference { margin-top: 12px; padding: 10px 12px; border: 1px dashed #cbdad3; border-radius: 8px; background: #fbfcfd; }
.accountant-room-reference > summary { cursor: pointer; color: #43545d; font-size: 13px; font-weight: 850; }
.accountant-room-reference p { margin: 9px 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
#accountantWorkbenchStatus[data-state="stale-after-error"] { background: #fff1cc; color: #8a5a00; }
#accountantWorkbenchStatus[data-state="refreshing"] { background: #e9f4ff; color: #245d86; }
#accountantWorkbenchAuthorityNotice[data-state="stale"] { border-color: #efc17c; background: #fff9ef; }
body[data-role="accountant"] [data-hide-accountant="1"] { display: none !important; }
.cashier-focused-workbench { display: grid; gap: 12px; margin: 12px 0; padding: 14px; border: 1px solid #bfd9cd; border-left: 5px solid var(--brand); border-radius: 10px; background: linear-gradient(135deg, #f8fcfa 0%, #fff 64%); box-shadow: var(--shadow); min-width: 0; max-width: 100%; }
.cashier-focus-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; min-width: 0; }
.cashier-focus-head h3 { margin: 0; color: #193b30; font-size: 20px; }
.cashier-focus-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.cashier-today-kpis { margin: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cashier-primary-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cashier-primary-actions .btn { width: 100%; min-width: 0; min-height: 40px; }
.cashier-home-action-slot { display: contents; }
.cashier-home-freshness { margin: 0; border-color: #c7ddd2; background: #f7fbf9; }
.cashier-home-freshness[data-state="stale"] { border-color: #efc17c; background: #fff9ef; }
.cashier-home-freshness[data-state="refreshing"] { border-color: #bfd5e8; background: #f5faff; }
.cashier-home-secondary { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 12px; }
.cashier-home-secondary > section { min-width: 0; padding: 11px; border: 1px solid #e1ebe5; border-radius: 8px; background: #fff; }
.cashier-home-source-list { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 8px; }
.cashier-home-recent-list { display: grid; gap: 7px; margin-top: 8px; }
.cashier-home-recent-list > div { display: grid; gap: 2px; padding: 7px 0; border-bottom: 1px solid #edf1ef; min-width: 0; }
.cashier-home-recent-list > div:last-child { border-bottom: 0; }
.cashier-home-recent-list strong, .cashier-home-recent-list span { overflow-wrap: anywhere; }
.cashier-home-recent-list span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.cashier-secondary-actions { border: 1px dashed #cbdad3; border-radius: 8px; background: #fff; padding: 9px 11px; }
.cashier-secondary-actions > summary { cursor: pointer; color: #31594b; font-size: 13px; font-weight: 800; }
.cashier-secondary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.cashier-secondary-grid .btn { width: 100%; min-width: 0; }
.cashier-today-overview { margin: 0; border-color: #d6e7df; box-shadow: none; }
.cashier-focus-note { margin: 8px 12px 0; }
.cashier-readonly-lane { margin: 10px 12px 12px; border: 1px solid #e3e9ef; border-radius: 7px; background: #fbfcfd; }
.cashier-readonly-lane[hidden] { display: none; }
.cashier-readonly-lane > summary { cursor: pointer; padding: 9px 11px; color: #5b6b7c; font-size: 13px; font-weight: 800; list-style-position: inside; }
.cashier-readonly-lane[open] > summary { border-bottom: 1px solid #e8edf2; }
.cashier-readonly-lane > .meta { margin: 8px 11px 0; }
.cashier-readonly-lane .table-wrap { margin-top: 8px; border-top: 1px solid #edf1f5; overflow: auto; max-height: min(360px, 44vh); scrollbar-gutter: stable; }
#cashierTodayOverview .table-wrap { max-height: min(430px, 52vh); margin-top: 8px; border-top: 1px solid #edf1f5; overflow: auto; scrollbar-gutter: stable; }
#cashierTodayTable { width: 100%; min-width: 880px; table-layout: fixed; }
#cashierTodayTable th:nth-child(1), #cashierTodayTable td:nth-child(1) { width: 96px; }
#cashierTodayTable th:nth-child(2), #cashierTodayTable td:nth-child(2) { width: 18%; }
#cashierTodayTable th:nth-child(3), #cashierTodayTable td:nth-child(3) { width: 112px; }
#cashierTodayTable th:nth-child(4), #cashierTodayTable td:nth-child(4) { width: 150px; }
#cashierTodayTable th:nth-child(6), #cashierTodayTable td:nth-child(6) { width: 168px; }
#cashierTodayTable th, #cashierTodayTable td { white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.cashier-row-reason { display: grid; gap: 4px; min-width: 0; color: #344054; line-height: 1.45; }
.cashier-row-reason > strong { color: #7a271a; font-size: 12px; }
.cashier-row-reason > span { color: #475467; font-size: 12px; }
.cashier-row-details { margin-top: 3px; border: 1px dashed #d7e2dc; border-radius: 6px; background: #fbfdfc; padding: 5px 7px; }
.cashier-row-details > summary { cursor: pointer; color: #10634e; font-size: 11px; font-weight: 800; }
.cashier-row-details > div { margin-top: 6px; color: #475467; font-size: 11px; line-height: 1.55; }
.cashier-history-overview { min-width: 0; max-width: 100%; }
#cashier > .split, #cashier .panel, #cashier .panel-body { min-width: 0; max-width: 100%; }
#cashierHistoryOverview .cash-history-table-wrap { width: 100%; max-width: 100%; max-height: none; overflow-x: auto; overflow-y: visible; }
#cashTable { width: 100%; min-width: 1180px; }
#cashTable th, #cashTable td { vertical-align: top; }
#cashTable th:nth-child(1), #cashTable td:nth-child(1) { width: 92px; }
#cashTable th:nth-child(2), #cashTable td:nth-child(2) { width: 120px; }
#cashTable th:nth-child(3), #cashTable td:nth-child(3) { width: 104px; }
#cashTable th:nth-child(6), #cashTable td:nth-child(6),
#cashTable th:nth-child(7), #cashTable td:nth-child(7),
#cashTable th:nth-child(8), #cashTable td:nth-child(8) { width: 92px; }
#cashTable th:nth-child(9), #cashTable td:nth-child(9) { width: 136px; }
#cashTable th:nth-child(10), #cashTable td:nth-child(10) { width: 76px; }
.cash-history-row-details { min-width: 52px; }
.cash-history-row-details > summary { cursor: pointer; color: #10634e; font-weight: 800; white-space: nowrap; }
.cash-history-detail-card { width: min(560px, 70vw); margin-top: 7px; padding: 9px; border: 1px solid #d9e5df; border-radius: 7px; background: #fbfdfc; color: #475467; font-size: 12px; line-height: 1.55; }
.cash-history-detail-card p { margin: 0 0 7px; overflow-wrap: anywhere; }
.cash-history-detail-card ol { display: grid; gap: 6px; margin: 0; padding-left: 20px; }
.cash-history-detail-card li { padding-left: 3px; }
.cash-history-detail-card li strong, .cash-history-detail-card li span { display: block; }
#cashHistoryPager { margin-top: 10px; }
#drawerContent .field[hidden],
#drawerContent .drawer-form-section[hidden] { display: none !important; }
body[data-role="cashier"] #cashier > .split, body[data-role="cashier"] #cashier .panel, body[data-role="cashier"] #cashier .panel-body { min-width: 0; max-width: 100%; }
.receivable-tracking-overview table { min-width: 2380px; }
.property-subboards { display: grid; gap: 12px; margin-top: 12px; }
.property-subboard .table-wrap { max-height: clamp(360px, 58vh, 680px); }
.property-stage { display: grid; gap: 10px; padding: 12px; border: 1px solid #e4eaf0; border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; box-shadow: var(--shadow); scroll-margin-top: 76px; }
.property-stage-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.property-stage-tools { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-left: auto; }
.property-stage-head h3 { margin: 0; font-size: 15px; color: #26352f; }
.property-stage-head p { margin: 3px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.property-stage-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 12px; align-items: start; }
#propertyContractStage > .property-stage-grid { grid-template-columns: minmax(0, 1fr); }
#propertyContractStage .property-subboard { width: 100%; max-width: 100%; }
#propertyCollectionStage > .property-stage-grid { grid-template-columns: minmax(0, 1fr); }
#propertyCollectionStage .property-subboard { width: 100%; max-width: 100%; min-width: 0; }
@media (min-width: 901px) {
body[data-role="cashier"] #kpiGrid { display: none; }
#wecomScheduleIssueTable,
#wecomAttendanceReviewTable,
#wecomScheduleFactTable,
#wecomScheduleHistoryTable { width: 100%; min-width: 0; table-layout: fixed; }
#wecomScheduleIssueTable th,
#wecomScheduleIssueTable td,
#wecomAttendanceReviewTable th,
#wecomAttendanceReviewTable td { white-space: normal; overflow-wrap: anywhere; }
#wecomScheduleIssueTable .tag,
#wecomAttendanceReviewTable .tag { white-space: normal; line-height: 1.35; }
#wecomScheduleIssueTable th:nth-child(1), #wecomScheduleIssueTable td:nth-child(1) { width: 9%; }
#wecomScheduleIssueTable th:nth-child(2), #wecomScheduleIssueTable td:nth-child(2) { width: 11%; }
#wecomScheduleIssueTable th:nth-child(3), #wecomScheduleIssueTable td:nth-child(3) { width: 18%; }
#wecomScheduleIssueTable th:nth-child(4), #wecomScheduleIssueTable td:nth-child(4) { width: 14%; }
#wecomScheduleIssueTable th:nth-child(5), #wecomScheduleIssueTable td:nth-child(5) { width: 20%; }
#wecomScheduleIssueTable th:nth-child(6), #wecomScheduleIssueTable td:nth-child(6) { width: 28%; }
#wecomAttendanceReviewTable th:nth-child(1), #wecomAttendanceReviewTable td:nth-child(1) { width: 13%; }
#wecomAttendanceReviewTable th:nth-child(2), #wecomAttendanceReviewTable td:nth-child(2) { width: 16%; }
#wecomAttendanceReviewTable th:nth-child(3), #wecomAttendanceReviewTable td:nth-child(3) { width: 24%; }
#wecomAttendanceReviewTable th:nth-child(4), #wecomAttendanceReviewTable td:nth-child(4) { width: 18%; }
#wecomAttendanceReviewTable th:nth-child(5), #wecomAttendanceReviewTable td:nth-child(5) { width: 14%; }
#wecomAttendanceReviewTable th:nth-child(6), #wecomAttendanceReviewTable td:nth-child(6) { width: 15%; }
#propertyContractStage .table-wrap { max-height: clamp(360px, 58vh, 680px); scrollbar-width: auto; scrollbar-gutter: auto; }
#propertyCollectionStage .table-wrap { max-height: clamp(360px, 58vh, 680px); scrollbar-width: auto; scrollbar-gutter: auto; }
#propertyContractTable { width: 100%; min-width: 1380px; }
#propertyRentPlanTable { width: 100%; min-width: 1660px; }
#propertyRentDepositTable { width: 100%; min-width: 1320px; }
#propertyDepositBalanceTable { width: 100%; min-width: 1120px; }
#propertyContractTable th:nth-child(2), #propertyContractTable td:nth-child(2) { min-width: 150px; }
#propertyContractTable th:nth-child(3), #propertyContractTable td:nth-child(3),
#propertyRentPlanTable th:nth-child(3), #propertyRentPlanTable td:nth-child(3) { min-width: 145px; }
#propertyContractTable th:nth-child(4), #propertyContractTable td:nth-child(4),
#propertyRentPlanTable th:nth-child(4), #propertyRentPlanTable td:nth-child(4) { min-width: 100px; }
#propertyContractTable th:nth-child(5), #propertyContractTable td:nth-child(5) { min-width: 210px; }
#propertyContractTable th:nth-child(6), #propertyContractTable td:nth-child(6) { min-width: 170px; }
#propertyContractTable th:nth-child(7), #propertyContractTable td:nth-child(7) { min-width: 190px; }
#propertyRentPlanTable th:nth-child(2), #propertyRentPlanTable td:nth-child(2) { min-width: 230px; }
#propertyRentPlanTable th:nth-child(5), #propertyRentPlanTable td:nth-child(5) { min-width: 170px; }
#propertyRentPlanTable th:nth-child(6), #propertyRentPlanTable td:nth-child(6) { min-width: 175px; }
#propertyRentPlanTable th:nth-child(7), #propertyRentPlanTable td:nth-child(7),
#propertyRentPlanTable th:nth-child(8), #propertyRentPlanTable td:nth-child(8),
#propertyRentPlanTable th:nth-child(9), #propertyRentPlanTable td:nth-child(9) { min-width: 105px; }
#propertyRentDepositTable th:nth-child(3), #propertyRentDepositTable td:nth-child(3) { min-width: 180px; }
#propertyRentDepositTable th:nth-child(4), #propertyRentDepositTable td:nth-child(4) { min-width: 120px; }
#propertyRentDepositTable th:nth-child(5), #propertyRentDepositTable td:nth-child(5) { min-width: 120px; }
#propertyRentDepositTable th:nth-child(7), #propertyRentDepositTable td:nth-child(7) { min-width: 220px; }
#propertyDepositBalanceTable th:nth-child(2), #propertyDepositBalanceTable td:nth-child(2) { min-width: 180px; }
#propertyDepositBalanceTable th:nth-child(3), #propertyDepositBalanceTable td:nth-child(3) { min-width: 120px; }
#propertyDepositBalanceTable th:nth-child(4), #propertyDepositBalanceTable td:nth-child(4),
#propertyDepositBalanceTable th:nth-child(5), #propertyDepositBalanceTable td:nth-child(5),
#propertyDepositBalanceTable th:nth-child(6), #propertyDepositBalanceTable td:nth-child(6),
#propertyDepositBalanceTable th:nth-child(7), #propertyDepositBalanceTable td:nth-child(7) { min-width: 105px; }
#propertyContractStage .table-wrap::-webkit-scrollbar { height: 14px; width: 12px; }
#propertyContractStage .table-wrap::-webkit-scrollbar-thumb { background: #667085; border-radius: 999px; border: 3px solid #edf2f7; }
#propertyContractStage .table-wrap::-webkit-scrollbar-track { background: #dbe3ec; border-radius: 999px; }
#propertyCollectionStage .table-wrap::-webkit-scrollbar { height: 14px; width: 12px; }
#propertyCollectionStage .table-wrap::-webkit-scrollbar-thumb { background: #667085; border-radius: 999px; border: 3px solid #edf2f7; }
#propertyCollectionStage .table-wrap::-webkit-scrollbar-track { background: #dbe3ec; border-radius: 999px; }
}
.property-stage.collapsed .property-stage-grid { display: none; }
.property-stage.collapsed { padding-bottom: 12px; }
.section-flash { box-shadow: 0 0 0 3px rgba(24, 116, 95, .22); border-color: var(--brand); }
.workbench-row { padding: 9px 12px; border-bottom: 1px solid #edf1f5; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; background: #fff; }
.workbench-row strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.workbench-row span { color: var(--muted); font-size: 12px; }
.workbench-more { padding: 7px 12px; color: var(--muted); font-size: 12px; }
body[data-role="frontDesk"] #roleWorkbenchPanel { border: 0; border-radius: 0; background: transparent; box-shadow: none; }
body[data-role="frontDesk"] #roleWorkbenchPanel > .panel-head,
body[data-role="frontDesk"] #roleWorkbenchPanel .workbench-head,
body[data-role="frontDesk"] #frontDeskWorkbenchDetailBlock > .workbench-section-title { display: none; }
body[data-role="frontDesk"] #roleWorkbenchPanel > .panel-body { padding: 0; }
body[data-role="frontDesk"] #frontDeskWorkbenchDetailBlock { border: 0; border-radius: 0; background: transparent; padding: 0; }
.frontdesk-home-nav { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 10px; align-items: stretch; }
.frontdesk-direct-head, .frontdesk-direct-block { grid-column: 1 / -1; min-width: 0; }
.frontdesk-direct-head { border: 1px solid #d6e8df; border-radius: 7px; background: #fbfdfc; padding: 10px 12px; }
.frontdesk-direct-head.compact { border: 0; background: transparent; padding: 0; }
.frontdesk-direct-head h2 { margin: 0 0 4px; font-size: 17px; color: #243832; }
.frontdesk-direct-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.frontdesk-direct-block { display: grid; gap: 7px; }
.frontdesk-direct-title { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; flex-wrap: wrap; color: #344054; font-size: 12px; }
.frontdesk-direct-title strong { color: #243832; font-size: 13px; }
.frontdesk-direct-title span { color: var(--muted); }
.frontdesk-type-card { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; border: 1px solid #dce7ef; border-radius: 7px; background: #f8fafc; padding: 6px; min-width: 0; }
.frontdesk-type-card.active { border-color: #8ab8a7; background: #f4fbf7; box-shadow: inset 0 0 0 1px rgba(24, 116, 95, .08); }
.frontdesk-type-main, .frontdesk-type-todo { border: 0; border-radius: 6px; background: transparent; padding: 4px 3px; text-align: left; font: inherit; cursor: pointer; color: #243832; min-width: 0; }
.frontdesk-type-main:hover, .frontdesk-type-todo:hover { background: rgba(24, 116, 95, .08); }
.frontdesk-type-main strong { display: block; font-size: 13px; margin-bottom: 4px; overflow-wrap: anywhere; }
.frontdesk-type-main span, .frontdesk-type-todo span { color: var(--muted); font-size: 11px; }
.frontdesk-type-todo { display: flex; justify-content: space-between; gap: 5px; align-items: center; border-top: 1px dashed #d9e5dd; padding-top: 5px; }
.frontdesk-type-todo b { color: #a55d00; font-size: 11px; }
.frontdesk-type-todo.is-empty { cursor: default; opacity: .68; }
.frontdesk-type-todo.is-empty:hover { background: transparent; }
.frontdesk-search { display: grid; gap: 4px; border: 1px solid #dce7ef; border-radius: 7px; background: #fff; padding: 7px 9px; min-width: 0; }
.frontdesk-search label { font-size: 11px; color: var(--muted); font-weight: 800; }
.frontdesk-search input { border: 0; padding: 0; min-height: 24px; background: transparent; font: inherit; outline: 0; }
.frontdesk-filter-banner { grid-column: 1 / -1; border: 1px solid #d6e8df; border-radius: 7px; background: #fbfdfc; padding: 8px 9px; display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; color: #344054; font-size: 12px; }
.frontdesk-filter-banner strong { color: #10634e; }
.frontdesk-todo-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.frontdesk-todo-card { border: 1px solid #dce7ef; border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; padding: 9px; text-align: left; font: inherit; color: inherit; min-width: 0; cursor: pointer; display: grid; gap: 6px; }
.frontdesk-todo-card:hover, .frontdesk-todo-card.active { border-color: #9fc6b6; border-left-color: var(--brand); background: #f8fcfa; box-shadow: 0 5px 14px rgba(45, 79, 63, .08); }
.frontdesk-todo-card.red { border-left-color: var(--red); background: #fffafa; }
.frontdesk-todo-card.amber { border-left-color: #d28a22; background: #fffdf8; }
.frontdesk-todo-card.green { border-left-color: #22a06b; background: #fbfffc; }
.frontdesk-todo-card strong { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; color: #26352f; font-size: 13px; }
.frontdesk-todo-card strong b { font-size: 20px; line-height: 1; color: #20302b; }
.frontdesk-todo-card span { color: var(--muted); font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.frontdesk-todo-card.compact { min-height: 58px; }
.frontdesk-todo-card.compact strong { align-items: center; }
.frontdesk-todo-card.compact strong b { font-size: 22px; }
.frontdesk-stage-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; grid-column: 1 / -1; }
.frontdesk-owner-tabs { display: flex; flex-wrap: wrap; gap: 6px; grid-column: 1 / -1; }
.frontdesk-owner-tab { border: 1px solid #dce7ef; border-radius: 7px; background: #fff; padding: 7px 10px; font: inherit; color: #344054; cursor: pointer; min-height: 34px; }
.frontdesk-owner-tab.active, .frontdesk-owner-tab:hover { border-color: #7fb09a; background: #f4fbf7; color: #10634e; box-shadow: inset 0 0 0 1px rgba(24, 116, 95, .08); }
.frontdesk-stage-tab { border: 1px solid #dce7ef; border-radius: 7px; background: #f8fafc; padding: 9px; text-align: left; font: inherit; color: inherit; cursor: pointer; min-width: 0; }
.frontdesk-stage-tab:hover, .frontdesk-stage-tab.active { border-color: #8ab8a7; background: #f4fbf7; box-shadow: inset 0 0 0 1px rgba(24, 116, 95, .08); }
.frontdesk-stage-tab strong { display: block; font-size: 13px; color: #243832; margin-bottom: 3px; }
.frontdesk-stage-tab span { display: block; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.frontdesk-stage-tab.compact strong { margin-bottom: 0; }
.frontdesk-home-sections { display: grid; gap: 12px; }
.frontdesk-home-section { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 10px; min-width: 0; }
.frontdesk-home-section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; margin-bottom: 9px; }
.frontdesk-home-section-head h3 { margin: 0 0 4px; font-size: 15px; color: #243832; }
.frontdesk-home-section-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.frontdesk-home-stats { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.frontdesk-home-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.frontdesk-home-records { border: 1px solid #edf1f5; border-radius: 7px; overflow: hidden; }
.frontdesk-action-groups, .frontdesk-flow-board, .frontdesk-customer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 9px; }
.frontdesk-flow-board.type-prospect { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.frontdesk-flow-board.type-pendingAdmission, .frontdesk-flow-board.type-inhouse, .frontdesk-flow-board.type-discharged { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.frontdesk-inhouse-alerts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.frontdesk-inhouse-alert { border: 1px solid #dce7ef; border-radius: 7px; background: #f8fafc; padding: 9px; min-width: 0; text-align: left; font: inherit; color: inherit; }
button.frontdesk-inhouse-alert { cursor: pointer; }
button.frontdesk-inhouse-alert:hover { border-color: #8ab8a7; box-shadow: 0 5px 14px rgba(45, 79, 63, .08); }
.frontdesk-inhouse-alert strong { display: block; font-size: 18px; line-height: 1.1; color: #20302b; }
.frontdesk-inhouse-alert span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; overflow-wrap: anywhere; }
.frontdesk-inhouse-alert.alert-warn { border-color: #f1d39a; background: #fffaf0; }
.frontdesk-inhouse-alert.alert-risk { border-color: #f1b8aa; background: #fff7f5; }
.frontdesk-inhouse-alert.alert-ok { border-color: #cfe7d8; background: #f6fbf7; }
.frontdesk-action-group, .frontdesk-flow-col, .frontdesk-customer-card { border: 1px solid #e4eaf0; border-radius: 7px; background: #fbfdfc; padding: 10px; min-width: 0; }
.frontdesk-action-group h4, .frontdesk-flow-col h4 { margin: 0 0 7px; color: #26352f; font-size: 13px; }
.frontdesk-action-group .frontdesk-home-actions { margin-bottom: 0; }
.frontdesk-flow-col { display: grid; gap: 7px; align-content: start; background: #fff; }
.frontdesk-flow-card { border: 1px solid #edf1f5; border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; padding: 8px; min-width: 0; cursor: pointer; }
.frontdesk-flow-card:hover, .frontdesk-flow-card.selected { border-color: #9fc6b6; border-left-color: var(--brand); background: #f8fcfa; }
.frontdesk-flow-card strong, .frontdesk-customer-card strong { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.frontdesk-flow-card span, .frontdesk-customer-card span { display: block; color: var(--muted); font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-customer-card { display: grid; gap: 7px; background: #fff; }
.frontdesk-customer-card { cursor: pointer; }
.frontdesk-customer-card:hover, .frontdesk-customer-card.selected { border-color: #9fc6b6; background: #f8fcfa; }
.frontdesk-customer-card .todo-actions { justify-content: flex-start; }
.frontdesk-next-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.frontdesk-quick-strip { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: 10px; }
.frontdesk-recent-list { display: grid; gap: 7px; }
.frontdesk-recent-item { border: 1px solid #edf1f5; border-radius: 7px; background: #fff; padding: 8px; min-width: 0; cursor: pointer; }
.frontdesk-recent-item:hover { border-color: #9fc6b6; background: #f8fcfa; }
.frontdesk-recent-item strong { display: block; font-size: 13px; color: #26352f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.frontdesk-recent-item span { display: block; color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-timeline { display: grid; gap: 10px; margin-top: 12px; border: 1px solid #dfe7ec; border-radius: 8px; background: #fff; padding: 10px; }
.frontdesk-timeline-head { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.frontdesk-timeline-head h4 { margin: 0 0 3px; font-size: 14px; color: #243832; }
.frontdesk-timeline-head p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.frontdesk-timeline-list { display: grid; gap: 7px; }
.frontdesk-detail-hero { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-items: start; border: 1px solid #dce9e2; border-left: 4px solid var(--brand); border-radius: 8px; background: #fbfdfc; padding: 10px; min-width: 0; }
.frontdesk-detail-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.frontdesk-detail-title h4 { margin: 0; color: #243832; font-size: 16px; line-height: 1.25; overflow-wrap: break-word; word-break: normal; }
.frontdesk-detail-tags { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; justify-content: flex-end; }
.frontdesk-detail-meta { display: grid; gap: 3px; margin-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.frontdesk-detail-meta span { overflow-wrap: anywhere; }
.frontdesk-detail-actions { justify-content: flex-start; margin-top: 0; min-width: 0; width: 100%; }
.frontdesk-detail-actions .btn { min-height: 30px; flex: 0 1 auto; }
.frontdesk-detail-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.frontdesk-summary-item { border: 1px solid #e4eaf0; border-radius: 7px; background: #f8fafc; padding: 8px; min-width: 0; }
.frontdesk-summary-item b { display: block; margin-bottom: 3px; color: #667085; font-size: 11px; line-height: 1.25; }
.frontdesk-summary-item span { display: block; color: #26352f; font-size: 13px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; }
.frontdesk-summary-item.green { border-color: #cfe7d8; background: #f6fbf7; }
.frontdesk-summary-item.amber { border-color: #f1d39a; background: #fffaf0; }
.frontdesk-summary-item.red { border-color: #f1b8aa; background: #fff7f5; }
.frontdesk-summary-item.blue { border-color: #cfe0f6; background: #f7fbff; }
.frontdesk-detail-section { display: grid; gap: 8px; border-top: 1px solid #eef2f4; padding-top: 10px; min-width: 0; }
.frontdesk-section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.frontdesk-section-head strong { color: #26352f; font-size: 13px; }
.frontdesk-section-head span { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-detail-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.frontdesk-detail-card { display: grid; gap: 8px; border: 1px solid #e1e8ee; border-radius: 8px; background: #fff; padding: 9px; min-width: 0; }
.frontdesk-detail-card h5 { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #26352f; font-size: 13px; }
.frontdesk-detail-card .meta { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.4; }
.frontdesk-detail-fields { display: grid; gap: 5px; }
.frontdesk-detail-field { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 6px; font-size: 12px; line-height: 1.45; color: #344054; }
.frontdesk-detail-field b { color: #667085; font-size: 12px; }
.frontdesk-detail-field span { color: #26352f; overflow-wrap: anywhere; white-space: pre-wrap; }
.frontdesk-detail-card .record-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.frontdesk-plan-card { display: grid; gap: 8px; border: 1px solid #dce9e2; border-left: 4px solid var(--brand); border-radius: 8px; background: #fbfdfc; padding: 10px; min-width: 0; }
.frontdesk-strategy-stack { display: grid; gap: 8px; }
.frontdesk-plan-card.saved { border-color: #cfe0f6; border-left-color: #2f80ed; background: #f7fbff; }
.frontdesk-plan-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; }
.frontdesk-plan-head strong { display: block; color: #243832; font-size: 14px; line-height: 1.35; overflow-wrap: anywhere; }
.frontdesk-plan-head span { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.frontdesk-plan-item { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 8px; min-width: 0; }
.frontdesk-plan-item b { display: block; color: #667085; font-size: 11px; margin-bottom: 3px; }
.frontdesk-plan-item span { display: block; color: #26352f; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.frontdesk-plan-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.frontdesk-card-plan { margin-top: 5px; border-top: 1px dashed #d9e5dd; padding-top: 5px; color: #344054; font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-card-plan b { color: #10634e; }
.frontdesk-followup-image { display: grid; gap: 5px; align-items: start; }
.frontdesk-followup-image strong { font-size: 12px; }
.frontdesk-followup-image .record-thumb { width: min(180px, 52vw); height: 120px; }
.frontdesk-service-card { display: grid; gap: 10px; border: 1px solid #d6e8df; border-left: 4px solid var(--brand); border-radius: 8px; background: #fbfdfc; padding: 10px; }
.frontdesk-service-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: start; }
.frontdesk-service-head strong { display: block; font-size: 14px; color: #243832; }
.frontdesk-service-head span { display: block; color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.frontdesk-service-stage-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 7px; }
.frontdesk-service-step { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 8px; display: grid; gap: 4px; min-width: 0; }
.frontdesk-service-step.done { border-color: #cfe7d8; background: #f6fbf7; }
.frontdesk-service-step.pending { border-color: #f1d39a; background: #fffaf0; }
.frontdesk-service-step.risk { border-color: #f1b8aa; background: #fff7f5; }
.frontdesk-service-step strong { color: #26352f; font-size: 12px; overflow-wrap: anywhere; }
.frontdesk-service-step span { color: var(--muted); font-size: 11px; line-height: 1.35; overflow-wrap: anywhere; }
.frontdesk-service-lines { display: grid; gap: 6px; }
.frontdesk-service-line { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 7px; align-items: start; color: #344054; font-size: 12px; line-height: 1.45; }
.frontdesk-service-line b { color: #26352f; font-size: 12px; }
.frontdesk-mobile-action-bar { display: none; }
.frontdesk-clean-shell { display: grid; grid-template-columns: minmax(230px, .75fr) minmax(0, 1.25fr); gap: 10px; align-items: start; min-height: 62vh; }
.frontdesk-clean-list, .frontdesk-clean-detail { min-width: 0; }
.frontdesk-clean-list { display: grid; gap: 7px; align-content: start; }
.frontdesk-clean-help { border: 1px dashed #cfded7; border-radius: 7px; background: #fbfdfc; padding: 10px; color: #344054; font-size: 12px; line-height: 1.5; }
.frontdesk-clean-card { border: 1px solid #e4eaf0; border-left: 4px solid #c9ddd6; border-radius: 7px; background: #fff; padding: 8px; min-width: 0; cursor: pointer; }
.frontdesk-clean-card:hover, .frontdesk-clean-card.selected { border-color: #9fc6b6; border-left-color: var(--brand); background: #f8fcfa; }
.frontdesk-clean-card strong { display: block; font-size: 13px; color: #26352f; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.frontdesk-clean-card span { display: block; color: var(--muted); font-size: 11px; line-height: 1.4; overflow-wrap: anywhere; }
.frontdesk-clean-card .frontdesk-card-main { display: grid; gap: 4px; margin-top: 4px; }
.frontdesk-clean-card .frontdesk-card-main span { color: #475467; }
.frontdesk-clean-card .todo-actions { justify-content: flex-start; margin-top: 5px; }
.frontdesk-clean-actions { margin-bottom: 10px; }
.frontdesk-card-footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 7px; }
.frontdesk-card-actions { display: flex; flex-wrap: wrap; gap: 5px; justify-content: flex-end; }
.frontdesk-card-footer .todo-actions { margin-top: 0; }
.frontdesk-priority-panel { border: 1px solid #ead7b5; border-left: 4px solid #d28a22; border-radius: 7px; background: #fffdf8; padding: 10px; margin-bottom: 10px; display: grid; gap: 8px; }
.frontdesk-priority-head { display: flex; justify-content: space-between; gap: 8px; align-items: center; flex-wrap: wrap; }
.frontdesk-priority-head strong { color: #26352f; font-size: 13px; }
.frontdesk-priority-list { display: grid; gap: 7px; }
.frontdesk-priority-card { border: 1px solid #f0dfbf; border-radius: 7px; background: #fff; padding: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.frontdesk-priority-card strong { display: block; color: #26352f; font-size: 13px; overflow-wrap: anywhere; }
.frontdesk-priority-card span { display: block; color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.hr-dashboard { border-color: #b8d9cb; background: #fbfefd; }
.hr-dashboard .panel-head { background: #f1f8f4; }
.hr-dashboard .panel-head h2 { font-size: 18px; }
.hr-dashboard-grid { display: grid; grid-template-columns: minmax(300px, .95fr) minmax(320px, 1.05fr); gap: 12px; align-items: start; margin-top: 12px; }
.hr-dashboard .kpis { margin-bottom: 0; }
.hr-headcount-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hr-list-title { margin: 0 0 8px; font-size: 13px; font-weight: 800; color: #26352f; }
.hr-priority { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 12px; border: 1px solid #edf1f5; border-radius: 6px; background: #fff; margin-bottom: 8px; }
.hr-priority strong { display: block; font-size: 13px; }
.hr-priority span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.35; }
.hr-priority.red { border-left: 4px solid var(--red); background: #fff9f7; }
.hr-priority.amber { border-left: 4px solid #d28a22; background: #fffdf8; }
.hr-priority.green { border-left: 4px solid #45a273; }
.hr-priority-next { display: flex; align-items: center; justify-content: flex-end; gap: 7px; }
.hr-priority-next .tag { margin: 0; white-space: nowrap; }
.hr-data-status { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.hr-data-status > div { display: grid; gap: 3px; min-width: 0; }
.hr-data-status.ready { border-color: #b9ddcd; background: #f5fbf8; }
.hr-data-status.loading { border-color: #d9e5ee; background: #f8fafc; }
.hr-data-status.error { border-color: #f0c2b9; background: #fff7f5; }
.hr-data-status.error strong { color: var(--red); }
.hr-today-list { display: grid; gap: 8px; }
.hr-today-item { width: 100%; min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; border: 1px solid #e4eaf0; border-left: 4px solid #b8c9c1; border-radius: 7px; background: #fff; padding: 10px 11px; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.hr-today-item:hover, .hr-today-item:focus-visible { border-color: #8ab8a7; border-left-color: var(--brand); background: #f8fcfa; outline: 0; box-shadow: 0 5px 14px rgba(45, 79, 63, .08); }
.hr-today-item.has-work { border-left-color: #d28a22; }
.hr-today-item.load-error { border-left-color: var(--red); background: #fff8f6; }
.hr-today-rank { align-self: start; min-width: 30px; border-radius: 999px; background: #eef5f1; color: #20634f; padding: 3px 7px; font-size: 11px; font-weight: 900; text-align: center; }
.hr-today-copy { min-width: 0; }
.hr-today-copy strong { display: block; color: #26352f; font-size: 13px; overflow-wrap: anywhere; }
.hr-today-copy span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.hr-today-count { white-space: nowrap; align-self: start; }
.hr-home-footer { margin-top: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid #e7eee9; padding-top: 10px; }
.hr-home-footer span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.import-panel { display: none; margin: 8px 0 12px; border: 1px solid #d7e7de; background: #fbfefd; border-radius: 7px; padding: 10px; }
.import-panel.active { display: block; }
.import-summary { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-bottom: 8px; }
.import-panel .table-wrap { max-height: 280px; border: 1px solid #edf1f5; border-radius: 6px; }
.import-panel table { min-width: 980px; }
.import-note { color: var(--muted); font-size: 12px; line-height: 1.45; margin: 6px 0 0; }
body[data-role="owner"] #kpiGrid { display: none !important; }
.owner-command-strip { border: 1px solid #d6e7df; border-radius: 8px; background: #f7fbf9; padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.owner-command-main { display: grid; gap: 5px; min-width: 0; }
.owner-command-main strong { font-size: 17px; color: #20382f; overflow-wrap: anywhere; }
.owner-command-main span { color: var(--muted); font-size: 12px; line-height: 1.45; }
.owner-command-score { min-width: 112px; border: 1px solid #dceae3; border-radius: 8px; background: #fff; padding: 9px 10px; text-align: center; }
.owner-command-score .value { display: block; font-size: 24px; font-weight: 900; line-height: 1.1; color: #bf3f2f; }
.owner-command-score span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.finance-close-overview { border-left: 4px solid #2f7d62; }
.finance-close-overview .kpis { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.owner-focus-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.owner-stage { border: 1px solid #e4eaf0; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 10px; min-width: 0; }
.owner-stage-risk { border-color: #ead7b5; border-left: 4px solid #d28a22; background: #fffdf8; }
.owner-stage .workbench-section-title { margin: 0; }
.owner-stage-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
.owner-stage-head .workbench-section-title { min-width: 0; }
.owner-account-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.owner-account-card { display: grid; gap: 5px; min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #f8fbfa; }
.owner-account-card span, .owner-account-card small { color: var(--muted); }
.owner-account-card strong { overflow-wrap: anywhere; font-size: 16px; }
.review-board { display: grid; gap: 10px; margin-top: 10px; }
.review-lanes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.review-lane { border: 1px solid #e2e9ef; border-radius: 8px; background: #fbfdfc; padding: 10px; display: grid; gap: 8px; align-content: start; min-width: 0; }
.review-lane h3 { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
.review-card { border: 1px solid #e4eaf0; border-radius: 7px; background: #fff; padding: 9px; display: grid; gap: 7px; min-width: 0; }
.review-card strong { font-size: 13px; color: var(--text); overflow-wrap: anywhere; }
.review-card .meta { margin: 0; }
.review-card .review-diff { color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.review-card .record-actions { justify-content: flex-start; }
.owner-alert-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; }
.owner-alert-item { border: 1px solid #edf1f5; border-radius: 7px; background: #fff; padding: 10px; display: grid; gap: 4px; min-width: 0; text-align: left; color: inherit; font: inherit; }
button.owner-alert-item { cursor: pointer; }
button.owner-alert-item:hover, button.owner-alert-item.selected { border-color: #7fb09a; box-shadow: 0 6px 16px rgba(45, 79, 63, .1); transform: translateY(-1px); }
.owner-alert-item strong { font-size: 13px; }
.owner-alert-item .value { font-size: 20px; font-weight: 800; }
.owner-alert-item span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.owner-board { grid-template-columns: repeat(2, minmax(min(320px, 100%), 1fr)); }
.owner-board-compact { margin: 0; }
.owner-board .task-col { min-height: 170px; }
.owner-board .workbench-row { padding: 9px 0; }
.owner-trace-details { border: 1px dashed #d8e3dd; border-radius: 7px; background: #fbfefd; margin-top: 0; padding: 9px 10px; }
.owner-trace-details summary { cursor: pointer; color: #10634e; font-size: 12px; font-weight: 800; }
.manager-ops-panel .panel-body { display: grid; gap: 12px; }
.manager-section-nav { position: relative; z-index: 4; display: grid; grid-template-columns: minmax(150px, auto) minmax(0, 1fr) auto; gap: 8px; align-items: stretch; padding: 8px; border: 1px solid #e1e8ed; border-radius: 8px; background: #f8fafb; }
.manager-section-current { min-width: 0; display: grid; align-content: center; gap: 1px; padding: 0 6px; }
.manager-section-current span { color: var(--muted); font-size: 11px; }
.manager-section-current strong { color: #20302b; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manager-section-links { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.manager-section-links button, .manager-section-more summary, .manager-section-more-group button { min-height: 36px; border: 1px solid #d8e2e8; border-radius: 6px; background: #fff; color: #344054; padding: 7px 9px; cursor: pointer; font-size: 12px; font-weight: 700; }
.manager-section-links button:hover, .manager-section-more summary:hover, .manager-section-more-group button:hover { border-color: #8ab8a7; color: #10634e; background: #f8fcfa; }
.manager-section-more { position: relative; min-width: 72px; }
.manager-section-more > summary { height: 100%; min-height: 36px; list-style: none; display: grid; place-items: center; }
.manager-section-more > summary::-webkit-details-marker { display: none; }
.manager-section-more[open] > summary { border-color: #7fb09a; color: #10634e; background: #eef7f4; }
.manager-section-more-panel { position: absolute; top: calc(100% + 8px); right: 0; width: min(760px, calc(100vw - 286px)); max-height: min(68vh, 620px); overflow: auto; z-index: 25; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 12px; border: 1px solid #cedbd5; border-radius: 9px; background: #fff; box-shadow: var(--shadow-strong); }
.manager-section-more-group { display: grid; align-content: start; gap: 6px; min-width: 0; }
.manager-section-more-group > strong { color: #52606d; font-size: 12px; padding: 2px 3px; }
.manager-section-more-group button { width: 100%; text-align: left; overflow-wrap: anywhere; }
.manager-stage-note { margin: 5px 0 10px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.manager-register-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 9px; border: 1px solid #d6e6df; border-radius: 8px; background: #f6fbf9; }
.manager-register-more { position: relative; }
.manager-register-more > summary { min-height: 30px; display: inline-flex; align-items: center; padding: 5px 10px; border: 1px dashed #8ab8a7; border-radius: 6px; background: #fff; color: #10634e; cursor: pointer; list-style: none; font-size: 12px; font-weight: 700; }
.manager-register-more > summary::-webkit-details-marker { display: none; }
.manager-register-more[open] > summary { border-style: solid; background: #eef7f4; }
.manager-register-more-panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 24; display: grid; grid-template-columns: repeat(2, minmax(140px, 1fr)); gap: 6px; width: max-content; max-width: min(520px, calc(100vw - 300px)); padding: 10px; border: 1px solid #cedbd5; border-radius: 8px; background: #fff; box-shadow: var(--shadow-strong); }
.manager-register-more-panel button { width: 100%; text-align: left; }
/* 评审 P1：375px 视口下 calc(100vw - 300px) 只剩 75px，而网格要 2×140px——
       窄屏改单列并按视口留边钳宽，弹层不再被挤出可视区。 */
@media (max-width: 560px) {
.manager-register-more-panel { grid-template-columns: 1fr; max-width: calc(100vw - 32px); left: auto; right: 0; }
}
.manager-all-departments { margin-top: 9px; border-top: 1px solid #e8edf1; padding-top: 8px; }
.manager-all-departments > summary { cursor: pointer; color: #475467; font-size: 12px; font-weight: 800; list-style-position: inside; }
.manager-all-departments[open] > summary { margin-bottom: 8px; }
.manager-detail-actions { justify-content: flex-end; margin: 0 9px 8px; }
.manager-fold summary.workbench-section-title { cursor: pointer; list-style: none; margin: 0; }
.manager-fold summary.workbench-section-title::-webkit-details-marker { display: none; }
.manager-role-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.manager-role-card { border: 1px solid #e4eaf0; border-radius: 8px; background: #fff; padding: 10px; display: grid; gap: 8px; min-width: 0; }
.manager-role-card h3 { margin: 0; font-size: 14px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.manager-role-card .meta { display: block; line-height: 1.45; }
.manager-mini-list { display: grid; gap: 6px; }
.manager-mini-list span { display: flex; justify-content: space-between; gap: 8px; border-top: 1px dashed #edf1f5; padding-top: 5px; color: var(--muted); font-size: 12px; }
.manager-flow-names { color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.manager-dept-entry-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(148px, 1fr)); gap: 8px; }
.manager-dept-entry { border: 1px solid #dce7ef; border-radius: 7px; background: #fff; padding: 10px; min-height: 72px; text-align: left; color: inherit; font: inherit; display: grid; gap: 4px; align-content: start; min-width: 0; }
.manager-dept-entry.has-issues { border-color: #efcf9f; background: #fffbf3; }
.manager-dept-entry.is-clear { border-color: #e7ecef; background: #fbfcfd; }
.manager-dept-entry:hover { border-color: #8ab8a7; border-left-color: var(--brand); background: #f8fcfa; box-shadow: 0 5px 14px rgba(45, 79, 63, .08); }
.manager-dept-entry strong { color: #20302b; font-size: 14px; line-height: 1.25; overflow-wrap: anywhere; }
.manager-dept-entry span { color: var(--muted); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.manager-overview-stage { border-color: #dce6e1; background: #fbfefd; }
.manager-overview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.manager-overview-card { position: relative; border: 1px solid #e1e7eb; border-radius: 8px; background: #fff; padding: 12px; display: grid; gap: 5px; text-align: left; color: inherit; font: inherit; min-width: 0; cursor: pointer; }
.manager-overview-card:hover { border-color: #87b5a5; box-shadow: 0 6px 16px rgba(45, 79, 63, .09); transform: translateY(-1px); }
.manager-overview-card.tone-amber { border-color: #efcf9f; background: #fffbf3; }
.manager-overview-card.tone-red { border-color: #efb2ad; background: #fff8f7; }
.manager-overview-card.tone-green { border-color: #cfe3d9; background: #f8fcfa; }
.manager-overview-card strong { color: #20302b; font-size: 13px; line-height: 1.3; }
.manager-overview-card .value { color: #172033; font-size: 26px; font-weight: 900; line-height: 1.08; font-variant-numeric: tabular-nums; }
.manager-overview-card span { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.manager-dept-card-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.manager-dept-entry .manager-dept-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.manager-dept-entry .manager-dept-value { font-size: 24px; font-weight: 900; color: #172033; line-height: 1; }
.manager-dept-entry .manager-dept-meta { display: grid; gap: 2px; }
.manager-dept-entry .manager-dept-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-top: 4px; }
.manager-dept-entry .manager-dept-metrics span { border: 1px solid #edf1f5; border-radius: 6px; background: #fbfdff; padding: 5px 6px; display: flex; justify-content: space-between; gap: 6px; }
.manager-dept-entry .manager-dept-metrics em { color: var(--muted); font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.manager-dept-entry .manager-dept-metrics b { color: #20302b; font-variant-numeric: tabular-nums; }
.manager-employee-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 8px; }
.manager-employee-card { border: 1px solid #e4eaf0; border-radius: 8px; background: #fff; padding: 10px; display: grid; gap: 7px; min-width: 0; }
.manager-employee-card h3 { margin: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 14px; }
.manager-employee-card .meta { margin: 0; line-height: 1.45; overflow-wrap: anywhere; }
.manager-employee-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.manager-employee-latest { border-top: 1px dashed #e7edf3; padding-top: 6px; color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.care-archive-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 9px; }
.care-archive-card { border: 1px solid #dce7ef; border-left: 4px solid #9fc6b6; border-radius: 8px; background: #fff; padding: 10px; display: grid; gap: 8px; min-width: 0; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.care-archive-card.active { border-color: #8ab8a7; border-left-color: var(--brand); background: #f8fcfa; box-shadow: 0 0 0 2px rgba(127, 176, 154, .16); }
.care-archive-card.risk { border-left-color: var(--red); background: #fffafa; }
.care-archive-card.warn { border-left-color: #d28a22; background: #fffdf8; }
.care-archive-open { border: 0; background: transparent; color: inherit; font: inherit; text-align: left; padding: 0; cursor: pointer; display: grid; gap: 5px; min-width: 0; }
.care-archive-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; min-width: 0; }
.care-archive-head strong { color: #20302b; font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
.care-archive-head span { color: var(--muted); font-size: 12px; line-height: 1.35; text-align: right; flex: 0 0 auto; }
.care-archive-status { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
.care-archive-status span, .care-archive-meta span { border: 1px solid #edf1f5; border-radius: 7px; background: #fbfdfc; padding: 7px; color: #475467; font-size: 12px; line-height: 1.35; min-width: 0; overflow-wrap: anywhere; }
.care-archive-status b, .care-archive-meta b { display: block; color: #26352f; font-size: 13px; margin-bottom: 2px; }
.care-archive-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.care-archive-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.care-archive-detail { margin-top: 10px; }
.care-archive-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 8px; }
.care-archive-section { border: 1px solid #e4eaf0; border-radius: 8px; background: #fff; padding: 10px; display: grid; gap: 7px; min-width: 0; }
.care-archive-section h4 { margin: 0; color: #26352f; font-size: 14px; }
.care-archive-section p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.care-archive-timeline { display: grid; gap: 7px; }
.care-archive-day { border: 1px solid #edf1f5; border-radius: 8px; background: #fbfdfc; padding: 8px; display: grid; gap: 6px; }
.care-archive-day strong { color: #26352f; font-size: 13px; }
.care-archive-day span { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.care-archive-day-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
.care-archive-day-actions:empty { display: none; }
.care-risk-reasons { display: flex; flex-wrap: wrap; gap: 5px; align-items: flex-start; }
.care-risk-reason { display: inline-flex; max-width: 100%; align-items: center; border: 1px solid #f1b8aa; border-radius: 999px; background: #fff4f2; color: var(--red); padding: 3px 8px; font-size: 12px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
.care-review-note { display: inline-flex; max-width: 100%; border: 1px solid #f3ddaa; border-radius: 999px; background: #fff8e6; color: #9a6500; padding: 3px 8px; font-size: 12px; font-weight: 800; line-height: 1.35; overflow-wrap: anywhere; white-space: normal; }
@media (max-width: 760px) {
.care-archive-grid, .care-archive-detail-grid { grid-template-columns: 1fr; }
.care-archive-meta { grid-template-columns: 1fr; }
.care-archive-status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operation-health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operation-health-card { padding: 9px; }
.operation-health-card .value { font-size: 20px; }
}
@media (max-width: 430px) {
.operation-health-grid { grid-template-columns: 1fr; }
}
.hr-information-architecture, .hr-information-architecture .panel-body, .hr-section-panel { min-width: 0; max-width: 100%; }
.hr-information-architecture .panel-body { display: block !important; }
.hr-section-tabs { position: sticky; top: 8px; z-index: 8; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; margin: 0 0 12px; padding: 7px; border: 1px solid #dce7e1; border-radius: 8px; background: rgba(248, 252, 250, .97); box-shadow: 0 5px 16px rgba(43, 72, 61, .06); }
.hr-section-tabs button { min-width: 0; min-height: 38px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: #344054; padding: 7px 6px; font: inherit; font-size: 12px; font-weight: 800; line-height: 1.25; cursor: pointer; overflow-wrap: anywhere; }
.hr-section-tabs button:hover { border-color: #c8ddd4; background: #fff; }
.hr-section-tabs button.active, .hr-section-tabs button[aria-selected="true"] { border-color: #79ad98; background: var(--brand); color: #fff; box-shadow: 0 3px 9px rgba(24, 116, 95, .18); }
.hr-section-panel { display: grid; gap: 12px; }
.hr-section-panel[hidden] { display: none !important; }
.hr-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; border-bottom: 1px solid #e4ece8; padding: 2px 1px 10px; }
.hr-section-head h3 { margin: 0; color: #26352f; font-size: 17px; }
.hr-section-head p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.hr-action-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; border: 1px solid #dce9e3; border-radius: 7px; background: #f7fbf9; padding: 10px; }
.hr-roster-overview { min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid #d6e8df; border-radius: 7px; background: #f9fdfb; padding: 12px; margin-bottom: 0; }
.hr-roster-overview .table-wrap { width: 100%; max-width: 100%; max-height: 420px; overflow: auto; scrollbar-gutter: stable; }
.hr-roster-overview table { min-width: 980px; }
.hr-key-table-wrap { position: relative; border: 1px solid #e3e9ed; border-radius: 6px; background: #fff; scrollbar-width: auto; }
.hr-key-table-wrap::-webkit-scrollbar, .hr-complete-data .table-wrap::-webkit-scrollbar { height: 14px; width: 11px; }
.hr-key-table-wrap::-webkit-scrollbar-thumb, .hr-complete-data .table-wrap::-webkit-scrollbar-thumb { background: #77869a; border: 3px solid #edf2f7; border-radius: 999px; }
.hr-key-table-wrap::-webkit-scrollbar-track, .hr-complete-data .table-wrap::-webkit-scrollbar-track { background: #e4eaf0; border-radius: 999px; }
.hr-complete-data { background: #fff; }
.hr-complete-data > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.hr-complete-data .table-wrap { width: 100%; max-width: 100%; max-height: 430px; overflow: auto; scrollbar-gutter: stable; }
.hr-complete-data table { min-width: 1180px; }
.table-scroll-note { margin: 8px 0 6px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.hr-detail-row > td, .hr-record-detail-row > td { padding: 12px !important; background: #f8fbf9 !important; }
.hr-detail-row[hidden], .hr-record-detail-row[hidden] { display: none !important; }
.hr-record-detail { border-top: 1px solid #dce8e2; padding: 12px; }
.hr-record-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.hr-record-detail-head strong { color: #26352f; font-size: 13px; }
.hr-record-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.hr-record-detail-field { min-width: 0; border: 1px solid #e4e9ed; border-radius: 6px; background: #fff; padding: 7px 8px; }
.hr-record-detail-field b, .hr-record-detail-field > span { display: block; margin-bottom: 3px; color: #667085; font-size: 11px; }
.hr-record-detail-field > strong, .hr-record-detail-field span + span { display: block; color: #26352f; font-size: 12px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.hr-record-audit { display: grid; gap: 3px; margin-top: 8px; border-top: 1px solid #dce8e2; padding-top: 8px; }
.hr-record-audit strong { color: #26352f; font-size: 12px; }
.hr-record-audit span { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.hr-record-detail-empty { color: var(--muted); font-size: 12px; }
#hrHandoverTable, #hrSavedRecordsTable { width: 100%; min-width: 0; table-layout: fixed; }
#hrHandoverTable td, #hrSavedRecordsTable td { white-space: normal; overflow-wrap: anywhere; }
.hr-attendance-source-status { margin-bottom: 10px; }
.hr-attendance-range { margin-top: 10px; }
.hr-purchase-request-details { margin-bottom: 12px; background: #fff; }
.hr-purchase-request-details > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.hr-purchase-request-details > .section-actions { margin: 8px 0; }
.hr-departed-history-panel { margin-top: 12px; background: #fff; }
.hr-departed-history-panel[hidden] { display: none !important; }
.hr-departed-history-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.hr-departed-history-head > div { display: grid; gap: 3px; }
.hr-departed-history-panel .table-wrap { max-height: 280px; }
.hr-departed-history-panel table { min-width: 980px; }
.stock-balance-overview { border: 1px solid #d6e8df; border-radius: 7px; background: #f9fdfb; padding: 12px; margin-bottom: 12px; }
.stock-balance-overview .table-wrap { max-height: 340px; }
.stock-balance-overview table { min-width: 880px; }
.lead-record-overview, .room-stay-overview, .rehab-record-overview, .gift-entitlement-overview, .water-account-overview, .water-file-overview, .water-sale-overview, .water-coupon-overview, .water-goods-overview, .water-booking-overview, .water-service-overview, .water-sanitation-overview { min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid #d6e8df; border-radius: 7px; background: #f9fdfb; padding: 12px; margin-bottom: 12px; }
.lead-record-overview .table-wrap, .room-stay-overview .table-wrap, .rehab-record-overview .table-wrap, .gift-entitlement-overview .table-wrap, .water-account-overview .table-wrap, .water-file-overview .table-wrap, .water-sale-overview .table-wrap, .water-coupon-overview .table-wrap, .water-goods-overview .table-wrap, .water-booking-overview .table-wrap, .water-service-overview .table-wrap, .water-sanitation-overview .table-wrap { width: 100%; max-width: 100%; max-height: 360px; }
#leads .panel-body, #rehab .panel-body, #water .panel-body, #kitchen .panel-body, #inventory .panel-body, #hr .panel-body { display: grid; gap: 12px; }
#leads .module-grid, #rehab .module-grid, #water .module-grid, #kitchen .module-grid, #inventory .module-grid, #hr .module-grid { order: 1; }
#leads .lead-record-overview, #rehab .gift-entitlement-overview, #water .water-account-overview, #water .water-file-overview, #water .water-sale-overview, #water .water-coupon-overview, #water .water-goods-overview, #water .gift-entitlement-overview, #water .water-booking-overview, #water .water-service-overview, #water .water-sanitation-overview, #inventory .stock-balance-overview, #hr .hr-roster-overview { order: 2; }
#water .water-account-overview { order: 1; }
#water .module-grid { order: 2; }
#water .water-goods-overview, #water .water-booking-overview, #water .water-sanitation-overview { order: 3; }
#water .water-detail-group { order: 4; }
#rehab .rehab-record-overview { order: 3; }
.lead-record-overview table { min-width: 1160px; }
.owner-lead-dashboard { order: 0; display: grid; gap: 12px; }
.owner-lead-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
.owner-lead-list { display: grid; gap: 8px; }
.owner-lead-row { border: 1px solid #edf1f5; border-radius: 7px; background: #fff; padding: 10px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; color: inherit; font: inherit; text-align: left; width: 100%; }
button.owner-lead-row { cursor: pointer; }
button.owner-lead-row:hover, button.owner-lead-row.selected { border-color: #7fb09a; box-shadow: 0 6px 16px rgba(45, 79, 63, .1); transform: translateY(-1px); }
.owner-lead-row strong { display: block; color: #24362e; font-size: 13px; overflow-wrap: anywhere; }
.owner-lead-row span { display: block; color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.owner-lead-row .meta { margin-top: 4px; color: #516172; }
.owner-lead-pipeline { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.owner-lead-detail-stage { grid-column: 1 / -1; }
.room-stay-overview table { min-width: 1180px; }
.rehab-record-overview table { min-width: 1080px; }
.gift-entitlement-overview table { min-width: 1180px; }
.water-account-overview table { min-width: 1180px; }
.water-file-overview table { min-width: 1320px; }
.water-sale-overview table { min-width: 1240px; }
.water-coupon-overview table { min-width: 1180px; }
.water-goods-overview table { min-width: 1120px; }
.water-booking-overview table { min-width: 1180px; }
.water-service-overview table { min-width: 1180px; }
.water-sanitation-overview table { min-width: 1180px; }
.water-detail-group { border: 1px dashed #c9ddd3; border-radius: 7px; background: #fbfdfc; padding: 10px; margin-bottom: 12px; }
.water-detail-group summary { cursor: pointer; font-weight: 800; color: #244237; }
.water-detail-group .table-wrap { margin-top: 10px; }
#rehabUnifiedPanel .mobile-card-list, #rehabRights .mobile-card-list, #waterRights .mobile-card-list, #waterCouponPage .mobile-card-list, #waterServicePage .mobile-card-list, #waterGoodsPage .mobile-card-list, #waterExceptionPage .mobile-card-list { display: grid; }
.water-quick-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.water-quick-actions .btn { width: 100%; min-height: 42px; white-space: normal; font-weight: 800; }
.water-action-note { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.water-unified-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(260px, .85fr); gap: 12px; align-items: start; margin-top: 10px; }
.water-unified-main, .water-unified-side { display: grid; gap: 10px; min-width: 0; }
.water-unified-panel .owner-alert-grid { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.water-reminder-groups { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .85fr); gap: 10px; align-items: start; margin-bottom: 10px; }
.water-reminder-group { display: grid; gap: 7px; min-width: 0; }
.water-reminder-title { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; font-size: 13px; font-weight: 800; color: #26352f; }
.water-reminder-title span { color: var(--muted); font-size: 12px; font-weight: 700; }
.water-reminder-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; min-width: 0; }
.water-reminder-group.required .owner-alert-item { border-color: #ead7b5; background: #fffdf8; }
.water-reminder-group.maintenance .owner-alert-item { border-color: #d6e8df; background: #fbfefd; }
.water-unified-panel .workbench-section-title { align-items: center; }
.water-unified-panel .water-quick-actions { grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); }
.water-unified-panel .water-quick-deduct-list { margin-bottom: 0; }
.rehab-flow-customer-list { gap: 10px; }
.rehab-flow-card { border: 1px solid #d6e8df; border-left: 4px solid #1f7a65; border-radius: 8px; background: #fff; padding: 11px; display: grid; gap: 10px; min-width: 0; }
.rehab-flow-card.clickable { cursor: pointer; }
.rehab-flow-card.clickable:hover, .rehab-flow-card.selected { border-color: #7fb09a; box-shadow: 0 8px 18px rgba(45, 79, 63, .1); }
.rehab-flow-card.selected { background: #fbfefd; }
.rehab-flow-card.risk { border-left-color: #d94a38; background: #fffafa; }
.rehab-flow-card.warn { border-left-color: #e39b2d; background: #fffdf7; }
.rehab-flow-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; min-width: 0; }
.rehab-flow-head strong { display: block; color: #1e3129; font-size: 15px; line-height: 1.25; overflow-wrap: anywhere; }
.rehab-flow-head span { display: block; color: var(--muted); font-size: 12px; line-height: 1.45; margin-top: 3px; overflow-wrap: anywhere; }
.rehab-flow-steps { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.rehab-flow-step { border: 1px solid #e2e9ee; border-radius: 7px; background: #f8fafc; padding: 7px; min-width: 0; }
.rehab-flow-step b { display: block; font-size: 12px; line-height: 1.25; color: #24362e; overflow-wrap: anywhere; }
.rehab-flow-step span { display: block; margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--muted); overflow-wrap: anywhere; }
.rehab-flow-step.green { border-color: #cde7d8; background: #f6fbf7; }
.rehab-flow-step.amber { border-color: #efd59a; background: #fffaf0; }
.rehab-flow-step.red { border-color: #f0b9ad; background: #fff7f5; }
.rehab-flow-step.blue { border-color: #cfe0f5; background: #f5f9ff; }
.rehab-flow-next { border-top: 1px dashed #dbe7e0; padding-top: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.rehab-flow-next strong { display: block; font-size: 13px; color: #24362e; overflow-wrap: anywhere; }
.rehab-flow-next span { display: block; margin-top: 3px; font-size: 12px; color: var(--muted); line-height: 1.4; overflow-wrap: anywhere; }
.rehab-flow-detail { border-top: 1px solid #dbe7e0; padding-top: 9px; display: grid; gap: 8px; min-width: 0; }
.rehab-flow-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: 7px; min-width: 0; }
.rehab-flow-detail-item { border: 1px solid #e2e9ee; border-radius: 7px; background: #f8fafc; padding: 8px; min-width: 0; }
.rehab-flow-detail-item b { display: block; font-size: 12px; line-height: 1.25; color: #24362e; overflow-wrap: anywhere; }
.rehab-flow-detail-item span { display: block; margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--muted); overflow-wrap: anywhere; }
.rehab-flow-detail-records { display: grid; gap: 7px; min-width: 0; }
.rehab-flow-detail-record { border: 1px solid #e2e9ee; border-radius: 7px; background: #fff; padding: 8px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; min-width: 0; }
.rehab-flow-detail-record strong { display: block; font-size: 12px; line-height: 1.3; color: #24362e; overflow-wrap: anywhere; }
.rehab-flow-detail-record span { display: block; margin-top: 3px; font-size: 12px; line-height: 1.35; color: var(--muted); overflow-wrap: anywhere; }
.rehab-flow-plan-preview { grid-column: 1 / -1; border-top: 1px dashed #d8e5df; padding-top: 7px; display: grid; gap: 7px; min-width: 0; }
.rehab-flow-plan-preview b { display: block; margin-bottom: 3px; font-size: 12px; color: #1f7a65; }
.rehab-flow-plan-preview span { display: block; margin-top: 2px; font-size: 12px; line-height: 1.45; color: #415164; overflow-wrap: anywhere; }
.rehab-client-report-modal { position: fixed; inset: 0; z-index: 65; display: grid; place-items: center; padding: 18px; }
.rehab-client-report-modal.auth-hidden { display: none !important; }
.rehab-client-report-shade { position: absolute; inset: 0; background: rgba(34, 45, 40, .46); backdrop-filter: blur(3px); }
.rehab-client-report-shell { position: relative; width: min(940px, 100%); max-height: min(92vh, 980px); overflow: auto; border-radius: 8px; background: #f3efe6; border: 1px solid #d9c7aa; box-shadow: 0 30px 78px rgba(27, 41, 35, .26); }
.rehab-client-report-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 13px 16px; background: rgba(253, 250, 244, .97); border-bottom: 1px solid #d9c7aa; }
.rehab-client-report-head strong { font-size: 16px; color: #18382f; }
.rehab-client-report-actions { display: flex; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.rehab-client-report-content { padding: 22px; }
.rehab-report-image-result { width: min(860px, 100%); margin: 0 auto; display: grid; gap: 12px; }
.rehab-report-image-tip { border: 1px solid #d7c3a4; border-left: 5px solid #1f7a65; border-radius: 8px; background: #fffaf2; padding: 12px 14px; color: #26352f; line-height: 1.65; }
.rehab-report-image-tip strong { display: block; margin-bottom: 3px; color: #173f35; font-size: 15px; }
.rehab-report-image-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.rehab-report-image-actions .btn { width: 100%; text-align: center; justify-content: center; }
.rehab-report-image-preview { border: 1px solid #d7c3a4; border-radius: 8px; background: #fdfaf3; padding: 8px; box-shadow: 0 12px 30px rgba(52, 39, 25, .12); }
.rehab-report-image-preview img { display: block; width: 100%; height: auto; border-radius: 6px; background: #fff; user-select: auto; -webkit-user-select: auto; -webkit-touch-callout: default; }
.rehab-report-sheet { width: min(812px, 100%); margin: 0 auto; background: #fdfaf3; color: #22332d; border: 1px solid #d7c3a4; border-radius: 8px; overflow: hidden; box-shadow: 0 20px 54px rgba(52, 39, 25, .15); }
.rehab-report-cover { min-height: 254px; padding: 28px 38px 30px; background: linear-gradient(135deg, #163d34 0%, #1f6a58 58%, #d6ad72 58.4%, #f6ead9 59%, #fffaf1 100%); border-bottom: 1px solid #d9c7aa; position: relative; overflow: hidden; }
.rehab-report-cover::before { content: ""; position: absolute; left: 38px; right: 38px; bottom: 30px; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.75), rgba(214,173,114,.92), rgba(214,173,114,0)); }
.rehab-report-cover::after { content: "CARE PLAN"; position: absolute; right: 42px; top: 36px; color: rgba(31, 106, 88, .13); font-size: 40px; font-weight: 900; letter-spacing: 0; }
.rehab-report-brand { position: relative; z-index: 1; color: #fff8ea; font-size: 13px; font-weight: 900; letter-spacing: 0; }
.rehab-report-cover h1 { position: relative; z-index: 1; width: min(590px, 100%); margin: 48px 0 14px; font-size: 33px; line-height: 1.18; color: #fffdf6; text-shadow: 0 2px 10px rgba(12, 36, 29, .18); }
.rehab-report-cover p { position: relative; z-index: 1; width: min(640px, 100%); margin: 0; color: #f5ead7; line-height: 1.72; font-size: 14px; }
.rehab-report-meta { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; padding: 16px 30px; background: #fffaf2; border-bottom: 1px solid #d9c7aa; }
.rehab-report-meta div { min-width: 0; }
.rehab-report-meta b { display: block; color: #8a745b; font-size: 11px; margin-bottom: 3px; }
.rehab-report-meta span { display: block; font-size: 14px; font-weight: 800; color: #24312d; overflow-wrap: anywhere; }
.rehab-report-body { counter-reset: rehab-report-section; display: grid; gap: 18px; padding: 24px 30px 32px; background: linear-gradient(180deg, #fffdf8 0%, #faf2e8 100%); }
.rehab-report-section { position: relative; border: 1px solid #ddc9aa; border-radius: 8px; padding: 18px 18px 17px; background: rgba(255, 255, 255, .93); break-inside: avoid; box-shadow: 0 8px 24px rgba(75, 57, 35, .075); }
.rehab-report-section::after { content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 3px; background: linear-gradient(90deg, #1f6a58, #d6ad72, rgba(214,173,114,0)); border-radius: 0 0 8px 8px; }
.rehab-report-section h2 { counter-increment: rehab-report-section; display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-size: 17px; color: #18382f; }
.rehab-report-section h2::before { content: counter(rehab-report-section, decimal-leading-zero); flex: 0 0 auto; min-width: 38px; height: 32px; display: inline-grid; place-items: center; border-radius: 8px; background: #173f35; color: #fff8ea; font-size: 14px; font-weight: 900; box-shadow: inset 0 -2px 0 rgba(214,173,114,.38); }
.rehab-report-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rehab-report-item { min-width: 0; padding: 10px 11px; border-radius: 8px; background: #fffaf2; border: 1px solid #eadcc5; }
.rehab-report-item b { display: block; margin-bottom: 4px; font-size: 12px; color: #8a745b; }
.rehab-report-item span { display: block; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.55; color: #1f2a37; }
.rehab-report-item.wide { grid-column: 1 / -1; }
.rehab-report-paragraph { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.84; color: #2d3834; font-size: 14px; }
.rehab-report-table-wrap { width: 100%; overflow-x: auto; }
.rehab-report-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 13px; border: 1px solid #ddc9aa; border-radius: 8px; overflow: hidden; background: #fff; }
.rehab-report-table th { background: #1e5d50; color: #fffaf2; padding: 10px 8px; border: 0; text-align: center; font-weight: 900; }
.rehab-report-table td { padding: 10px 9px; border: 0; border-top: 1px solid #efe0c9; vertical-align: top; line-height: 1.64; overflow-wrap: anywhere; }
.rehab-report-table tbody tr:nth-child(even) td { background: #fff9ef; }
.rehab-report-table-wrap.schedule .rehab-report-table th { background: #173f35; }
.rehab-report-table-wrap.schedule .rehab-report-table td:nth-child(1), .rehab-report-table-wrap.schedule .rehab-report-table td:nth-child(2) { font-weight: 900; color: #173f35; }
.rehab-report-table-wrap.overall .rehab-report-table td:nth-child(1) { font-weight: 900; color: #173f35; }
.rehab-report-summary-table { border-color: #ddc9aa; box-shadow: 0 8px 22px rgba(69, 50, 30, .06); }
.rehab-report-summary-table th { width: 72px; background: #f1e4d0; color: #7a6045; text-align: left; font-weight: 800; }
.rehab-report-summary-table td { font-weight: 900; color: #24312d; background: #fffdf8; }
.rehab-report-entitlement-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.rehab-report-entitlement-card { min-width: 0; padding: 12px 12px 13px; border: 1px solid #dac5a4; border-radius: 8px; background: linear-gradient(180deg, #fffdf8 0%, #f8efe2 100%); box-shadow: 0 6px 18px rgba(66, 48, 29, .06); }
.rehab-report-entitlement-card b { display: block; margin-bottom: 7px; font-size: 11px; color: #8a745b; }
.rehab-report-entitlement-card span { display: block; font-size: 18px; line-height: 1.25; font-weight: 900; color: #173f35; overflow-wrap: anywhere; }
.rehab-report-entitlement-note { margin: 11px 0 0; padding: 11px 13px; border-radius: 8px; background: #f2f8f2; color: #344d44; line-height: 1.68; border: 1px solid #d7e6d9; }
.rehab-report-entitlement-note p { margin: 0; }
.rehab-report-entitlement-note p + p { margin-top: 5px; }
.rehab-report-subtitle { display: flex; align-items: center; gap: 8px; margin: 14px 0 8px; color: #173f35; font-size: 13px; font-weight: 900; }
.rehab-report-subtitle::before { content: ""; width: 22px; height: 2px; border-radius: 99px; background: #d6ad72; }
.rehab-report-table-wrap.entitlement-source, .rehab-report-table-wrap.entitlement-project { margin-top: 8px; }
.rehab-report-table-wrap.entitlement-source .rehab-report-table th,
.rehab-report-table-wrap.entitlement-project .rehab-report-table th { background: #214d42; }
.rehab-report-table-wrap.entitlement-source .rehab-report-table td,
.rehab-report-table-wrap.entitlement-project .rehab-report-table td { font-size: 12.5px; }
.rehab-report-cover.care { background: linear-gradient(135deg, #163d34 0%, #1f6a58 58%, #d6ad72 58.4%, #f6ead9 59%, #fffaf1 100%); }
.rehab-report-sheet.care .rehab-report-section { border-radius: 8px; }
.rehab-report-list { display: block; margin: 0; padding: 0; list-style: none; }
.rehab-report-list li { padding: 10px 12px; border-left: 4px solid #d6a764; background: #fffaf2; border-radius: 7px; line-height: 1.67; overflow-wrap: anywhere; }
.rehab-report-list li + li { margin-top: 7px; }
.rehab-report-note { border: 1px solid #e7d5ad; background: #fffaf0; border-radius: 8px; padding: 12px 13px; color: #59442a; line-height: 1.65; font-size: 13px; }
.rehab-report-footer { padding: 14px 30px 18px; color: #7a6c5e; font-size: 12px; line-height: 1.65; border-top: 1px solid #d9c7aa; background: #fff7ea; }
.property-full-data-notice { margin-bottom: 12px; border-color: #b9d7eb; background: #f4faff; }
.property-full-data-notice[data-state="error"] { border-color: #efc5c5; background: #fff7f7; }
.property-full-data-notice[hidden], .property-full-data-notice .btn[hidden] { display: none !important; }
.property-full-data-placeholder { grid-column: 1 / -1; width: 100%; }
.finance-authority-notice { margin: 10px 0 12px; border-color: #b9d7eb; background: #f4faff; }
.finance-authority-notice[data-state="error"], #financeAnomalyNotice[data-state="error"] { border-color: #efc5c5; background: #fff7f7; }
.finance-authority-bootstrap-notice { margin: 0 0 14px; }
.finance-authority-bootstrap-notice[data-state="error"] { border-color: #efc5c5; background: #fff7f7; }
.view.finance-authority-module-pending > * { display: none !important; }
.finance-authority-notice[hidden] { display: none !important; }
.finance-authority-placeholder { display: grid; gap: 6px; justify-items: start; white-space: normal; }
.finance-authority-placeholder strong { color: var(--text); }
.finance-authority-placeholder span { color: var(--muted); }
.property-lease-overview { min-width: 0; max-width: 100%; overflow: hidden; border: 1px solid #d6e8df; border-radius: 7px; background: #f9fdfb; padding: 12px; margin-top: 12px; }
.property-lease-overview .kpis, #propertyIncomeKpis { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); margin-bottom: 10px; }
.property-lease-overview .table-wrap { max-height: clamp(420px, 64vh, 760px); }
.property-lease-overview table { min-width: 1240px; }
.ai-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 12px; align-items: start; }
.ai-chat { border: 1px solid var(--line); border-radius: 7px; background: #fff; min-height: 440px; display: flex; flex-direction: column; overflow: hidden; }
.ai-messages { flex: 1; padding: 12px; overflow: auto; max-height: 52vh; background: #f8faf9; }
.ai-msg { max-width: 86%; margin-bottom: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: #fff; white-space: pre-wrap; line-height: 1.55; }
.ai-msg.user { margin-left: auto; background: #e9f6f0; border-color: #c9e8dc; }
.ai-msg.assistant { margin-right: auto; }
.ai-composer { border-top: 1px solid var(--line); padding: 10px; background: #fff; }
.ai-composer textarea { min-height: 88px; }
.ai-shortcuts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.ai-shortcuts .btn { flex: 1 1 82px; min-width: 0; }
.ai-hint { display: grid; gap: 6px; font-size: 12px; color: var(--muted); line-height: 1.4; }
.ai-draft { border: 1px solid #c9e8dc; background: #f4fbf8; border-radius: 7px; padding: 10px; margin-top: 8px; }
.ai-draft-title { font-weight: 800; margin-bottom: 6px; }
.ai-side { display: grid; gap: 10px; }
.ai-side .list { max-height: none; }
.barrow { display: grid; grid-template-columns: 72px minmax(0,1fr) 104px; gap: 8px; align-items: center; font-size: 12px; }
.track { height: 22px; background: #ecf0f4; border-radius: 4px; overflow: hidden; position: relative; }
.bar-income { position: absolute; left: 0; top: 0; height: 50%; background: var(--brand); }
.bar-expense { position: absolute; left: 0; bottom: 0; height: 50%; background: var(--amber); }
.empty { color: var(--muted); padding: 18px; text-align: center; }
.drawer { position: fixed; inset: 0; display: none; z-index: 20; }
.drawer.open { display: block; }
.shade { position: absolute; inset: 0; z-index: 0; background: rgba(15, 23, 42, .38); }
.drawer-panel { position: absolute; right: 0; top: 0; bottom: 0; z-index: 1; width: min(640px, 100vw); background: #fff; border-left: 1px solid var(--line); padding: 16px; overflow: auto; box-shadow: -18px 0 40px rgba(15, 23, 42, .18); }
.drawer-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 12px; margin-bottom: 12px; }
.drawer-head h3 { margin: 0; font-size: 18px; }
.payment-allocation-panel { width: min(760px, 100vw); overflow-x: hidden; }
.accountant-room-reference-panel { width: min(780px, 100vw); overflow-x: hidden; }
#accountantRoomReferenceContent { display: grid; gap: 10px; min-width: 0; }
.accountant-room-reference-meta { color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.accountant-room-reference-list { display: grid; gap: 8px; min-width: 0; }
.accountant-room-reference-row { display: grid; grid-template-columns: minmax(78px, .55fr) minmax(110px, 1fr) minmax(100px, 1fr) minmax(110px, 1.1fr); gap: 8px; align-items: start; min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: 9px 10px; }
.accountant-room-reference-row > div { min-width: 0; display: grid; gap: 3px; }
.accountant-room-reference-row b { color: var(--muted); font-size: 11px; }
.accountant-room-reference-row strong,
.accountant-room-reference-row span { overflow-wrap: anywhere; }
.payment-allocation-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.payment-allocation-fact { min-width: 0; border: 1px solid var(--line); border-radius: 7px; background: #f8fafc; padding: 9px 10px; }
.payment-allocation-fact span { display: block; color: var(--muted); font-size: 12px; }
.payment-allocation-fact strong { display: block; margin-top: 3px; color: var(--ink); overflow-wrap: anywhere; }
.payment-allocation-lines { display: grid; gap: 9px; margin: 10px 0; min-width: 0; }
.payment-allocation-line { min-width: 0; border: 1px solid #dfe8e3; border-radius: 8px; padding: 10px; background: #fff; }
.payment-allocation-line-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .38fr) auto; gap: 8px; align-items: end; min-width: 0; }
.payment-allocation-line input { width: 100%; min-width: 0; }
.payment-allocation-line-picker { margin-top: 7px; min-width: 0; }
.payment-allocation-line-picker summary { cursor: pointer; padding: 9px 0; white-space: normal; overflow-wrap: anywhere; }
/* 原生 datalist/select 的单行弹层会裁掉日期/金额；用可换行的同快照候选。 */
.payment-allocation-candidates { display: grid; gap: 7px; max-height: 360px; overflow-y: auto; min-width: 0; padding: 3px; }
.payment-allocation-candidate { display: flex; align-items: flex-start; gap: 8px; min-width: 0; width: 100%; box-sizing: border-box; border: 1px solid var(--line); border-radius: 6px; padding: 10px; cursor: pointer; }
.payment-allocation-candidate input[type="radio"] { flex: 0 0 auto; width: auto; min-height: 0; margin: 3px 0 0; }
.payment-allocation-candidate span, .payment-allocation-selected { min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.6; }
.payment-allocation-candidate:focus-within { outline: 2px solid var(--green, #11795f); outline-offset: 1px; }
.allocation-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0;align-items:end;}.allocation-filter-grid label{display:grid;gap:4px;font-size:13px;min-width:0;}.allocation-filter-grid input,.allocation-filter-grid select{width:100%;min-width:0;font-size:16px;box-sizing:border-box;}.allocation-option{border:1px solid var(--line);border-radius:6px;}.allocation-option .payment-allocation-candidate{border:0;padding:8px;align-items:center;}.allocation-subject{flex:1;display:grid;gap:2px;}.allocation-subject small{color:var(--muted);font-size:12px;}.allocation-capacity{flex:0 0 auto;text-align:right;font-size:12px;}.allocation-capacity strong{display:block;font-size:15px;}.allocation-source{padding:0 8px 6px 30px;font-size:12px;color:var(--muted);overflow-wrap:anywhere;}.allocation-source summary{padding:2px 0;}.allocation-option:has(input:checked){border-color:var(--green);background:#f0f8f4;}@media(max-width:480px){.allocation-filter-grid{grid-template-columns:minmax(0,1fr);}.allocation-option .payment-allocation-candidate{flex-wrap:wrap;}.allocation-capacity{flex-basis:100%;padding-left:22px;text-align:left;}.allocation-capacity strong{display:inline;margin-left:6px;}}
.payment-allocation-selected { margin-top: 7px; padding: 8px; background: #f0f8f4; border-radius: 6px; }
.payment-allocation-line-evidence { margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.payment-allocation-totals { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 10px 0; }
.payment-allocation-total { border-radius: 7px; padding: 9px 10px; background: #f4f8f6; border: 1px solid #dce8e2; min-width: 0; }
.payment-allocation-total span { display: block; color: var(--muted); font-size: 12px; }
.payment-allocation-total strong { display: block; margin-top: 3px; }
.payment-allocation-total.unbalanced { border-color: #f2c2bd; background: #fff7f5; color: var(--red); }
.payment-allocation-errors { display: grid; gap: 5px; margin: 8px 0; color: var(--red); font-size: 12.5px; }
.payment-allocation-history { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.payment-allocation-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; position: sticky; bottom: -16px; margin: 12px -16px -16px; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.98); border-top: 1px solid var(--line); }
.payment-allocation-actions .btn { min-width: 104px; }
.mobile-fill-btn { display: none; }
.password-modal { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; padding: 16px; }
.password-card { position: relative; width: min(420px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 18px 42px rgba(15, 23, 42, .2); padding: 16px; }
.password-card h3 { margin: 0; font-size: 18px; }
.password-card .field { margin-top: 10px; }
.password-card input { width: 100%; }
.owner-reset-password-card { width: min(560px, 100%); max-height: calc(100dvh - 32px); overflow-y: auto; overflow-wrap: anywhere; }
.owner-reset-password-card select, .owner-reset-password-card textarea { width: 100%; min-width: 0; box-sizing: border-box; }
.owner-reset-password-card .drawer-actions { flex-wrap: wrap; }
.formgrid { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; align-items: start; }
.formgrid .field { min-width: 0; }
.drawer-content .field.field-wide { grid-column: 1 / -1; }
#drawerContent .field { display: block; position: relative; }
#drawerContent input:not([type="hidden"]), #drawerContent select, #drawerContent textarea { display: block; width: 100%; min-width: 0; position: relative; z-index: 1; pointer-events: auto; }
#drawerContent .field.auto-readonly input, #drawerContent .field.auto-readonly select { background: #f8fafc; color: #475467; border-color: #e4e7ec; }
.drawer-save-panel { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 12px; background: #fff; }
.drawer-save-panel summary { cursor: pointer; list-style: none; border: 1px solid #cfe0d8; border-radius: 6px; background: #f2faf6; color: #10634e; font-weight: 800; padding: 10px 12px; text-align: center; }
.drawer-save-panel summary span { display: block; margin-top: 3px; color: var(--muted); font-size: 12px; font-weight: 600; }
.drawer-save-panel summary::-webkit-details-marker { display: none; }
.drawer-save-panel summary::after { content: "展开"; margin-left: 8px; font-size: 12px; color: var(--muted); }
.drawer-save-panel[open] summary::after { content: "收起"; }
.drawer-save-panel.is-saving summary { border-color: #9fc6b6; background: #eaf7f1; }
.drawer-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 10px; background: #fff; z-index: 2; }
.save-status { min-height: 20px; margin-top: 8px; font-size: 12px; color: var(--muted); }
.save-status.ok { color: #10634e; }
.save-status.warn { color: var(--red); }
.drawer-save-panel .save-status { margin: 0 0 8px; min-height: 0; padding: 7px 9px; border-radius: 6px; text-align: center; font-weight: 800; }
.drawer-save-panel .save-status:empty { display: none; }
.drawer-save-panel .save-status.ok { background: #edf9f3; color: #10634e; }
.drawer-save-panel .save-status.warn { background: #fff1f0; color: var(--red); }
.operation-safety-note { border: 1px solid #d8e6df; border-left: 4px solid var(--brand); border-radius: 7px; background: #f8fcfa; padding: 9px 10px; margin: 8px 0; color: #344054; font-size: 12.5px; line-height: 1.45; }
.operation-safety-note strong { color: var(--ink); }
.operation-safety-note.warn { border-color: #f2c2bd; border-left-color: var(--red); background: #fff7f5; }
.daily-report-textarea { width: 100%; min-height: 260px; border: 1px solid var(--line); border-radius: 7px; padding: 12px; resize: vertical; font: 13px/1.7 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; background: #fbfcfd; color: var(--text); box-sizing: border-box; }
.operation-stat-list { display: grid; gap: 6px; }
.operation-stat-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid #edf1f5; border-radius: 7px; background: #fff; }
.operation-stat-row span { color: var(--muted); font-size: 12px; }
.operation-stat-row strong { font-size: 15px; white-space: nowrap; }
details.operation-stat-row { display: block; }
.operation-stat-row summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.operation-stat-row summary::-webkit-details-marker { display: none; }
.operation-stat-row summary span::after { content: " · 点开看明细"; color: #8a99a8; font-size: 11px; font-weight: 600; }
.operation-stat-row[open] summary { padding-bottom: 7px; border-bottom: 1px dashed #e2e8f0; }
.operation-stat-detail-body { display: grid; gap: 7px; padding-top: 7px; }
.operation-detail-card { border: 1px solid #e8eef4; border-radius: 7px; background: #fbfdff; padding: 8px; display: grid; gap: 6px; min-width: 0; }
.operation-detail-head { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; flex-wrap: wrap; }
.operation-detail-head strong { white-space: normal; overflow-wrap: anywhere; color: #243832; }
.operation-detail-meta { display: flex; flex-wrap: wrap; gap: 5px 8px; color: var(--muted); font-size: 12px; line-height: 1.4; }
.endpoint-performance-alerts { display: grid; gap: 8px; margin-top: 8px; min-width: 0; }
.operation-detail-summary { color: #475467; font-size: 12px; line-height: 1.45; overflow-wrap: anywhere; }
.operation-stat-more { color: var(--muted); font-size: 12px; text-align: center; padding: 3px 0; }
.operation-impact-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.operation-health-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 8px; margin: 8px 0 12px; }
.operation-health-card { border: 1px solid #edf1f5; border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; padding: 10px; display: grid; gap: 5px; text-align: left; color: inherit; font: inherit; min-width: 0; cursor: pointer; box-shadow: 0 6px 16px rgba(15, 23, 42, .04); }
.operation-health-card.warn { border-left-color: #d28a22; background: #fffdf8; }
.operation-health-card.bad { border-left-color: var(--red); background: #fffafa; }
.operation-health-card.good { border-left-color: var(--brand); background: #fbfdfc; }
.operation-health-card strong { color: #243832; font-size: 13px; overflow-wrap: anywhere; }
.operation-health-card .value { font-size: 22px; font-weight: 900; color: #243832; line-height: 1.1; }
.operation-health-card span { color: var(--muted); font-size: 12px; line-height: 1.4; overflow-wrap: anywhere; }
.operation-health-card .tag { justify-self: start; }
.daily-inspection-panel { border: 1px solid #d6e8df; border-left: 5px solid var(--brand); border-radius: 8px; background: #fbfdfc; padding: 12px; margin: 10px 0; display: grid; gap: 8px; }
.daily-inspection-panel.is-amber { border-color: #f1cf91; border-left-color: #d28a22; background: #fffbf3; }
.daily-inspection-panel.is-red { border-color: #f0b4aa; border-left-color: var(--red); background: #fff7f6; }
.daily-inspection-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; flex-wrap: wrap; }
.daily-inspection-head strong { color: #243832; font-size: 14px; }
.daily-inspection-head span { color: var(--muted); font-size: 12px; }
.daily-inspection-findings { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.daily-inspection-findings li { border: 1px solid #edf1f5; border-radius: 7px; background: rgba(255,255,255,.75); padding: 8px 9px; color: #41534d; font-size: 13px; line-height: 1.45; overflow-wrap: anywhere; }
.manager-guidance-stage { min-width: 0; }
.manager-guidance-stage .owner-stage-head { align-items: flex-start; }
.manager-guidance-stage .daily-inspection-panel { margin-bottom: 0; }
.daily-inspection-panel.has-structured-guidance { min-width: 0; overflow: hidden; gap: 10px; }
.daily-inspection-guidance-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }
.daily-inspection-guidance-summary span { display: grid; gap: 2px; min-width: 0; padding: 8px 9px; border: 1px solid #dfe9e4; border-radius: 7px; background: rgba(255,255,255,.86); color: #243832; font-size: 18px; font-weight: 900; }
.daily-inspection-guidance-summary b { color: var(--muted); font-size: 10px; }
.daily-inspection-filter-actions { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.daily-inspection-filter-actions .btn { max-width: 100%; overflow-wrap: anywhere; }
.daily-inspection-guidance-list { min-width: 0; }
.daily-inspection-system-health { min-width: 0; border: 1px dashed #d8e1e7; border-radius: 7px; background: rgba(255,255,255,.72); padding: 8px 9px; color: #475467; }
.daily-inspection-system-health > summary { cursor: pointer; color: #31536f; font-size: 12px; font-weight: 800; }
.daily-inspection-system-health ul { display: grid; gap: 5px; margin: 8px 0 0; padding-left: 18px; font-size: 11px; line-height: 1.45; }
.danger-action-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }
.danger-action-meta span { border: 1px solid #e4ece8; border-radius: 6px; background: #fff; padding: 6px 7px; overflow-wrap: anywhere; }
.danger-action-meta b { display: block; color: var(--muted); font-size: 11px; margin-bottom: 2px; }
.toast-stack { position: fixed; top: 16px; right: 16px; z-index: 80; display: grid; gap: 8px; width: min(360px, calc(100vw - 32px)); pointer-events: none; }
.toast { border: 1px solid var(--line); border-left: 5px solid var(--brand); border-radius: 7px; background: #fff; box-shadow: 0 16px 36px rgba(15, 23, 42, .18); padding: 10px 12px; font-size: 13px; line-height: 1.45; color: var(--ink); opacity: 0; transform: translateY(-8px); animation: toastIn .18s ease forwards; }
.toast.ok { border-left-color: #22a06b; }
.toast.warn { border-left-color: var(--red); }
.toast.monitor { border-left-color: #b77913; }
.toast.leaving { animation: toastOut .18s ease forwards; }
@keyframes toastIn { to { opacity: 1; transform: translateY(0); } }
@keyframes toastOut { to { opacity: 0; transform: translateY(-8px); } }
.mobile-quickbar { display: none; }
textarea { width: 100%; min-height: 78px; border: 1px solid var(--line); border-radius: 5px; padding: 8px; resize: vertical; font: inherit; }
.image-upload-control { display: grid; gap: 8px; }
.image-upload-control input[type="file"] { height: auto; min-height: 38px; padding: 7px; }
.image-upload-preview { min-height: 48px; border: 1px dashed #c9d6df; border-radius: 6px; background: #f8faf9; color: var(--muted); display: grid; place-items: center; padding: 8px; font-size: 12px; }
.image-upload-preview img { max-width: 100%; max-height: 180px; border-radius: 6px; object-fit: contain; border: 1px solid var(--line); background: #fff; }
.camera-capture-control { display: grid; gap: 8px; border: 1px solid #d7e8df; border-radius: 8px; background: #f8fcfa; padding: 10px; }
.camera-capture-control video, .camera-capture-control canvas { width: 100%; max-height: 260px; border-radius: 8px; background: #111827; object-fit: cover; }
.camera-capture-control canvas { display: none; }
.camera-capture-control.has-photo canvas { display: block; }
.camera-capture-control.has-photo video { display: none; }
.camera-capture-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.camera-capture-actions .btn { width: 100%; min-height: 38px; }
.camera-capture-status { color: var(--muted); font-size: 12px; line-height: 1.5; }
.file-upload-control { display: grid; gap: 8px; }
.file-upload-control input[type="file"] { height: auto; min-height: 38px; padding: 7px; }
.file-upload-preview { min-height: 42px; border: 1px dashed #c9d6df; border-radius: 6px; background: #f8faf9; color: var(--muted); display: grid; place-items: center; padding: 8px; font-size: 12px; }
.file-link { display: inline-flex; align-items: center; justify-content: center; min-height: 26px; padding: 4px 8px; border: 1px solid #b8d9cc; border-radius: 5px; background: #edf8f3; color: #10634e; font-size: 12px; text-decoration: none; font-weight: 700; }
.record-thumb { width: 64px; height: 48px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); background: #fff; display: block; }
.record-thumb-link { display: inline-block; cursor: zoom-in; }
.image-preview-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 14px; }
.image-preview-modal.auth-hidden { display: none !important; }
.image-preview-shade { position: absolute; inset: 0; background: rgba(15, 23, 42, .72); }
.image-preview-card { position: relative; z-index: 1; width: min(920px, 100%); max-height: calc(100dvh - 28px); display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: 0 24px 60px rgba(15, 23, 42, .32); padding: 10px; }
.image-preview-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.image-preview-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.image-preview-card img { max-width: 100%; max-height: calc(100dvh - 96px); object-fit: contain; border-radius: 6px; background: #111827; }
@media (max-width: 1280px) {
.workbench-layout { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); }
.module-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.task-board { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); }
.card-actions, .section-actions, .todo-actions, .record-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); align-items: stretch; }
.card-actions .btn, .section-actions .btn, .todo-actions .btn, .record-actions .btn { width: 100%; }
.cashier-today-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cashier-secondary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cashier-home-secondary { grid-template-columns: 1fr; }
}
@media (max-width: 1100px) {
.shell { grid-template-columns: 1fr; }
aside { position: static; height: auto; min-height: 0; box-shadow: none; }
nav { grid-template-columns: repeat(3, 1fr); }
body[data-role="manager"] aside { position: sticky; top: 0; z-index: 21; height: auto; min-height: 0; overflow: visible; padding: 7px 12px 9px; box-shadow: 0 6px 18px rgba(15, 23, 42, .14); }
body[data-role="manager"] .brand { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 1px 4px 7px; }
body[data-role="manager"] .brand-title { font-size: 15px; }
body[data-role="manager"] .brand-sub { display: none; }
body[data-role="manager"] nav { display: block; margin-top: 7px; }
body[data-role="manager"] .manager-nav-primary { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; }
body[data-role="manager"] .manager-nav-primary > button,
body[data-role="manager"] .manager-nav-more > summary { min-width: 0; min-height: 35px; padding: 7px 5px; justify-content: center; text-align: center; white-space: nowrap; font-size: 12px; }
body[data-role="manager"] .manager-nav-more > summary span { display: none; }
body[data-role="manager"] .manager-nav-more > summary::after { content: ""; display: none; }
body[data-role="manager"] .manager-nav-more-panel { position: absolute; top: calc(100% + 8px); right: 0; width: min(700px, calc(100vw - 24px)); max-height: 66vh; overflow: auto; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 12px; border: 1px solid #3d5b53; border-radius: 8px; background: #102521; box-shadow: 0 18px 38px rgba(15, 23, 42, .28); }
body[data-role="manager"] .manager-nav-more-group > strong { margin-top: 0; }
body[data-role="manager"] .top { position: static; display: block; padding: 7px 12px; }
body[data-role="manager"] .top > div:first-child { display: none; }
body[data-role="manager"] .opbar { display: grid; grid-template-columns: minmax(150px, 1fr) minmax(132px, 160px) auto auto; gap: 7px; justify-content: stretch; }
body[data-role="manager"] .account-summary { min-width: 0; padding: 5px 8px; }
body[data-role="manager"] .opbar .global-search-field { display: none; }
body[data-role="manager"] .opbar .field { min-width: 0; }
body[data-role="manager"] .opbar .field input { width: 100%; min-width: 0; }
body[data-role="manager"] .opbar .btn { min-width: 0; }
body[data-role="manager"] .content { padding-top: 10px; }
.nav-group { grid-column: 1 / -1; margin: 6px 4px 0; }
.top { grid-template-columns: 1fr; }
.opbar { justify-content: flex-start; }
.kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
#financeAnomaly .kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
.layout, .split, .workbench-layout, .hr-dashboard-grid, .ai-layout { grid-template-columns: 1fr; }
.workbench-head { grid-template-columns: 1fr; }
.workbench-stage { justify-content: flex-start; }
.filters { grid-template-columns: repeat(2, minmax(0,1fr)); }
.owner-focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.owner-lead-grid { grid-template-columns: 1fr; }
.cashier-primary-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
.attendance-schedule-evidence { grid-template-columns: 1fr; }
.attendance-source-record { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.attendance-day-status { text-align: left; }
.hr-section-tabs { position: static; display: flex; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.hr-section-tabs button { flex: 0 0 126px; }
.hr-record-detail-grid { grid-template-columns: 1fr; }
.hr-home-footer, .hr-data-status, .hr-section-head { align-items: stretch; flex-direction: column; }
.hr-today-item { grid-template-columns: auto minmax(0, 1fr); }
.hr-today-count { grid-column: 2; }
#hr .hr-key-table-wrap, #hr .hr-complete-data .table-wrap { overflow-x: auto; overflow-y: auto; touch-action: pan-x pan-y; }
#hr .hr-key-table-wrap table, #hr .hr-complete-data table { min-width: 0; width: 100%; }
#hr .mobile-card-table td > * { min-width: 0; grid-column: 2; }
#hr .hr-record-detail-row:not([hidden]) > td { display: block; }
#hr .hr-record-detail-row > td::before { content: none; }
.frontdesk-home-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frontdesk-todo-grid, .frontdesk-stage-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frontdesk-owner-tab { flex: 1 1 calc(50% - 4px); }
.frontdesk-search { grid-column: 1 / -1; }
.frontdesk-clean-shell { grid-template-columns: 1fr; }
.frontdesk-inhouse-alerts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.table-wrap { max-height: none; overflow-x: hidden; overflow-y: auto; touch-action: pan-y; background: transparent; }
#cashier .table-scroll-guide { display: none !important; }
#cashier .accounting-review-overview table.mobile-card-table { width: 100%; min-width: 0; }
#cashier .accounting-review-overview table.mobile-card-table th, #cashier .accounting-review-overview table.mobile-card-table td { white-space: normal; }
.table-wrap table { width: 100%; min-width: 0; }
.mobile-card-table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0 8px; }
.mobile-card-table thead { display: none; }
.mobile-card-table tbody, .mobile-card-table tr, .mobile-card-table td { display: block; width: 100%; }
.mobile-card-table tr { border: 1px solid var(--line); border-left: 4px solid #b7cbc3; border-radius: 7px; background: #fff; padding: 28px 9px 9px; margin-bottom: 8px; position: relative; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); }
.mobile-card-table tr:not(.mobile-row-expanded) td:not(.mobile-priority-cell):not(.empty) { display: none; }
.mobile-card-table tr.mobile-compact-row::after { content: "点开全部"; position: absolute; right: 9px; top: 6px; color: #10634e; font-size: 12px; font-weight: 800; }
.mobile-card-table tr.mobile-row-expanded::after { content: "收起"; }
.mobile-card-table td { border-bottom: 0; display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 8px; align-items: start; padding: 5px 2px; min-height: 28px; white-space: normal; overflow-wrap: anywhere; }
.mobile-card-table td .btn { width: 100%; margin-top: 4px; }
.mobile-card-table td::before { content: attr(data-label); color: var(--muted); font-weight: 800; font-size: 12px; }
.mobile-card-table td.empty { display: block; padding: 14px 8px; text-align: center; }
.mobile-card-table td.empty::before { content: none; }
.mobile-card-table td.num { text-align: left; }
.mobile-card-table .summary { max-width: none; }
}
@media (max-width: 640px) {
.unified-module-bar { min-height: 54px; padding: 8px; gap: 8px; }
.unified-module-bar .btn { flex: 0 0 auto; min-height: 38px; }
.unified-module-title span { font-size: 11px; }
body.unified-module-mode .content { padding: 8px 6px 18px; }
.image-preview-modal { padding: 8px; }
.image-preview-card { max-height: calc(100dvh - 16px); padding: 8px; }
.image-preview-card img { max-height: calc(100dvh - 86px); }
html, body { max-width: 100%; overflow-x: hidden; }
.shell, aside, main { min-width: 0; max-width: 100vw; }
.shell { width: 100%; overflow-x: hidden; }
main { width: 100%; overflow-x: hidden; }
.login-screen { min-height: 100dvh; padding: 12px; place-items: start center; }
.login-card { padding: 16px; }
aside { width: 100%; padding: 12px; overflow: hidden; }
.brand { padding: 2px 4px 10px; }
.brand-title { font-size: 17px; }
nav { display: flex; width: 100%; max-width: 100%; overflow-x: auto; gap: 6px; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
.nav-group { flex: 0 0 auto; margin: 0 2px; padding: 10px 2px 0; white-space: nowrap; }
nav button { flex: 0 0 auto; min-width: 94px; padding: 9px 10px; text-align: center; white-space: nowrap; }
.top { position: static; padding: 10px 12px; }
h1 { font-size: 18px; }
.meta { line-height: 1.45; }
.opbar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; }
.account-summary { grid-column: 1 / -1; min-width: 0; }
.opbar .global-search-field { grid-column: 1 / -1; }
.opbar .field, .filters .field, .formgrid .field { min-width: 0; }
input, select, textarea { width: 100%; min-width: 0; max-width: 100%; font-size: 16px; }
.btn { max-width: 100%; height: auto; min-height: 36px; white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.25; }
.btn.mini { height: auto; min-height: 30px; padding-top: 5px; padding-bottom: 5px; }
.opbar .btn { width: 100%; }
.content { padding: 10px 8px 84px; gap: 10px; }
.site-icp-footer { margin-top: 4px; padding: 8px 12px calc(80px + env(safe-area-inset-bottom)); font-size: 11px; }
.mobile-quickbar:not(.auth-hidden) { position: fixed; left: 0; right: 0; bottom: 0; z-index: 16; display: grid; grid-template-columns: repeat(var(--mobile-quickbar-cols, 5), minmax(0, 1fr)); gap: 5px; padding: 7px 8px calc(7px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.97); border-top: 1px solid var(--line); box-shadow: 0 -10px 28px rgba(15, 23, 42, .12); }
body.drawer-open .mobile-quickbar { display: none !important; }
.mobile-quickbar button { border: 1px solid #d8e2e8; background: #fff; border-radius: 8px; min-height: 46px; padding: 4px 2px; display: grid; place-items: center; gap: 1px; color: #344054; font-size: 10px; font-weight: 800; line-height: 1.12; min-width: 0; overflow: hidden; }
.mobile-quickbar button span, .mobile-quickbar button strong { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mobile-quickbar button strong { font-size: 12px; line-height: 1.12; }
.mobile-quickbar button.primary { background: var(--brand); border-color: var(--brand); color: #fff; }
.kpis { display: flex; grid-template-columns: none; gap: 8px; overflow-x: auto; padding-bottom: 6px; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
#financeAnomaly .kpis { display: flex; grid-template-columns: none; }
.kpi { flex: 0 0 164px; min-height: 78px; padding: 9px; scroll-snap-align: start; }
.property-lease-overview .kpis, #propertyIncomeKpis { display: flex; grid-template-columns: none; }
.property-lease-overview .kpis .kpi, #propertyIncomeKpis .kpi { flex-basis: 184px; }
.kpi .value { font-size: 18px; }
.view, .panel, .panel-body, .module-card, .workbench-block, .task-col, .property-stage, .owner-alert-item, .notice, .rowcard, .todo-row, .hr-priority { min-width: 0; max-width: 100%; }
.owner-command-strip { grid-template-columns: 1fr; padding: 10px; }
.owner-command-score { width: 100%; min-width: 0; text-align: left; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; }
.owner-command-score span { margin-top: 0; }
.owner-focus-grid { grid-template-columns: 1fr; }
.owner-account-grid { grid-template-columns: 1fr; }
.owner-lead-pipeline { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.owner-lead-row { grid-template-columns: 1fr; align-items: start; }
.owner-stage-head { display: grid; grid-template-columns: 1fr; }
.panel { overflow: hidden; }
.panel-head { flex-wrap: wrap; align-items: flex-start; padding: 10px; gap: 7px; }
.panel-head h2 { min-width: 0; max-width: 100%; overflow-wrap: anywhere; line-height: 1.3; }
.panel-body { padding: 10px; }
.finance-tabs { flex-wrap: nowrap; overflow-x: auto; padding: 7px; -webkit-overflow-scrolling: touch; }
.finance-tabs .btn { flex: 0 0 auto; }
.accountant-primary-nav { flex-wrap: wrap; }
.accountant-receivable-filters { grid-template-columns: minmax(0, 1fr); }
.accountant-receivable-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#accountantWorkbench .accountant-workbench-kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
#accountantWorkbench .accountant-workbench-kpis .kpi { min-width: 0; width: 100%; }
#accountantWorkbench .mobile-card-table td { grid-template-columns: 82px minmax(0, 1fr); }
#accountantWorkbench .mobile-card-table tr td:not(.empty) { display: grid; }
#accountantWorkbench .mobile-card-table td > * { grid-column: 2; }
#accountantWorkbench .table-wrap { max-height: none; }
.accountant-primary-nav .accountant-unassigned { margin-left: 0; }
.accountant-primary-nav > .btn, .accountant-query-nav { flex: 0 0 auto; }
.accountant-query-actions { grid-template-columns: 1fr; width: min(82vw, 320px); }
.accountant-workbench-grid { grid-template-columns: 1fr; }
.accountant-period-kpis { grid-template-columns: 1fr; }
.cashier-focus-head { display: grid; grid-template-columns: 1fr; }
.cashier-today-kpis { display: flex; grid-template-columns: none; overflow-x: auto; padding-bottom: 6px; }
.cashier-today-kpis .kpi { flex: 0 0 178px; }
.cashier-secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
#cashierTodayOverview .table-wrap { overflow-x: hidden; max-height: none; }
#cashierTodayTable { min-width: 0; table-layout: auto; }
.filters { grid-template-columns: 1fr; }
.room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.module-grid, .task-board { grid-template-columns: 1fr; }
.property-stage-grid { grid-template-columns: 1fr; }
.card-actions, .section-actions, .property-stage-tools, .record-actions, .todo-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; align-items: stretch; }
.card-actions .btn, .section-actions .btn, .property-stage-tools .btn, .record-actions .btn, .todo-actions .btn, .workbench-actions .btn { min-width: 0; width: 100%; }
.cashier-primary-actions, .cashier-secondary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workbench-actions { grid-template-columns: 1fr; }
.module-card { min-height: auto; padding: 10px; gap: 7px; }
.module-card h3 { font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.module-card p { display: block; -webkit-line-clamp: unset; overflow: visible; overflow-wrap: anywhere; }
#leads .panel-body, #rehab .panel-body, #water .panel-body, #kitchen .panel-body, #inventory .panel-body, #hr .panel-body { grid-template-columns: minmax(0, 1fr); }
#leads .module-grid, #rehab .module-grid, #water .module-grid, #kitchen .module-grid, #inventory .module-grid, #hr .module-grid,
#leads .lead-record-overview, #rehab .gift-entitlement-overview, #rehab .rehab-record-overview,
#water .water-account-overview, #water .water-file-overview, #water .water-sale-overview, #water .water-goods-overview, #water .gift-entitlement-overview, #water .water-booking-overview, #water .water-sanitation-overview,
#inventory .stock-balance-overview, #hr .hr-roster-overview, #hr .hr-interview-overview, #hr .hr-purchase-overview { min-width: 0; width: 100%; max-width: 100%; }
.workbench-shell .panel-head h2 { font-size: 15px; }
.workbench-head { padding: 10px; }
.workbench-head h3 { font-size: 16px; }
.workbench-stage { width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; -webkit-overflow-scrolling: touch; }
.workbench-stage button, .workbench-stage span { flex: 0 0 auto; padding: 3px 7px; font-size: 11px; }
.workbench-block { padding: 10px; }
.workbench-block.primary, .workbench-todo-block { padding-left: 9px; }
.water-unified-grid { grid-template-columns: 1fr; gap: 10px; }
.water-reminder-groups { grid-template-columns: 1fr; gap: 10px; }
.water-reminder-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.water-unified-panel .owner-alert-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rehab-flow-head, .rehab-flow-next { grid-template-columns: 1fr; display: grid; }
.rehab-flow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rehab-flow-next .btn { width: 100%; }
.frontdesk-home-nav { grid-template-columns: 1fr; }
.frontdesk-todo-grid, .frontdesk-stage-tabs { grid-template-columns: 1fr; }
.frontdesk-owner-tab { flex-basis: 100%; }
.frontdesk-home-section-head { grid-template-columns: 1fr; }
.frontdesk-home-stats { justify-content: flex-start; }
.frontdesk-clean-shell { grid-template-columns: 1fr; }
.frontdesk-action-groups, .frontdesk-flow-board, .frontdesk-customer-grid { grid-template-columns: 1fr; }
.frontdesk-inhouse-alerts { grid-template-columns: 1fr; }
.frontdesk-quick-strip { grid-template-columns: 1fr; }
.frontdesk-type-card { padding: 8px; }
.frontdesk-filter-banner { align-items: stretch; }
.frontdesk-filter-banner .btn { width: 100%; }
.frontdesk-card-footer { display: grid; grid-template-columns: 1fr; }
.frontdesk-card-actions { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frontdesk-card-actions .btn { width: 100%; }
.frontdesk-detail-hero { grid-template-columns: 1fr; }
.frontdesk-detail-title { display: grid; grid-template-columns: 1fr; }
.frontdesk-detail-tags { justify-content: flex-start; }
.frontdesk-detail-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; min-width: 0; }
.frontdesk-detail-actions .btn { width: 100%; min-width: 0; overflow-wrap: anywhere; }
.frontdesk-detail-summary { grid-template-columns: 1fr; }
.frontdesk-summary-item { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 8px; align-items: start; padding: 7px 8px; }
.frontdesk-summary-item b { margin-bottom: 0; word-break: keep-all; overflow-wrap: normal; }
.frontdesk-summary-item span { overflow-wrap: break-word; word-break: normal; }
.frontdesk-section-head { display: grid; grid-template-columns: 1fr; }
.frontdesk-detail-cards { grid-template-columns: 1fr; }
.frontdesk-plan-head, .frontdesk-plan-grid { grid-template-columns: 1fr; }
.frontdesk-plan-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.frontdesk-plan-actions .btn { width: 100%; min-width: 0; }
.frontdesk-priority-card { grid-template-columns: 1fr; }
.frontdesk-service-head { grid-template-columns: 1fr; }
.frontdesk-detail-field, .frontdesk-service-line { grid-template-columns: 76px minmax(0, 1fr); }
.frontdesk-detail-field b, .frontdesk-service-line b { word-break: keep-all; overflow-wrap: normal; }
.frontdesk-detail-field span, .frontdesk-service-line span { overflow-wrap: break-word; word-break: normal; }
.frontdesk-service-stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.focus-item { grid-template-columns: 22px minmax(0, 1fr); padding: 7px; overflow-wrap: anywhere; }
.todo-row, .workbench-row, .hr-priority, .rowcard { grid-template-columns: 1fr; align-items: start; }
.todo-row strong, .workbench-row strong, .hr-priority strong, .rowcard strong { white-space: normal; overflow-wrap: anywhere; }
.todo-row span, .workbench-row span, .hr-priority span, .rowcard span { overflow-wrap: anywhere; }
.table-wrap, .booking-wrap, .list { max-width: 100%; -webkit-overflow-scrolling: touch; }
.table-wrap { max-height: 70vh; border: 1px solid var(--line); border-radius: 6px; overflow-x: hidden; overflow-y: auto; touch-action: pan-y; }
.water-account-overview > .table-wrap, .water-booking-overview > .table-wrap, .water-service-overview > .table-wrap, .water-coupon-overview > .table-wrap, .water-goods-overview > .table-wrap, .water-sanitation-overview > .table-wrap { display: none; }
#dataAudit .data-audit-table-wrap { display: none; }
#dataAudit .kpis { display: grid; grid-template-columns: 1fr; overflow: visible; padding-bottom: 0; }
#dataAudit .kpi { flex: 1 1 auto; width: 100%; min-width: 0; }
#workflowCenter .kpis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; padding-bottom: 0; gap: 8px; }
#workflowCenter .kpi { flex: 1 1 auto; width: 100%; min-width: 0; }
#wecomAttendanceReviewSummary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; padding-bottom: 0; gap: 8px; }
#wecomAttendanceReviewSummary .kpi { flex: 1 1 auto; width: 100%; min-width: 0; }
#workflowCenter .task-board { grid-template-columns: 1fr; }
.workflow-guidance-shell { margin: 10px 0; padding: 10px; }
.workflow-guidance-head { display: grid; grid-template-columns: 1fr; }
.workflow-guidance-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.workflow-guidance-priority, .workflow-guidance-later { grid-template-columns: 1fr; }
.workflow-guidance-card { padding: 10px; }
.workflow-guidance-card-head { align-items: flex-start; }
.workflow-guidance-card-head > strong { text-align: left; }
.workflow-guidance-primary, .workflow-guidance-facts { grid-template-columns: 1fr; }
.workflow-guidance-due { grid-template-columns: auto minmax(0, 1fr); }
.workflow-guidance-evidence { padding: 8px; }
.daily-inspection-guidance-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.daily-inspection-panel.has-structured-guidance { padding: 9px; }
.daily-inspection-filter-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.daily-inspection-filter-actions .btn:last-child { grid-column: 1 / -1; }
#dataAudit .water-mobile-actions { grid-template-columns: 1fr; }
#dataAudit .water-mobile-actions .btn { min-width: 0; width: 100%; overflow-wrap: anywhere; }
.water-detail-group[open] .table-wrap { display: block !important; }
.mobile-card-list:not(:empty) { display: grid; }
.water-today-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.water-today-chip { padding: 9px; }
.water-today-chip strong { font-size: 16px; }
.water-schedule-slot { grid-template-columns: 58px minmax(0, 1fr); }
.water-schedule-time { padding: 10px 6px; font-size: 12px; }
.water-schedule-item { padding: 8px; }
.water-schedule-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
.water-schedule-actions .btn, .water-schedule-actions .tag { width: 100%; text-align: center; justify-content: center; }
.water-mobile-card { padding: 9px; gap: 7px; }
.water-mobile-card-head { display: grid; grid-template-columns: 1fr; }
.water-mobile-tags { justify-content: flex-start; }
.water-mobile-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
.water-mobile-actions .btn, .water-mobile-actions .tag { width: 100%; text-align: center; justify-content: center; }
.labor-fee-card-head, .labor-fee-card-body { grid-template-columns: 1fr; }
.labor-fee-amount-box { text-align: left; min-width: 0; }
.labor-fee-grid, .labor-fee-grid.wide { grid-template-columns: 1fr; }
.labor-fee-card-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
.labor-fee-card-actions .btn, .labor-fee-card-actions .tag { width: 100%; justify-content: center; text-align: center; }
.labor-fee-filter-bar { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.labor-fee-filter-bar .btn { width: 100%; min-height: 36px; }
.labor-fee-filter-bar [data-labor-fee-clear] { grid-column: 1 / -1; }
.labor-fee-export-actions input[type="search"] { grid-column: 1 / -1; width: 100%; min-width: 0; }
.labor-fee-server-pager { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); text-align: center; }
.labor-fee-server-pager span { grid-column: 1 / -1; grid-row: 1; }
.labor-fee-server-pager .btn { width: 100%; min-width: 0; }
.water-entitlement-row-meta { grid-template-columns: 1fr; }
.labor-fee-entitlement-grid { grid-template-columns: 1fr; }
.water-entitlement-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
.water-entitlement-row-actions .btn, .water-entitlement-row-actions .tag { width: 100%; text-align: center; justify-content: center; }
.redline-card-grid, .redemption-submit-summary-grid { grid-template-columns: 1fr; }
.redemption-submit-summary { margin-bottom: 8px; }
.rehab-client-report-modal { padding: 0; place-items: stretch; }
.rehab-client-report-shell { width: 100%; max-height: 100vh; border-radius: 0; }
.rehab-client-report-head { display: grid; grid-template-columns: 1fr; align-items: start; }
.rehab-client-report-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
.rehab-client-report-actions .btn { width: 100%; min-width: 0; }
.rehab-client-report-content { padding: 10px; }
.rehab-report-cover { padding: 20px 16px 15px; }
.rehab-report-cover h1 { font-size: 22px; }
.rehab-report-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 12px 16px; }
.rehab-report-body { padding: 14px 16px 18px; }
.rehab-report-grid { grid-template-columns: 1fr; }
.rehab-report-footer { padding: 12px 16px 16px; }
.property-subboard .table-wrap, .property-lease-overview .table-wrap { max-height: 72vh; }
table { min-width: 960px; }
th, td { padding: 7px 8px; }
.mobile-card-table { width: 100%; min-width: 0; border-collapse: separate; border-spacing: 0 8px; }
.mobile-card-table thead { display: none; }
.mobile-card-table tbody, .mobile-card-table tr, .mobile-card-table td { display: block; width: 100%; }
.mobile-card-table tr { border: 1px solid var(--line); border-radius: 7px; background: #fff; padding: 28px 8px 8px; margin-bottom: 8px; position: relative; }
.mobile-card-table tr:not(.mobile-row-expanded) td:not(.mobile-priority-cell):not(.empty) { display: none; }
.mobile-card-table tr.mobile-compact-row::after { content: "点开全部"; position: absolute; right: 8px; top: 6px; color: #10634e; font-size: 12px; font-weight: 800; }
.mobile-card-table tr.mobile-row-expanded::after { content: "收起"; }
.mobile-card-table td { border-bottom: 0; display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; align-items: start; padding: 5px 2px; min-height: 28px; white-space: normal; overflow-wrap: anywhere; }
.mobile-card-table td .btn { width: 100%; margin-top: 4px; }
.mobile-card-table td::before { content: attr(data-label); color: var(--muted); font-weight: 800; font-size: 12px; }
.mobile-card-table td.empty { display: block; padding: 14px 8px; text-align: center; }
.mobile-card-table td.empty::before { content: none; }
.mobile-card-table td.num { text-align: left; }
.mobile-card-table .summary { max-width: none; }
.booking-tools { position: sticky; top: 0; z-index: 12; display: grid; grid-template-columns: 1fr; align-items: stretch; gap: 8px; margin-top: 8px; padding: 9px; }
.booking-tool-actions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); justify-content: stretch; }
.booking-tool-actions .booking-month-label { grid-column: span 3; min-width: 0; }
.booking-tool-actions .booking-month-label input { width: 100%; min-width: 0; min-height: 40px; }
.booking-tool-actions .btn { width: 100%; min-width: 0; }
.booking-tool-actions .btn { padding: 8px 4px; font-size: 12px; min-height: 40px; }
.booking-date-month { display: inline; }
.booking-table .month-head th > span { left: 80px; }
#occupancy90Kpis { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: visible; }
#occupancy90Kpis .kpi { min-width: 0; width: auto; }
#occupancy90Kpis .hint { white-space: normal; }
.booking-chart-panel.booking-fullscreen .booking-wrap { max-height: none; }
.booking-wrap { max-height: 68vh; border: 1px solid var(--line); border-radius: 7px; overflow: auto; touch-action: pan-x pan-y; }
.booking-table { --booking-cell: 38px; --booking-row: 38px; --booking-font: 12px; }
.booking-table .month-head th { height: 34px; font-size: 14px; }
.booking-table .day-head th { top: 34px; height: 32px; }
.booking-table .room-label, .booking-table .corner { min-width: 78px; width: 78px; }
.booking-name { max-width: 112px; line-height: 20px; }
.booking-legend { bottom: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 10px; font-size: 11px; }
.drawer.open { overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.shade { display: none; }
.drawer-panel { position: relative; right: auto; top: auto; bottom: auto; width: 100vw; min-height: 100dvh; height: auto; padding: 0; border-left: 0; display: block; overflow: visible; box-shadow: none; }
.drawer-head { flex: 0 0 auto; position: sticky; top: 0; background: #fff; z-index: 3; margin: 0; padding: 10px 12px; }
#drawerContent { min-height: 0; overflow: visible; padding: 10px 12px calc(126px + env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; }
.payment-allocation-panel { padding: 0; overflow-x: hidden; }
#paymentAllocationContent { min-height: 0; overflow: visible; padding: 10px 12px calc(126px + env(safe-area-inset-bottom)); }
.accountant-room-reference-panel { padding: 0; overflow-x: hidden; }
#accountantRoomReferenceContent { min-height: 0; overflow: visible; padding: 10px 12px calc(126px + env(safe-area-inset-bottom)); }
.accountant-room-reference-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.payment-allocation-facts, .payment-allocation-totals { grid-template-columns: repeat(2,minmax(0,1fr)); }
.payment-allocation-line-grid { grid-template-columns: minmax(0, 1fr); }
.payment-allocation-line-grid .btn { width: 100%; }
.payment-allocation-actions { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9; margin: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: 1fr 1fr; box-shadow: 0 -12px 26px rgba(15, 23, 42, .14); }
.payment-allocation-actions .btn { min-width: 0; width: 100%; white-space: normal; }
.payment-allocation-actions .primary { grid-column: 1 / -1; order: -1; min-height: 46px; }
body.drawer-keyboard-open #drawerContent { padding-bottom: calc(56vh + 32px); }
.password-modal { align-items: start; padding: 12px; }
.password-card { padding: 14px; }
.formgrid { grid-template-columns: 1fr; gap: 9px; }
#drawerContent .field { border: 1px solid #edf1f5; border-radius: 7px; background: #fff; padding: 8px; }
#drawerContent .field label, #drawerContent .field .field-label { color: #344054; line-height: 1.25; }
#drawerContent input, #drawerContent select { height: 40px; font-size: 16px; }
#drawerContent input, #drawerContent select, #drawerContent textarea { position: relative; z-index: 1; pointer-events: auto; user-select: text; -webkit-user-select: text; touch-action: manipulation; }
#drawerContent input.mobile-prompt-control, #drawerContent textarea.mobile-prompt-control { pointer-events: auto; background: #fff; color: var(--text); }
#drawerContent input, #drawerContent select, #drawerContent textarea { scroll-margin-bottom: calc(168px + env(safe-area-inset-bottom)); }
body.drawer-keyboard-open #drawerContent input,
body.drawer-keyboard-open #drawerContent select,
body.drawer-keyboard-open #drawerContent textarea { scroll-margin-bottom: calc(52vh + 28px); }
#drawerContent textarea { min-height: 92px; font-size: 16px; line-height: 1.45; }
.drawer-content textarea { min-height: 104px; }
.mobile-fill-btn { display: inline-flex; width: 100%; justify-content: center; margin-top: 6px; min-height: 36px; }
.drawer-save-panel { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9; margin: 0; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); border-top: 1px solid var(--line); background: rgba(255,255,255,.98); box-shadow: 0 -12px 26px rgba(15, 23, 42, .14); transition: transform .18s ease, opacity .18s ease; }
body.drawer-keyboard-open .drawer-save-panel:not(.is-saving) { transform: translateY(calc(100% + 24px)); opacity: 0; pointer-events: none; }
.drawer-save-panel summary { min-height: 44px; display: grid; place-items: center; padding: 8px 10px; }
.drawer-save-panel[open] summary { margin-bottom: 8px; }
.drawer-actions { display: grid; grid-template-columns: 1fr 1fr; position: static; margin: 8px 0 0; padding: 0; background: transparent; box-shadow: none; }
.drawer-actions #drawerSaveBtn { grid-column: 1 / -1; order: -1; min-height: 48px; font-size: 16px; }
.drawer-actions .btn { min-width: 0; width: 100%; min-height: 40px; padding-left: 5px; padding-right: 5px; white-space: normal; overflow: visible; text-overflow: clip; }
.toast-stack { top: auto; right: 10px; left: 10px; bottom: calc(84px + env(safe-area-inset-bottom)); width: auto; }
.drawer.open + .toast-stack { bottom: calc(164px + env(safe-area-inset-bottom)); }
#aiAssistant .panel { border-radius: 0; border-left: 0; border-right: 0; }
#aiAssistant .panel-head { padding: 8px 10px; }
#aiAssistant .panel-body { padding: 0; }
#aiAssistant .ai-layout { gap: 8px; }
#aiAssistant .ai-chat { border-left: 0; border-right: 0; border-radius: 0; min-height: calc(100dvh - 278px); }
#aiAssistant .ai-messages { max-height: none; min-height: calc(100dvh - 440px); padding: 8px; font-size: 14px; }
#aiAssistant .ai-msg { max-width: 97%; padding: 9px 10px; margin-bottom: 8px; line-height: 1.5; }
#aiAssistant .ai-draft { padding: 8px; }
#aiAssistant .ai-composer { position: sticky; bottom: 0; z-index: 6; padding: 8px; box-shadow: 0 -10px 24px rgba(15, 23, 42, .08); }
#aiAssistant .ai-composer .field { margin-bottom: 0; }
#aiAssistant .ai-composer .field label { font-size: 12px; }
#aiAssistant .ai-composer textarea { min-height: 66px; max-height: 118px; font-size: 16px; line-height: 1.45; }
#aiAssistant .ai-shortcuts { flex-wrap: nowrap; overflow-x: auto; gap: 6px; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
#aiAssistant .ai-shortcuts .btn { flex: 0 0 auto; min-width: 78px; padding: 8px 10px; white-space: normal; }
#aiAssistant .drawer-actions { display: grid; grid-template-columns: 1fr 1fr 1.35fr; gap: 6px; border-top: 0; margin-top: 8px; padding-top: 0; }
#aiAssistant .drawer-actions .btn { width: 100%; min-width: 0; padding-left: 6px; padding-right: 6px; }
#aiAssistant .save-status { min-height: 18px; margin-top: 6px; padding: 0 2px; }
#aiAssistant .ai-side { padding: 0 8px 10px; gap: 8px; }
#aiAssistant .ai-side .workbench-block { padding: 9px; }
#aiAssistant .ai-side .workbench-block:first-child,
#aiAssistant .ai-side .workbench-block:last-child { display: none; }
#aiAssistant .ai-hint { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
#aiAssistant .ai-hint .btn { flex: 0 0 auto; min-width: 88px; white-space: nowrap; }
body[data-role="rehabTherapist"] .shell { grid-template-columns: minmax(0, 1fr); }
body[data-role="rehabTherapist"] aside { display: none; }
body[data-role="rehabTherapist"] .top { position: sticky; top: 0; z-index: 18; padding: 8px 10px; border-bottom: 1px solid var(--line); box-shadow: 0 6px 16px rgba(15, 23, 42, .06); }
body[data-role="rehabTherapist"] .top h1 { font-size: 16px; line-height: 1.2; }
body[data-role="rehabTherapist"] .top .meta { display: none; }
body[data-role="rehabTherapist"] .opbar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
body[data-role="rehabTherapist"] .account-summary { grid-column: 1 / -1; padding: 6px 8px; }
body[data-role="rehabTherapist"] .opbar .field:not(.global-search-field) { display: none; }
body[data-role="rehabTherapist"] .opbar .global-search-field { grid-column: 1 / -1; }
body[data-role="rehabTherapist"] #changePasswordBtn,
body[data-role="rehabTherapist"] #logoutBtn { min-height: 34px; padding: 6px 8px; font-size: 12px; }
body[data-role="rehabTherapist"] .content { padding: 8px 7px 74px; gap: 8px; }
body[data-role="owner"] .shell { grid-template-columns: minmax(0, 1fr); }
body[data-role="owner"] aside { display: none; }
body[data-role="owner"] .top { position: sticky; top: 0; z-index: 18; padding: 5px 7px; border-bottom: 1px solid var(--line); box-shadow: 0 5px 14px rgba(15, 23, 42, .05); }
body[data-role="owner"] .top > div:first-child { display: none; }
body[data-role="owner"] .opbar { display: block; }
body[data-role="owner"] .opbar .global-search-field,
body[data-role="owner"] #changePasswordBtn,
body[data-role="owner"] #logoutBtn { display: none !important; }
body[data-role="owner"] .opbar .field:not(.global-search-field) { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; align-items: center; }
body[data-role="owner"] .opbar .field:not(.global-search-field) label { margin: 0; white-space: nowrap; font-size: 11px; }
body[data-role="owner"] .opbar .field:not(.global-search-field) input { height: 40px; padding: 5px 8px; font-size: 14px; }
body[data-role="owner"] .content { padding: 6px 6px 82px; gap: 8px; }
body[data-role="owner"] #ownerMobileGuidanceBtn { min-width: 78px; }
body[data-role="owner"] .owner-mobile-secondary-actions .btn,
body[data-role="owner"] #ownerAccount .btn { width: 100%; min-height: 44px; }
body[data-role="owner"] .mobile-quickbar button { min-height: 50px; }
body[data-role="owner"] .mobile-quickbar button strong { font-size: 12px; line-height: 1.2; white-space: normal; }
body[data-role="owner"] .site-icp-footer { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
body[data-role="manager"] .shell { grid-template-columns: minmax(0, 1fr); }
body[data-role="manager"] aside { display: none; }
body[data-role="manager"] .top { position: sticky; top: 0; z-index: 18; padding: 6px 8px; border-bottom: 1px solid var(--line); box-shadow: 0 6px 16px rgba(15, 23, 42, .06); }
body[data-role="manager"] .top > div:first-child { display: none; }
body[data-role="manager"] .opbar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
body[data-role="manager"] .account-summary { grid-column: 1 / -1; padding: 5px 8px; min-height: 0; }
body[data-role="manager"] .account-summary .label { display: none; }
body[data-role="manager"] .opbar .global-search-field { display: none; }
body[data-role="manager"] .opbar .field:not(.global-search-field) { grid-column: 1 / -1; }
body[data-role="manager"] #changePasswordBtn { display: none; }
body[data-role="manager"] #logoutBtn { min-height: 32px; padding: 5px 8px; font-size: 12px; }
body[data-role="manager"] .content { padding: 6px 6px 74px; gap: 8px; }
body[data-role="manager"] #dashboard .panel,
body[data-role="manager"] .manager-ops-panel { border-left: 0; border-right: 0; border-radius: 0; }
body[data-role="manager"] .manager-ops-panel .panel-head { padding: 8px; align-items: center; }
body[data-role="manager"] .manager-ops-panel .panel-body { padding: 8px; }
body[data-role="manager"] .manager-section-nav { grid-template-columns: minmax(0, 1fr) auto; gap: 6px; padding: 6px; }
body[data-role="manager"] .manager-section-current { min-height: 38px; padding: 0 5px; }
body[data-role="manager"] .manager-section-links { display: none; }
body[data-role="manager"] .manager-section-more { min-width: 68px; }
body[data-role="manager"] .manager-section-more-panel { top: calc(100% + 7px); right: 0; width: calc(100vw - 28px); max-height: min(58vh, calc(100dvh - 350px)); grid-template-columns: 1fr; gap: 10px; padding: 10px; }
body[data-role="manager"] .manager-overview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
body[data-role="manager"] .manager-overview-card { min-height: 116px; padding: 9px; gap: 4px; }
body[data-role="manager"] .manager-overview-card .value { font-size: 22px; }
body[data-role="manager"] .manager-overview-card span { font-size: 11px; line-height: 1.35; }
body[data-role="manager"] .manager-stage-note { margin-bottom: 8px; }
body[data-role="manager"] .owner-stage { padding: 9px; }
body[data-role="manager"] .owner-stage + .owner-stage { margin-top: 8px; }
body[data-role="manager"] .workbench-section-title { line-height: 1.35; }
body[data-role="manager"] .manager-fold { padding: 0; overflow: hidden; }
body[data-role="manager"] .manager-fold[open] { padding-bottom: 9px; }
body[data-role="manager"] .manager-fold > summary { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 44px; padding: 9px; cursor: pointer; list-style: none; }
body[data-role="manager"] .manager-fold > summary::-webkit-details-marker { display: none; }
body[data-role="manager"] .manager-fold > summary::after { content: "展开"; flex: 0 0 auto; border: 1px solid #d8e2e8; border-radius: 999px; padding: 2px 8px; color: #10634e; background: #f7fbf9; font-size: 12px; font-weight: 800; }
body[data-role="manager"] .manager-fold[open] > summary::after { content: "收起"; }
body[data-role="manager"] .manager-fold > :not(summary) { margin-left: 9px; margin-right: 9px; }
body[data-role="manager"] #managerRedlineGrid,
body[data-role="manager"] #managerCustomerFlowGrid,
body[data-role="manager"] #managerFinanceGrid,
body[data-role="manager"] #managerRoomRiskGrid,
body[data-role="manager"] .manager-role-grid,
body[data-role="manager"] #managerServiceLoopGrid { grid-template-columns: 1fr; gap: 8px; }
.review-lanes { grid-template-columns: 1fr; }
body[data-role="manager"] .owner-alert-item,
body[data-role="manager"] .manager-role-card,
body[data-role="manager"] .todo-row { padding: 9px; min-height: auto; }
body[data-role="manager"] .owner-alert-item .value { font-size: 20px; }
body[data-role="manager"] .manager-mini-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-role="waterTherapist"] #waterCustomerAccountOverview .section-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 6px; margin-bottom: 8px; }
body[data-role="waterTherapist"] .water-member-tools { padding: 7px; gap: 7px; }
body[data-role="waterTherapist"] .water-member-filter-panel summary { align-items: flex-start; min-height: 38px; padding: 9px; }
body[data-role="waterTherapist"] .water-member-filter-summary { justify-content: flex-start; }
body[data-role="waterTherapist"] .water-initial-bar { flex-wrap: wrap; overflow: visible; padding-bottom: 0; }
body[data-role="waterTherapist"] .water-initial-bar button { flex: 1 0 calc(20% - 6px); min-width: 46px; }
body[data-role="waterTherapist"] #waterRightsTodayStrip { display: flex; flex-wrap: wrap; grid-template-columns: none; overflow: visible; gap: 6px; padding-bottom: 0; }
body[data-role="waterTherapist"] #waterRightsTodayStrip.water-filter-chip-strip .water-today-chip { flex: 1 1 calc(50% - 6px); justify-content: center; min-width: 0; text-align: center; }
body[data-role="waterTherapist"] #waterRightsTodayStrip .owner-alert-item { flex: 0 0 148px; min-height: 82px; }
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-mobile-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-mobile-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-mobile-actions .btn,
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-card-more { width: 100%; min-width: 0; }
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-mobile-actions [data-gift-deduct-type="water"] { grid-column: 1 / -1; order: -2; min-height: 44px; font-size: 14px; }
body[data-role="waterTherapist"] #waterCustomerAccountCards .water-mobile-actions [data-water-redemption-detail] { order: -1; }
body[data-role="waterTherapist"] .redemption-submit-summary-grid { grid-template-columns: 1fr; }
body[data-role="waterTherapist"] .redemption-extra-summary .redemption-submit-summary-grid { margin-top: 6px; }
body[data-role="rehabTherapist"] #dashboard .panel,
body[data-role="rehabTherapist"] #rehabRights .panel,
body[data-role="rehabTherapist"] #rehabOrderPage .panel { border-left: 0; border-right: 0; border-radius: 0; }
body[data-role="rehabTherapist"] #dashboard .panel-head,
body[data-role="rehabTherapist"] #rehabRights .panel-head,
body[data-role="rehabTherapist"] #rehabOrderPage .panel-head { padding: 8px 9px; }
body[data-role="rehabTherapist"] #dashboard .panel-body,
body[data-role="rehabTherapist"] #rehabRights .panel-body,
body[data-role="rehabTherapist"] #rehabOrderPage .panel-body { padding: 9px 8px; }
body[data-role="rehabTherapist"] #rehabEntitlementFilters { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; padding: 8px; border: 1px solid #dde9e4; border-radius: 7px; background: #fbfdfc; }
body[data-role="rehabTherapist"] #rehabEntitlementFilters .field:first-child { grid-column: 1 / -1; }
body[data-role="rehabTherapist"] #rehabEntitlementFilters label { font-size: 11px; }
body[data-role="rehabTherapist"] #rehabEntitlementFilters input,
body[data-role="rehabTherapist"] #rehabEntitlementFilters select { height: 38px; font-size: 14px; }
body[data-role="rehabTherapist"] #rehabEntitlementClearFilters { min-height: 38px; }
body[data-role="rehabTherapist"] .rehab-rule-line { padding: 8px 9px; font-size: 12px; line-height: 1.45; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards { gap: 8px; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards .water-mobile-card { padding: 10px; border-radius: 8px; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards .water-mobile-card-head strong { font-size: 15px; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards .water-mobile-meta { grid-template-columns: 1fr; gap: 4px; font-size: 12.5px; line-height: 1.35; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards .water-mobile-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards .water-mobile-actions [data-gift-deduct-type="rehab"] { grid-column: 1 / -1; order: -1; min-height: 46px; font-size: 15px; }
body[data-role="rehabTherapist"] #rehabGiftEntitlementCards [data-rehab-entitlement-more] { min-height: 44px; font-size: 14px; }
.summary { max-width: 280px; }
}
@media print {
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
body * { visibility: hidden !important; }
#rehabClientReportContent, #rehabClientReportContent * { visibility: visible !important; }
#rehabClientReportModal { position: static !important; inset: auto !important; display: block !important; padding: 0 !important; background: #fff !important; }
.rehab-client-report-shade, .rehab-client-report-head { display: none !important; }
.rehab-client-report-shell { position: static !important; width: 100% !important; max-height: none !important; overflow: visible !important; border: 0 !important; box-shadow: none !important; background: #fff !important; }
.rehab-client-report-content { padding: 0 !important; }
.rehab-report-sheet { width: 100% !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
.rehab-report-cover { background: linear-gradient(135deg, #163d34 0%, #1f6a58 58%, #d6ad72 58.4%, #f6ead9 59%, #fffaf1 100%) !important; }
.rehab-report-section { break-inside: avoid; page-break-inside: avoid; }
}
.cashier-domain-entries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.cashier-domain-card{min-width:0;border:1px solid var(--line,#dce6e3);border-radius:10px;padding:12px;background:#fff}
.cashier-domain-card .btn,.cashier-domain-card .tag{white-space:normal;overflow-wrap:anywhere;max-width:100%;height:auto}
.cashier-domain-card p{margin:8px 0;line-height:1.6}
.cashier-domain-coverage{line-height:1.7}
@media(max-width:760px){.cashier-domain-entries{grid-template-columns:1fr}.cashier-domain-card .btn{width:100%}}

.reception-choice .btn{justify-self:start}
.reception-gaps{display:grid;gap:6px;line-height:1.6;overflow-wrap:anywhere}
.reception-excluded>summary{cursor:pointer;padding:10px 0;font-weight:600}

/* Two independent accounting grains, both visible above the operational queues. */
.accountant-ledger-filters {display:grid;grid-template-columns:1fr 1fr 2fr 1.5fr;gap:12px}
.accountant-ledger-filters label {display:grid;gap:5px;min-width:0}
.accountant-ledger-filters input, .accountant-ledger-filters select {width:100%;min-width:0}
.accountant-ledger-section {margin:16px 0;padding:18px;border:1px solid var(--line,#dce5e8);border-radius:10px;background:#fff}
.accountant-ledger-cards {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.accountant-ledger-card {height:auto;min-height:108px;align-content:start;display:grid;gap:6px;text-align:left;white-space:normal;min-width:0;padding:14px}
.accountant-ledger-card strong {font-size:24px}.accountant-ledger-card small {overflow-wrap:anywhere;color:#5e6c7e}
.accountant-ledger-card[aria-pressed="true"] {border-color:#197666;background:#eef8f5}
.accountant-contract-card .accountant-ledger-cards {grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0}
.accountant-contract-card .accountant-ledger-card {min-height:0;padding:10px;background:#f5f9f8;border-radius:6px}
.accountant-contract-card {overflow-wrap:anywhere}
@media(max-width:760px){.accountant-contract-card .accountant-ledger-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.accountant-contract-card .accountant-ledger-card strong{font-size:18px}}
.accountant-ledger-note {grid-column:1/-1;margin:0}
#accountantLedger-receipts [data-ledger-category="verify"] {border-color:#d9b56d;background:#fffaf0}
#accountantLedger-receipts [data-ledger-category="verify"][aria-pressed="true"] {border-color:#995b00;box-shadow:inset 0 0 0 1px #995b00}
@media(min-width:1100px){
#accountantLedger-receipts {grid-template-columns:repeat(5,minmax(0,1fr))}
}
.accountant-ledger-section summary {cursor:pointer;padding:10px 0}
@media(max-width:640px){
.accountant-ledger-filters {grid-template-columns:repeat(2,minmax(0,1fr))}
.accountant-ledger-filters label:last-child {grid-column:1/-1}
.accountant-ledger-section {padding:12px}
.accountant-ledger-cards {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#accountantLedger-receipts [data-ledger-category="all"] {grid-column:1/-1}
.accountant-ledger-card {padding:10px;font-size:14px}.accountant-ledger-card strong {font-size:21px}
.accountant-ledger-section table,.accountant-ledger-section tbody,.accountant-ledger-section tr,.accountant-ledger-section td {display:block;width:100%;min-width:0}
.accountant-ledger-section thead {display:none}
.accountant-ledger-section tr {border-bottom:2px solid #dce5e8;padding:8px 0}
.accountant-ledger-section td {white-space:normal;overflow-wrap:anywhere;text-align:left}
.accountant-ledger-section td[data-label]::before {content:attr(data-label);display:block;font-size:12px;color:#5e6c7e}
}

.accountant-ledger-divider { grid-column:1 / -1; margin:10px 0 0; color:var(--muted); font-size:14px; }

/* Match amount differs from either original document total. */
#accountantOperationHistory .match-table {width:100%;min-width:0;table-layout:fixed}
.match-table th:nth-child(-n+2) {width:30%}
.match-table th:nth-child(3) {width:16%}
.match-table td {vertical-align:top;white-space:normal;overflow-wrap:anywhere;padding:12px}
.match-table td>div {margin:5px 0}
.match-table .btn {margin-top:6px;white-space:normal}
.match-amount {font-size:18px;font-variant-numeric:tabular-nums}
.match-memo {display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--muted)}
.match-related,.match-trace {margin-top:8px;font-size:13px}
.match-table summary {cursor:pointer;color:#176f60;min-height:32px;padding:6px 0}
.match-allocation {padding:10px 0;border-bottom:1px solid var(--line)}
@media(max-width:900px){
#accountantOperationHistory .match-table,
.match-table :is(tbody,tr,td) {display:block;width:100%;min-width:0}
.match-table thead {display:none}
#accountantOperationHistory .match-table tr {border:1px solid var(--line);border-radius:8px;margin:10px 0;padding:0;background:#fff}
#accountantWorkbench #accountantOperationHistory td {display:block;box-sizing:border-box;padding:10px 12px;border-bottom:1px solid var(--line)}
.match-table td:last-child {border:0}
.match-table td[data-label]::before {content:attr(data-label);display:block;font-size:12px;color:var(--muted);margin-bottom:5px}
.match-table .btn,.match-table summary {min-height:44px}
}

.finance-verification-guide {min-width:0;line-height:1.65;overflow-wrap:anywhere}
.finance-verification-guide > div + div {margin-top:6px}

/* Four accountant entries share existing server-authoritative ledgers. */
#accountantWorkbench [hidden] { display:none !important; }
.accountant-page-nav { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px; }
.accountant-page-nav .btn { min-height:54px;font-size:18px;white-space:normal; }
.accountant-page-nav [aria-pressed="true"],.accountant-review-nav [aria-pressed="true"] { background:var(--brand);color:white;border-color:var(--brand); }
.accountant-review-nav { display:flex;gap:12px;margin:18px 0; }
.accountant-review-nav .btn { min-height:44px; }
#accountantWorkbenchKpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
#accountantInlineEditReview { padding:16px;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere; }
#accountantInlineEditReview article { padding:14px 0;border-bottom:1px solid var(--line); }
#accountantInlineEditReview .btn { min-height:44px;white-space:normal; }
@media(max-width:640px) {
.accountant-page-nav { grid-template-columns:repeat(2,minmax(0,1fr));gap:8px; }
.accountant-page-nav .btn {font-size:16px;min-height:48px;}
.accountant-review-nav .btn {flex:1;}
#accountantWorkbench #accountantWorkbenchKpis {grid-template-columns:repeat(2,minmax(0,1fr));}
#accountantInlineEditReview {padding:10px;}
#accountantInlineEditReview .review-diff {overflow-wrap:anywhere;}
}

/* Accountant review: compact summary, full audit remains expandable. */
.accountant-edit-card {padding:16px 0;border-bottom:1px solid #dce5e9;overflow-wrap:anywhere;}
.accountant-edit-card h3 {margin:0 0 8px;}
.accountant-edit-card p {margin:6px 0;}
.accountant-edit-filters {display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.accountant-edit-filters label {flex:1;min-width:180px;}
.accountant-edit-full {margin:12px 0;}
.accountant-edit-full summary {cursor:pointer;color:#246b65;}
.accountant-edit-card .review-diff {max-width:100%;overflow-wrap:anywhere;}
.accountant-review-work {margin:10px 0;padding:8px;border-left:3px solid #d7e7e2;}
@media(max-width:600px){.accountant-edit-filters{display:block;}.accountant-edit-filters label{display:block;margin-bottom:8px;}.accountant-edit-card{padding:12px 0;}}
.accountant-month-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.accountant-month-bar label{display:flex;align-items:center;gap:8px;min-width:0}
.accountant-month-bar input{max-width:100%;min-width:0}
.accountant-month-bar p{flex-basis:100%;margin:0}
.accountant-month-reminder .section-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:600px){.accountant-month-bar{gap:6px}.accountant-month-bar label{flex:1 1 160px}.accountant-month-bar input{width:100%}.accountant-month-bar .btn{padding:8px}.accountant-month-reminder{overflow-wrap:anywhere}}

/* Review categories are filters of the same queue; details retain original evidence. */
.accountant-review-count-summary {margin:0 0 16px;line-height:1.7;}
.accountant-review-problem {margin:6px 0;line-height:1.6;}
.accountant-review-evidence {margin-top:10px;}
.accountant-review-evidence>summary {cursor:pointer;color:#246b65;}
.accountant-review-actions {min-width:180px;max-width:320px;}
.accountant-review-actions p {margin:6px 0 10px;line-height:1.6;}
.accountant-review-actions .section-actions {display:flex;flex-wrap:wrap;gap:6px;padding:0;border:0;background:none;}
.accountant-review-actions .btn {white-space:normal;min-height:40px;}
@media(max-width:640px){
#accountantWorkbench :is(#accountantPriorityTable,#accountantReturnedTable,#accountantWaitingTable),
#accountantWorkbench :is(#accountantPriorityTable,#accountantReturnedTable,#accountantWaitingTable) tbody,
#accountantWorkbench .accountant-review-row,#accountantWorkbench .accountant-review-row td {display:block;width:100%;min-width:0;max-width:none;box-sizing:border-box;}
#accountantWorkbench :is(#accountantPriorityTable,#accountantReturnedTable,#accountantWaitingTable) thead {display:none;}
#accountantWorkbench .accountant-review-row {border-bottom:2px solid #dce5e8;padding:10px 0;}
#accountantWorkbench .accountant-review-row td {text-align:left;white-space:normal;overflow-wrap:anywhere;padding:8px 10px;}
#accountantWorkbench .accountant-review-row td::before {content:attr(data-label);display:block;font-size:12px;color:#5e6c7e;margin-bottom:4px;}
}

/* Secondary staff finance reads start only after this section is expanded. */
.staff-finance-disclosure { margin-top: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; min-width: 0; }
.staff-finance-disclosure > summary { min-height: 44px; box-sizing: border-box; padding: 12px 14px; cursor: pointer; font-weight: 700; color: var(--brand); overflow-wrap: anywhere; }
.staff-finance-disclosure > summary::marker { color: var(--brand); }
.staff-finance-disclosure[open] > summary { border-bottom: 1px solid var(--line); }

/* Accountant daily flow: one navigation, compact filters and progressive evidence. */
.accountant-page-nav {grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.accountant-page-nav .btn {font-size:16px;min-height:46px}
.accountant-review-search {display:flex;align-items:end;gap:10px;margin:12px 0}
.accountant-review-search label {display:grid;gap:4px;flex:1;min-width:0}
.accountant-review-search input {width:100%;min-width:0}
.accountant-document-actions {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.accountant-document-actions .btn {white-space:normal;min-height:52px}
.accountant-ledger-filters {display:flex;flex-wrap:wrap;align-items:end}.accountant-ledger-filters>label,.accountant-ledger-filters .accountant-review-search{flex:1 1 220px;min-width:0}
.finance-work-source {background:#f2f8f6;border-radius:8px;padding:12px}
.finance-work-source h3 {margin:0 0 6px}
.finance-work-source p {margin:6px 0}
.finance-work-issue {padding:12px 0}
.finance-work-issue p {margin:6px 0}
@media(max-width:900px){.accountant-page-nav{grid-template-columns:repeat(3,minmax(0,1fr))}.accountant-document-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.accountant-ledger-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.accountant-page-nav{gap:6px}.accountant-page-nav .btn{font-size:14px;padding:8px 4px}.accountant-workbench-head p{font-size:13px}.finance-work-detail{padding:12px}.accountant-document-actions .btn{font-size:14px}.accountant-ledger-filters label:nth-child(3){grid-column:1/-1}}

.finance-work-money {display:flex;flex-wrap:wrap;gap:8px 20px;align-items:baseline;margin:12px 0}.finance-work-money strong{font-size:22px}

#accountantRecordSearch{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:12px 0}#accountantRecordSearch[hidden]{display:none}#accountantRecordSearch label{flex:1 1 230px;min-width:0}#accountantRecordSearch input{width:100%;box-sizing:border-box;font-size:16px}
@media(max-width:760px){#localRecordsTable[data-accountant-paged] td.summary{display:block!important}#localRecordsTable[data-accountant-paged] td.summary::before{display:block;margin-bottom:6px}#localRecordsTable[data-accountant-paged] details{margin-top:10px}}

/* Inventory uses the same rows on both surfaces; keep every field readable on phones. */
@media (max-width: 900px) {
#inventory .stock-balance-overview .table-wrap { max-height: none; }
#inventory :is(#stockBalanceTable, #stockMovementTable) { min-width: 0; width: 100%; }
#inventory :is(#stockBalanceTable, #stockMovementTable) thead { display: none; }
#inventory :is(#stockBalanceTable, #stockMovementTable) tbody { display: block; }
#inventory :is(#stockBalanceTable, #stockMovementTable) tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding: 14px; }
#inventory :is(#stockBalanceTable, #stockMovementTable) tbody tr::after { content: none; }
#inventory :is(#stockBalanceTable, #stockMovementTable) tbody tr td { display: block; width: auto; min-width: 0; min-height: 0; padding: 0; text-align: left; white-space: normal; overflow-wrap: anywhere; font-size: 15px; line-height: 1.5; }
#inventory :is(#stockBalanceTable, #stockMovementTable) td::before { display: block; margin-bottom: 3px; }
#inventory :is(#stockBalanceTable, #stockMovementTable) td .tag { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
#stockBalanceTable td:is(:nth-child(1),:nth-child(2),:nth-child(3),:nth-child(6),:nth-child(7)),
#stockMovementTable td:is(:nth-child(5),:nth-child(6),:nth-child(11),:nth-child(12),:nth-child(13)),
#inventory :is(#stockBalanceTable, #stockMovementTable) td.empty { grid-column: 1 / -1; }
#inventory #stockBalanceTable td:nth-child(2), #inventory #stockMovementTable td:nth-child(5) { order: -3; font-weight: 800; font-size: 18px; }
#stockBalanceTable td:nth-child(3), #stockMovementTable td:nth-child(6) { order: -2; }
#stockBalanceTable td:nth-child(6) { order: -1; background: #f0f7f3; padding: 10px; border-radius: 6px; }
#stockBalanceTable td:nth-child(6) .tag { font-size: 20px; font-weight: 800; }
}

.employee-self-service:not([hidden]){display:flex;flex-wrap:wrap;gap:8px;padding:10px 12px}.employee-self-service .btn{min-height:44px;font-size:16px;flex:1}.hr-unified #employeeSelfService #procurementEntry{display:inline-flex!important}

.accountant-unreceived{color:#b42318}.accountant-unreceived small{display:block;font-weight:normal}

.accountant-ledger-filters .accountant-review-search{margin:0}
