.bottom-nav{grid-template-columns:repeat(7,1fr)}
.bottom-nav b{font-size:9px}
.report-nav-icon{font-size:18px;font-weight:800;height:21px}
@media(max-width:390px){.bottom-nav b{font-size:8px}}
.appointment-client{display:block;border:0;background:none;padding:0;color:var(--ink);font:inherit;font-weight:800;text-align:left;text-decoration:underline;text-decoration-color:#b8dfe8;text-underline-offset:3px;cursor:pointer}
.appointment-actions{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.appointment-actions button{white-space:nowrap}
.reschedule-visit{border:1px solid #b8dfe8;background:#eef9fb;color:#087da8;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}
.complete-visit{border:1px solid #b9e1ce;background:#edf9f2;color:#16734a;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}
.appointment-card.completed{background:#e9f8ef;border:1px solid #b2dfc5;box-shadow:0 8px 22px rgba(25,126,80,.12)}
.appointment-card.completed .appointment-date b,.appointment-card.completed .appointment-client{color:#146c46}
.complete-visit:disabled{opacity:1;background:#198754;color:#fff;border-color:#198754}
.reschedule-note{color:var(--muted);font-size:12px;line-height:1.45;margin:-2px 0 14px}
.weekly-agenda{display:flex;flex-direction:column;gap:8px}
.week-day{background:#f7fafb;border:1px solid var(--line);border-radius:15px;padding:10px}
.week-day.today{border-color:#7dcbdc;background:#f0fbfd}
.week-day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;text-transform:capitalize}
.week-day-head strong{font-size:12px;color:var(--navy)}
.week-day-head span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#dceff3;color:#087da8;font-size:10px;font-weight:800}
.week-day-cards{display:flex;flex-direction:column;gap:6px}.week-day-cards>small{color:var(--muted);font-size:10px;padding:2px}
.weekly-card{display:block;padding:0;border-radius:11px;box-shadow:none;overflow:hidden}
.weekly-card-summary{width:100%;display:grid;grid-template-columns:42px 1fr 18px;align-items:center;gap:7px;border:0;background:transparent;padding:9px;text-align:left;color:var(--ink)}
.weekly-card-summary span{font-size:10px;font-weight:800;color:var(--blue)}.weekly-card-summary strong{font-size:11px}.weekly-card-summary i{font-style:normal;color:#198754;font-weight:900}
.weekly-card-details{display:none;border-top:1px solid var(--line);padding:10px}.weekly-card.expanded .weekly-card-details{display:block}.weekly-card.expanded .appointment-actions{margin-top:9px;display:flex;flex-direction:row}.weekly-card.expanded .appointment-actions button{flex:1}
.client-services{margin-top:22px;align-items:center}
.client-services>b{color:var(--green);font-size:13px}
.movement.service .movement-icon{background:#e8f7f1;color:var(--green)}
@media(max-width:430px){.appointment-card{grid-template-columns:48px 1fr}.appointment-actions{grid-column:2;flex-direction:row}.appointment-actions button{flex:1}}
.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.backup-actions button,.import-backup{border:1px solid var(--line);background:#f4f8f9;color:var(--navy);padding:11px;border-radius:12px;font-size:10px;font-weight:800;text-align:center;cursor:pointer}.import-backup input{display:none}
.reverse-movement{border:0;background:#fff0ee;color:var(--red);font-size:10px;font-weight:800;padding:7px 9px;border-radius:9px}.movement.reversed{opacity:.55}.movement.reversed>b{color:var(--muted)}
.report-summary.three{grid-template-columns:repeat(3,1fr)}.report-summary.three span{padding:12px 9px}.report-summary.three b{font-size:14px}
.week-navigation{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-bottom:9px}.week-navigation button{border:1px solid var(--line);background:#fff;color:var(--blue);border-radius:10px;padding:7px;font-size:10px;font-weight:800}.week-navigation strong{text-align:center;font-size:10px;color:var(--navy)}
.cancel-visit{border:1px solid #f0c7c3;background:#fff0ee;color:var(--red);border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}.appointment-card.cancelled{background:#f4f4f4;border:1px solid #d9dfe2;opacity:.75}.appointment-card.cancelled .appointment-client{text-decoration:line-through;color:var(--muted)}
@media(max-width:430px){.appointment-actions{flex-wrap:wrap}.appointment-actions button{min-width:42%}.report-summary.three{grid-template-columns:1fr}.backup-actions{grid-template-columns:1fr}}
.catalog-nav-icon{font-size:18px;height:21px}.catalog-section{margin-bottom:24px}.catalog-section .section-head{margin-top:0}.catalog-section+.catalog-section .section-head{margin-top:22px}.catalog-add{background:var(--blue-soft);padding:8px 10px;border-radius:10px}.catalog-list{background:#fff;border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.catalog-row{width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;padding:13px;display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;text-align:left;color:var(--ink)}.catalog-row:last-child{border:0}.catalog-row span strong,.catalog-row span small{display:block}.catalog-row span small{font-size:10px;color:var(--muted);margin-top:3px}.catalog-row>b{color:var(--green);font-size:11px}.catalog-row>i{font-style:normal;color:var(--blue);font-size:10px;font-weight:800}.standalone-form-page .record-form{padding:0}.standalone-form{background:#fff;border-radius:20px;padding:18px!important;box-shadow:var(--shadow)}
@media(max-width:390px){.bottom-nav b{font-size:7px}.bottom-nav{padding-left:2px;padding-right:2px}}
.login-screen{min-height:100dvh;background:linear-gradient(160deg,#063553 0%,#087da8 56%,#26a9b5 100%);display:grid;place-items:center;padding:24px}.login-screen[hidden],.app-shell[hidden]{display:none}.login-card{width:min(100%,390px);background:#fff;border-radius:28px;padding:30px 24px;box-shadow:0 24px 70px rgba(0,30,50,.3)}.login-card>img{display:block;width:min(260px,84%);height:auto;object-fit:contain;margin:0 auto 22px}.login-heading{text-align:center;margin-bottom:24px}.login-heading p{margin:0 0 5px;color:#087da8;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}.login-heading h1{margin:0 0 8px;color:var(--navy);font-size:28px}.login-heading span{color:var(--muted);font-size:13px;line-height:1.5}.login-form{display:grid;gap:15px}.login-form>label{display:grid;gap:7px;color:var(--navy);font-size:12px;font-weight:800}.login-form input{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#f8fbfc;color:var(--ink);font:inherit;outline:none}.login-form input:focus{border-color:#25a7bb;box-shadow:0 0 0 3px rgba(37,167,187,.14);background:#fff}.password-field{display:grid;grid-template-columns:1fr auto;border:1px solid var(--line);border-radius:13px;background:#f8fbfc;overflow:hidden}.password-field:focus-within{border-color:#25a7bb;box-shadow:0 0 0 3px rgba(37,167,187,.14);background:#fff}.password-field input{border:0;border-radius:0;background:transparent;box-shadow:none!important}.password-field button{border:0;background:transparent;color:#087da8;padding:0 13px;font-size:10px;font-weight:900}.login-error{min-height:18px;margin:-3px 0;color:#c43e35;font-size:11px;font-weight:700}.login-submit{border:0;border-radius:14px;background:var(--navy);color:#fff;padding:14px;font-size:13px;font-weight:900;box-shadow:0 9px 20px rgba(8,59,92,.22)}.login-submit:disabled{opacity:.7}
.topbar{height:100px;padding:10px 14px;gap:10px}.topbar .brand{height:78px!important;display:flex;align-items:center;justify-content:center;overflow:visible}.topbar .brand img{width:172px;height:auto;max-height:78px;object-fit:contain;object-position:center}.topbar+main{min-height:calc(100dvh - 100px)}
@media(max-width:340px){.topbar{padding-left:10px;padding-right:10px;gap:7px}.topbar .brand img{width:158px}}
.report-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}.report-mode-tabs button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:13px;padding:11px 8px;font-size:11px;font-weight:800}.report-mode-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff}.billing-action{background:#eaf8f3;border:1px solid #b9e1ce;border-radius:16px;padding:13px;margin:14px 0;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.billing-action strong,.billing-action small{display:block}.billing-action strong{color:var(--green);font-size:14px}.billing-action small{color:var(--muted);font-size:9px;margin-top:3px}.billing-action button{border:0;background:var(--green);color:#fff;border-radius:11px;padding:10px;font-size:10px;font-weight:900}.billing-action button:disabled{background:#aab8b2}.billing-action p{grid-column:1/-1;color:var(--muted);font-size:10px;margin:0}.movement-billing{text-align:right}.movement-billing b,.movement-billing small{display:block}.movement-billing b{font-size:12px;color:var(--orange)}.movement-billing small{font-size:8px;color:var(--muted);margin-top:3px}.movement.billed{background:#f7f8f8}.receivable-controls{background:#fff;padding:14px;border-radius:16px;box-shadow:var(--shadow)}.receivable-controls label{display:grid;gap:5px;font-size:10px;color:var(--muted)}.receivable-controls select{border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafb}.receivable-tabs{margin:12px -14px 0;padding:0 14px}.report-summary .paid-total{background:var(--green)}.receivable-list{display:grid;gap:10px}.receivable-card{background:#fff;border:1px solid #f0d8a9;border-left:5px solid var(--orange);border-radius:17px;padding:14px;box-shadow:var(--shadow)}.receivable-card.paid{border-color:#b9e1ce;border-left-color:var(--green)}.receivable-card-head{display:flex;justify-content:space-between;gap:12px}.receivable-card-head strong,.receivable-card-head small{display:block}.receivable-card-head strong{font-size:13px}.receivable-card-head small{font-size:9px;color:var(--muted);margin-top:4px}.receivable-card-head>b{color:var(--orange);white-space:nowrap}.receivable-card.paid .receivable-card-head>b{color:var(--green)}.receivable-breakdown{display:flex;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:9px 0;margin:10px 0}.receivable-breakdown span{font-size:9px;color:var(--muted)}.receivable-breakdown b{color:var(--ink)}.receivable-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.receivable-footer>small{font-size:8px;color:var(--muted);flex:1}.receivable-footer>span{font-size:9px;color:var(--green);font-weight:800}.receivable-footer button{border:0;background:var(--orange);color:#fff;padding:8px 10px;border-radius:9px;font-size:9px;font-weight:900}.receivable-card.paid .receivable-footer button{background:#e8f7f1;color:var(--green)}.client-receivables{margin-top:22px}.client-receivables>b{color:var(--orange);font-size:15px}.receivable-list.compact .receivable-card{box-shadow:none}
.client-history-panel{margin-top:22px}.client-history-panel>.section-head{margin:0 1px 10px}.client-history-filters{display:grid;grid-template-columns:1fr 1fr auto auto;gap:7px;background:#fff;padding:11px;border-radius:15px;margin-bottom:9px;box-shadow:var(--shadow)}.client-history-filters label{display:grid;gap:4px;color:var(--muted);font-size:9px}.client-history-filters input{min-width:0;width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 5px;color:var(--ink);background:#f8fafb;font-size:9px}.client-history-filters button{align-self:end;border:0;border-radius:9px;background:var(--blue);color:#fff;padding:9px 8px;font-size:9px;font-weight:800}.client-history-filters button:last-child{background:#eef3f5;color:var(--muted)}.client-history-filters button:disabled{opacity:.45}.client-history-group{background:#fff;border:1px solid var(--line);border-radius:15px;margin-bottom:9px;overflow:hidden;box-shadow:var(--shadow)}.client-history-group summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px;color:var(--navy);font-size:12px;font-weight:800;list-style:none}.client-history-group summary::-webkit-details-marker{display:none}.client-history-group summary:before{content:'›';font-size:20px;color:var(--blue);transition:transform .18s}.client-history-group[open] summary:before{transform:rotate(90deg)}.client-history-group summary span{flex:1}.client-history-group summary b{color:var(--green);font-size:12px}.client-history-group>.movement-list{border-radius:0;box-shadow:none;border-top:1px solid var(--line)}.client-services{margin-top:0}.client-receivables+.receivable-list{margin-bottom:22px}@media(max-width:390px){.client-history-filters{grid-template-columns:1fr 1fr}.client-history-filters button{width:100%}}
.water-analysis-button{border:1px solid #b7dbe7;background:#edf8fb;color:#087da8;border-radius:10px;padding:8px 10px;font-size:10px;font-weight:800}.water-analysis-button.recorded{border-color:#b9e1ce;background:#e8f7f1;color:var(--green)}.analysis-note{color:var(--muted);font-size:11px;line-height:1.45;margin-bottom:14px}.water-analysis-inline{display:block!important;color:#087da8!important;font-size:8px!important;font-weight:700;line-height:1.45;margin-top:4px!important}.report-list .water-analysis-inline{max-width:210px}
