/* AGCS 465: shared visual system. Business, print and dialog state rules stay in their existing files. */
:root{--bg:#f3f5f9;--surface:#fff;--surface-2:#f7f9fc;--ink:#18283f;--muted:#61718a;--line:#dfe5ee;--primary:#245fe5;--primary-dark:#1948b7;--nav:#101d34;--nav-2:#192b48;--success:#13805c;--warning:#b76a0b;--danger:#be3346;--radius:16px;--shadow:0 12px 36px #18283f0d}
@media screen{
html{color-scheme:light}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.45}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #7da8ff;outline-offset:3px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #739fff;outline-offset:1px}
.app-shell .sidebar{background:#101d34!important;border-right:1px solid #ffffff0b;box-shadow:none!important;padding:20px 14px 14px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#40516c transparent}
.app-shell .sidebar::before,.app-shell .sidebar::after{display:none!important}.sidebar .brand{padding:0 8px 20px}.sidebar .brand-logo{max-width:190px;max-height:82px;object-fit:contain}.sidebar .main-nav{gap:3px}.sidebar .nav-section-label{color:#8b9db9;font-size:10px;letter-spacing:.13em;margin:18px 12px 6px}.sidebar .nav-item{min-height:41px;border-radius:9px;padding:10px 12px;font-size:12px;font-weight:600;gap:10px;color:#b9c6db;background:transparent;box-shadow:none;border:1px solid transparent}.sidebar .nav-item.active{background:#243958!important;color:#fff!important;border-color:#ffffff14;box-shadow:inset 3px 0 #83aaff!important}.sidebar .nav-item:hover{background:#1c2c47!important;color:#fff}.sidebar .nav-icon{display:grid;place-items:center;flex:0 0 20px;width:20px}.gui-icon{width:19px;height:19px;display:block;stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}.sidebar .nav-item em{background:#36527d;color:#fff;font-size:10px}.sidebar .sidebar-section{margin-top:18px}.sidebar .sidebar-footer{padding:14px 6px 0;margin-top:20px}.sidebar .profile-chip{padding:10px 0}.sidebar .avatar{border-radius:12px;background:#2c4265;color:#e6efff}.sidebar .sidebar-link{font-size:11px;border-radius:8px;padding:7px 5px;color:#aebed6}.sidebar .sidebar-link:hover{background:#1c2c47}.sidebar .sidebar-app-meta{font-size:9px;opacity:.7;line-height:1.6;border:0;background:transparent;box-shadow:none;padding:10px 0 0}
.gui-nav-search{display:flex;align-items:center;gap:8px;margin:0 7px 10px;padding:8px 10px;border:1px solid #ffffff1f;border-radius:9px;background:#ffffff06;color:#8fa4c4}.gui-nav-search input{width:100%;min-width:0;background:none;border:0;color:#fff;font:inherit;font-size:11px;outline:none;padding:2px 0}.gui-nav-search input::placeholder{color:#91a3bf}.gui-nav-search:focus-within{border-color:#7da8ff}.gui-nav-empty{margin:12px;color:#afbdd2;font-size:12px}.sidebar .gui-nav-search .gui-icon{width:15px;flex-shrink:0}
.app-shell .main-content{padding-right:28px;padding-left:28px}.app-shell .topbar{height:96px;background:var(--bg)!important;backdrop-filter:none;box-shadow:none!important;border-bottom:1px solid var(--line)}.topbar h1{font-size:26px!important;font-weight:750;letter-spacing:-.045em}.topbar .eyebrow{font-size:9px;letter-spacing:.1em;color:#62728b}.topbar #pageSubtitle{font-size:12px;color:var(--muted)}.topbar-actions{gap:8px}.topbar .icon-button{box-shadow:none;background:#fff}.gui-today{display:flex;align-items:center;gap:7px;color:#65748a;font-size:11px;margin-right:7px;white-space:nowrap}.gui-today .gui-icon{width:16px}.view{padding-top:24px}.view h2{letter-spacing:-.025em}.view h3{letter-spacing:-.015em}
.app-shell :is(.panel,.workspace,.stat-card,.installation-card-panel,.invoice-generator-shell,.knowledge-list-panel,.knowledge-reader,.ftth-panel,.payroll-register-panel,.employee-clock-board-panel){border-color:var(--line);border-radius:var(--radius);box-shadow:0 3px 16px #18283f04;background:#fff}.app-shell .panel{padding:22px}.panel-head{margin-bottom:18px;align-items:center}.panel-head h2{font-size:18px}.eyebrow{color:var(--primary);font-size:10px;letter-spacing:.1em}.stat-grid{gap:14px}.stat-card{padding:18px 20px}.stat-value{font-size:32px;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.stat-card-head{font-size:12px}.stat-icon{border-radius:10px;background:#edf3ff}.stat-foot{font-size:11px}.overview-hero,.payroll-hero,.ftth-hero{background:#fff!important;border:1px solid var(--line)!important;border-left:4px solid var(--primary)!important;border-radius:16px!important;box-shadow:none!important;color:var(--ink)!important;padding:24px!important}.overview-hero::before,.overview-hero::after{display:none!important}.overview-hero h2,.payroll-hero h2,.ftth-hero h2{color:var(--ink)!important;font-size:27px!important;letter-spacing:-.04em}.overview-hero-copy>p:last-child,.payroll-hero-copy p{color:var(--muted)!important}.overview-hero-status{background:#ecf7f1!important;color:#17724f!important;border:1px solid #cde7d9!important;border-radius:10px!important;box-shadow:none!important}.overview-hero-status small{color:#36765b!important}.overview-live-dot{background:#16815b!important;box-shadow:none!important;animation:none!important}
.primary-button,.portal-primary{background:var(--primary)!important;border:1px solid var(--primary)!important;border-radius:10px!important;box-shadow:0 3px 8px #245fe516!important;font-weight:650;min-height:38px}.primary-button:hover,.portal-primary:hover{background:var(--primary-dark)!important;border-color:var(--primary-dark)!important}.secondary-button,.icon-button,.mini-button{background:#fff;border-color:#d9e1ed;border-radius:9px;font-weight:650;box-shadow:none;min-height:34px}.secondary-button:hover,.mini-button:hover{background:#f2f6fc;border-color:#a8bfdf}.danger-button{border-radius:9px;box-shadow:none}.text-button{font-weight:650}.primary-button:disabled,.secondary-button:disabled{opacity:.55}.app-shell :is(.modal-form,.form-grid,.stack-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){border:1px solid #d6dfeb;border-radius:10px;background:#fff;color:var(--ink);font-size:13px;padding:11px 12px}.app-shell :is(.modal-form,.form-grid,.stack-form) label>span{color:#40516a;font-size:12px;font-weight:650}.form-section{background:#f7f9fc;border-color:var(--line);border-radius:12px}.form-section>h3{font-size:14px;color:var(--ink)}
.modal-backdrop{background:#0c1b33a6;backdrop-filter:none!important}.modal-card{border:1px solid #dae3ef;border-radius:20px!important;box-shadow:0 30px 90px #101d3440!important}.modal-head,.modal-header{background:#fff!important;border-bottom:1px solid var(--line)!important;padding:22px 24px!important}.modal-head h2,.modal-header h2{font-size:23px!important;letter-spacing:-.035em}.modal-footer,.modal-actions{border-top-color:var(--line);background:#f8fafc}.modal-head .eyebrow,.modal-header .eyebrow{color:#6c7d96}.task-details-backdrop{backdrop-filter:none!important}#view-tasks .task-detail-dialog-nav{background:#f7f9fc!important;backdrop-filter:none!important;box-shadow:none!important}.task-pane .toolbar{background:#f7f9fc;padding:12px;gap:8px}.task-tabs{padding:11px 14px;gap:5px}.task-tab{border-radius:8px;font-size:12px}.task-tab.active{background:#edf3ff;color:#245fe5}.task-card{padding:13px 12px;margin:3px 0;border-bottom:1px solid #edf1f6}.task-card.selected{background:#f0f5ff;border-color:#c7d8f7}.task-title{font-size:14px;font-weight:650}.task-description-preview{font-size:12px}.task-meta{font-size:10px;gap:10px}.task-summary-row .mini-stat{padding:12px 15px;box-shadow:none}.mini-stat strong{font-variant-numeric:tabular-nums}.detail-section h3{font-size:13px;color:#243d5b}.description-text{font-size:13px;line-height:1.7}.badge{font-size:10px;padding:4px 8px}
:is(.data-table,.collection-table,.installation-table,.payroll-table,.payment-approval-table,.collector-tally-table,.collector-totals-table,.sms-history-table) th{background:#f4f7fb!important;color:#566b87!important;font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #dce5f0}.table-wrap,.collection-table-wrap,.installation-table-wrap{border:1px solid var(--line);border-radius:12px}.data-table td{font-size:12px;padding:13px 12px;border-color:#e9eef5}.data-table tbody tr:hover{background:#f8faff}.data-table :is(td,th){font-variant-numeric:tabular-nums}.status-pill{font-size:10px!important;font-weight:750;border-radius:6px!important;box-shadow:none!important}
/* Collections: preserve the table dimensions, frozen columns and warning meaning. */
#view-collections .collection-simple-nav{padding:8px;background:#e9eef6;border:1px solid #dce4ef;border-radius:14px;box-shadow:none}#view-collections .collection-simple-tab{padding:13px 15px;border:1px solid transparent;border-radius:10px;background:transparent;box-shadow:none;color:#576b89}#view-collections .collection-simple-tab.active{background:#fff;border-color:#d6e1f1;box-shadow:0 2px 7px #18283f08}#view-collections .collection-simple-tab strong{font-size:13px}#view-collections .collection-simple-tab small{font-size:11px}#view-collections .collector-sheet-hero h2{font-size:27px}#view-collections .collector-overview-toolbar{background:#f7f9fc;border-color:#e1e7f0;border-radius:12px;padding:16px;gap:12px}#view-collections .collector-overview-search-hint{color:#62718a}#view-collections .collector-overview-stats-top .collection-stat{background:#fff;border-color:#dfe5ee;box-shadow:none;padding:13px 14px;border-radius:11px}#view-collections .collection-stat strong{font-variant-numeric:tabular-nums;letter-spacing:-.04em}#view-collections .collector-due-analytics{background:#f9fbfd;border:1px solid var(--line);box-shadow:none}#view-collections .collector-sheet-quick-views button{border-radius:8px;min-height:34px}#view-collections .collector-overview-table thead th{background:#edf2f9;color:#526b90;letter-spacing:.08em;font-size:10px}#view-collections .collector-overview-table thead th:nth-child(-n+2){background:#142541;color:#fff}#view-collections .collector-overview-table thead th.current-month-cell{background:#e1ebfe;color:#244b95}#view-collections .collector-overview-table .collector-status-select{border-radius:7px;min-height:34px;font-size:11px;box-shadow:none}#view-collections .collector-customer-identity .collector-customer-edit-link{font-size:13px;font-weight:750;color:#182d4b}#view-collections .collector-customer-area{color:#334c70}#view-collections .collector-recorded-by{color:#425a7a;font-size:11px}#view-collections .collector-overview-table .mini-button{font-size:10px;padding:6px 8px;min-height:28px;border-radius:7px}#view-collections .collector-dc-prompt{box-shadow:none;border-radius:8px}#view-collections .collector-tally-panel,#view-collections .collector-totals-panel{background:#fff;border-color:var(--line);box-shadow:none}.payment-review-toolbar{background:#f7f9fc;border-color:var(--line);border-radius:12px}.payment-review-summary{gap:8px}.payment-review-summary>span{border-radius:9px;box-shadow:none}.payment-batch-actions{gap:8px}.payment-batch-actions button{min-height:40px}
/* Service, chat, people, invoices, mapping and administration share the same surfaces. */
.guest-support-inbox,.member-chat-layout{border-color:var(--line);border-radius:16px;box-shadow:none}.guest-support-threads-panel,.member-chat-contacts{background:#f7f9fc}.guest-support-thread.active{background:#eaf1ff;box-shadow:inset 3px 0 #245fe5}.guest-support-contact,.member-chat-thread-header{background:#fff;border-bottom-color:var(--line)}.guest-support-compose,.member-chat-compose{background:#f8fafc;border-top-color:var(--line)}.guest-support-conversation .client-portal-staff-messages,.member-chat-messages{background:#f9fbfd}.member-chat-launcher{box-shadow:0 6px 20px #14254126!important}.installation-kpi-card{border-radius:12px;box-shadow:none}.installation-kpi-value{font-size:28px;font-variant-numeric:tabular-nums}.installation-top-bar,.invoice-generator-header{border-bottom:1px solid var(--line);padding-bottom:18px}.installation-nav-tabs,.ftth-tabs,.mapping-tabs,.timeclock-workspace-tabs{background:#edf1f7;border:1px solid #e0e6ee;border-radius:11px;padding:5px;gap:5px;box-shadow:none}.installation-nav-tab,.ftth-tab,.mapping-tabs button,.timeclock-workspace-tab{border-radius:8px;box-shadow:none;font-size:12px}.employee-card,.upcoming-card,.knowledge-card{border:1px solid var(--line);border-radius:12px;box-shadow:none}.invoice-editor-section,.receipt-designer-preview{border-color:var(--line);border-radius:12px}.mapping-map-panel,.ftth-map-card{border-radius:14px;box-shadow:none;border-color:var(--line)}.sms-panel>details{background:#f8fafc;border-color:var(--line);border-radius:12px}.sms-panel summary{font-size:13px;color:#304b71}.sms-panel .sms-provider{box-shadow:none;border-radius:10px}.popover{border-color:var(--line);border-radius:14px;box-shadow:0 16px 44px #18283f1a}.toast{border-radius:12px;box-shadow:0 8px 25px #18283f18}
/* Public access */
.auth-layout{background:#f2f5fa!important;min-height:100dvh}.auth-layout .auth-visual{background:radial-gradient(ellipse at 0 0,#274d82 0,transparent 65%),#11233f!important;box-shadow:none!important;padding:48px!important}.auth-layout .auth-visual::before,.auth-layout .auth-visual::after{display:none!important}.auth-layout .visual-content{max-width:620px!important;gap:26px!important}.auth-layout .brand{padding:0!important;margin-bottom:0!important}.auth-layout .brand-logo{width:230px!important;max-height:100px;object-fit:contain}.auth-layout .visual-copy{margin:0!important}.auth-layout .visual-copy .eyebrow{color:#9dc1ff!important;font-size:10px!important;letter-spacing:.16em}.auth-layout .visual-copy h1{font-size:clamp(38px,4.3vw,64px)!important;line-height:1.08!important;letter-spacing:-.05em!important;max-width:600px!important;margin:18px 0!important}.auth-layout .visual-copy h1 span{display:block!important}.auth-layout .visual-copy h1 span:last-child{color:#9dc1ff}.auth-layout .visual-copy>p:last-child{font-size:15px!important;color:#c2d0e4!important;line-height:1.75;max-width:470px}.auth-layout .feature-list{display:none!important}.auth-layout .auth-panel{padding:46px 32px!important;background:#f2f5fa!important}.auth-layout .auth-card{max-width:470px!important;width:100%;padding:34px!important;border:1px solid #dce5f1!important;border-radius:22px!important;box-shadow:0 14px 44px #16294b0a!important;background:#fff!important}.auth-layout .auth-heading h2{font-size:31px!important;line-height:1.15;letter-spacing:-.04em!important;color:#142541!important;margin:9px 0 12px}.auth-layout .auth-heading>p:last-child{font-size:13px;color:#677894}.auth-layout .auth-tabs{background:#edf2f8!important;border:0!important;padding:5px!important;border-radius:10px!important;margin-top:25px}.auth-layout .auth-tabs a{border-radius:7px!important;font-size:13px!important;padding:10px!important;box-shadow:none!important}.auth-layout .auth-tabs a.active{background:#fff!important;color:#245fe5!important;box-shadow:0 2px 6px #172b480c!important}.auth-layout .auth-form{gap:18px!important}.auth-layout .auth-form label>span{font-size:12px;color:#3e536f;font-weight:650}.auth-layout .auth-form input{font-size:15px!important;min-height:48px;border:1px solid #d4dfef!important;border-radius:10px!important;background:#fbfcff!important;padding:12px 14px!important}.auth-layout .auth-cta-button{min-height:49px!important;border-radius:10px!important;background:#245fe5!important;animation:none!important;box-shadow:0 4px 12px #245fe51c!important}.auth-layout .auth-cta-button::before{display:none}.auth-layout .auth-install-open{margin:0!important;border-radius:14px!important;background:#ffffff09!important;border:1px solid #ffffff26!important;box-shadow:none!important;padding:17px!important}.auth-layout .auth-install-open-icon{background:#d4ee91!important;color:#203711!important;box-shadow:none!important;width:44px!important;height:44px!important;border-radius:12px!important}.auth-layout .auth-install-open-copy strong{font-size:15px!important;color:#fff}.auth-layout .auth-install-open-copy small{font-size:12px!important;color:#bdcde4!important}.auth-layout .auth-install-open-action{font-size:11px!important;min-height:34px!important;padding:8px 12px!important;background:#fff!important;color:#193b75!important;box-shadow:none!important;border-radius:8px!important}.auth-layout .auth-contact-card{background:#fff!important;border:1px solid #dce5f2!important;border-radius:16px!important;box-shadow:none!important;padding:20px!important;margin:0!important}.auth-contact-heading strong{font-size:20px!important;color:#172e50!important;letter-spacing:-.02em}.auth-contact-kicker{font-size:9px!important;letter-spacing:.1em;color:#5e78a0!important}.auth-contact-intro{font-size:12px!important;color:#677894!important;margin:8px 0 14px!important}.auth-contact-mark{width:34px!important;height:34px!important;background:#edf3ff!important;color:#245fe5!important;box-shadow:none!important}.auth-contact-facebook{background:#edf3ff!important;border:1px solid #d9e5fa!important;border-radius:11px!important;box-shadow:none!important;padding:12px!important;color:#204880!important}.auth-contact-facebook small{color:#57749e!important;font-size:10px!important}.auth-contact-facebook strong{font-size:13px!important;color:#204880!important}.auth-contact-icon{width:35px!important;height:35px!important;border-radius:9px!important;background:#245fe5!important;color:#fff!important;box-shadow:none!important}.auth-contact-links{gap:10px!important;margin-top:10px!important}.auth-contact-links>a{background:#f8fafd!important;border:1px solid #e2e9f3!important;border-radius:10px!important;padding:11px!important;box-shadow:none!important}.auth-contact-link-copy strong{font-size:12px!important;color:#243d60!important;overflow-wrap:anywhere}.auth-contact-link-copy small{font-size:9px!important;color:#69809f!important}.auth-contact-link-icon{background:#eaf0f8!important;color:#3b5d8e!important;box-shadow:none!important;width:28px!important;height:28px!important}.auth-layout .app-download-card{border:1px solid #e2e8f3!important;background:#f8fafd!important;box-shadow:none!important;border-radius:12px!important;padding:12px!important}.app-download-copy strong{font-size:12px!important}.app-download-copy small{font-size:10px!important}.auth-help-links{gap:8px}.auth-help-links a{font-size:12px!important;border-radius:9px!important}.auth-layout .persistent-login-note{font-size:10px!important;color:#688099!important}.auth-layout .switch-copy{font-size:12px!important}.auth-installation-dialog{background:#0c1b33a6!important;backdrop-filter:none!important}.auth-installation-dialog-inner{border-radius:20px!important;border-color:#dce5ef!important;box-shadow:0 25px 80px #0d21383d!important}.auth-installation{background:#fff!important;color:#18283f!important}.auth-installation h2{color:#18283f!important;font-size:27px!important}.auth-install-form label{color:#3c5475!important}.auth-install-form :is(input,select,textarea){font-size:16px!important;border-radius:10px!important;border-color:#d8e2f0!important}.auth-install-submit{background:#245fe5!important;color:#fff!important;border:0!important;box-shadow:none!important;border-radius:10px!important}
.login-support-panel{border:1px solid #d5e1f0!important;border-radius:17px!important;box-shadow:0 18px 60px #11254126!important}.login-support-panel>header{background:#172e50!important;color:#fff!important;padding:16px 18px!important}.login-support-messages,.login-support-intake-messages{background:#f5f8fc!important}.login-support-panel :is(input,textarea){font-size:16px!important;border-radius:10px!important}.login-support-launcher{background:#245fe5!important;border-radius:999px!important;box-shadow:0 5px 20px #245fe52b!important;padding:13px 18px!important;font-size:13px!important}.login-support-contact{background:#fff!important;border-bottom:1px solid #e0e7f1!important}.login-support-contact-actions>a{border-radius:8px!important;box-shadow:none!important}.app-footer{font-size:10px!important;color:#6f819b!important;background:#f2f5fa!important;border-top:1px solid #e3e9f2!important}
/* Customer portal */
.portal-shell{max-width:1240px}.portal-header{border-bottom:1px solid #dee6f1;background:transparent;box-shadow:none}.portal-login-copy{background:#142541!important;border-radius:20px!important;color:#fff!important}.portal-login-copy h1{font-size:clamp(32px,4vw,52px);letter-spacing:-.045em}.portal-login-card,.portal-card{background:#fff;border:1px solid #dfe6f1;border-radius:16px!important;box-shadow:0 5px 20px #14254105!important}.portal-login-card input{background:#f9fbfe;border:1px solid #d6e0f0;border-radius:10px;font-size:16px}.portal-card-head h2{font-size:18px;letter-spacing:-.02em}.portal-table-wrap th{background:#f2f6fb;color:#567193;font-size:10px;letter-spacing:.06em}.portal-chat-float-head{background:#172e50!important}.portal-chat-float{border-radius:17px!important;box-shadow:0 20px 60px #14254126!important}
@media(min-width:881px){body.desktop-sidebar-collapsed .gui-nav-search,body.ftth-view-active:not(.ftth-sidebar-expanded) .gui-nav-search{display:none}body.desktop-sidebar-collapsed .sidebar .brand{padding:0 0 14px}.sidebar .sidebar-app-meta strong{font-size:9px}}
@media(max-width:1200px){.gui-today{display:none}.auth-layout .auth-visual{padding:32px!important}.auth-layout .auth-panel{padding:32px 20px!important}.auth-layout .visual-copy h1{font-size:44px!important}}
@media(max-width:1050px){.auth-layout{display:flex!important;flex-direction:column!important}.auth-layout .auth-visual{display:none!important}.auth-layout .auth-panel{display:flex!important;flex-direction:column!important;gap:18px!important;align-items:center!important;justify-content:flex-start!important;padding:24px 20px 90px!important}.auth-layout .auth-contact-mobile{display:block!important;width:min(470px,100%)!important;order:-1}.auth-layout .auth-contact-desktop{display:none!important}.auth-layout .auth-mobile-brand{display:block}.auth-layout .auth-card{max-width:470px!important}.auth-layout .auth-heading h2{font-size:29px!important}}
@media(max-width:880px){.app-shell .main-content{padding:0 16px 100px!important}.app-shell .topbar{height:82px!important;gap:8px}.topbar h1{font-size:21px!important}.topbar #pageEyebrow{font-size:8px}.topbar #pageSubtitle{font-size:10px;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-actions{gap:6px}.topbar-actions .primary-button{padding:8px 11px;min-height:38px}.app-shell .panel{padding:16px}.view{padding-top:18px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stat-card{padding:14px}.stat-value{font-size:27px}.app-shell .overview-hero{padding:18px!important;gap:15px}.overview-hero h2{font-size:23px!important}.overview-hero-copy>p:last-child{font-size:12px}.overview-grid{grid-template-columns:1fr}.sidebar .gui-nav-search{padding:12px}.sidebar .gui-nav-search input{font-size:16px}.sidebar .nav-item{min-height:46px}.mobile-app-nav{background:#fff!important;border:1px solid #dce5f0!important;box-shadow:0 -3px 18px #18283f08!important;backdrop-filter:none!important}.mobile-app-nav-item{color:#73839b!important}.mobile-app-nav-item.active{background:#ecf2ff!important;color:#245fe5!important}.mobile-app-nav-item small{font-size:10px}.guest-support-inbox{height:calc(100dvh - 215px)}.modal-head,.modal-header{padding:18px!important}.modal-head h2,.modal-header h2{font-size:21px!important}.modal-form{padding:16px}.app-shell :is(.modal-form,.form-grid,.stack-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea){font-size:16px}#view-collections .collector-sheet-hero h2{font-size:23px}#view-collections .collection-simple-tab{padding:11px}#view-collections .collector-overview-toolbar{padding:12px}.payment-batch-actions{flex-wrap:wrap}.payment-batch-actions button{min-height:44px}.member-chat-thread{min-width:0}.sms-form-grid{grid-template-columns:1fr}}
@media(max-width:560px){.auth-layout .auth-panel{padding:16px 14px 88px!important;gap:14px!important}.auth-layout .auth-card{padding:24px!important;border-radius:16px!important}.auth-layout .auth-contact-card{padding:16px!important}.auth-contact-links{grid-template-columns:1fr!important}.auth-contact-heading strong{font-size:19px!important}.login-support-panel{left:10px!important;right:10px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 88px)!important;bottom:76px!important}.login-support-panel>header{padding:13px 15px!important}.login-support-launcher{right:14px!important;bottom:14px!important}.auth-help-links{flex-wrap:wrap}.modal-footer,.modal-actions{flex-wrap:wrap;gap:8px}.stat-card-head{font-size:11px}.stat-icon{width:29px;height:29px}.upcoming-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-today{display:none}.topbar-actions .icon-button{width:35px;height:35px}.overview-hero-status{font-size:10px}.guest-support-module-head{align-items:flex-start;flex-wrap:wrap}.guest-support-module-head h2{font-size:22px}.installation-kpi-grid{gap:9px}.portal-login-card,.portal-card{padding:20px}.portal-login-copy{padding:26px}.portal-dashboard-head h1{font-size:27px}}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.primary-button,.secondary-button,.nav-item,.auth-install-open{transition:background-color .16s,border-color .16s,box-shadow .16s}.auth-layout .auth-install-open:hover{border-color:#acc8ff!important;transform:translateY(-2px)}.auth-layout .auth-install-open:hover .auth-install-open-action{background:#dceaff!important}.stat-card:hover{border-color:#c4d3e9}}
@media(prefers-reduced-motion:reduce){.auth-layout .auth-install-open,.auth-layout .auth-cta-button{animation:none!important;transition:none!important;transform:none!important}.overview-live-dot{animation:none!important}}
}
@media screen{.sidebar .nav-item[hidden],.sidebar .nav-section-label[hidden]{display:none!important}}
@media screen{
.sidebar .gui-nav-search input{background:transparent!important;border:0!important;box-shadow:none!important;min-height:0!important;height:auto!important;padding:2px 0!important;color:#eaf1ff!important;border-radius:0!important}
.overview-hero .eyebrow{color:#4c6da0!important}.compact-task strong{font-size:12px}.compact-task small{font-size:11px;color:#63748d}.compact-task{grid-template-columns:minmax(0,1fr) auto}.compact-task>small{grid-column:1;grid-row:2}.compact-task>.badge{grid-column:2;grid-row:1/3}
@media(max-width:560px){.login-support-launcher{width:auto!important;height:44px!important;min-height:44px!important;max-width:calc(100vw - 28px)!important;padding:0 14px!important;white-space:nowrap!important;overflow:visible!important}}
}

@media screen{.receipt-designer-fields [hidden]{display:none!important}.receipt-shared-settings{padding:16px;border:1px solid #dce5f1;border-radius:12px;margin-bottom:18px;background:#f8faff}.receipt-shared-settings h3{margin:0 0 6px}.receipt-shared-settings>label{display:grid;gap:8px;margin:14px 0}.receipt-editor-tabs{display:flex;gap:8px;padding:5px;border:1px solid #dce5f1;border-radius:12px;background:#f3f6fc}.receipt-editor-tabs button{flex:1;border:0;border-radius:9px;padding:12px;color:#4d6284;background:transparent;font-weight:750;cursor:pointer}.receipt-editor-tabs button.active{color:#1757cb;background:#fff;box-shadow:0 2px 8px #223c6614}.receipt-invoice-customizer{border:1px solid #cfddf2;border-radius:12px;padding:16px}.receipt-invoice-customizer summary{font-size:17px;font-weight:800;color:#153866}.receipt-designer-preview{align-self:start;position:sticky;top:18px;min-width:0}.receipt-designer-paper{max-height:75vh;overflow:auto}.receipt-designer-layout{grid-template-columns:minmax(0,1fr) 310px}.receipt-designer-grid>label{min-width:0}.receipt-designer-grid input{min-width:0}@media(max-width:1000px){.receipt-designer-layout{grid-template-columns:minmax(0,1fr)}.receipt-designer-preview{position:static}}}

/* Workspace task type editor: compact desktop rows and stacked mobile labels. */
.admin-task-type-rows{display:grid;gap:12px;margin:18px 0}
.admin-task-type-row{display:grid;grid-template-columns:minmax(150px,1fr) 64px 105px 110px 100px;gap:12px;align-items:end;padding:14px;border:1px solid #dbe5f5;border-radius:12px;background:#fff}
.admin-task-type-row label{display:grid;gap:6px;font-size:13px;font-weight:600;min-width:0}
.admin-task-type-row input,.admin-task-type-row select{width:100%;min-width:0;padding:8px;min-height:40px}
.admin-task-type-row input[type=color]{padding:4px;cursor:pointer}
.admin-task-type-row .admin-task-type-active{display:flex;align-items:center;align-self:center}
.admin-task-type-row input[type=checkbox]{width:18px;min-height:18px;margin:0}
.admin-task-type-order{display:flex;gap:6px}.admin-task-type-order button{padding:8px 12px;min-height:40px}
.admin-task-type-code{grid-column:1/-1;color:#64748b;font-size:11px}
@media(max-width:700px){.admin-task-type-row{grid-template-columns:minmax(0,1fr) 60px}.admin-task-type-row label:first-child{grid-column:1/-1}.admin-task-type-code{grid-column:1/-1}.admin-task-type-active{min-height:40px}}

/* Settings must shrink to the modal width instead of their content's intrinsic width. */
#settingsModal .modal{width:min(720px,calc(100vw - 24px));min-width:0;max-width:calc(100vw - 24px)}
#settingsForm{grid-template-columns:minmax(0,1fr);min-width:0;width:100%;max-width:100%}
#settingsForm>*{min-width:0;max-width:100%}
#settingsForm :is(section,label,input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
#settingsForm :is(p,small,h3,label){overflow-wrap:anywhere}
#settingsForm .toolbar{display:flex;flex-wrap:wrap;gap:8px;min-width:0;width:100%;padding:0;background:transparent}
#settingsForm .toolbar button{min-width:0;max-width:100%;white-space:normal}
#settingsForm>.modal-footer{display:flex;flex-wrap:wrap;justify-content:flex-end;min-width:0;width:100%;max-width:100%;margin-inline:0;padding-inline:0}
#settingsForm>.modal-footer button{min-width:0;max-width:100%;white-space:normal}
#adminTaskTypesPanel{container-type:inline-size}
#adminTaskTypeRows{min-width:0;width:100%;max-width:100%}
#adminTaskTypeRows .admin-task-type-row{width:100%;min-width:0;max-width:100%;grid-template-columns:minmax(0,1fr) 56px 90px;gap:10px;padding:12px}
#adminTaskTypeRows .admin-task-type-row label{min-width:0;max-width:100%}
#adminTaskTypeRows .admin-task-type-row :is(input,select){min-width:0;width:100%;max-width:100%;font-size:14px}
#adminTaskTypeRows .admin-task-type-row input[type=color]{height:42px;padding:4px}
#adminTaskTypeRows .admin-task-type-active{grid-column:1/3;justify-self:start;min-height:40px}
#adminTaskTypeRows .admin-task-type-active input{width:18px;height:18px;min-height:18px;flex:0 0 18px;padding:0}
#adminTaskTypeRows .admin-task-type-order{grid-column:3;justify-self:end;gap:6px;min-width:0}
#adminTaskTypeRows .admin-task-type-order button{width:40px;min-width:40px;min-height:40px;padding:7px}
#adminTaskTypeRows .admin-task-type-code{grid-column:1/-1;min-width:0;overflow-wrap:anywhere}
@container (min-width:620px){#adminTaskTypeRows .admin-task-type-row{grid-template-columns:minmax(0,1fr) 56px 90px 105px 86px}#adminTaskTypeRows .admin-task-type-active{grid-column:4}#adminTaskTypeRows .admin-task-type-order{grid-column:5}}
@container (max-width:390px){#adminTaskTypeRows .admin-task-type-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}#adminTaskTypeRows .admin-task-type-row label:first-child{grid-column:1/-1}#adminTaskTypeRows .admin-task-type-active{grid-column:1}#adminTaskTypeRows .admin-task-type-order{grid-column:2}}
@media(max-width:480px){#settingsModal .modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px)}#settingsForm{padding:14px}#settingsForm>.modal-footer button{flex:1 1 0;padding-inline:8px}#adminTaskTypesPanel{padding:12px}#settingsForm .toolbar button{flex:1 1 140px}#adminTaskTypeRows .admin-task-type-row :is(input,select){font-size:16px}}

/* Build 503 — one readable interface across operations, billing and public portals.
   Screen-only rules keep receipt and invoice print layouts independent. */
@media screen{
:root{--gui-ink:#172b46;--gui-muted:#53657e;--gui-line:#dce5ef;--gui-surface:#fff;--gui-canvas:#f3f6fa}
body{background:var(--gui-canvas);color:var(--gui-ink)}
body[data-module]{--module-accent:#2563eb;--module-soft:#edf3ff;--primary:var(--module-accent)}
body[data-module=collections],body[data-module=invoices]{--module-accent:#087f68;--module-soft:#e8f7f1}
body[data-module=installations]{--module-accent:#6d45cf;--module-soft:#f2edff}
body[data-module=customer-service],body[data-module=chat]{--module-accent:#087d99;--module-soft:#e7f6fa}
body[data-module=timeclock],body[data-module=payroll]{--module-accent:#a65a10;--module-soft:#fff5e7}
body[data-module=mapping],body[data-module=ftth]{--module-accent:#4362b0;--module-soft:#edf1fc}
body[data-module=employees],body[data-module=knowledge],body[data-module=activity]{--module-accent:#56627a;--module-soft:#edf1f6}
.app-shell .main-content{background:var(--gui-canvas)!important}
.sidebar{background:#11283f!important;border-right:1px solid #213b53!important}
.sidebar .brand{padding:19px 20px 14px!important;min-height:0!important}
.sidebar .brand-logo{max-height:64px;object-fit:contain}
.sidebar .nav-section-label{font-size:10px!important;font-weight:750;letter-spacing:.13em;color:#9eb4c8!important;margin:20px 18px 8px!important}
.sidebar .nav-item{margin:3px 10px!important;padding:10px 12px!important;gap:11px!important;min-height:56px!important;border-radius:10px!important;border:1px solid transparent!important;color:#e4edf6!important;box-shadow:none!important;align-items:center}
.sidebar .nav-item .nav-label{display:grid!important;min-width:0;flex:1;gap:3px;white-space:normal;line-height:1.25;text-align:left}
.sidebar .nav-label strong{display:block!important;white-space:normal!important;font-size:13px;font-weight:700}
.sidebar .nav-label small{display:block!important;white-space:normal!important;font-size:10px;font-weight:450;color:#a9bdd0;line-height:1.3}
.sidebar .nav-icon{width:30px;height:30px;flex:0 0 30px;display:grid;place-items:center;background:#ffffff0a;border-radius:8px;color:#b6cce0}
.sidebar .nav-item.active{background:#23445e!important;border-color:#4e7796!important;color:white!important}
.sidebar .nav-item.active .nav-label small{color:#d0e1ef}
.sidebar .nav-item.active .nav-icon{background:#ffffff19;color:#fff}
.sidebar .nav-item:hover{background:#1c394f!important}
.sidebar .nav-item[data-view=collections] .nav-icon,.sidebar .nav-item[data-view=invoices] .nav-icon{color:#7ee2c6}
.sidebar .nav-item[data-view=installations] .nav-icon{color:#c9b4ff}
.sidebar .nav-item[data-view=customer-service] .nav-icon,.sidebar .nav-item[data-view=chat] .nav-icon{color:#88d9f2}
.sidebar .nav-item[data-view=timeclock] .nav-icon,.sidebar .nav-item[data-view=payroll] .nav-icon{color:#f0c584}
.sidebar .gui-nav-search{margin:4px 12px!important;border:1px solid #3c5369!important;border-radius:9px!important;background:#1b354c!important;padding:10px!important}
.gui-nav-empty{padding:12px 20px;color:#d8e5ef;font-size:12px;line-height:1.6}
.gui-skip-link{position:fixed;left:12px;top:-100px;z-index:100000;padding:12px;background:#fff;color:#123254;border-radius:8px}
.gui-skip-link:focus{top:12px}
.sidebar .sidebar-section{border-top:1px solid #ffffff15;margin-top:16px;padding-top:12px}
.sidebar .sidebar-footer{border-top:1px solid #ffffff15}
.sidebar .profile-copy small{overflow-wrap:anywhere}
.app-shell .topbar{background:#fff!important;border-bottom:1px solid var(--gui-line)!important;box-shadow:none!important;padding:15px 24px!important;min-height:78px!important;gap:16px}
.topbar-title{gap:12px!important;min-width:0}
.gui-page-symbol{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;background:var(--module-soft,#edf3ff);border:1px solid var(--gui-line);border-radius:11px;color:var(--module-accent,#2563eb)}
.gui-page-symbol .gui-icon{width:22px;height:22px}
#pageEyebrow{font-size:9px;letter-spacing:.13em;color:var(--module-accent,#2563eb);margin:0 0 3px}
#pageTitle{font-size:24px!important;line-height:1.15;letter-spacing:-.04em;margin:0!important;color:var(--gui-ink)}
#pageSubtitle{font-size:12px!important;line-height:1.45;color:var(--gui-muted)!important;margin-top:5px;max-width:650px}
.topbar-actions{gap:8px!important;flex-shrink:0}
.app-shell .view{padding-top:20px}
.app-shell :is(.panel,.workspace,.operations-analytics,.command-center-panel,.guest-support-inbox,.installation-top-bar,.invoice-sheet){border-color:var(--gui-line);border-radius:14px;box-shadow:0 2px 5px #142b4404}
.app-shell :is(.panel-head,.command-center-head,.operations-analytics-head){gap:12px;flex-wrap:wrap}
.app-shell h2{letter-spacing:-.025em;line-height:1.25}
.app-shell :is(.panel-head h2,.command-center-head h2,.operations-analytics-head h2){font-size:21px}
.app-shell :is(input,select,textarea){color:var(--gui-ink);font-family:inherit}
.app-shell :is(.modal-form,.form-grid,.stack-form) label{font-size:13px;font-weight:650;line-height:1.45}
.app-shell :is(.modal-form,.form-grid,.stack-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=range]),select,textarea){font-size:14px;min-height:44px;border-radius:9px;line-height:1.4}
.app-shell :is(input,select,textarea):focus{border-color:var(--module-accent,#2563eb);outline:2px solid #2563eb24;outline-offset:1px}
.app-shell :is(button,a,input,select,textarea,summary):focus-visible,.auth-layout :is(button,a,input,select,textarea):focus-visible,.portal-shell :is(button,a,input,select):focus-visible{outline:3px solid #4587d8;outline-offset:3px}
.app-shell :is(.primary-button,.secondary-button){min-height:40px;padding:9px 14px;font-size:13px;line-height:1.3;white-space:normal}
.app-shell :is(.danger-button,.danger-text){color:#b42318}
.app-shell .primary-button:disabled,.app-shell .secondary-button:disabled{cursor:not-allowed;opacity:.55}
.app-shell .modal{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}
.app-shell .modal-form{min-width:0}
.app-shell .modal-form>*{min-width:0}
.app-shell :is(.modal-header,.modal-head){background:#fff!important}
.app-shell :is(.modal-header,.modal-head) .eyebrow{color:var(--module-accent,#2563eb)!important}
.app-shell :is(.modal-footer,.modal-actions){gap:8px;flex-wrap:wrap;background:#f8fafc}
.app-shell .table-wrap{border:1px solid var(--gui-line);border-radius:12px;overscroll-behavior-x:contain}
.app-shell table{font-variant-numeric:tabular-nums}
.app-shell thead th{font-size:11px;letter-spacing:.045em;line-height:1.4}
.app-shell tbody td{line-height:1.5}
.app-shell tbody tr:hover td{box-shadow:inset 0 0 0 9999px #2563eb04}
.app-shell .badge{font-size:11px;line-height:1.3;font-weight:700;white-space:normal}
.app-shell :is(.empty-list,.empty-details){color:var(--gui-muted);padding:30px 18px;line-height:1.6}
.app-shell .task-title{font-size:15px;font-weight:750;line-height:1.4}
.app-shell .task-description-preview{font-size:13px;line-height:1.5}
.app-shell .task-meta{font-size:11px;line-height:1.5;gap:8px 12px}
.app-shell .task-card{border-radius:10px;padding:14px;margin:7px 0}
.app-shell .task-pane .toolbar{display:flex;flex-wrap:wrap;align-items:end;gap:10px;background:#f5f8fc;border-bottom:1px solid var(--gui-line);padding:14px}
.app-shell .task-pane .toolbar .search-box{flex:1 1 100%;min-width:0;min-height:42px}
.app-shell .task-pane .toolbar select{flex:1 1 140px;min-width:0;max-width:100%;min-height:40px;padding:9px;font-size:13px;background:#fff;border:1px solid #cfdbea;border-radius:8px}
.app-shell .task-tab{min-height:42px;font-size:13px;font-weight:650}
.app-shell .task-tab.active{background:var(--module-soft);color:var(--module-accent);box-shadow:inset 0 -2px var(--module-accent)}
.app-shell .description-text{font-size:14px;line-height:1.65}
.gui-launchpad{background:#fff;border:1px solid var(--gui-line);border-radius:14px;padding:18px;margin:0 0 20px}
.gui-launchpad-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:13px}
.gui-launchpad-head h2{font-size:18px;margin:3px 0 0}.gui-launchpad-head .eyebrow{margin:0}.gui-launchpad-head>span{font-size:12px;color:var(--gui-muted)}
.gui-launchpad-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.gui-launchpad-grid>button{display:flex;align-items:center;gap:10px;min-width:0;text-align:left;padding:14px 12px;border:1px solid #dce5ef;border-radius:10px;background:#fff;color:var(--gui-ink);cursor:pointer}
.gui-launchpad-grid>button:hover{background:#f7faff;border-color:#9bb8d7}
.gui-launch-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;background:#edf3ff;color:#2563eb;border-radius:9px;font-size:20px;font-weight:750}
.gui-launchpad-grid>button[data-module-shortcut=collections] .gui-launch-icon{background:#e8f7f1;color:#087f68}
.gui-launchpad-grid>button[data-module-shortcut=installations] .gui-launch-icon{background:#f2edff;color:#6d45cf}
.gui-launchpad-grid>button[data-module-shortcut=customer-service] .gui-launch-icon{background:#e7f6fa;color:#087d99}
.gui-launchpad-grid>button>span:nth-child(2){min-width:0;display:grid;gap:5px}.gui-launchpad-grid strong{font-size:13px;line-height:1.3}.gui-launchpad-grid small{font-size:11px;color:var(--gui-muted);line-height:1.4}.gui-launchpad-grid b{margin-left:auto;color:#667a91}
.app-shell .overview-hero{padding:18px 20px!important;border-left-color:var(--module-accent)!important;margin-bottom:16px}
.app-shell .overview-hero h2{font-size:25px!important}.overview-hero-copy>p:last-child{font-size:13px!important;line-height:1.55}
.app-shell .collection-simple-tabs{gap:8px}.app-shell .collection-simple-tab{border-radius:10px;min-width:0}.app-shell .collection-simple-tab.active{border-color:#087f68;background:#e8f7f1}
.app-shell .collection-simple-tab strong{font-size:14px}.app-shell .collection-simple-tab small{line-height:1.5}
.app-shell .guest-support-thread{min-height:76px;border-left:3px solid transparent;padding-block:13px}
.app-shell .guest-support-thread.active{background:#e7f6fa;border-left-color:#087d99}.app-shell .guest-support-thread strong{font-size:14px}.app-shell .guest-support-contact strong{font-size:15px}.app-shell .guest-support-contact{background:#f6fafc}
.app-shell .client-portal-staff-messages,.app-shell .member-chat-messages{font-size:14px;line-height:1.5}
.auth-layout .auth-card{border:1px solid #d7e2ee!important;border-radius:18px!important;box-shadow:0 12px 35px #19385c0d!important}
.auth-layout .auth-heading h2{letter-spacing:-.04em;line-height:1.15}
.auth-layout .auth-tabs{padding:5px;border-radius:10px}.auth-layout .auth-tabs>*{min-height:44px}
.auth-layout .auth-contact-card{border:1px solid #87b7db!important;background:#eaf5ff!important;border-radius:14px!important;box-shadow:none!important}
.auth-layout .auth-contact-links a{background:#fff!important;border:1px solid #cbdfee!important;border-radius:10px!important;min-height:48px;color:#174b74!important}
.auth-layout .auth-install-open{border:1px solid #c3d7ec!important;border-radius:14px!important;box-shadow:none!important}
.auth-layout .auth-install-open-action{background:#2563eb!important;color:#fff!important}
.login-support-panel{border:1px solid #bfd5e5!important;border-radius:16px!important;box-shadow:0 16px 55px #18375026!important}
.login-support-panel>header{background:#075e78!important}.login-support-launcher{background:#075e78!important}
.portal-shell{color:var(--gui-ink)}.portal-shell :is(.portal-card,.portal-login-card,.portal-current-bill){border:1px solid var(--gui-line);border-radius:14px;box-shadow:0 2px 5px #142b4405}
.portal-shell :is(.portal-card-head h2,.portal-login-card h2){font-size:21px;line-height:1.3}.portal-shell .portal-header{border-bottom:1px solid var(--gui-line);background:#fff}.portal-shell .portal-details{line-height:1.6}
.agent-workspace main{max-width:1200px}.agent-workspace header{background:#123b54;border-radius:14px;padding:24px}.agent-workspace h1{font-size:30px}.agent-workspace .card{border-radius:14px;box-shadow:none;border-color:var(--gui-line)}.agent-workspace input,.agent-workspace select{min-height:44px;border-radius:9px}.agent-workspace small{line-height:1.5}.agent-workspace table{font-size:14px}
@media(min-width:881px) and (max-width:1250px){.gui-launchpad-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-today{display:none}.topbar-actions .secondary-button{padding:8px 10px}}
@media(max-width:880px){
.app-shell .topbar{padding:10px 12px!important;min-height:60px!important;gap:8px}.topbar-title{gap:8px!important}.gui-page-symbol{width:32px;height:32px;flex-basis:32px;border-radius:8px}.gui-page-symbol .gui-icon{width:18px;height:18px}#pageTitle{font-size:19px!important}#pageEyebrow,#pageSubtitle{display:none!important}.topbar-actions{gap:5px!important}.topbar-actions .primary-button{padding:9px 11px;min-height:38px}.gui-launchpad-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gui-launchpad{padding:14px;margin-bottom:14px}.gui-launchpad-head>span{display:none}.app-shell .view{padding-top:14px}.app-shell .overview-hero{padding:16px!important}.app-shell .overview-hero h2{font-size:23px!important}.app-shell .modal{max-height:calc(100dvh - 16px)}.app-shell :is(.primary-button,.secondary-button,.task-tab){min-height:44px}.app-shell :is(.modal-form,.form-grid,.stack-form) :is(input:not([type=checkbox]):not([type=radio]):not([type=color]),select,textarea){font-size:16px}.app-shell .mobile-app-nav-item{min-height:48px}.app-shell .mobile-app-nav-item.active{background:var(--module-soft)!important;color:var(--module-accent)!important}.portal-shell .portal-dashboard-actions{flex-wrap:wrap}
}
@media(max-width:480px){.gui-launchpad-grid{gap:8px}.gui-launchpad-grid>button{padding:11px 9px;align-items:flex-start;gap:8px}.gui-launch-icon{width:28px;height:28px;flex-basis:28px;font-size:17px}.gui-launchpad-grid b{display:none}.gui-launchpad-grid strong{font-size:12px}.gui-launchpad-grid small{font-size:10px}.gui-page-symbol{display:none}.topbar-title{flex:1}.topbar-actions .add-task-label{font-size:12px}.app-shell .task-pane .toolbar select{flex-basis:calc(50% - 10px);font-size:14px}.auth-layout .auth-contact-mobile{order:-1}.agent-workspace main{padding:12px}.agent-workspace header,.agent-workspace .card{padding:18px}}
@media(prefers-reduced-motion:reduce){.app-shell *{scroll-behavior:auto!important}.gui-launchpad-grid>button{transition:none!important}}
}

@media screen{.support-assistant-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid #dce5ef;background:#f5fafc}.support-assistant-tools>span{flex:1 1 170px;font-size:12px;color:#087d99;font-weight:700}.support-assistant-tools button{font-size:11px;padding:6px 9px;min-height:34px}.support-assistant-quick{display:flex;gap:6px;flex-wrap:wrap;padding:8px 12px;flex-shrink:0}.support-assistant-quick button{border:1px solid #b9dbe6;border-radius:20px;background:#eff9fc;color:#07566b;font-size:11px;padding:6px 9px;min-height:32px}.support-assistant-consent{display:flex;align-items:flex-start;gap:7px;font-size:10px;line-height:1.4;padding:5px 12px;color:#52657b;flex-shrink:0}.support-assistant-consent input{width:16px;height:16px;min-height:16px;flex:0 0 16px;margin:1px 0;padding:0}#loginSupportThinking{font-size:11px;color:#087d99;margin:0;padding:4px 12px;flex-shrink:0}.support-assistant-check{display:flex!important;align-items:center;gap:10px}.support-assistant-check input{width:18px!important;height:18px;min-height:18px!important;margin:0}#supportAssistantSettingsForm{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;overflow:auto}#supportAssistantSettingsForm>label:not(.support-assistant-check){display:grid;gap:6px}#supportAssistantSettingsModal .modal{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}#supportAssistantSettingsForm textarea{width:100%;min-width:0}#supportAssistantSettingsForm small{color:#53657e;line-height:1.5}.login-support-message:has(strong){overflow-wrap:anywhere}}

@media screen{#view-customer-service .guest-support-conversation{grid-template-rows:auto auto minmax(0,1fr) auto!important}.support-assistant-tools{flex-shrink:0}.login-support-chat .login-support-messages{flex:1 1 0;min-height:70px}.login-support-welcome{flex-shrink:0}@media(max-width:700px){.support-assistant-tools{gap:4px;padding:6px 8px}.support-assistant-tools>span{font-size:11px;flex-basis:100%}.support-assistant-tools button{min-height:36px;padding:5px 7px}.support-assistant-consent{font-size:10px}}}

@media screen{.support-assistant-privacy{flex-shrink:0;padding:3px 12px;color:#52657b;font-size:11px}.support-assistant-privacy summary{cursor:pointer;padding:4px 0}.support-assistant-privacy .support-assistant-consent{padding:4px 0}.login-support-welcome{padding:9px 12px!important;font-size:11px!important;line-height:1.4!important}.login-support-welcome strong{font-size:12px!important}@media(min-width:701px){.login-support-panel{width:min(410px,calc(100vw - 28px));height:min(680px,calc(100dvh - 110px))}}}

@media screen {
.ftth-olt-tracking{padding:16px!important;margin-bottom:16px;min-width:0}.ftth-olt-tracking summary{display:flex;gap:12px;justify-content:space-between;align-items:center;cursor:pointer;flex-wrap:wrap}.ftth-olt-tracking summary span{font-size:12px;color:#64748b}.ftth-olt-board-tools{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:16px 0}.ftth-olt-board-tools label{display:grid;gap:6px;min-width:180px}.ftth-olt-table-wrap{overflow:auto;max-height:440px}.ftth-olt-table-wrap table{width:100%;border-collapse:collapse;text-align:left;min-width:640px}.ftth-olt-table-wrap td,.ftth-olt-table-wrap th{padding:10px;border-bottom:1px solid #dbe4ef;vertical-align:top}.ftth-olt-table-wrap th{position:sticky;top:0;background:#eff6ff;z-index:1}.ftth-olt-table-wrap small,.ftth-olt-history-list small{display:block;margin-top:4px;font-size:12px;color:#64748b}.ftth-olt-detail{padding:16px;margin:12px 0;border:1px solid #bfdbfe;background:#f8fbff;border-radius:14px;min-width:0}.ftth-olt-detail h3{margin:0 0 8px}.ftth-olt-detail p{font-size:13px;overflow-wrap:anywhere}.ftth-olt-detail form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.ftth-olt-detail label,.ftth-olt-fields label{display:grid;gap:6px;min-width:0}.ftth-olt-detail input,.ftth-olt-detail select,.ftth-olt-fields input,.ftth-olt-fields select{width:100%;min-width:0;max-width:100%}.ftth-olt-detail form small{grid-column:1/-1;color:#64748b}.ftth-olt-warning{color:#92400e!important;font-weight:700;background:#fef3c7;padding:6px 8px;border-radius:6px}.ftth-olt-children{display:flex;gap:8px;flex-wrap:wrap}.ftth-olt-history-list{max-height:320px;overflow:auto;margin-top:10px}.ftth-olt-history-list article{padding:10px 0;border-bottom:1px solid #dbe4ef;overflow-wrap:anywhere}.ftth-olt-fields{display:grid;gap:12px;min-width:0;border:1px solid #bfdbfe;border-radius:12px;padding:12px}.ftth-olt-fields[hidden]{display:none!important}.ftth-olt-detail details summary{cursor:pointer;font-weight:700}
}
@media screen and (max-width:600px){.ftth-olt-detail form{grid-template-columns:minmax(0,1fr)}.ftth-olt-tracking{padding:12px!important}.ftth-olt-tracking summary{align-items:start;flex-direction:column}.ftth-olt-board-tools>*{width:100%}}

@media screen{.collector-submission-report-controls .collector-approval-all{display:flex;align-items:center;gap:8px;align-self:center;font-size:13px}.collector-approval-all input{width:18px;height:18px;margin:0;flex:0 0 auto}#collectorApprovalRequestPrint{white-space:normal}}

@media screen{.app-shell .collection-simple-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}.uncollected-controls{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0}.uncollected-controls label{display:grid;gap:6px;flex:1 1 175px;min-width:0;font-size:13px;font-weight:700}.uncollected-controls input,.uncollected-controls select{width:100%;min-width:0}.uncollected-controls .uncollected-check{display:flex;align-items:center;gap:8px}.uncollected-check input{width:18px;height:18px;flex:0 0 auto}.uncollected-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.uncollected-summary article{padding:14px;border:1px solid #dbe5f1;border-radius:12px;background:#f8fbff;min-width:0}.uncollected-summary strong,.uncollected-summary small{display:block;overflow-wrap:anywhere}.uncollected-summary strong{font-size:21px;margin-top:6px}.uncollected-group{border:1px solid #dbe5f1;border-radius:14px;margin:16px 0;overflow:hidden}.uncollected-group>header{background:#eef5ff;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px}.uncollected-group h3{margin:0}.uncollected-table-wrap{overflow:auto}.uncollected-group table{width:100%;border-collapse:collapse;min-width:760px;table-layout:fixed}.uncollected-group th,.uncollected-group td{padding:12px;vertical-align:top;text-align:left;border-bottom:1px solid #e2e8f0;overflow-wrap:anywhere}.uncollected-group th:nth-child(1){width:23%}.uncollected-group th:nth-child(2){width:37%}.uncollected-group th:nth-child(3){width:25%}.uncollected-group th:nth-child(4){width:15%}.uncollected-group td>strong,.uncollected-group td>b,.uncollected-group small{display:block}.uncollected-group small{font-size:12px;color:#52647f;margin-top:5px}.uncollected-group td>button{width:100%;margin-bottom:8px;white-space:normal}.uncollected-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.uncollected-months article{padding:8px;background:#fff7e6;border:1px solid #f5d99c;border-radius:8px;font-size:12px}.uncollected-months .awaiting{background:#eff6ff;border-color:#bfdbfe}.uncollected-months .partial{background:#fffbe6}.uncollected-months summary{cursor:pointer;font-size:11px;margin-top:6px}.uncollected-to-collect{color:#9a3412;margin:8px 0}.uncollected-error{padding:12px;background:#fff1f2;color:#9f1239;border-radius:10px}}
@media screen and (max-width:900px){.app-shell .collection-simple-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.uncollected-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:560px){.app-shell .collection-simple-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.uncollected-summary strong{font-size:18px}.uncollected-controls label,.uncollected-controls>button{flex-basis:100%;width:100%}.collection-uncollected{padding:12px!important}}

/* Compact follow-up ledger: full details stay expandable inside each row. */
@media screen{.collection-uncollected .panel-head{margin-bottom:8px}.collection-uncollected .panel-head p{margin:4px 0;font-size:12px}.collection-uncollected .panel-head h2{font-size:22px}.uncollected-controls{gap:8px;margin:10px 0}.uncollected-controls label{font-size:12px;gap:4px;flex-basis:155px}.uncollected-controls input,.uncollected-controls select{padding:8px 10px!important;min-height:36px!important;font-size:12px!important}.uncollected-controls>button{padding:8px 12px!important;min-height:36px!important;font-size:12px!important}.uncollected-summary{gap:7px;margin:10px 0}.uncollected-summary article{padding:9px 11px;border-radius:8px}.uncollected-summary small{font-size:11px}.uncollected-summary strong{font-size:18px;margin-top:3px}.uncollected-group{margin:10px 0;border-radius:10px}.uncollected-group>header{padding:9px 12px;font-size:12px}.uncollected-group h3{font-size:15px}.uncollected-group th,.uncollected-group td{padding:8px 10px;font-size:12px}.uncollected-group th:nth-child(1){width:24%}.uncollected-group th:nth-child(2){width:40%}.uncollected-group th:nth-child(3){width:23%}.uncollected-group th:nth-child(4){width:13%}.uncollected-group small{font-size:11px;margin-top:3px}.uncollected-area{font-weight:700}.uncollected-to-collect{margin:4px 0}.uncollected-months{display:flex;flex-direction:column;gap:4px}.uncollected-months article{display:grid;grid-template-columns:minmax(85px,1fr) auto auto auto;align-items:center;gap:4px 8px;padding:5px 7px;border-radius:5px;font-size:11px}.uncollected-months article>b{white-space:nowrap}.uncollected-month-state{font-size:10px;color:#475569}.uncollected-months details{display:block}.uncollected-months details[open]{grid-column:1/-1}.uncollected-months details>summary{font-size:10px;margin:0;color:#1d4ed8;cursor:pointer;white-space:nowrap}.uncollected-months details>small{grid-column:1/-1}.uncollected-followup summary{font-size:11px;color:#1d4ed8;margin-top:4px;cursor:pointer}.uncollected-group td>button{font-size:11px!important;padding:6px 8px!important;min-height:30px!important;margin-bottom:5px}}
@media screen and (max-width:560px){.uncollected-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.uncollected-summary strong{font-size:16px}.uncollected-group table{min-width:710px}.uncollected-controls label,.uncollected-controls>button{flex-basis:calc(50% - 8px);width:auto}.uncollected-controls label:nth-child(3){flex-basis:100%}}

@media screen{.uncollected-summary{grid-template-columns:repeat(6,minmax(0,1fr))}.uncollected-older-months{display:block!important;font-size:11px}.uncollected-older-months>summary{padding:5px 0;color:#475569;cursor:pointer}.uncollected-older-months>article{margin-top:4px}}@media screen and (max-width:1000px){.uncollected-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}@media screen and (max-width:560px){.uncollected-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media screen{.payment-rebate-panel{border:1px solid #f2c55b;background:#fffbed;border-radius:12px;padding:14px;min-width:0}.payment-rebate-panel header{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}.payment-rebate-panel h3{margin:0;font-size:16px}.payment-rebate-panel p,.payment-rebate-panel small{font-size:12px}.payment-rebate-panel>small{display:block;margin-top:8px;color:#64748b}.payment-rebate-fields{display:grid;grid-template-columns:2fr 1fr;gap:10px;align-items:end}.payment-rebate-fields label{display:grid;gap:5px;min-width:0}.payment-rebate-fields input,.payment-rebate-fields select{width:100%;min-width:0}}@media screen and (max-width:600px){.payment-rebate-fields{grid-template-columns:minmax(0,1fr)}}

@media screen{.customer-profile-fields{border:1px solid #bfdbfe;background:#f8fbff;border-radius:12px;padding:14px;min-width:0}.customer-profile-fields>header{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}.customer-profile-fields h3{margin:0;font-size:16px}.customer-profile-fields h3 small{font-weight:400}.customer-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}.customer-profile-fields label{display:grid;gap:5px;min-width:0}.customer-profile-fields input{width:100%;min-width:0;max-width:100%}.customer-profile-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0}.customer-profile-fields .customer-profile-remove{display:flex;align-items:center;gap:7px;font-size:12px}.customer-profile-remove input{width:18px;height:18px}.customer-profile-fields>small,.customer-profile-fields label small,.customer-profile-fields p{display:block;font-size:12px;color:#52647d;overflow-wrap:anywhere}.customer-profile-fields>small{margin-top:8px}}@media screen and (max-width:600px){.customer-profile-grid{grid-template-columns:minmax(0,1fr)}}

/* Monthly collector status graphs: isolated layout, readable counts and mobile scrolling. */
.collector-trends-panel{margin-top:16px;min-width:0}
.collector-trends-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px;cursor:pointer;list-style:none}
.collector-trends-panel>summary>span:first-child{display:grid;gap:5px;min-width:0}.collector-trends-panel>summary strong{font-size:18px;color:#183356}.collector-trends-panel>summary small{color:#607491;font-size:12px}.collector-trends-panel>summary>span:last-child{font-size:12px;color:#245fe5;white-space:nowrap}
.collector-trends-body{padding:0 20px 20px;min-width:0}.collector-trends-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:18px}.collector-trends-toolbar label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#3b536f;min-width:150px;flex:1}.collector-trends-toolbar :is(input,select){width:100%;min-width:0;min-height:42px;padding:8px 10px;font-size:14px;border:1px solid #cedbeb;border-radius:9px;background:#fff;color:#183356}.collector-trends-toolbar button{min-height:42px;padding:10px 14px;font-size:12px}
.collector-trends-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;font-weight:600;color:#334155}.collector-trends-legend span{display:inline-flex;align-items:center;gap:6px}.collector-trends-legend i{width:10px;height:10px;border-radius:3px}.collector-trends-legend .trend-billed{background:#b45309}.collector-trends-legend .trend-paid{background:#15803d}.collector-trends-legend .trend-unbilled{background:#64748b}
.collector-trends-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,560px),1fr));gap:16px;min-width:0}.collector-trend-card{border:1px solid #dce5f2;border-radius:14px;padding:18px;background:#fff;min-width:0}.collector-trend-card>header{display:flex;gap:12px;justify-content:space-between;align-items:start}.collector-trend-card h3{margin:0;font-size:17px;color:#183356;overflow-wrap:anywhere}.collector-trend-card header p{font-size:12px;color:#607491;margin:5px 0 12px}.collector-trend-card header>span{border-radius:20px;background:#edf3ff;padding:6px 9px;color:#294f87;white-space:nowrap;font-size:11px}
.collector-trend-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:4px 0 12px}.collector-trend-totals>span{display:grid;gap:3px;padding:10px 12px;border-radius:9px;font-size:12px;background:#f6f8fc}.collector-trend-totals b{font-size:23px;line-height:1.2}.collector-trend-totals .trend-billed{color:#92400e;background:#fff7e7}.collector-trend-totals .trend-paid{color:#166534;background:#edfaf0}.collector-trend-totals .trend-unbilled{color:#475569;background:#f1f5f9}
.collector-trend-chart{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;max-width:100%}.collector-trend-chart:focus-visible{outline:2px solid #245fe5;outline-offset:2px}.collector-trend-chart svg{display:block;width:100%;height:auto;font-family:Arial,sans-serif}
.collector-trend-details{border-top:1px solid #e2e8f0;margin-top:10px;padding-top:12px}.collector-trend-details summary{cursor:pointer;color:#2454a0;font-size:12px;font-weight:600}.collector-trend-details p{font-size:12px;color:#607491;overflow-wrap:anywhere}.collector-trend-details table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}.collector-trend-details :is(td,th){padding:8px;border-bottom:1px solid #e2e8f0;text-align:right}.collector-trend-details tr>:first-child{text-align:left}.collector-trend-details thead{background:#f1f5f9;color:#334155}.collector-trends-note{font-size:12px;line-height:1.65;margin:16px 0 0}
@media(max-width:600px){.collector-trends-panel>summary{padding:16px}.collector-trends-body{padding:0 12px 16px}.collector-trends-toolbar{gap:10px}.collector-trends-toolbar label{min-width:calc(50% - 10px)}.collector-trends-toolbar label:nth-child(3){flex-basis:100%}.collector-trends-toolbar button{flex:1;min-width:120px}.collector-trend-card{padding:12px}.collector-trends-panel>summary>span:last-child{display:none}.collector-trend-totals>span{padding:9px}.collector-trend-totals b{font-size:21px}.collector-trends-legend{gap:8px 12px}}
/* Subscriber Geo workspace and compact field update bubble. */
.geo-workspace{min-width:0;margin-bottom:22px;padding:20px}.geo-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.geo-heading h2{font-size:22px;margin:4px 0;color:#183356}.geo-heading p{font-size:13px;color:#64748b;margin:6px 0}.geo-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.geo-tabs button{border:1px solid #d6e1ef;background:#f8fafc;border-radius:10px;padding:11px 16px;color:#334155;font-weight:600}.geo-tabs button.active{background:#245fe5;color:#fff;border-color:#245fe5}.geo-toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:14px 0}.geo-toolbar label{display:grid;gap:6px;font-size:12px;min-width:145px;flex:1;color:#334155}.geo-toolbar :is(input,select){width:100%;min-width:0;padding:10px;border:1px solid #cedbeb;border-radius:9px;min-height:42px;background:white;color:#183356}.geo-toolbar .geo-check{display:flex;gap:7px;align-items:center;font-weight:500;flex:0 1 auto;min-height:42px}.geo-check input{width:17px;min-height:17px}.geo-legend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;margin:12px 0}.geo-map-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:16px}.geo-map{height:530px;min-height:340px;border:1px solid #d5e0ee;border-radius:12px;z-index:0}.geo-subscribers{max-height:660px;overflow-y:auto;overscroll-behavior:contain;padding-right:4px}.geo-customer,.geo-review-card{padding:14px;border:1px solid #dce5f2;border-radius:12px;margin-bottom:12px;background:#fff;overflow-wrap:anywhere}.geo-customer header,.geo-review-card header{display:flex;justify-content:space-between;align-items:start;gap:10px}.geo-customer header strong{color:#183356;font-size:14px}.geo-customer header span{font-size:11px;font-weight:700}.geo-customer :is(p,small){font-size:12px;line-height:1.55;color:#64748b}.geo-actions,.geo-route-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}.geo-actions :is(button,a){padding:7px 9px;font-size:12px;border:1px solid #cfddf0;border-radius:8px;color:#2454a0;background:#f5f8ff;text-decoration:none}.geo-actions label{font-size:12px;display:inline-flex;align-items:center;gap:5px}.geo-route-bar button{font-size:12px;min-height:40px;padding:9px 11px}.geo-stop{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6e3f7;background:#edf4ff;color:#244e87;padding:6px 9px;border-radius:20px;margin:3px;font-size:12px}.geo-stop button{border:0;background:transparent;color:#244e87}.geo-cluster{background:none;border:0}.geo-cluster span{display:flex;align-items:center;justify-content:center;background:#245fe5;color:white;border:3px solid white;box-shadow:0 2px 8px #1235;width:38px;height:38px;border-radius:50%;font-size:13px;font-weight:700}.geo-workspace table{width:100%;border-collapse:collapse;font-size:12px;min-width:560px}.geo-workspace :is(td,th){padding:10px;border-bottom:1px solid #dce5f2;text-align:left;vertical-align:top}.geo-workspace thead{background:#edf3fc;color:#334155}.geo-suspected{background:#fff1ce}.geo-otdr{margin:18px 0}.geo-otdr summary{font-weight:600;cursor:pointer;color:#2454a0}.geo-review-card p{font-size:12px;color:#64748b}.geo-workspace [hidden],.geo-quick-modal [hidden]{display:none!important}
.geo-quick-fab{position:fixed;left:18px;bottom:24px;z-index:90;display:flex;gap:9px;align-items:center;justify-content:center;border:1px solid #b7d4fc;background:#1d4ed8;color:white;border-radius:999px;min-width:49px;height:49px;padding:10px 15px;box-shadow:0 4px 16px #1d4ed83b;font-size:23px}.geo-quick-fab span{font-size:12px;font-weight:600}.geo-quick-fab[hidden]{display:none!important}body:has(.modal-backdrop:not(.hidden)) .geo-quick-fab{display:none}.geo-quick-modal{width:min(760px,calc(100vw - 24px));max-width:760px;max-height:calc(100dvh - 24px);overflow:hidden;display:flex;flex-direction:column}.geo-quick-modal>.modal-header{flex-shrink:0}.geo-quick-modal>.modal-form{overflow-y:auto;min-height:0;overscroll-behavior:contain}.geo-quick-modal fieldset{border:1px solid #dce5f2;border-radius:12px;padding:14px;min-width:0;margin:12px 0}.geo-quick-modal legend{font-size:12px;color:#2454a0;padding:0 5px}.geo-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.geo-wide{grid-column:1/-1}.geo-quick-modal label{display:grid;gap:6px;font-size:12px;margin-bottom:12px;color:#334155}.geo-quick-modal :is(input,select,textarea){width:100%;min-width:0;border:1px solid #cfdbec;border-radius:9px;padding:10px;font-size:16px;color:#183356}.geo-quick-modal input[type=file]{font-size:12px}.geo-quick-results{max-height:220px;overflow:auto}.geo-quick-results button{display:grid;gap:4px;text-align:left;width:100%;background:#f5f8ff;border:1px solid #dce5f2;border-radius:9px;padding:10px;margin:5px 0;color:#183356}.geo-quick-results small{font-size:11px;color:#64748b}.geo-quick-modal #geoQuickStatus{font-size:12px;color:#64748b}.geo-quick-modal .modal-footer{position:sticky;bottom:0;background:#fff;display:flex;gap:10px;justify-content:flex-end;padding:14px 0;margin:0;z-index:1}
@media(max-width:1000px){.geo-map-grid{grid-template-columns:1fr}.geo-map{height:420px}.geo-subscribers{max-height:500px}}@media(max-width:600px){.geo-workspace{padding:12px}.geo-heading{align-items:start;flex-direction:column}.geo-tabs{gap:6px}.geo-tabs button{font-size:12px;padding:9px}.geo-toolbar label{min-width:calc(50% - 8px)}.geo-map{height:360px}.geo-quick-fab{bottom:calc(82px + env(safe-area-inset-bottom));left:12px;width:46px;height:46px;padding:8px}.geo-quick-fab span{display:none}.geo-quick-modal{max-height:calc(100dvh - 16px);width:calc(100vw - 16px)}.geo-form-grid{grid-template-columns:1fr}.geo-quick-modal>.modal-form{padding:14px}.geo-quick-modal .modal-footer button{font-size:13px;padding:10px}.geo-quick-modal fieldset{padding:10px}.geo-customer header{flex-wrap:wrap}}
/* Drag-and-drop subscriber GPS proposals; approved pins remain separate. */
.geo-placement-help{font-size:12px;line-height:1.6;color:#536b89;background:#f3f7ff;border:1px dashed #bfd2ef;border-radius:10px;padding:10px 12px;margin:0 0 12px}.geo-customer[draggable=true]{cursor:grab}.geo-customer[draggable=true]:active{cursor:grabbing}.geo-actions .geo-drag-handle{background:#eef2ff;border:1px dashed #a5b4fc;color:#3730a3;cursor:grab;font-weight:600}.geo-drag-handle:active{cursor:grabbing}.geo-placement-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #c4b5fd;background:#f6f2ff;border-radius:12px;margin-bottom:12px}.geo-placement-toolbar strong{color:#5b21b6;font-size:14px}.geo-placement-toolbar p{margin:6px 0;color:#5f5278;font-size:12px;line-height:1.55}.geo-placement-toolbar output{display:block;font-size:12px;color:#5b21b6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.geo-placement-toolbar .geo-actions{margin:0}.geo-placement-toolbar .geo-actions .primary-button{background:#6d28d9;border-color:#6d28d9;color:#fff}.geo-placement-toolbar button:disabled{opacity:.5;cursor:not-allowed}.geo-map.geo-drop-ready{outline:2px dashed #7c3aed;outline-offset:3px}.geo-map.geo-drop-over{outline:4px solid #7c3aed;outline-offset:2px;box-shadow:0 0 0 5px #ddd6fe}.geo-map.geo-is-placing{cursor:crosshair}.geo-subscriber-marker{background:transparent;border:0}.geo-subscriber-marker span{display:block;width:20px;height:20px;box-sizing:border-box;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 5px #1238}.geo-proposed-icon{background:transparent;border:0}.geo-proposed-icon span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;box-sizing:border-box;background:#7c3aed;color:#fff;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 10px #3b07644d;font-size:20px;font-weight:700}.geo-is-placing .leaflet-marker-draggable{cursor:grab}.geo-placement-toolbar :is(button,output):focus-visible,.geo-drag-handle:focus-visible{outline:3px solid #6d28d9;outline-offset:3px}@media(max-width:600px){.geo-placement-toolbar{padding:11px}.geo-placement-toolbar .geo-actions{width:100%}.geo-placement-toolbar .geo-actions button{flex:1;min-height:42px}.geo-placement-help{font-size:12px}.geo-actions .geo-drag-handle{min-height:38px}}

/* Public ticket sharing in the existing task detail pane. */
.task-public-link-panel{background:#f7faff;border:1px solid #dce7f7;border-radius:14px;padding:16px!important;margin:14px 0}.task-public-link-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.task-public-link-heading h3{margin:3px 0}.task-public-link-heading .eyebrow{font-size:10px;margin:0}.task-public-link-badge{font-size:10px;font-weight:750;background:#e5efff;color:#2757a4;border-radius:99px;padding:6px 9px;white-space:nowrap}.task-public-link-help{font-size:12px!important;line-height:1.6;color:var(--muted);margin:10px 0}.task-public-link-status{font-size:12px;line-height:1.6;overflow-wrap:anywhere}.task-public-link-panel label{display:grid;gap:7px;min-width:0;margin:12px 0;font-size:12px;font-weight:700}.task-public-link-panel input,.task-public-link-panel textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box;font-size:13px;padding:10px 12px;border:1px solid #cfdced;border-radius:9px;background:#fff;color:var(--text,#18304d)}.task-public-link-panel textarea{resize:vertical}.task-public-link-panel [data-public-url]{font-family:ui-monospace,monospace;font-size:11px}.task-public-link-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.task-public-link-buttons .compact{font-size:12px;min-height:36px;padding:8px 12px;text-decoration:none}.task-public-link-panel [hidden]{display:none!important}.task-public-link-panel small{font-weight:400}.task-public-link-panel :is(button,a,input,textarea):focus-visible{outline:3px solid #a4c4fb;outline-offset:2px}

.task-public-link-panel details{border-top:1px solid #dce7f7;margin-top:14px;padding-top:12px}.task-public-link-panel summary{font-size:12px;font-weight:750;color:#2757a4;cursor:pointer;padding:4px 0}.work-order-text-link{overflow-wrap:anywhere;text-decoration:underline!important;text-underline-offset:2px}.member-chat-message.mine .work-order-text-link{color:inherit}

/* Monthly installation reporting and client-data provenance. */
.installation-period-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid #dfe7f4;border-radius:14px;padding:16px;margin-bottom:20px}.installation-period-toolbar label{display:grid;gap:7px;min-width:135px;font-size:12px;font-weight:750;color:#536b8b}.installation-period-toolbar input,.installation-period-toolbar select{min-height:42px;padding:9px 12px;border-radius:9px;border:1px solid #d4dfef;background:#fff;color:#203d65;font:inherit}.installation-period-buttons{display:flex;gap:7px}.installation-period-buttons button{min-height:42px}.installation-period-toolbar p{width:100%;margin:0;color:var(--muted);font-size:12px;line-height:1.6}.installation-client-crosscheck{font-size:12px;line-height:1.7;padding:12px 15px;border:1px solid #c8e8df;background:#f0fbf6;color:#256047;border-radius:10px}.installation-client-crosscheck.needs-review{border-color:#efdbb0;background:#fffbef;color:#775b22}.installation-monthly-chart{margin-bottom:20px}.installation-monthly-chart .installation-card-panel-head{flex-wrap:wrap;gap:12px}.installation-monthly-chart small{color:var(--muted);font-size:11px}.inst-trend-legend{display:flex;gap:14px;font-size:12px;align-items:center}.inst-trend-legend span{display:flex;align-items:center;gap:6px}.inst-trend-legend i{width:9px;height:9px;border-radius:3px;background:#6b5ee8}.inst-trend-legend .completed{background:#15966b}.inst-trend-scroll{overflow-x:auto;padding:12px 2px 4px}.inst-trend-chart{display:grid;grid-template-columns:repeat(12,minmax(48px,1fr));gap:6px;min-width:660px}.inst-trend-month{text-align:center;border-radius:8px;padding:4px 2px 8px}.inst-trend-month.selected{background:#f0efff}.inst-trend-bars{display:flex;justify-content:center;gap:4px;height:133px;align-items:end;padding-bottom:4px;border-bottom:1px solid #e3e9f4;margin-bottom:7px}.inst-trend-bar{display:flex;flex-direction:column;justify-content:end;align-items:center;border:0;background:transparent;cursor:pointer;padding:3px 2px;min-height:26px;min-width:20px;max-width:34px}.inst-trend-bar span{font-size:10px;font-weight:750;color:#66758f;margin-bottom:3px}.inst-trend-bar i{display:block;height:var(--bar-height);min-height:2px;width:14px;max-width:100%;border-radius:4px 4px 0 0;background:#6b5ee8}.inst-trend-bar.completed i{background:#15966b}.inst-trend-bar:focus-visible{outline:3px solid #9ab9fd;outline-offset:1px;border-radius:5px}.inst-trend-month>small{font-size:10px;white-space:nowrap}.inst-client-data-tag,.inst-data-warning{display:block;font-size:10px;line-height:1.5;margin-top:5px;font-weight:650;max-width:220px;white-space:normal}.inst-client-data-tag{color:#16724f}.inst-data-warning{color:#96601f}@media(max-width:640px){.installation-period-toolbar{gap:10px;padding:13px}.installation-period-toolbar label{flex:1;min-width:120px}.installation-period-buttons{width:100%}.installation-period-buttons #instCurrentMonth{flex:1}.installation-monthly-chart .installation-card-panel-head{align-items:start}}

.task-meta .task-tracking-link{font-size:inherit;font-weight:750;color:#225fbd;text-decoration:none;border-radius:5px;padding:2px 5px;background:#eef4ff}.task-meta .task-tracking-link:hover{text-decoration:underline}.task-meta .task-tracking-link:focus-visible{outline:3px solid #b5ccf9;outline-offset:2px}
/* A shared layout prevents the customer update and bill scanner from overlapping. */
.field-quick-actions{position:fixed;left:max(18px,env(safe-area-inset-left,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));z-index:504;display:flex;flex-direction:column;align-items:flex-start;gap:12px;width:max-content;max-width:calc(100vw - 36px);pointer-events:none}
#fieldQuickActions>:is(.geo-quick-fab,.collection-qr-scan-fab){position:static;inset:auto;z-index:auto;margin:0;flex:0 0 auto;max-width:100%;pointer-events:auto}
#fieldQuickActions .geo-quick-fab span{white-space:nowrap}
body.modal-open #fieldQuickActions,body:has(.modal-backdrop:not(.hidden)) #fieldQuickActions,body.chat-input-focused #fieldQuickActions,body.chat-keyboard-open #fieldQuickActions{display:none!important}
@media(max-width:880px){.field-quick-actions{left:max(12px,env(safe-area-inset-left,0px));bottom:calc(var(--mobile-nav-height,64px) + env(safe-area-inset-bottom,0px) + 12px);max-width:calc(100vw - 24px)}}
@media print{#fieldQuickActions{display:none!important}}
/* Customer location placement inside the floating update form. */
.geo-quick-map-panel{border:1px solid #d6d8fa;background:linear-gradient(145deg,#f9faff,#f5f3ff);border-radius:14px;padding:14px;margin:8px 0 16px;min-width:0}.geo-quick-map-panel[hidden]{display:none}.geo-quick-map-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.geo-quick-map-heading h3{font-size:16px;color:#233f68;margin:0 0 5px}.geo-quick-map-heading p{font-size:12px;line-height:1.6;color:#5e7190;margin:0 0 12px}.geo-quick-map-heading>span{font-size:10px;font-weight:700;color:#6d28d9;background:#ede9fe;border-radius:20px;padding:5px 8px;white-space:nowrap}.geo-quick-drag-card{width:100%;display:flex;align-items:center;gap:10px;text-align:left;border:1px dashed #a5a5ed;background:#fff;color:#383075;border-radius:10px;padding:10px 12px;margin-bottom:12px;cursor:grab;min-height:52px}.geo-quick-drag-card:active{cursor:grabbing}.geo-quick-drag-card>span:first-child{font-size:24px;flex-shrink:0}.geo-quick-drag-card>span:nth-child(2){display:grid;gap:3px;min-width:0;overflow-wrap:anywhere}.geo-quick-drag-card strong{font-size:13px}.geo-quick-drag-card small{font-size:11px;color:#69789b}.geo-quick-drag-card>b{font-size:10px;color:#7361b5;margin-left:auto;white-space:nowrap}.geo-quick-pin-map{height:320px;min-width:0;width:100%;border:1px solid #c7d3e6;border-radius:11px;background:#e4eaf3;z-index:0;cursor:crosshair;touch-action:pan-x pan-y}.geo-quick-pin-map.geo-drop-ready{outline:2px dashed #7c3aed;outline-offset:3px}.geo-quick-pin-map.geo-drop-over{outline:3px solid #7c3aed;outline-offset:2px}.geo-quick-pin-map .leaflet-marker-draggable{cursor:grab}.geo-quick-pin-map .leaflet-control-layers label{display:block;font-size:12px;margin:0;color:#334155}.geo-quick-modal #geoQuickMap :is(input[type=radio],input[type=checkbox]){width:auto;min-width:0;min-height:0;margin:3px 5px 3px 0;padding:0;font-size:12px}.geo-quick-map-panel output{display:block;padding:10px 0 3px;font-size:12px;color:#4c3b83;font-weight:650;line-height:1.6;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.geo-quick-map-actions{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.geo-quick-map-actions button{font-size:12px;padding:9px 11px;min-height:38px;border-radius:8px}.geo-quick-map-panel>p{font-size:12px;line-height:1.6;color:#4f6685;margin:8px 0}.geo-quick-map-panel>small{display:block;font-size:11px;line-height:1.6;color:#72809a}.geo-quick-pin-map:focus-visible,.geo-quick-drag-card:focus-visible{outline:3px solid #7c3aed;outline-offset:3px}@media(max-width:600px){.geo-quick-map-panel{padding:10px}.geo-quick-map-heading{flex-direction:column;gap:4px}.geo-quick-map-heading>span{margin-bottom:9px}.geo-quick-pin-map{height:270px}.geo-quick-drag-card>b{display:none}.geo-quick-map-actions{display:grid;grid-template-columns:1fr 1fr}.geo-quick-map-actions button{min-height:42px;font-size:11px;padding:9px 7px}.geo-quick-map-heading h3{font-size:15px}}
.geo-google-notice{display:grid;place-content:center;text-align:center;min-height:100%;padding:25px;color:#526b8b;font-size:13px;line-height:1.7;background:linear-gradient(145deg,#eef4fc,#f8faff);border-radius:10px}.geo-google-proposed{display:flex;width:34px;height:34px;align-items:center;justify-content:center;border:3px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#7c3aed;color:#fff;font-size:22px;box-shadow:0 3px 10px #39207844}.geo-google-saved{display:block;width:18px;height:18px;background:#fff;border:3px solid #64748b;border-radius:50%;box-shadow:0 2px 7px #172d5b44}.geo-quick-modal #geoQuickMap .gm-style :is(button,input,select){font-size:12px;min-height:0;max-width:none}.geo-quick-modal #geoQuickMap .gm-style button{padding:0}.geo-quick-modal #geoQuickMap .gm-style input{width:auto;padding:0}.geo-quick-modal #geoQuickMap .gm-style label{display:inline;margin:0}.geo-quick-modal #geoQuickMap .gm-style img{max-width:none}
/* Shared Google Maps views and preserved operational feature controls. */
.agcs-open-workspace{position:relative;isolation:isolate;background:#e9eff7;min-height:180px}.agcs-open-map-notice{display:grid;place-content:center;justify-items:center;gap:12px;position:absolute;inset:0;padding:22px;text-align:center;border-radius:inherit;background:linear-gradient(145deg,#edf3fc,#f9fbff);color:#526a89}.agcs-open-map-notice p{max-width:460px;margin:0;font-size:13px;line-height:1.7}.agcs-open-map-notice button{padding:9px 14px;border:1px solid #bdd0ed;border-radius:9px;background:white;color:#254d89;font-size:12px;font-weight:700;cursor:pointer}.agcs-open-feature{position:relative;display:flex;align-items:center;justify-content:center;overflow:visible}.agcs-open-circle{display:block;box-sizing:border-box;border-radius:50%;box-shadow:0 1px 6px #17325633}.agcs-open-default-pin{display:flex;width:30px;height:36px;border:2px solid #fff;border-radius:50% 50% 50% 0;background:#2563eb;color:#fff;transform:rotate(-45deg);align-items:center;justify-content:center;font-size:21px;box-shadow:0 2px 8px #17325644}.agcs-open-tag{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);white-space:nowrap;font-size:11px;font-weight:700;color:#17365b;background:#fff;border:1px solid #cbd9ed;border-radius:5px;padding:3px 7px;box-shadow:0 2px 5px #17325622;pointer-events:none}.agcs-open-tag.ftth-node-tag.green{color:#166534;background:#dcfce7}.agcs-open-tag.ftth-node-tag.red{color:#991b1b;background:#fee2e2}.agcs-open-tag.ftth-node-tag.yellow{color:#854d0e;background:#fef9c3}.agcs-open-tag.ftth-node-tag.purple{color:#6b21a8;background:#f3e8ff}.agcs-open-popup{color:#203956;font:13px/1.6 Arial,sans-serif;max-width:min(380px,calc(100vw - 70px));overflow-wrap:anywhere}.agcs-open-popup p{margin:6px 0}.agcs-open-popup button{cursor:pointer}.agcs-open-popup .ftth-map-mini-popup{width:100%;min-width:0;max-width:100%}.agcs-open-layers{margin:10px 6px;padding:9px 11px;max-width:220px;border-radius:8px;background:white;color:#334155;box-shadow:0 2px 8px #172d5b30;font:12px/1.6 Arial,sans-serif}.agcs-open-layers summary{cursor:pointer;font-weight:700}.agcs-open-layers label{display:flex!important;align-items:center;gap:8px;margin:9px 0!important;line-height:1.5;font-size:12px;cursor:pointer}.agcs-open-layers input[type=checkbox]{width:16px!important;height:16px!important;min-height:0!important;padding:0!important;flex-shrink:0}.agcs-open-auth-notice{position:absolute;z-index:10;bottom:4px;left:10px;right:10px;border:1px solid #f2c574;background:#fff9e9;color:#744c13;border-radius:8px;padding:10px;font-size:12px;line-height:1.5}.agcs-open-workspace .gm-style img{max-width:none}.agcs-open-workspace .gm-style button{min-width:0;min-height:0}.agcs-open-workspace .gm-style .gm-ui-hover-effect{padding:0}.agcs-open-workspace.geo-is-placing{cursor:crosshair}@media(max-width:600px){.agcs-open-popup{font-size:12px}.agcs-open-layers{max-width:180px;margin:7px 5px}.agcs-open-map-notice{padding:15px}.agcs-open-map-notice p{font-size:12px}}

.agcs-open-feature-content{position:relative;display:flex;align-items:center;justify-content:center;overflow:visible}.agcs-open-feature:focus-visible{outline:3px solid #7c3aed;outline-offset:4px;border-radius:50%}.agcs-open-layers select{display:block;min-width:110px;width:100%;max-width:180px;margin:5px 0 0;padding:5px 8px;min-height:30px;border:1px solid #cbd5e1;border-radius:6px;background:#fff;color:#334155;font:12px Arial,sans-serif}.agcs-open-layers.maplibregl-ctrl{pointer-events:auto;margin:7px}.agcs-open-workspace .maplibregl-ctrl-group button{width:32px;height:32px;min-height:0;min-width:0;padding:0;border-radius:0}.agcs-open-workspace .maplibregl-ctrl-attrib{font:10px/1.5 Arial,sans-serif;max-width:calc(100% - 60px)}.agcs-open-workspace .maplibregl-ctrl-attrib a{color:#334155}.agcs-open-workspace .maplibregl-popup-close-button{font:20px/1 Arial,sans-serif;width:25px;height:25px;min-width:0;min-height:0;padding:2px;color:#334155}.agcs-open-workspace .maplibregl-popup-content{padding:20px 15px 13px;border-radius:12px;max-height:min(65vh,600px);overflow:auto}.agcs-open-popup .ftth-mini-popup-container{min-width:0}.geo-open-notice{display:grid;place-content:center;text-align:center;min-height:280px;padding:22px;color:#526a89;font-size:13px;line-height:1.7}.geo-open-proposed{display:grid;place-items:center;border:3px solid white;border-radius:50%;background:#7c3aed;color:white;font-size:22px;box-shadow:0 2px 10px #3b147c66}.geo-open-saved{border:3px solid white;border-radius:50%;background:#64748b;box-shadow:0 2px 6px #17325644}.agcs-open-map-warning{position:absolute;z-index:5;bottom:28px;left:12px;right:12px;padding:8px 12px;background:#fff8e7;color:#744c13;border:1px solid #e8c785;border-radius:8px;font-size:12px}.agcs-open-map-warning button{font-size:12px;background:white;border:1px solid #d9b979;border-radius:5px;padding:3px 7px;color:inherit}.agcs-open-tooltip .maplibregl-popup-content{padding:7px 10px;pointer-events:none}.maplibregl-ctrl button.maplibregl-ctrl-attrib-button{min-width:24px;min-height:24px}

.agcs-open-workspace .maplibregl-marker{position:absolute;display:block}.agcs-open-layers label{font-weight:600}.agcs-open-workspace .maplibregl-canvas{outline:none}

/* Quick task actions and persistent starter attribution. */
.app-shell .task-card-workflow{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;margin-top:4px;border-top:1px solid #94a3b833;min-width:0}
.task-card-started{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;font-size:12px;color:var(--muted);min-width:0;overflow-wrap:anywhere}
.task-card-started strong{color:var(--ink)}.task-card-started time,.task-card-started small{font-size:11px}
.task-card-actions{display:flex;gap:8px;flex-shrink:0}.task-card-actions button{min-height:38px;padding:8px 13px;border:1px solid transparent;border-radius:9px;font-size:12px;font-weight:700}
.task-card-start{background:#edf3ff;color:#174db5;border-color:#c7d8f7!important}.task-card-done{background:#e6f7ee;color:#087647;border-color:#b6e4ce!important}
.task-card-actions button:disabled{opacity:.6;cursor:default}.task-card-actions button:focus-visible{outline:3px solid #729fff;outline-offset:2px}
@media(max-width:600px){.app-shell .task-card-workflow{flex-direction:column;align-items:stretch}.task-card-actions button{flex:1;min-height:42px}.task-card-actions{width:100%}}

/* Build 518: touch controls and narrow task panels. */
.app-shell .task-card-workflow{flex-wrap:wrap;max-width:100%}
.task-card-started{flex:1 1 180px;max-width:100%;line-height:1.5}
.task-card-actions{flex:0 1 auto;flex-wrap:wrap;max-width:100%;min-width:0}
.task-card-actions button{min-height:44px;min-width:44px;white-space:normal;overflow-wrap:anywhere;line-height:1.35;touch-action:manipulation}
.app-shell .task-card .task-title{overflow-wrap:anywhere;max-width:100%;min-width:0}
.app-shell .task-card .task-check{min-width:44px;min-height:44px;touch-action:manipulation}
.app-shell .task-card .row-select{min-width:24px;min-height:24px;margin:10px 0;touch-action:manipulation}
@media(max-width:880px){
 .app-shell .task-card{column-gap:8px;padding:12px 10px}
 .app-shell .task-card-workflow{flex-direction:column;align-items:stretch;gap:10px}
 .task-card-started{flex:0 1 auto;display:block}
 .task-card-started span,.task-card-started time,.task-card-started small{display:block}
 .task-card-started time,.task-card-started small{margin-top:3px}
 .task-card-actions{flex:0 1 auto;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .task-card-actions button{font-size:13px;padding:10px 8px;width:100%}
}
@media(max-width:360px){.task-card-actions{grid-template-columns:minmax(0,1fr)}}
@media(hover:none){.app-shell .task-card:hover{transform:none}}

/* Work state and starter stay together; deadline remains independently visible. */
.task-card-status-group{display:inline-flex;align-items:center;flex-wrap:wrap;gap:5px 8px;max-width:100%;min-width:0}
.task-status-starter{font-size:12px;line-height:1.5;overflow-wrap:anywhere;min-width:0;color:var(--ink)}
.task-status-starter strong{font-weight:700}
@media(max-width:880px){.task-card-status-group{flex-basis:100%;padding-top:2px}.task-status-starter{flex:0 1 auto}}

/* Build 520: compact cards with one selection control and no redundant completion circle. */
.app-shell .task-card{grid-template-columns:30px minmax(0,1fr) auto;gap:6px 8px;padding:10px 12px;margin:5px 0}
.app-shell .task-card-select{display:flex;align-items:flex-start;justify-content:center;width:30px;min-height:32px;padding:7px 5px;cursor:pointer;touch-action:manipulation}
.app-shell .task-card .task-card-select .row-select{width:18px;height:18px;min-width:18px;min-height:18px;margin:0;padding:0;flex:0 0 18px;cursor:pointer}
.app-shell .task-card-workflow{grid-column:2/-1;flex-direction:row;align-items:center;gap:6px 12px;padding-top:7px;margin-top:0}
.task-card-started{flex:1 1 150px;font-size:11px;line-height:1.4;gap:3px 8px}
.task-card-actions{display:flex;flex:0 1 auto;flex-wrap:wrap;width:auto;gap:7px;margin-left:auto;grid-template-columns:none}
.task-card-actions button{flex:0 1 auto;min-height:36px;padding:7px 11px;font-size:12px;width:auto}
.app-shell .task-card .task-description-preview{margin:4px 0;line-height:1.45}
.app-shell .task-card .task-meta{gap:4px 10px;line-height:1.5}
.app-shell .task-card .task-overdue-notice{margin:5px 0;padding:5px 8px}
@media(max-width:880px){
 .app-shell .task-card{grid-template-columns:28px minmax(0,1fr);gap:5px 7px;padding:10px 9px}
 .app-shell .task-card-select{width:28px;padding:7px 5px}
 .app-shell .task-card-workflow{grid-column:2/-1;gap:6px}
 .task-card-started{flex:1 1 100%;display:flex;flex-wrap:wrap}
 .task-card-started span,.task-card-started time,.task-card-started small{display:inline;margin-top:0}
 .task-card-actions{display:flex;width:auto;max-width:100%;gap:7px}
 .task-card-actions button{min-height:44px;flex:0 1 auto;padding:8px 10px}
 .task-card-status-group{flex-basis:auto;gap:4px 6px}
 .task-status-starter{font-size:11px}
}
@media(max-width:360px){.task-card-actions{width:100%}.task-card-actions button{flex:1 1 85px}}

.app-shell .task-card .task-installation-summary.task-installation-inline{grid-column:2/-1;margin:3px 0;padding:6px 8px;min-width:0}

/* Completed tasks have a prominent, readable completion banner. */
.app-shell .task-card.task-completed-card .task-completed-banner{grid-column:1/-1;display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 5px;border:1px solid #a8dfbf;border-radius:10px;background:#e9f8ef;color:#12643a;min-width:0}
.task-completed-check{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:50%;background:#16834b;color:white;font:800 32px/1 system-ui,sans-serif}
.task-completed-banner>div{min-width:0}.task-completed-banner strong{display:block;font-size:23px;font-weight:900;letter-spacing:.06em;line-height:1.2}
.task-completed-banner small{display:block;margin-top:3px;font-size:11px;line-height:1.4;overflow-wrap:anywhere;color:#39714f}
@media(max-width:600px){.app-shell .task-card.task-completed-card .task-completed-banner{padding:10px 12px;gap:10px}.task-completed-check{flex-basis:42px;width:42px;height:42px;font-size:30px}.task-completed-banner strong{font-size:21px}}

/* Completion stamp overlays the card without creating a grid row. */
.app-shell .task-card.task-completed-card{position:relative;isolation:isolate}
.task-completed-stamp{position:absolute;top:7px;right:14px;z-index:0;pointer-events:none;user-select:none;font:900 34px/1 system-ui,sans-serif;letter-spacing:.02em;color:#08763c;opacity:.22;transform:rotate(-7deg);white-space:nowrap}
.app-shell .task-completed-card>.task-main,.app-shell .task-completed-card>.task-side,.app-shell .task-completed-card>.task-card-select,.app-shell .task-completed-card>.task-card-workflow,.app-shell .task-completed-card>.task-installation-summary{position:relative;z-index:1}
@media(max-width:600px){.task-completed-stamp{font-size:29px;top:8px;right:10px}}

/* Floating green check only; no extra layout space. */
.app-shell .task-completed-card .task-completed-stamp{top:6px;right:12px;display:grid;place-items:center;width:48px;height:48px;font-size:46px;line-height:1;letter-spacing:0;color:#159447;opacity:.55;transform:none;text-shadow:0 1px 2px #fff;pointer-events:none}
@media(max-width:600px){.app-shell .task-completed-card .task-completed-stamp{width:40px;height:40px;font-size:39px;top:7px;right:9px}}

/* Center the completion overlay without changing card layout. */
.app-shell .task-completed-card .task-completed-stamp{top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);width:72px;height:72px;font-size:70px;opacity:.3;pointer-events:none}
@media(max-width:600px){.app-shell .task-completed-card .task-completed-stamp{top:50%;left:50%;right:auto;width:60px;height:60px;font-size:58px;transform:translate(-50%,-50%)}}

/* Keep completion marks above opaque installation detail panels. */
.app-shell .task-card.task-completed-card>.task-completed-stamp{z-index:2;opacity:.42;pointer-events:none;user-select:none}

/* Installation completion and customer approval are independently visible. */
.app-shell .task-installation-approval{grid-column:2/-1;position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;padding:7px 10px;border:1px solid #b6d7ee;background:#f0f8ff;border-radius:8px;color:#28557b;font-size:12px}
.app-shell .task-installation-approval.approval-missing{background:#fff8e8;border-color:#e7ca82;color:#805710}
.task-installation-approval button{min-height:40px;border:1px solid #c2a35c;background:#fff;border-radius:7px;padding:7px 10px;font-size:12px;font-weight:700;color:#6b4b0e}
.task-installation-approval button:disabled{opacity:.6;cursor:wait}
@media(max-width:600px){.task-installation-approval button{min-height:44px}}

/* Clear pending new-client review actions on task cards and collection queue. */
.new-client-review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.task-installation-approval .new-client-approve{border-color:#a8d8bb;background:#e9f7ef;color:#126b3e}
.task-installation-approval .new-client-delete{border-color:#efbdc4;background:#fff3f4;color:#a9283c}
.collector-request-list .approve-status-request{background:#e9f7ef;color:#126b3e;border:1px solid #a8d8bb}
.collector-request-list .reject-status-request{background:#fff3f4;color:#a9283c;border:1px solid #efbdc4}
@media(max-width:600px){.new-client-review-actions{width:100%}.new-client-review-actions button{flex:1;min-height:44px}.collector-request-list :is(.approve-status-request,.reject-status-request){min-height:44px}}

@media(max-width:600px){.collector-request-list [data-existing-link-review]{min-height:44px}.new-client-review-actions [data-existing-link-review]{flex:1}}

/* In-progress work stays identifiable after its original schedule expires. */
.badge.in_progress.task-rescheduled{background:#fff4d8;border:1px solid #e7bf65;color:#78520a;white-space:normal;line-height:1.4;text-align:left;max-width:100%}.detail-task-status{display:inline-flex;max-width:100%;vertical-align:middle}.task-card-status-group .task-rescheduled{overflow-wrap:anywhere}@media(max-width:880px){.task-card-status-group .task-rescheduled{font-size:11px}.detail-task-status{margin-bottom:5px}}

/* Task stop / handover controls share the compact workflow row. */
.badge.stopped{background:#fff1db;color:#854d0e;border:1px solid #f2ca8d}
.task-handover-button{min-height:40px;padding:8px 12px;font-size:.85rem}
.task-card-started{overflow-wrap:anywhere}
.task-card-started>span{max-width:65ch}
.detail-footer-actions{flex-wrap:wrap}
@media(max-width:600px){.task-card-actions{flex-wrap:wrap;gap:6px}.task-card-actions>button{flex:1 1 auto;min-height:44px}.task-card-started{display:flex;flex-wrap:wrap;gap:6px}.detail-footer-actions>button{flex:1 1 auto;min-height:44px}}

.collection-payment-receiver{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,1.2fr);align-items:center;gap:16px;padding:14px 16px;border:1px solid #cddff5;border-radius:14px;background:#f0f6ff}.collection-payment-receiver>div{display:grid;gap:4px;min-width:0}.collection-payment-receiver>div>span{font-size:12px;font-weight:700;color:#5b7396}.collection-payment-receiver strong{font-size:14px;color:#173d70;overflow-wrap:anywhere}.collection-payment-receiver small{font-size:12px;line-height:1.5;color:#57708e}.collection-payment-receiver label{min-width:0}.collection-payment-receiver select{width:100%;min-height:44px}
@media(max-width:600px){.collection-payment-receiver{grid-template-columns:1fr;padding:12px;gap:12px}}

.scan-review-modal{max-width:900px}.scan-review-body{padding:20px 24px;overflow:auto;min-height:0}.scan-review-overview{border:1px solid #c9dcf6;border-radius:16px;padding:18px;background:linear-gradient(130deg,#eef5ff,#f8fbff)}.scan-review-overview h3{margin:0;color:#173e77;font-size:24px;letter-spacing:-.03em}.scan-review-overview>p{color:#5b7291;font-size:12px;line-height:1.5;margin:8px 0 16px}.scan-review-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scan-review-totals>div{display:grid;gap:5px}.scan-review-totals span{font-size:11px;color:#637c9b}.scan-review-totals strong{font-size:20px;color:#173e77}.scan-review-tabs{display:flex;gap:6px;padding:5px;border-radius:12px;background:#eaf0f9;margin:18px 0}.scan-review-tabs button{flex:1;min-height:44px;padding:9px 12px;border:0;border-radius:9px;background:transparent;color:#58708f;font-weight:750;cursor:pointer}.scan-review-tabs button.active{background:white;color:#245fe5;box-shadow:0 2px 7px #163b6b12}.scan-review-months{display:grid;gap:12px}.scan-review-month{padding:16px;border:1px solid #dce6f2;border-left:4px solid #d69a16;border-radius:13px;background:white}.scan-review-month.is-full{border-left-color:#16a267;background:#f6fffa}.scan-review-month.is-partial{border-left-color:#e6a222}.scan-review-month.is-pending{border-left-color:#8870d5}.scan-review-month.is-unknown{border-left-color:#94a3b8}.scan-review-month>header{display:flex;justify-content:space-between;align-items:center;gap:12px}.scan-review-month>header>strong{font-size:15px;color:#193d6d}.scan-review-month>header>span{padding:5px 9px;border-radius:20px;background:#fdf0d6;color:#8d620b;font-size:11px;font-weight:800}.scan-review-month.is-full>header>span{background:#d9f8e8;color:#0d7948}.scan-review-month-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 0}.scan-review-month-money>span{display:grid;gap:4px;font-size:11px;color:#687e9b}.scan-review-month-money b{font-size:15px;color:#233e62}.scan-review-month .collection-barcode-payment-record{margin-top:8px;padding-top:10px;border-top:1px solid #dce6ef}.scan-review-legacy,.scan-review-pending{font-size:12px;color:#607793}.scan-review-choice{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #d9e4f2;border-radius:12px;margin-bottom:10px}.scan-review-choice input{flex:0 0 20px;width:20px;height:20px;min-height:20px}.scan-review-choice>span{display:grid;gap:5px;flex:1}.scan-review-choice small{font-size:12px;color:#68809f}.scan-review-choice>b{font-size:14px;color:#214a7f}.scan-review-settled{padding:16px;border-radius:12px;background:#e7f9ef;color:#137d4c}
@media(max-width:600px){.scan-review-body{padding:14px}.scan-review-overview{padding:14px}.scan-review-overview h3{font-size:21px}.scan-review-totals{gap:8px}.scan-review-totals strong{font-size:16px}.scan-review-month{padding:12px}.scan-review-month-money{gap:8px}.scan-review-month-money b{font-size:13px}.scan-review-modal .modal-footer{display:flex;flex-wrap:wrap}.scan-review-modal .modal-footer button{flex:1;min-height:44px}}

.scan-review-bill-state{display:inline-block;margin-bottom:10px;padding:5px 10px;border-radius:20px;background:#e5edfa;color:#46648c;font-size:11px;font-weight:850}.scan-review-bill-state.is-partial{background:#fff0d2;color:#935c0a}.scan-review-bill-state.is-full{background:#d8f7e6;color:#107449}

.scan-review-month .collection-barcode-payment-record strong{font-size:13px;line-height:1.5}.scan-review-month .collection-barcode-payment-record>span{font-size:13px;line-height:1.55;font-weight:650;color:#234b78}.scan-review-month .collection-barcode-payment-record small{font-size:11px;line-height:1.5}

.collection-payment-receiver input[readonly]{width:100%;min-height:44px;border:1px solid #c9daf2;border-radius:10px;padding:10px 12px;background:#fff;color:#1b4477;font-size:14px;font-weight:750;box-sizing:border-box;cursor:default}.collection-payment-receiver .payment-location-reason{display:block;margin-top:7px;line-height:1.45;font-size:11px;color:#5b7495}.payment-location-auto{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:20px;background:#deebff;color:#245caa;font-size:10px;font-weight:800}.payment-auto-location{color:#215a97!important;font-weight:750}

/* Keep the combined disconnected total distinct from zero-plan accounts. */
#view-collections .collection-stat.dc{border-top-color:#dc3545}
#view-collections .collection-stat.dc strong{color:#b91c1c}
#view-collections [data-collector-quick-status="DC"].is-active{background:#fee2e2;border-color:#f87171;color:#991b1b}

/* Approved billing pauses and pending requests are distinct from DC. */
.status-pill.pause,.collector-pause-badge{display:inline-flex;align-items:center;background:#ede9fe;color:#5b21b6;border:1px solid #c4b5fd;border-radius:8px;padding:5px 8px;font-size:11px;font-weight:700;white-space:normal}
#view-collections .collection-stat.pause{border-top-color:#7c3aed}#view-collections .collection-stat.pause strong{color:#6d28d9}
.collector-status-select.status-PAUSE{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}
.collector-status-select.status-PAUSE_PENDING{border-color:#a78bfa;background:#f5f3ff}
#view-collections [data-collector-quick-status="PAUSE"].is-active{background:#ede9fe;border-color:#a78bfa;color:#5b21b6}
.collection-resume-billing{min-height:36px;white-space:normal}

/* Keep Pause controls outside the compact identity scroll limit. */
#view-collections .collector-overview-table .collector-customer-identity:has(.collector-pause-badge){max-height:none;overflow:visible;}
