:root{font-family:Inter,system-ui,sans-serif;color:#172133;background:#f4f7fb;font-size:16px}*{box-sizing:border-box}body{margin:0}.topbar{height:68px;padding:0 max(18px,calc((100% - 900px)/2));background:#095da8;color:white;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 10px #1232}.topbar strong{display:block;font-size:20px;letter-spacing:.06em}.topbar span{font-size:12px;opacity:.85}.page{max-width:900px;margin:auto;padding:28px 18px 60px}.heading-row{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:20px}h1{font-size:28px;margin:3px 0 0}h2{font-size:18px;margin:0 0 6px}.eyebrow{color:#0870c9;font-weight:800;font-size:12px;letter-spacing:.1em;margin:0}.visits,.stack{display:grid;gap:14px}.visit-card,.panel{background:white;border:1px solid #dfe7f0;border-radius:15px;padding:17px;box-shadow:0 5px 20px #17324c0b}.visit-card{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:14px}.visit-card time{font-weight:800;color:#095da8;font-size:20px}.visit-content p{margin:0 0 5px}.visit-content small{color:#657286}.primary,.secondary{border:0;border-radius:10px;padding:13px 17px;font-weight:750;font-size:15px;cursor:pointer}.primary{background:#0870c9;color:white}.primary.compact{padding:11px 14px}.secondary{background:#eaf3fb;color:#075a9d}.link-button,.close{border:0;background:none;color:inherit;cursor:pointer;font-size:15px}.empty{padding:40px 20px;text-align:center;color:#68768a;border:2px dashed #cbd8e5;border-radius:15px}.empty strong,.empty span{display:block;margin:5px}.alert{padding:13px 15px;border-radius:10px;background:#fff6d9;color:#684c00}.alert.error{background:#ffe8e8;color:#8c1515}dialog{width:min(540px,calc(100% - 24px));border:0;border-radius:18px;padding:22px;box-shadow:0 24px 80px #0018}dialog::backdrop{background:#0a1f35aa}.dialog-title{display:flex;justify-content:space-between}.close{font-size:30px;color:#657286}label{display:block;font-weight:700;margin-bottom:6px}input,textarea,select{width:100%;padding:12px;border:1px solid #bdcad8;border-radius:9px;font:inherit;background:white}form p{margin:0}.login-panel{max-width:420px;margin:8vh auto}.errorlist{color:#a71919;padding-left:20px}@media(max-width:620px){.page{padding-top:22px}.visit-card{grid-template-columns:48px 1fr}.visit-card .secondary{grid-column:1/-1}.heading-row{align-items:center}h1{font-size:24px}}
.protocol-summary{margin:16px 0}.protocol-summary p{margin:4px 0}.alert.success{background:#e3f7ea;color:#176533}.section-heading small,.sticky-actions small{color:#657286}.suggestion-list{display:flex;gap:9px;overflow-x:auto;padding:10px 0 2px}.unit-suggestion{min-width:230px;text-align:left;border:1px solid #cbdceb;background:#f7fbff;border-radius:11px;padding:12px;color:#172133}.unit-suggestion strong,.unit-suggestion span{display:block}.unit-suggestion span{font-size:12px;color:#657286;margin-top:4px}.unit-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.remove-unit{border:0;background:#fff0f0;color:#a51e1e;border-radius:8px;padding:8px 10px;font-weight:700}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field.wide{grid-column:1/-1}.delete-field,.unit-form.removed{display:none}.photo-list{display:flex;gap:10px;margin-top:12px}.photo-list a{color:#0870c9}.add-unit{width:100%;border:2px dashed #9bc4e5}.sticky-actions{position:sticky;bottom:8px;background:#fff;border:1px solid #dfe7f0;border-radius:14px;padding:12px;box-shadow:0 10px 30px #17324c22;display:flex;align-items:center;gap:14px}.sticky-actions .primary{min-width:210px}@media(max-width:620px){.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.sticky-actions{display:grid}.sticky-actions .primary{width:100%}}
.action-link{text-decoration:none;text-align:center}.diagnostic-fields{margin:16px 0 20px}.service-line{border:1px solid #d7e3ef;border-radius:12px;padding:14px;background:#f9fcff}.service-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.remove-line{border:0;background:none;color:#a51e1e;font-weight:700;cursor:pointer}.line-total{text-align:right;color:#506176;padding-top:4px}.line-total strong,.unit-total{color:#0870c9;font-size:17px}.diagnostic-unit>.add-service{width:100%;margin-top:12px;border:2px dashed #9bc4e5}.unit-heading small{color:#657286}.service-line.removed{display:none}
.text-presets{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.text-presets small{width:100%;color:#657286}.text-preset{border:1px solid #b8d3e8;border-radius:9px;padding:8px 10px;background:#f3f9fe;color:#075a9d;text-align:left;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.text-preset:hover,.text-preset:focus{background:#e3f2fc;border-color:#74add6}.text-preset:active{transform:translateY(1px)}
.summary-layout{margin-top:16px}.summary-unit p{margin:8px 0;color:#46566a}.summary-lines{border-top:1px solid #e2e9f0;margin-top:14px;padding-top:8px}.summary-lines>div,.totals-card>div{display:flex;justify-content:space-between;gap:18px;padding:9px 0}.summary-lines small{color:#68768a}.totals-card{margin-top:18px;padding:12px 16px;background:#f4f8fc;border-radius:12px}.totals-card .discount-row{color:#176533}.totals-card .grand-total{border-top:2px solid #cbd8e5;margin-top:5px;padding-top:14px;font-size:20px;color:#095da8}.payment-status-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.payment-status-options label{display:flex;align-items:center;gap:9px;border:1px solid #cbd8e5;border-radius:10px;padding:13px;cursor:pointer}.payment-status-options input{width:auto}.payment-method-block,.unpaid-note-block{margin-top:15px}[hidden]{display:none!important}.secondary:disabled{opacity:.5;cursor:not-allowed}@media(max-width:620px){.payment-status-options{grid-template-columns:1fr}.summary-lines>div{align-items:start}.summary-lines>div strong{white-space:nowrap}}
.pdf-preview-panel{height:72vh;min-height:580px;margin:16px 0;background:#263442;border-radius:14px;overflow:hidden;box-shadow:0 12px 35px #1721332b}.pdf-preview-panel iframe{width:100%;height:100%;border:0;background:white}.review-actions{justify-content:flex-end}.review-actions .secondary:first-child{margin-right:auto}@media(max-width:620px){.pdf-preview-panel{height:64vh;min-height:460px;margin-left:-18px;margin-right:-18px;border-radius:0}.review-actions .secondary:first-child{margin-right:0}}
.top-actions{display:flex;align-items:center;gap:16px}.top-actions a{color:white;text-decoration:none;font-weight:700}.archive-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;align-items:end;margin-bottom:18px}.archive-filters .wide{grid-column:1/-1}.archive-results{display:grid;gap:10px}.archive-row{display:grid;grid-template-columns:1fr 2fr auto;gap:18px;align-items:center;background:white;border:1px solid #dfe7f0;border-radius:13px;padding:15px;color:#172133;text-decoration:none}.archive-row:hover{border-color:#87b9df}.archive-row strong,.archive-row span{display:block}.archive-row span{color:#657286;font-size:13px;margin-top:4px}.archive-money{text-align:right}.status{display:inline-block!important;border-radius:20px;padding:4px 9px;margin-top:6px!important}.status.paid{background:#e3f7ea;color:#176533}.status.unpaid{background:#fff0d7;color:#855600}.archive-detail{display:grid;grid-template-columns:1fr 1fr;gap:17px}.archive-detail div{display:grid;gap:4px}.archive-detail small,.muted{color:#657286}.archive-detail .wide{grid-column:1/-1}.archive-actions{display:flex;margin:15px 0}.payment-update{margin:15px 0}.payment-update>p{color:#657286}.history-row,.archive-unit>div{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-top:1px solid #e2e9f0}.history-row span,.archive-unit>span{display:block;color:#657286;font-size:13px;margin-top:3px}.archive-unit{padding:14px 0;border-top:1px solid #d7e3ef}.archive-unit:first-of-type{border-top:0}@media(max-width:700px){.archive-filters,.archive-row{grid-template-columns:1fr}.archive-filters .wide{grid-column:auto}.archive-money{text-align:left}.archive-detail{grid-template-columns:1fr}.archive-detail .wide{grid-column:auto}}
.period-presets{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 13px}.period-presets a{padding:9px 13px;border-radius:20px;background:#e8eef5;color:#46566a;text-decoration:none;font-weight:750;font-size:13px}.period-presets a.active{background:#0870c9;color:white}.dashboard-filter{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end;margin-bottom:18px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.kpi-card{background:white;border:1px solid #dfe7f0;border-top:4px solid #0870c9;border-radius:13px;padding:16px;box-shadow:0 5px 20px #17324c0b}.kpi-card.paid{border-top-color:#1b9a55}.kpi-card.unpaid{border-top-color:#df8b16}.kpi-card span,.kpi-card small{display:block;color:#657286}.kpi-card strong{display:block;font-size:25px;margin:7px 0;color:#172133}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-bottom:18px}.rank-list{display:grid;gap:15px;margin-top:18px}.rank-row>div:first-child{display:flex;justify-content:space-between;gap:12px}.rank-row span{color:#657286;font-size:12px;text-align:right}.bar{height:7px;background:#e7eef5;border-radius:20px;margin-top:7px;overflow:hidden}.bar i{display:block;height:100%;background:#0870c9;border-radius:20px}.bar.technician i{background:#1b9a55}.bar.district i{background:#7467d9}.bar.repair i{background:#d45d4d}.bar.maintenance i{background:#20a47b}.bar.revenue i{background:#1b9a55}.bar.time i{background:#9b64cc}.bar.late i{background:#df8b16}.bar.dirty i{background:#8b6247}.trend-panel{margin-bottom:18px;overflow:hidden}.trend-panel p{margin:4px 0}.trend-chart{height:245px;display:flex;align-items:stretch;gap:9px;overflow-x:auto;padding:22px 2px 3px}.trend-column{min-width:48px;flex:1;display:grid;grid-template-rows:18px 1fr auto auto;gap:4px;text-align:center}.trend-value{font-size:12px;font-weight:800;color:#0870c9}.trend-track{height:145px;border-bottom:1px solid #cbd8e5;display:flex;align-items:flex-end;justify-content:center}.trend-track i{display:block;width:min(30px,72%);min-height:4px;background:linear-gradient(180deg,#4ba3e5,#0870c9);border-radius:7px 7px 2px 2px}.trend-column strong{font-size:11px;white-space:nowrap}.trend-column small{font-size:10px;color:#657286;white-space:nowrap}.compact-list{display:grid;margin-top:12px}.compact-list>div{display:flex;justify-content:space-between;gap:14px;padding:11px 0;border-top:1px solid #e2e9f0}.compact-list>div:first-child{border-top:0}.compact-list span{color:#657286;font-size:12px;text-align:right}.quality-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.quality-grid div{padding:13px;border-radius:10px;background:#f3f7fb}.quality-grid strong,.quality-grid span{display:block}.quality-grid strong{font-size:22px;color:#0870c9}.quality-grid span{font-size:12px;color:#657286;margin-top:3px}.dashboard-unpaid .heading-row{margin-bottom:8px}.dashboard-unpaid .heading-row p{margin:4px 0}.dashboard-unpaid .heading-row a{color:#0870c9}.dashboard-unpaid-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-top:1px solid #e2e9f0;color:#172133;text-decoration:none}.dashboard-unpaid-row span{display:block;color:#657286;font-size:13px;margin-top:3px}@media(max-width:760px){.kpi-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:520px){.dashboard-filter,.kpi-grid{grid-template-columns:1fr}.top-actions{gap:10px}.top-actions a{font-size:13px}.rank-row>div:first-child{display:block}.rank-row span{text-align:left;display:block;margin-top:3px}.trend-column{min-width:44px}.compact-list>div{display:block}.compact-list span{display:block;text-align:left;margin-top:3px}}
.heading-actions{display:flex;align-items:center;gap:9px}.narrow-panel{max-width:620px}.private-rating{padding:13px;border:1px solid #b9d9ef;border-radius:11px;background:#f3f9fe}.private-rating small{display:block;color:#52677b;font-size:12px;margin-top:6px}.analytics-section{margin:34px 0}.section-title{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:0 0 14px}.section-title h2{font-size:22px;margin-top:4px}.section-title>span{color:#657286;font-size:13px;text-align:right}.analytics-kpis .kpi-card.danger{border-top-color:#c84d4d}.analytics-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:13px}.analytics-table th,.analytics-table td{padding:10px 8px;border-bottom:1px solid #e2e9f0;text-align:right}.analytics-table th:first-child,.analytics-table td:first-child{text-align:left}.analytics-table thead th{font-size:11px;color:#657286;text-transform:uppercase}.table-wrap{overflow-x:auto}.compact-ranks{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.seasonality-panel{margin-bottom:18px}.seasonality-list{display:grid;gap:11px;margin-top:16px}.seasonality-row{display:grid;grid-template-columns:65px 1fr 80px;align-items:center;gap:12px}.seasonality-row>span{font-size:12px;color:#657286;text-align:right}.stacked-bar{height:17px;display:flex;overflow:hidden;border-radius:6px;background:#e8eef5}.stacked-bar i{display:block;height:100%}.repair-segment{background:#d45d4d}.maintenance-segment{background:#20a47b}.diagnostic-segment{background:#4a8ed8}.other-segment{background:#a1acb8}.chart-legend{display:flex;flex-wrap:wrap;gap:15px;margin-top:14px;font-size:12px;color:#657286}.chart-legend span:before{content:"";display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}.repair-dot:before{background:#d45d4d}.maintenance-dot:before{background:#20a47b}.diagnostic-dot:before{background:#4a8ed8}.other-dot:before{background:#a1acb8}.rating-chart{height:205px;display:flex;align-items:end;gap:7px;padding:26px 3px 0}.rating-chart>div{height:100%;flex:1;display:grid;grid-template-rows:18px 1fr 18px;text-align:center;align-items:end}.rating-chart span{font-size:11px;color:#657286}.rating-chart i{display:block;width:72%;min-height:3px;margin:0 auto;background:linear-gradient(180deg,#48a981,#168459);border-radius:5px 5px 1px 1px}.rating-chart strong{font-size:11px}.topbar{height:auto;min-height:68px}.top-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:760px){.section-title{align-items:start;display:block}.section-title>span{display:block;text-align:left;margin-top:6px}.compact-ranks{grid-template-columns:1fr}.analytics-kpis{grid-template-columns:1fr 1fr}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.seasonality-row{grid-template-columns:54px 1fr}.seasonality-row>span{grid-column:2;text-align:left}}@media(max-width:520px){.analytics-kpis{grid-template-columns:1fr}.heading-actions{display:grid}.heading-actions .secondary,.heading-actions .primary{width:100%}.rating-chart{gap:3px}.rating-chart strong,.rating-chart span{font-size:9px}}
.import-intro,.import-history,.import-summary,.import-confirm,.import-filters,.import-rows{margin-bottom:18px}.import-intro p{margin:8px 0}.import-history a{color:#0870c9;text-decoration:none}.import-kpis{margin-top:18px}.import-summary .alert{margin:16px 0 0}.import-confirm .confirm-check{display:flex;align-items:flex-start;gap:10px;font-weight:650}.import-confirm .confirm-check input{width:auto;margin-top:3px}.import-filters{display:grid;grid-template-columns:2fr 1fr auto;gap:14px;align-items:end}.import-table{min-width:1050px}.import-table td{vertical-align:top;text-align:left;max-width:270px}.import-table td span,.import-table td small{display:block;color:#657286;font-size:11px;margin-top:4px}.import-status{display:inline-block!important;width:max-content;border-radius:20px;padding:4px 8px;margin:0 0 4px!important;font-weight:800}.import-status.ready,.import-status.imported{background:#e3f7ea;color:#176533!important}.import-status.skipped{background:#ffe8e8;color:#8c1515!important}.import-status.duplicate{background:#e8eef5;color:#506176!important}.import-state-skipped{background:#fff9f9}.import-pages{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:16px}.import-pages span{color:#657286;font-size:13px}@media(max-width:700px){.import-filters{grid-template-columns:1fr}.import-pages{justify-content:space-between}.import-kpis{grid-template-columns:1fr 1fr}}

.schedule-field>div,.schedule-field .multiwidget{display:grid;grid-template-columns:minmax(150px,1fr) minmax(110px,.65fr);gap:8px}.schedule-field select,.schedule-field input{min-width:0}.errorlist{margin:6px 0 0;padding-left:20px;color:#a52b2b;font-size:13px}.settings-menu{position:relative}.settings-toggle{border:1px solid #ffffff66;background:#ffffff14;color:#fff;border-radius:9px;padding:9px 11px;font:inherit;font-weight:800;cursor:pointer}.settings-toggle:hover,.settings-toggle:focus,.settings-toggle.active,.settings-toggle[aria-expanded=true]{background:#fff;color:#075a9d;outline:none}.settings-dropdown{position:absolute;right:0;top:calc(100% + 8px);z-index:80;min-width:180px;padding:7px;background:#fff;border:1px solid #cad9e6;border-radius:11px;box-shadow:0 12px 32px #142f4860}.settings-dropdown[hidden]{display:none}.top-actions .settings-dropdown a{display:block;padding:10px 12px;border-radius:8px;color:#23364a;font-size:14px}.top-actions .settings-dropdown a:hover,.top-actions .settings-dropdown a:focus,.top-actions .settings-dropdown a.active{background:#e8f4fc;color:#075a9d;outline:none}@media(max-width:620px){.schedule-field>div,.schedule-field .multiwidget{grid-template-columns:1fr}.settings-menu{max-width:100%}.settings-dropdown{right:0;left:auto;width:min(280px,calc(100vw - 24px));min-width:0}.settings-toggle{max-width:100%}}
