:root{--portal-navy:#071a36;--portal-navy-light:#0b315e;--portal-blue:#3f78e5;--portal-blue-hover:#3268d3;--portal-cyan:#39c1e6;--portal-ink:#10213b;--portal-muted:#64748b;--portal-line:#dfe7f1;--portal-soft:#f3f7fb;--portal-white:#fff}body{background:var(--portal-soft);color:var(--portal-ink);margin:0;font-family:Inter,Arial,sans-serif}.app-shell{min-height:100vh;display:flex}.sidebar{background:var(--portal-navy);color:#fff;width:280px;padding:24px 18px}.brand{align-items:center;gap:12px;margin-bottom:34px;display:flex}.brand-mark{background:linear-gradient(140deg, var(--portal-blue), var(--portal-cyan));width:44px;height:44px;color:var(--portal-white);border-radius:10px;place-items:center;font-weight:700;display:grid}.brand h1{margin:0;font-size:18px;font-weight:700}.brand em{color:#55b8e7;font-style:normal;font-weight:500}.brand span{color:#b9cce2;font-size:13px}.nav-section{margin-bottom:28px}.nav-section p{color:#8ea5c0;text-transform:uppercase;letter-spacing:.08em;margin:0 0 10px;font-size:12px}.nav-section a{color:#c9d7e8;border-radius:10px;margin-bottom:2px;padding:8px 13px;font-size:14px;display:block}.nav-section a:hover{color:#fff;background:#ffffff12}.nav-section a.active{color:#fff;box-shadow:inset 3px 0 0 var(--portal-cyan);background:#1268e833}.nav-section a.active:focus-visible{outline:none}.main{flex:1;min-width:0;max-width:100%;padding:28px}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-width:0;max-width:100%;margin-bottom:22px;display:flex}.eyebrow{color:var(--portal-blue);font-size:13px;font-weight:600}.topbar h2{letter-spacing:-.02em;margin:4px 0 0;font-size:28px;font-weight:600}.top-actions{align-items:center;gap:12px;display:flex}button{background:var(--portal-blue);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:11px 15px;font-weight:600;transition:filter .15s,background-color .15s,border-color .15s}button:hover:not(:disabled){filter:brightness(.94)}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),select,textarea){min-width:0;min-height:42px;color:var(--portal-ink);font:inherit;background:#fff;border:1px solid #d1dbe8;border-radius:8px;padding:.65rem .8rem;line-height:1.35}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),textarea)::placeholder{color:#8794a6;opacity:1}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]),select,textarea):disabled{color:#7a8798;cursor:not-allowed;background:#f1f5f9}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px;outline:3px solid #39c1e659}.user-pill{border:1px solid var(--portal-line);background:#fff;border-radius:999px;padding:11px 15px;font-weight:600}.dashboard-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px;display:grid}.stat-card,.panel{border:1px solid var(--portal-line);background:#fff;border-radius:14px;min-width:0;max-width:100%;box-shadow:0 8px 22px #173c680e}.stat-card{padding:20px}.stat-card span{color:var(--portal-muted);font-size:14px}.stat-card strong{margin:8px 0;font-size:30px;font-weight:600;display:block}.stat-card small{color:var(--portal-muted)}.content-grid{grid-template-columns:2fr 1fr;gap:22px;display:grid}.panel{padding:20px}.panel-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-header h3{margin:0;font-size:20px;font-weight:600}.panel-header button{color:var(--portal-blue);background:#eaf3fd}.job-row{border-top:1px solid #edf2f7;grid-template-columns:90px 1fr auto;align-items:center;gap:16px;padding:15px 0;display:grid}.job-row span{color:var(--portal-muted);margin-top:4px;display:block}.job-time{color:var(--portal-blue);font-weight:600}.crew-pill{color:#0f58b5;background:#eaf3fd;border-radius:999px;padding:8px 11px;font-size:13px;font-weight:600}.quick-actions{gap:10px;display:grid}.quick-actions button{text-align:left;color:#20364f;background:#f6f9fc;width:100%}@media (width<=1000px){.sidebar{width:220px}.dashboard-grid,.content-grid{grid-template-columns:1fr}}.page-header-actions,.panel-header,.filter-bar,.data-table-wrap{min-width:0;max-width:100%}.page-header-actions,.panel-header,.filter-bar{flex-wrap:wrap}.data-table-wrap{overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;width:100%;overflow:auto hidden}.portal-guide-standalone{box-sizing:border-box;background:#f5f7fb;min-height:100vh;padding:clamp(16px,4vw,48px)}.portal-help-guide{color:#23324a;max-width:1000px;margin:0 auto;font-size:15px;line-height:1.65}.portal-help-guide *{box-sizing:border-box}.portal-help-header{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:20px;display:flex}.portal-help-header h1{color:#15233a;margin:4px 0 12px;font-size:clamp(28px,4vw,38px);font-weight:650;line-height:1.2}.portal-help-header p{margin:0}.portal-help-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:#526aaa;font-size:12px;font-weight:600}.portal-help-back{flex-shrink:0;margin-top:8px}.portal-help-guide a{color:#3658b1;text-underline-offset:3px}.portal-help-tabs{gap:8px;margin:16px 0;display:flex}.portal-help-tabs a{background:#fff;border:1px solid #cdd7e8;border-radius:8px;padding:8px 16px;text-decoration:none}.portal-help-tabs a[aria-current=page]{color:#fff;background:#3658b1;border-color:#3658b1}.portal-help-intro{background:#edf2fc;border-left:3px solid #6682cb;border-radius:4px;padding:12px 16px}.portal-help-contents{border-bottom:1px solid #dbe2ee;flex-wrap:wrap;gap:8px 20px;margin:22px 0 26px;padding:0 0 22px;font-size:14px;display:flex}.portal-help-topics{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}.portal-help-topic{overflow-wrap:anywhere;background:#fff;border:1px solid #dce4f0;border-radius:12px;padding:22px;scroll-margin-top:24px}.portal-help-topic h2{color:#172a47;align-items:baseline;gap:12px;margin:0 0 12px;font-size:19px;font-weight:600;line-height:1.4;display:flex}.portal-help-topic h2 span{white-space:nowrap;color:#7084b2;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px;font-weight:500}.portal-help-topic p{margin:0 0 14px}.portal-help-topic ol{margin:0 0 14px;padding-left:22px}.portal-help-topic li+li{margin-top:10px}.portal-help-note{color:#64480e;background:#fff6df;border-radius:6px;padding:12px;font-size:14px}.portal-help-links{flex-wrap:wrap;gap:8px 18px;font-size:14px;display:flex}.portal-help-footer{color:#58677e;margin:24px 0;font-size:13px}.portal-help-guide a:focus-visible,.portal-staff-guide-shortcut:focus-visible{outline-offset:4px;outline:3px solid #dd9b13}.portal-staff-guide-shortcut{right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:20;color:#294b9d;background:#fff;border:1px solid #c5d1e7;border-radius:24px;align-items:center;gap:10px;padding:9px 14px;font-size:14px;text-decoration:none;display:flex;position:fixed;box-shadow:0 3px 14px #20376420}.portal-staff-guide-shortcut span{border:1px solid;border-radius:50%;place-items:center;width:20px;height:20px;font-size:12px;display:inline-grid}@media (width<=700px){.portal-help-topics{grid-template-columns:1fr}.portal-help-header{flex-direction:column;gap:8px}.portal-help-topic{padding:18px}.portal-help-contents{gap:8px 16px}.portal-help-back{margin-top:0}}@media print{.portal-staff-guide-shortcut{display:none}}.activity-page{color:#26374b}.activity-intro,.activity-caption{color:#657489;font-size:.88rem;line-height:1.5}.activity-filters{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.activity-filters label{gap:5px;font-size:.85rem;display:grid}.activity-filters input,.activity-filters select{box-sizing:border-box;height:40px;min-height:40px}.activity-feed{padding:16px}.activity-entry{border-top:1px solid #dce4ed}.activity-entry summary{cursor:pointer;align-items:start;gap:14px;padding:16px 4px;display:flex}.activity-entry summary:hover{background:#f8fafc}.activity-entry summary:focus-visible{outline-offset:2px;outline:2px solid #246ba2}.activity-badge{white-space:nowrap;background:#edf1f6;border-radius:5px;padding:4px 9px;font-size:.8rem}.activity-insert{color:#14623b;background:#e9f7ef}.activity-update{color:#895800;background:#fff4d9}.activity-delete{color:#a43131;background:#fdeeee}.activity-record{overflow-wrap:anywhere;flex:1;gap:5px;min-width:0;display:grid}.activity-record strong{font-size:.95rem;font-weight:600}.activity-record span,.activity-record small,.activity-entry time{color:#657489;font-size:.8rem}.activity-entry time{flex-shrink:0}.activity-details{background:#f8fafc;border-radius:6px;margin-bottom:12px;padding:14px;font-size:.85rem}.activity-values{overflow-x:auto}.activity-values table{border-collapse:collapse;table-layout:fixed;width:100%}.activity-values th,.activity-values td{text-align:left;vertical-align:top;white-space:pre-wrap;overflow-wrap:anywhere;border-bottom:1px solid #dce4ed;padding:9px}.activity-values th{font-weight:600}.activity-error{color:#b42323}@media (width<=650px){.activity-filters label{width:100%}.activity-entry summary{flex-wrap:wrap}.activity-entry time{width:100%;padding-left:4px}.activity-details{padding:8px}}.daily-closeout-page{color:#253349}.closeout-filters{flex-wrap:wrap;align-items:end;gap:14px;display:flex}.closeout-filters label{gap:5px;font-size:.9rem;display:grid}.closeout-filters input,.closeout-filters select{min-height:38px}.closeout-print{background:#fff;border:1px solid #dce3eb;border-radius:10px;margin-top:20px;padding:24px}.closeout-heading{border-bottom:2px solid #284c69;flex-wrap:wrap;justify-content:space-between;gap:20px;padding-bottom:16px;display:flex}.closeout-heading h1{margin:4px 0;font-size:1.6rem;font-weight:600}.closeout-heading p{margin:4px 0;font-size:.9rem}.closeout-section{margin-top:26px}.closeout-section h2{margin-bottom:10px;font-size:1.13rem;font-weight:600}.closeout-section p,.closeout-note{color:#536478;font-size:.86rem;line-height:1.55}.closeout-pairs{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;display:grid}.closeout-pairs div{border:1px solid #dce3eb;border-radius:6px;padding:12px}.closeout-pairs dt{color:#536478;font-size:.8rem}.closeout-pairs dd{font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:1.2rem;font-weight:500}.closeout-table{overflow-x:auto}.closeout-table table{border-collapse:collapse;width:100%;font-size:.83rem}.closeout-table th,.closeout-table td{text-align:left;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #dce3eb;padding:9px 8px}.closeout-table th{background:#f1f5f9;font-weight:600}.closeout-warning{background:#fff8e7;border-left:3px solid #b77d15;padding:12px;font-size:.88rem}.closeout-error{color:#b91c1c}.closeout-signoff{border-top:1px solid #dce3eb;flex-wrap:wrap;gap:30px;margin-top:32px;padding-top:24px;font-size:.85rem;display:flex}@media (width<=600px){.closeout-print{padding:14px}.closeout-filters>*{width:100%}}@media print{@page{size:landscape;margin:12mm}body *{visibility:hidden!important}.closeout-print,.closeout-print *{visibility:visible!important}.closeout-print{box-sizing:border-box;color:#000;border:0;width:100%;margin:0;padding:0;position:absolute;top:0;left:0}.closeout-controls{display:none!important}.closeout-table{overflow:visible}.closeout-table table{font-size:9pt}.closeout-table thead{display:table-header-group}.closeout-table tr,.closeout-pairs div,.closeout-heading,.closeout-signoff{break-inside:avoid}.closeout-section{break-inside:avoid;margin-top:18px}.closeout-section h2{break-after:avoid}.closeout-section p{margin:6px 0;font-size:9pt;line-height:1.35}.closeout-table th,.closeout-table td{padding:6px}.closeout-pairs div{padding:8px}.closeout-pairs{grid-template-columns:repeat(4,1fr)}.closeout-warning,.closeout-note{font-size:9pt}}.calendar-filter-bar{grid-template-columns:minmax(180px,2fr) repeat(4,minmax(125px,1fr));align-items:end;gap:.65rem;margin-bottom:1rem;display:grid}.calendar-actions{gap:.5rem;display:flex}.calendar-shell{padding:.75rem;overflow-x:auto}.calendar-shell .fc{color:#10213b;min-width:820px;font-size:.88rem}.calendar-shell .fc .fc-toolbar-title{letter-spacing:-.02em;font-size:1.35rem;font-weight:600}.calendar-shell .fc .fc-button{box-shadow:none;text-transform:none;border-radius:7px;font-size:.85rem;font-weight:600}.calendar-shell .fc .fc-button-primary{color:#31455e;background:#fff;border-color:#dfe7f1}.calendar-shell .fc .fc-button-primary:hover:not(:disabled){color:#1268e8;background:#eaf3fd;border-color:#9fc4f5}.calendar-shell .fc .fc-button-primary:not(:disabled).fc-button-active,.calendar-shell .fc .fc-button-primary:not(:disabled):active{color:#fff;background:#1268e8;border-color:#1268e8}.calendar-shell .fc .fc-today-button{text-transform:capitalize}.calendar-shell .fc .fc-col-header-cell-cushion{font-weight:600}.calendar-shell .fc .fc-daygrid-day-number,.calendar-shell .fc .fc-timegrid-axis-cushion,.calendar-shell .fc .fc-timegrid-slot-label-cushion{color:#52647a;font-weight:400}.calendar-event-content{gap:1px;padding:2px 3px;display:grid;overflow:hidden}.calendar-event-content strong{font-weight:600}.calendar-event-content span{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.calendar-event-content--week{flex-direction:column;gap:1px;min-width:0;line-height:1.15;display:flex}.calendar-event-content--week strong{white-space:nowrap;flex:none}.calendar-event-content--week span,.calendar-event-content--week small{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;min-width:0;display:block;overflow:visible}.calendar-event-content--week .calendar-event-client{font-weight:600}.calendar-event-content--week .calendar-event-service,.calendar-event-content--week .calendar-event-staff{font-weight:500}.calendar-alert{border-radius:8px;justify-content:space-between;gap:1rem;padding:.7rem .85rem;display:flex}.calendar-alert.error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.calendar-alert.warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a}@media (width<=950px){.calendar-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=600px){.calendar-filter-bar{grid-template-columns:1fr}.calendar-shell{padding:.35rem}}.booth-page{color:#17223b;gap:16px;width:100%;min-width:0;max-width:100%;font-weight:400;display:grid;overflow-x:hidden}.booth-page h1,.booth-page h2,.booth-page h3{font-weight:650}.booth-page-header,.booth-title-row{justify-content:space-between;align-items:center;gap:16px;min-width:0;display:flex}.booth-page-header{flex-wrap:wrap}.booth-page-header>div:first-child{flex:1;min-width:260px}.booth-page-header>.booth-row-actions{flex-wrap:wrap;justify-content:flex-end}.booth-card{background:#fff;border:1px solid #dfe6f1;border-radius:14px;min-width:0;max-width:100%;padding:20px}.booth-card h2{margin:0 0 12px}.booth-form{grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;display:grid}.booth-form label,.booth-actions label{color:#5c667a;gap:5px;font-size:.82rem;font-weight:600;display:grid}.booth-form input,.booth-form select,.booth-form textarea,.booth-actions input,.booth-actions select,.booth-space-form input{color:#17223b;width:100%;min-height:42px;font:inherit;background:#fff;border:1px solid #ccd6e5;border-radius:8px;padding:8px 11px;font-weight:400}.booth-wide{grid-column:1/-1}.booth-inline,.booth-row-actions,.booth-space-form{align-items:center;gap:8px;display:flex}.booth-plus{min-width:42px;padding:0;font-size:1.25rem}.booth-space-form{border-top:1px solid #e7ebf2;margin-top:14px;padding-top:14px}.booth-space-form input{max-width:360px}.booth-table-wrap{width:100%;min-width:0;max-width:100%;overflow:auto}.booth-card table{border-collapse:collapse;table-layout:fixed;width:100%}.booth-card th,.booth-card td{text-align:left;white-space:normal;overflow-wrap:anywhere;border-bottom:1px solid #e8edf4;padding:10px 9px;font-weight:400}.booth-card th{color:#697386;text-transform:uppercase;font-size:.78rem;font-weight:650}.booth-card td small{color:#7a8496;margin-top:3px;font-weight:400;display:block}.booth-card .due{color:#b42318;font-weight:550}.booth-close{color:#657084;cursor:pointer;background:0 0;border:0;padding:4px 8px;font-size:1.8rem;line-height:1}.booth-actions{background:#f8faff;border-radius:10px;grid-template-columns:1fr 1fr;gap:20px;margin:18px 0;padding:16px;display:grid}.booth-actions form{gap:10px;display:grid}.booth-extra p{color:#657084;font-size:.9rem}.booth-line{border-bottom:1px solid #edf1f6;justify-content:space-between;align-items:center;gap:16px;padding:8px 4px;font-weight:400;display:flex}.booth-error{color:#b42318;background:#fff0ee;border-radius:8px;padding:11px}.btn-danger{color:#b42318;background:#fff;border:1px solid #f1b5ae}@media (width<=900px){.booth-form,.booth-actions{grid-template-columns:1fr}.booth-page-header{align-items:flex-start}.booth-row-actions{flex-wrap:wrap}}@media print{.sidebar,.topbar,.booth-page>.page-header,.booth-page>.booth-card:not(.booth-statement),.booth-actions,.booth-statement button{display:none!important}.booth-statement{box-shadow:none;border:0}}.booth-line button{color:#42516a;background:#fff;border:1px solid #d7deea;border-radius:6px;margin-left:7px;padding:3px 7px}.booth-void{opacity:.55;text-decoration:line-through}.booth-status{color:#38527a;background:#eaf0fb;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:600;display:inline-block}.booth-status--current{color:#23683f;background:#e5f7ec}.booth-status--paid-ahead{color:#175b8f;background:#e6f4ff}.booth-status--due,.booth-status--past-due{color:#a7352a;background:#fff0ee}.booth-summary{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.booth-summary>div{background:#fff;border:1px solid #dfe6f1;border-radius:12px;gap:5px;padding:14px 16px;display:grid}.booth-summary span{color:#687386;font-size:.82rem}.booth-summary strong{font-size:1.25rem;font-weight:600}.booth-space-list{max-width:620px;margin-top:12px}.booth-filters{grid-template-columns:2fr 1fr 1fr;gap:10px;margin:12px 0;display:grid}.booth-filters input,.booth-filters select{min-height:40px;font:inherit;background:#fff;border:1px solid #ccd6e5;border-radius:8px;padding:7px 10px}.booth-check{grid-column:1/-1;align-items:center;gap:8px!important;display:flex!important}.booth-check input{width:auto!important;min-height:auto!important}.booth-upcoming{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;display:grid}.booth-upcoming button{text-align:left;color:#17223b;background:#f9fbff;border:1px solid #dfe6f1;border-radius:9px;justify-content:space-between;min-width:0;padding:11px;display:flex;overflow:hidden}.booth-upcoming span{gap:3px;min-width:0;display:grid}.booth-upcoming span:last-child{text-align:right}.booth-upcoming strong,.booth-upcoming small{text-overflow:ellipsis;overflow:hidden}.booth-card table .booth-row-actions{flex-wrap:wrap;gap:5px}.booth-card table .btn{min-height:34px;padding:7px 9px;font-size:.82rem}.booth-card th:last-child{width:21%}.booth-card th:first-child{width:10%}.booth-upcoming small{color:#6d7789;font-weight:400}.booth-terms{color:#5f697a;max-width:850px}.booth-aging-summary{grid-template-columns:repeat(6,1fr);gap:9px;margin:14px 0;display:grid}.booth-aging-summary>div{background:#f7f9fd;border:1px solid #e3e8f1;border-radius:8px;gap:4px;padding:11px;display:grid}.booth-aging-summary span{color:#697386;font-size:.76rem}.booth-aging-summary strong{font-weight:600}.booth-aging td{font-size:.9rem}@media (width<=900px){.booth-summary{grid-template-columns:1fr 1fr}.booth-filters{grid-template-columns:1fr}.booth-aging-summary{grid-template-columns:1fr 1fr}}@media (width<=1400px){.booth-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.booth-card{padding:16px}.booth-card th,.booth-card td{padding:8px 6px;font-size:.85rem}.booth-card th{font-size:.7rem}}.sale-receipt{box-sizing:border-box;color:#111827;background:#fff;border:1px solid #dbe3ec;border-radius:10px;width:min(100%,420px);margin:0 auto;padding:18px;font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:400}.sale-receipt__header{text-align:center}.sale-receipt__header h2{margin:0 0 4px;font-size:20px;font-weight:700}.sale-receipt__header>div{margin:2px 0}.sale-receipt__title{letter-spacing:.08em;border-block:1px dashed #6b7280;padding:7px 0;font-size:12px;font-weight:700;margin-top:12px!important}.sale-receipt__meta{margin:10px 0}.sale-receipt__meta>div,.sale-receipt__payment>div,.sale-receipt__totals>div{justify-content:space-between;gap:12px;margin:3px 0;display:flex}.sale-receipt__meta dt,.sale-receipt__payment span{color:#4b5563}.sale-receipt__meta dd{text-align:right;margin:0}.sale-receipt__items{border-collapse:collapse;table-layout:fixed;width:100%}.sale-receipt__items th{text-align:left;text-transform:uppercase;border-block:1px dashed #6b7280;padding:6px 3px;font-size:11px}.sale-receipt__items th:nth-child(2),.sale-receipt__items td:nth-child(2){text-align:center;width:38px}.sale-receipt__items th:last-child,.sale-receipt__items td:last-child{text-align:right;width:74px}.sale-receipt__items td{vertical-align:top;border-bottom:1px dotted #cbd5e1;padding:7px 3px;font-weight:400}.sale-receipt__items td span,.sale-receipt__items td small{overflow-wrap:anywhere;display:block}.sale-receipt__items td small{color:#6b7280;margin-top:2px;font-size:10px}.sale-receipt__totals{border-bottom:1px dashed #6b7280;margin-top:9px;margin-left:auto;padding-bottom:8px}.sale-receipt__totals strong,.sale-receipt__payment strong{text-align:right;font-weight:500}.sale-receipt__totals .is-strong{border-top:1px solid #111827;margin-top:6px;padding-top:6px;font-size:15px}.sale-receipt__totals .is-strong strong{font-weight:700}.sale-receipt__payment{margin-top:8px}.sale-receipt footer{text-align:center;border-top:1px dashed #6b7280;margin-top:15px;padding-top:10px}@media print{@page{margin:4mm}body *{visibility:hidden!important}.sale-receipt,.sale-receipt *{visibility:visible!important}.sale-receipt{color:#000;border:0;border-radius:0;width:72mm;max-width:72mm;margin:0;padding:2mm;font-size:10pt;position:absolute;inset:0 auto auto 0}.sale-receipt__header h2{font-size:15pt}.sale-receipt__items td{padding-block:4px}}.accounting-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;display:flex}.accounting-tabs{flex-wrap:wrap;gap:.45rem;display:flex}.accounting-tabs button{color:#315cae;background:#edf3ff;padding:.65rem .9rem}.accounting-tabs button:hover:not(:disabled){background:#dfeaff}.accounting-tabs button.active{background:var(--portal-blue);border-color:var(--portal-blue);color:#fff}.accounting-range{gap:.75rem;display:flex}.accounting-range label{color:#667085;gap:.25rem;font-size:.8rem;font-weight:700;display:grid}.accounting-add-grid{grid-template-columns:minmax(145px,.8fr) minmax(135px,.7fr) minmax(230px,1.35fr) minmax(180px,1fr);align-items:center;gap:.65rem;display:grid}.accounting-add-grid>*{width:100%;min-width:0}.accounting-add-grid>button{justify-self:start;width:auto;min-width:160px}.accounting-table-wrap{width:100%;overflow-x:auto}.accounting-register{table-layout:fixed;width:100%;min-width:1250px;font-size:.82rem}.accounting-register input,.accounting-register select{text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:3px;width:100%;min-width:0;height:30px;padding:.15rem .25rem;font-size:.82rem;font-weight:400;line-height:1.15}.accounting-register th,.accounting-register td{vertical-align:middle;border-right:1px solid #edf0f4;height:36px;padding:.18rem .3rem;font-weight:400}.accounting-register th{letter-spacing:.025em;white-space:nowrap;height:32px;font-size:.7rem;font-weight:600}.accounting-register th:last-child,.accounting-register td:last-child{border-right:0}.accounting-register th:first-child,.accounting-register td:first-child{width:112px}.accounting-register th:nth-child(2),.accounting-register td:nth-child(2){width:145px}.accounting-register th:nth-child(3),.accounting-register td:nth-child(3){width:70px}.accounting-register th:nth-child(4),.accounting-register td:nth-child(4){width:105px}.accounting-register th:nth-child(5),.accounting-register td:nth-child(5),.accounting-register th:nth-child(6),.accounting-register td:nth-child(6){width:112px}.accounting-register th:nth-child(7),.accounting-register td:nth-child(7),.accounting-register th:nth-child(8),.accounting-register td:nth-child(8),.accounting-register th:nth-child(9),.accounting-register td:nth-child(9),.accounting-register th:nth-child(10),.accounting-register td:nth-child(10){width:74px}.accounting-register th:nth-child(11),.accounting-register td:nth-child(11),.accounting-register th:nth-child(12),.accounting-register td:nth-child(12){width:90px}.accounting-register th:nth-child(13),.accounting-register td:nth-child(13){width:100px}.accounting-register th:nth-child(14),.accounting-register td:nth-child(14){width:75px}.accounting-register input:focus,.accounting-register select:focus{background:#fff;border-color:#4f7cf3;outline:none}.accounting-register .money-input{text-align:right;font-variant-numeric:tabular-nums;min-width:0;font-weight:400}.accounting-balance{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.accounting-tax{white-space:nowrap;text-align:right;color:#8a5a12;font-variant-numeric:tabular-nums;font-weight:400}table.data-table.accounting-register thead tr{height:28px!important}table.data-table.accounting-register tbody tr{height:32px!important;min-height:32px!important}table.data-table.accounting-register th{height:28px!important;min-height:28px!important;padding:2px 5px!important;line-height:1.05!important}table.data-table.accounting-register td{height:32px!important;min-height:32px!important;padding:1px 4px!important;line-height:1.05!important}table.data-table.accounting-register td input,table.data-table.accounting-register td select{box-sizing:border-box!important;height:26px!important;min-height:26px!important;margin:0!important;padding:1px 3px!important;font-size:.8rem!important;font-weight:400!important;line-height:1!important}table.data-table.accounting-register td .money-input,table.data-table.accounting-register td.accounting-balance{font-weight:400!important}.voided-row{opacity:.55;text-decoration:line-through}.statement-panel{max-width:760px;margin-inline:auto}.statement-table{border-collapse:collapse;width:100%}.statement-table td,.statement-table th{text-align:left;border-bottom:1px solid #e7eaf0;height:40px;padding:.32rem .7rem;font-size:.9rem;font-weight:400;line-height:1.15}.statement-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:400}.statement-heading{background:#f6f8fc;height:38px}.statement-heading th,.statement-total td{font-weight:600}.statement-deduction td{color:#9a3412;font-weight:500}.statement-net td{font-weight:700}.statement-net{background:#eef5ff;font-size:1rem}.accounting-summary-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem;display:grid}.accounting-category-add,.accounting-import-controls{flex-wrap:wrap;gap:.65rem;margin-bottom:1rem;display:flex}.accounting-category-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.accounting-category-columns .lookup-row input{flex:1}.financial-print-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.financial-print-actions strong{margin-right:.25rem}.financial-print-actions button{padding:.5rem .75rem}.sales-tax-report{max-width:1100px;margin-inline:auto}.sales-tax-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin-bottom:1rem;display:grid}.sales-tax-summary>div{background:#f8faff;border:1px solid #dbe4ee;border-radius:8px;padding:.7rem .8rem}.sales-tax-summary span{color:#667085;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem;font-weight:600;display:block}.sales-tax-summary strong{font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:1.05rem;font-weight:500;display:block}.sales-tax-table{width:100%;min-width:850px;font-size:.82rem}.sales-tax-table th,.sales-tax-table td{padding:.4rem .5rem}.sales-tax-table th:nth-child(n+4):nth-child(-n+8),.sales-tax-table td:nth-child(n+4):nth-child(-n+8){text-align:right;font-variant-numeric:tabular-nums}.sales-tax-voided{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:7px;padding:.55rem .7rem}.financial-report-links{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-top:.85rem;display:grid}.financial-report-links a{border:1px solid var(--portal-line);min-height:72px;color:var(--portal-ink);background:#f8faff;border-radius:10px;flex-direction:column;gap:.25rem;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,background-color .15s,transform .15s;display:flex}.financial-report-links a:hover{background:#f1f6ff;border-color:#a9c3f3;transform:translateY(-1px)}.financial-report-links span{color:var(--portal-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.78rem;font-weight:700}.financial-report-links strong{color:var(--portal-blue);margin:0;font-size:1rem;font-weight:600;line-height:1.25}@media (width<=1100px){.accounting-add-grid,.financial-report-links{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.accounting-category-columns,.accounting-add-grid,.sales-tax-summary{grid-template-columns:1fr}}@media (width<=560px){.financial-report-links{grid-template-columns:1fr}}@media print{@page{size:landscape;margin:.35in}body *{visibility:hidden!important}.financial-print-area,.financial-print-area *{visibility:visible!important}.financial-print-area{width:100%!important;max-width:none!important;box-shadow:none!important;border:0!important;margin:0!important;padding:0!important;position:absolute!important;inset:0 auto auto 0!important}.financial-print-actions button{display:none!important}.financial-print-actions{display:block!important}.accounting-table-wrap{overflow:visible!important}table.data-table.accounting-register{table-layout:fixed!important;width:100%!important;min-width:0!important;font-size:7pt!important}table.data-table.accounting-register th,table.data-table.accounting-register td{border:1px solid #d9dde5!important;padding:1px 2px!important}table.data-table.accounting-register td input,table.data-table.accounting-register td select{appearance:none!important;color:#000!important;background:0 0!important;border:0!important;padding:0!important;font-size:7pt!important}.statement-panel{width:7.5in!important;margin:0 auto!important}}.accounting-date-filter{flex-basis:100%;gap:.75rem;display:grid}.accounting-range{flex-wrap:wrap;align-items:end}dialog.accounting-transaction-dialog{box-sizing:border-box;color:#182338;background:#fff;border:1px solid #dce4ee;border-radius:14px;width:min(720px,100vw - 32px);max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);margin:auto;padding:24px;overflow-y:auto;box-shadow:0 24px 80px #0f172a40}.accounting-transaction-dialog::backdrop{background:#0f172a80}.accounting-dialog-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.accounting-dialog-header h3{margin:0}.accounting-dialog-header button{flex:none}.accounting-transaction-dialog .accounting-add-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.accounting-transaction-dialog .accounting-add-grid>input,.accounting-transaction-dialog .accounting-add-grid>select{box-sizing:border-box;width:100%;min-width:0}.accounting-dialog-actions{flex-wrap:wrap;grid-column:1/-1;justify-content:flex-end;gap:.65rem;margin-top:.5rem;display:flex}@media (width<=540px){.accounting-transaction-dialog .accounting-add-grid{grid-template-columns:minmax(0,1fr)}dialog.accounting-transaction-dialog{padding:16px}}@media print{dialog.accounting-transaction-dialog{display:none!important}}*{box-sizing:border-box}:root{--app-sidebar-width:240px}@media (width>=1001px){.sidebar{width:var(--app-sidebar-width)}}.avatar{color:#fff;text-transform:uppercase;object-fit:cover;object-position:center;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:600;display:inline-flex}.avatar--a{background:#6366f1}.avatar--b{background:#ec4899}.avatar--c{background:#14b8a6}.avatar--d{background:#f59e0b}.avatar--e{background:#8b5cf6}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.badge--active{color:#065f46;background:#d1fae5}.badge--active .badge-dot{background:#059669}.badge--pending{color:#92400e;background:#fef3c7}.badge--pending .badge-dot{background:#d97706}.badge--closed{color:#4b5563;background:#f3f4f6}.badge--closed .badge-dot{background:#9ca3af}.badge--info{color:#1e40af;background:#dbeafe}.badge--info .badge-dot{background:#2563eb}.badge--danger{color:#991b1b;background:#fee2e2}.badge--danger .badge-dot{background:#dc2626}.section-label{letter-spacing:.05em;text-transform:uppercase;color:#9ca3af;margin:1.25rem 0 .5rem;font-size:.7rem;font-weight:700}.section-label:first-child{margin-top:0}.stat-number--blue{color:#2563eb}.stat-number--green{color:#059669}.stat-number--orange{color:#ea580c}.stat-number--red{color:#dc2626}.stat-number--purple{color:#7c3aed}.info-banner{color:#065f46;background:#d1fae5;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.info-banner-dot{background:#059669;border-radius:50%;width:8px;height:8px;margin-right:.5rem;display:inline-block}.data-table-wrap{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:1000px;font-size:.92rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:#6b7280;white-space:nowrap;border-bottom:1px solid #e5e7eb;padding:.75rem .9rem;font-size:.75rem;font-weight:600}.data-table td{vertical-align:middle;border-bottom:1px solid #e8ebe9;padding:1rem .9rem}.data-table tbody tr:nth-child(2n){background:#f4f7f5}.data-table tbody tr:hover{background:#e3f6ea}.data-table tr:last-child td{border-bottom:none}.data-table-name-cell{align-items:center;gap:.75rem;display:flex}.data-table-name-cell .avatar{width:42px;height:42px}.data-table-name-cell .name-block strong{white-space:nowrap;font-size:.87rem;display:block}.data-table-name-cell .name-block span{color:#6b7280;font-size:.78rem;display:block}.icon-actions{justify-content:flex-end;gap:.35rem;display:flex}.icon-btn{color:#4b5563;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .15s;display:inline-flex}.icon-btn:hover{background:#f3f4f6}.icon-btn--text{width:auto;height:auto;padding:.35rem .7rem;font-size:.8rem}.nav-section a{align-items:center;gap:.65rem;text-decoration:none;display:flex}.nav-section a:hover{text-decoration:none}.nav-icon{opacity:.85;flex-shrink:0;width:18px;height:18px}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem;display:grid}.form-grid--2{grid-template-columns:repeat(2,1fr)}.form-grid--3{grid-template-columns:repeat(3,1fr)}.form-grid--narrow{grid-template-columns:minmax(0,220px)}.form-grid--medium{grid-template-columns:minmax(0,380px)}.form-grid--wide{grid-template-columns:minmax(0,520px)}.field-label{letter-spacing:.04em;text-transform:uppercase;color:#6b7280;margin-bottom:.35rem;font-size:.7rem;font-weight:700;display:block}.field-label .required{color:#dc2626;margin-left:.15rem}.field-helper{color:#9ca3af;margin-top:.3rem;font-size:.75rem}.labeled-field{flex-direction:column;display:flex}.labeled-field input,.labeled-field select,.labeled-field textarea{background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:.65rem .8rem;font-size:.9rem}.labeled-field input:focus,.labeled-field select:focus,.labeled-field textarea:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11a}.settings-layout{align-items:flex-start;gap:1.5rem;display:flex}.settings-nav{flex-direction:column;flex:0 0 210px;gap:.05rem;display:flex;position:sticky;top:1rem}.settings-nav button{text-align:left;cursor:pointer;color:#4b5563;background:0 0;border:none;border-radius:6px;padding:.4rem .7rem;font-size:.85rem;font-weight:400;line-height:1.3}.settings-content{flex:1;min-width:0}.permissions-table-wrap{-webkit-overflow-scrolling:touch;width:100%;max-width:100%;overflow-x:auto}.permissions-table{table-layout:fixed;min-width:560px}.permissions-table th:first-child,.permissions-table td:first-child{width:44%}.permissions-table th:not(:first-child),.permissions-table td:not(:first-child){width:14%}.lookup-list{border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.lookup-row{border-bottom:1px solid #f0f2f0;justify-content:space-between;align-items:center;gap:.5rem;padding:.85rem 1rem;font-size:.9rem;display:flex}.lookup-row:last-child{border-bottom:none}.lookup-row:nth-child(2n){background:#f4f7f5}.lookup-row:hover{background:#e3f6ea}.checklist-items{border:1px solid #e5e7eb;border-radius:8px;margin:.5rem 0 1rem;overflow:hidden}.checklist-item-row{border-bottom:1px solid #f3f4f6;align-items:center;gap:.6rem;padding:.4rem .75rem;font-size:.9rem;display:flex}.checklist-item-row:last-child{border-bottom:none}.checklist-item-row.checked span{color:#9ca3af;text-decoration:line-through}.print-only-title{display:none}.checklist-columns{columns:2;column-gap:2rem}.menu-toggle{cursor:pointer;color:#374151;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.4rem;display:none}.menu-toggle:hover{background:#f3f4f6}.menu-toggle svg{width:24px;height:24px;display:block}@media (width<=640px){.checklist-columns{columns:1}.modal-overlay{align-items:flex-end;padding:0}.modal-box{border-radius:16px 16px 0 0;max-height:92vh;width:100%!important;max-width:100%!important}.modal-header,.modal-body{padding:1rem}.data-table th,.data-table td{white-space:nowrap;padding:.6rem}.data-table-name-cell{white-space:normal}.form-grid--2,.form-grid--3{grid-template-columns:1fr}.filter-bar input[type=text]{max-width:none}.filter-bar select,.filter-bar button{flex:auto}.page-header-actions{align-items:stretch}.page-header-actions>button{width:100%}.icon-actions{flex-wrap:wrap;justify-content:flex-start}.settings-layout{flex-direction:column}.settings-nav{flex-flow:wrap;flex:none;width:100%;position:static}.topbar-user-welcome{display:none}.global-topbar{justify-content:space-between;padding:.6rem .85rem}.menu-toggle{display:inline-flex}.sidebar{z-index:1200;width:260px;height:100vh;transition:transform .25s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar.sidebar--open{transform:translate(0);box-shadow:0 0 40px #00000059}.sidebar-backdrop.sidebar-backdrop--visible{z-index:1100;background:#0f172a80;display:block;position:fixed;inset:0}.login-card{margin:0 1rem;padding:1.5rem 1.25rem}}@media print{body *{visibility:hidden}.printable-checklist,.printable-checklist *,.printable-work-order,.printable-work-order *{visibility:visible}.printable-checklist,.printable-work-order{width:100%;position:absolute;top:0;left:0}.print-only-title{margin-bottom:1rem;display:block}.checklist-item-row input[type=checkbox]{width:16px;height:16px}.checklist-columns{columns:2;column-gap:2rem}.no-print{visibility:hidden!important}}.modal-overlay{z-index:1000;background:#0f172abf;justify-content:center;align-items:center;padding:3rem 4rem;display:flex;position:fixed;inset:0}.modal-box{box-sizing:border-box;background:#fff;border-radius:12px;flex-direction:column;width:100%;max-width:640px;max-height:100%;margin:0 auto;display:flex;overflow:hidden;box-shadow:0 20px 50px #00000059}.modal-box .settings-tabs{z-index:10;padding:0 1.25rem;background:#fff;border-bottom:1px solid #f3f4f6;flex-wrap:wrap;flex-shrink:0;gap:1.25rem;margin:-1.25rem -1.25rem 1rem;padding-top:1.25rem;display:flex;position:sticky;top:-1.25rem}.modal-box .settings-tabs button{white-space:nowrap;color:#6b7280;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;flex:0 auto;padding:.75rem .1rem;font-size:.9rem}.modal-box .settings-tabs button.active{color:#16a34a;border-bottom-color:#16a34a;font-weight:600}.modal-box .settings-tabs button:hover{color:#111827;background:0 0}.modal-header{border-bottom:1px solid #f3f4f6;flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-header h3{margin:0}.modal-close{cursor:pointer;color:#6b7280;background:0 0;border:none;padding:.2rem .5rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:#111827}.modal-body{box-sizing:border-box;flex:1;max-width:100%;padding:1.25rem;overflow-y:auto}.modal-body h4{margin-top:1rem;margin-bottom:.5rem}.modal-body h4:first-child{margin-top:0}.modal-body .form-grid{margin-bottom:.75rem}.page-header-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.content-column{flex-direction:column;flex:1;min-width:0;display:flex}.global-topbar{background:#fff;border-bottom:1px solid #e5e7eb;flex-shrink:0;justify-content:flex-end;align-items:center;padding:.75rem 1.5rem;display:flex}.topbar-user-menu{position:relative}.topbar-user-trigger{cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:999px;align-items:center;gap:.6rem;padding:.35rem .5rem .35rem 1rem;display:flex}.topbar-user-trigger:hover{background:#f9fafb}.topbar-user-text{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.topbar-user-welcome{color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;font-size:.7rem}.topbar-user-text strong{color:#111827;font-size:.85rem}.topbar-user-dropdown{z-index:950;background:#fff;border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;min-width:220px;display:flex;position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden;box-shadow:0 10px 30px #0000001f}.topbar-user-dropdown-header{border-bottom:1px solid #f3f4f6;flex-direction:column;padding:.75rem 1rem;display:flex}.topbar-user-dropdown-header span{color:#6b7280;font-size:.78rem}.topbar-user-dropdown a,.topbar-user-dropdown button{text-align:left;color:#374151;cursor:pointer;background:0 0;border:none;width:100%;padding:.6rem 1rem;font-size:.85rem;text-decoration:none;display:block}.topbar-user-dropdown a:hover,.topbar-user-dropdown button:hover{background:#f3f4f6}.filter-bar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.filter-bar input[type=text]{border:1px solid #d1d5db;border-radius:8px;width:100%;max-width:320px;padding:.55rem .85rem;font-size:.9rem}.filter-bar input[type=text]:focus{border-color:#16a34a;outline:none;box-shadow:0 0 0 3px #16a34a1f}.filter-bar select{border:1px solid #d1d5db;border-radius:8px;min-width:140px;padding:.55rem .7rem;font-size:.9rem}.filter-bar button{white-space:nowrap;border-radius:8px;padding:.55rem 1rem;font-size:.85rem}.filter-bar button[type=submit]{color:#fff;background:#16a34a;border:none}.filter-bar button[type=submit]:hover{background:#15803d}.filter-bar button[type=button]{color:#4b5563;background:#fff;border:1px solid #d1d5db}.filter-bar button[type=button]:hover{background:#f3f4f6}.login-page{background:linear-gradient(135deg,#0f2418 0%,#16351f 50%,#1a3d24 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:2.5rem;box-shadow:0 25px 60px #0000004d}.login-brand{align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.login-brand-mark{object-fit:contain;flex-shrink:0;width:44px;height:44px}.login-brand h1{margin:0;font-size:1.15rem;line-height:1.2}.login-brand span{color:#9ca3af;font-size:.8rem}.login-heading{margin:0 0 .25rem;font-size:1.4rem}.login-subheading{color:#6b7280;margin:0 0 1.75rem;font-size:.9rem}.login-form{flex-direction:column;gap:1.1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;display:flex}.login-field span{color:#374151;text-transform:uppercase;letter-spacing:.02em;font-size:.8rem;font-weight:600}.login-field input{border:1px solid #d1d5db;border-radius:8px;padding:.7rem .85rem;font-size:.95rem}.login-field input:focus{border-color:#16a34a;outline:none;box-shadow:0 0 0 3px #16a34a26}.login-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0;padding:.6rem .85rem;font-size:.85rem}.login-submit{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;padding:.75rem;font-size:.95rem;font-weight:600;transition:background .15s}.login-submit:hover{background:#15803d}.login-submit:disabled{opacity:.6;cursor:default}.brand-logo{object-fit:contain;flex-shrink:0;width:auto;max-width:44px;height:40px}.calendar-grid-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.sidebar-backdrop{display:none}.portal-stats-row{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.portal-stat-card{background:#fff;border:1px solid #dce7df;border-radius:14px;flex:1;min-width:160px;padding:1rem 1.25rem;box-shadow:0 8px 20px #0a23160a}.portal-stat-card span{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem;font-size:.75rem;display:block}.portal-stat-card strong{color:#102019;font-size:1.4rem}.portal-scroll-row{-webkit-overflow-scrolling:touch;gap:.75rem;padding:.25rem .25rem .6rem;display:flex;overflow-x:auto}.portal-visit-card{cursor:pointer;background:#fff;border:2px solid #e5e7eb;border-radius:14px;flex:none;width:148px;padding:.85rem;transition:border-color .15s,box-shadow .15s}.portal-visit-card .portal-visit-daynum{color:#17864d;font-size:1.6rem;font-weight:800;line-height:1}.portal-visit-card .portal-visit-month{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;font-size:.72rem}.portal-visit-card .portal-visit-service{margin-top:.5rem;font-size:.85rem;font-weight:700;line-height:1.2}.portal-visit-card .portal-visit-time{color:#6b7280;margin-top:.15rem;font-size:.78rem}.portal-visit-detail{background:#fff;border:1px solid #dce7df;border-radius:14px;margin-top:.25rem;padding:1.25rem}.portal-container{max-width:1100px;margin:0 auto}.portal-welcome-banner{background:linear-gradient(135deg,#eafaf1 0%,#f5f8f6 100%);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;padding:1.5rem 1.75rem;display:flex}.portal-welcome-banner h2{margin:0 0 .25rem;font-size:1.6rem}.portal-welcome-banner p{color:#4b5f54;margin:0}.portal-icon-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.portal-icon-badge svg{width:20px;height:20px}.portal-icon-badge--green{color:#16a34a;background:#dcfce7}.portal-icon-badge--blue{color:#2563eb;background:#dbeafe}.portal-icon-badge--purple{color:#7c3aed;background:#ede9fe}.portal-icon-badge--amber{color:#b45309;background:#fef3c7}.portal-icon-badge--gray{color:#6b7280;background:#f3f4f6}.portal-stat-card{align-items:center;gap:.85rem;display:flex}.portal-cleaning-card{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.portal-cleaning-card .portal-cleaning-text{flex:1;min-width:200px}.portal-cleaning-card .portal-cleaning-text strong{font-size:1rem;display:block}.portal-cleaning-card .portal-cleaning-text span{color:#6b7280;font-size:.85rem}.portal-cleaning-card form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.portal-cleaning-card form input{margin:0}.portal-grid-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.portal-preview-card .panel-header{margin-bottom:.6rem}.portal-preview-card .panel-header a,.portal-preview-card .panel-header button.portal-link-btn{color:#19a85b;cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:700}.portal-preview-row{align-items:center;gap:.65rem;padding:.4rem 0;display:flex}.portal-preview-row .portal-icon-badge{width:34px;height:34px}.portal-preview-row .portal-icon-badge svg{width:16px;height:16px}.portal-preview-empty{color:#6b7280;align-items:center;gap:.65rem;font-size:.9rem;display:flex}.portal-contact-banner{background:#f5f8f6;border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem;padding:1.5rem 1.75rem;display:flex}.portal-contact-banner h3{margin:0 0 .2rem}.portal-contact-banner p{color:#6b7280;margin:0}@media (width<=900px){.portal-grid-2{grid-template-columns:1fr}}.portal-shell{background:#f5f8f6;flex-direction:column;min-height:100vh;display:flex}.portal-header{background:#fff;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:.85rem 1.5rem;display:flex}.portal-header-brand{align-items:center;gap:.6rem;display:flex}.portal-header-brand div{flex-direction:column;line-height:1.15;display:flex}.portal-header-brand strong{color:#102019;font-size:1.05rem}.portal-header-brand span{color:#6b7280;text-transform:uppercase;letter-spacing:.06em;font-size:.65rem}.portal-header-profile{align-items:center;gap:.65rem;display:flex}.portal-header-name{font-size:.9rem;font-weight:700}.portal-brand-logo{object-fit:contain;flex:none;width:48px;height:48px}.portal-service-picker{gap:.75rem;max-width:720px;display:grid}.portal-service-picker label{color:#374151;font-size:.82rem;font-weight:600}.portal-service-picker select{width:100%;min-height:48px}.portal-service-summary{background:#f7faff;border:1px solid #dbe5f1;border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;display:flex}.portal-service-summary span,.portal-service-summary-price span{color:#64748b;margin-top:.2rem;font-size:.8rem;display:block}.portal-service-summary-price{text-align:right}.portal-booking-help,.portal-request-note,.portal-appointment-meta{color:#64748b;font-size:.86rem}.portal-booking-help{margin-top:0}.portal-request-note{margin:.65rem 0 0}.portal-booking-error{color:#b91c1c;margin:0;font-size:.85rem}.portal-choice-button{text-align:left;justify-content:space-between;gap:1rem;width:100%;padding:.7rem .85rem;display:flex}.portal-choice-button span{color:#fff;opacity:.88}.portal-appointment-section{margin-bottom:1rem}.portal-section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.8rem;display:flex}.portal-section-heading h3{margin:0}.portal-section-heading p{color:#64748b;margin:.25rem 0 0;font-size:.85rem}.portal-status-badge{white-space:nowrap;border-radius:999px;align-items:center;width:max-content;padding:.28rem .55rem;font-size:.74rem;font-weight:600;display:inline-flex}.portal-status-badge--pending{color:#92400e;background:#fef3c7}.portal-request-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.portal-request-row-title{flex-wrap:wrap;align-items:center;gap:.55rem;margin-bottom:.2rem;display:flex}@media (width<=640px){.portal-header{padding:.7rem 1rem}.portal-header-name{display:none}.portal-brand-logo{width:42px;height:42px}.portal-welcome-banner{padding:1.1rem 1.2rem}.portal-service-summary,.portal-request-row{align-items:flex-start}.portal-service-summary-price{min-width:max-content}}.portal-terms-gate{justify-content:center;padding:2rem 1rem;display:flex}.portal-terms-box{width:100%;max-width:700px;padding:2rem}.portal-terms-text{white-space:pre-wrap;color:#374151;border:1px solid #e5e7eb;border-radius:8px;max-height:400px;margin-top:1rem;padding:1rem;font-size:.9rem;line-height:1.5;overflow-y:auto}.icon-badge{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.icon-badge svg{width:19px;height:19px}.icon-badge--green{color:#16a34a;background:#dcfce7}.icon-badge--blue{color:#2563eb;background:#dbeafe}.icon-badge--amber{color:#b45309;background:#fef3c7}.icon-badge--gray{color:#6b7280;background:#f3f4f6}.dashboard-top-grid{grid-template-columns:2fr 1fr;align-items:start;gap:1rem;display:grid}@media (width<=900px){.dashboard-top-grid{grid-template-columns:1fr}}.stat-card--compact{padding:.75rem .85rem}.stat-card--compact span{font-size:.72rem}.stat-card--compact strong{font-size:1.3rem}.icon-badge--purple{color:#7c3aed;background:#ede9fe}.icon-badge--red{color:#dc2626;background:#fee2e2}.eyebrow-pill{color:#166534;letter-spacing:.06em;text-transform:uppercase;background:#dcfce7;border-radius:999px;align-items:center;margin-bottom:.5rem;padding:.25rem .65rem;font-size:.72rem;font-weight:700;display:inline-flex}.wo-icon-row{border-top:1px solid #f3f4f6;align-items:flex-start;gap:.75rem;padding:.65rem 0;display:flex}.wo-icon-row:first-child{border-top:none;padding-top:0}.wo-icon-row .icon-badge{width:32px;height:32px}.wo-icon-row .icon-badge svg{width:15px;height:15px}.grid-2-col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=900px){.grid-2-col{grid-template-columns:1fr}}@media (width>=641px){.sidebar{transition:width .2s;position:relative}.sidebar--collapsed{width:76px;padding-left:14px;padding-right:14px}.sidebar--collapsed .brand{justify-content:center;margin-bottom:28px}.sidebar--collapsed .nav-section a{justify-content:center;padding:11px}.sidebar-collapse-toggle{color:#0d2419;cursor:pointer;z-index:5;background:#fff;border:1px solid #dce7df;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:flex;position:absolute;top:28px;right:-14px;box-shadow:0 2px 8px #0a23162e}.sidebar-collapse-toggle:hover{background:#f5f8f6}.sidebar-collapse-toggle svg{width:16px;height:16px}}@media (width<=640px){.sidebar-collapse-toggle{display:none}}.detail-back-link{color:#6b7280;align-items:center;gap:.3rem;margin-bottom:.6rem;font-size:.85rem;display:inline-flex}.detail-back-link:hover{color:#137a43}.detail-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.detail-header-identity{align-items:center;gap:1rem;display:flex}.detail-header-identity h2{flex-wrap:wrap;align-items:center;gap:.6rem;margin:0;display:flex}.detail-header-meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.85rem;display:flex}.detail-header-actions{flex-wrap:wrap;gap:.5rem;display:flex}.detail-layout{grid-template-columns:2fr 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=1000px){.detail-layout{grid-template-columns:1fr}}.detail-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.25rem;padding:1.25rem}.detail-card-header{color:#102019;align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.95rem;font-weight:700;display:flex}.detail-sidebar-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;margin-bottom:1.25rem;padding:1.25rem}.detail-sidebar-card h4{align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.9rem;display:flex}.detail-summary-row{border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 0;font-size:.85rem;display:flex}.detail-summary-row:last-child{border-bottom:none}.detail-summary-label{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;font-size:.7rem}.detail-quick-action{color:#137a43;cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #f3f4f6;justify-content:space-between;align-items:center;width:100%;padding:.55rem 0;font-size:.85rem;font-weight:600;display:flex}.detail-quick-action:last-child{border-bottom:none}.detail-quick-action:hover{color:#0d5c33}.detail-action-btn{text-align:center;width:100%;margin-bottom:.5rem}.detail-action-btn:last-child{margin-bottom:0}.detail-action-btn--danger{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca}.staff-view{background:#f5f8f6;min-height:100vh;display:flex}.staff-view-sidebar{background:#0d2419;flex-direction:column;flex-shrink:0;align-items:stretch;width:220px;padding:20px 16px;display:flex}.staff-view-logo{object-fit:cover;border-radius:10px;width:40px;height:40px;margin:0 0 28px 4px}.staff-view-sidebar nav{flex-direction:column;flex:1;gap:4px;display:flex}.staff-view-sidebar nav button{color:#a9c7b7;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;flex-direction:row;align-items:center;gap:12px;width:100%;padding:11px 14px;font-size:.88rem;font-weight:600;display:flex}.staff-view-sidebar nav button svg{flex-shrink:0;width:20px;height:20px}.staff-view-sidebar nav button:hover{color:#fff;background:#ffffff0f}.staff-view-logout{color:#a9c7b7;cursor:pointer;background:0 0;border:none;border-top:1px solid #ffffff14;align-items:center;gap:12px;margin-top:8px;padding:20px 14px 11px;font-size:.88rem;font-weight:600;display:flex}.staff-view-logout svg{flex-shrink:0;width:20px;height:20px}.staff-view-logout:hover{color:#fff}.staff-view-topbar,.staff-view-bottom-nav,.staff-view-more-sheet{display:none}.staff-view-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:28px}.staff-view-header{background:#fff;border:1px solid #dce7df;border-radius:18px;align-items:center;gap:1rem;margin-bottom:1.5rem;padding:1.25rem 1.5rem;display:flex;box-shadow:0 12px 30px #0a23160f}.staff-view-contact{color:#6b7280;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.35rem;font-size:.85rem;display:flex}.staff-schedule-grid{background:#e5e7eb;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.staff-schedule-dow{text-align:center;color:#6b7280;text-transform:uppercase;background:#f9fafb;padding:.5rem 0;font-size:.72rem;font-weight:700}.staff-schedule-cell{background:#fff;flex-direction:column;gap:.3rem;min-height:96px;padding:.4rem;display:flex}.staff-schedule-cell--muted{background:#fafbfa}.staff-schedule-cell--muted .staff-schedule-daynum{color:#d1d5db}.staff-schedule-daynum{color:#374151;font-size:.78rem;font-weight:600}.staff-schedule-appointment{text-align:left;cursor:pointer;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:0;width:100%;padding:.3rem .45rem;font-size:.72rem;display:flex}.staff-schedule-appointment strong{font-size:.7rem}.staff-schedule-assigned-staff{opacity:.85;font-style:italic}.staff-schedule-appointment--scheduled{color:#92400e;background:#fef3c7}.staff-schedule-appointment--on_the_way{color:#1e40af;background:#dbeafe}.staff-schedule-appointment--started{color:#5b21b6;background:#ede9fe}.staff-schedule-appointment--completed{color:#065f46;background:#d1fae5}.staff-schedule-appointment--cancelled{color:#6b7280;background:#f3f4f6;text-decoration:line-through}@media (width<=768px){.staff-view{flex-direction:column}.staff-view-sidebar{display:none}.staff-view-main{max-width:none;padding:76px 16px 84px}.staff-view-topbar{z-index:40;background:#0d2419;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:fixed;top:0;left:0;right:0}.staff-view-topbar-left{align-items:center;gap:10px;display:flex}.staff-view-topbar img{object-fit:cover;border-radius:8px;width:30px;height:30px}.staff-view-topbar h1{color:#fff;margin:0;font-size:1.05rem;font-weight:700}.staff-view-topbar-actions{align-items:center;gap:4px;display:flex}.staff-view-topbar-btn{color:#a9c7b7;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px;display:flex;position:relative}.staff-view-topbar-btn:hover,.staff-view-topbar-btn.active{color:#fff;background:#ffffff14}.staff-view-topbar-btn svg{width:22px;height:22px}.staff-view-bottom-nav{z-index:40;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));background:#0d2419;border-top:1px solid #ffffff14;display:flex;position:fixed;bottom:0;left:0;right:0}.staff-view-bottom-nav button{color:#a9c7b7;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 2px;font-size:.66rem;font-weight:600;display:flex}.staff-view-bottom-nav button svg{width:20px;height:20px}.staff-view-bottom-nav button.active{color:#37d67a}.staff-view-more-sheet{z-index:50;background:#0006;display:block;position:fixed;inset:0}.staff-view-more-sheet-panel{padding:8px 8px calc(12px + env(safe-area-inset-bottom,0px));background:#fff;border-radius:18px 18px 0 0;position:absolute;bottom:0;left:0;right:0}.staff-view-more-sheet button{text-align:left;color:#111827;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:14px;width:100%;padding:14px 16px;font-size:.95rem;font-weight:600;display:flex}.staff-view-more-sheet button:hover{background:#f3f4f6}.staff-view-more-sheet button svg{color:#6b7280;flex-shrink:0;width:20px;height:20px}.staff-view-more-sheet-handle{background:#d1d5db;border-radius:999px;width:36px;height:4px;margin:10px auto 6px}.staff-view-header{flex-wrap:wrap}.staff-schedule-cell{min-height:72px}}.catalog-extras-grid{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}@media (width<=640px){.catalog-extras-grid{grid-template-columns:1fr}}.nav-badge{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:.68rem;font-weight:700;line-height:1;display:inline-flex}.nav-badge--corner{position:absolute;top:4px;right:8px}.notification-card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:.65rem .85rem}.notification-card summary{cursor:pointer;list-style:none}.notification-card summary::-webkit-details-marker{display:none}.modal-box .settings-tabs button.active{color:#3f78e5;border-bottom-color:#3f78e5}.filter-bar input[type=text]:focus,.filter-bar select:focus,.login-field input:focus{border-color:#3f78e5;outline:none;box-shadow:0 0 0 3px #3f78e524}.filter-bar button[type=submit],.login-submit{background:#3f78e5}.filter-bar button[type=submit]:hover,.login-submit:hover{background:#3268d3}.login-page{background:linear-gradient(135deg,#071a36 0%,#0b315e 55%,#3f78e5 100%)}.portal-shell,.staff-view{background:#f3f7fb}.portal-stat-card,.portal-visit-detail,.staff-view-summary{border-color:#dfe7f1}.portal-stat-card strong,.portal-header-brand strong{color:#10213b}.portal-visit-card:hover{border-color:#9fc4f5}.portal-visit-card--active{border-color:#3f78e5;box-shadow:0 4px 14px #1268e82e}.portal-visit-card .portal-visit-daynum,.portal-preview-card .panel-header a,.portal-preview-card .panel-header button.portal-link-btn,.detail-back-link:hover,.detail-sidebar-card .detail-quick-action{color:#3f78e5}.detail-sidebar-card .detail-action-btn:not(.detail-action-btn--danger){color:#fff}.portal-welcome-banner{background:linear-gradient(135deg,#eaf3fd 0%,#f3f7fb 100%)}.portal-contact-banner{background:#f3f7fb}.staff-view-sidebar,.staff-view-topbar,.staff-view-bottom-nav{background:#071a36}.staff-view-sidebar nav button,.staff-view-logout,.staff-view-topbar button,.staff-view-bottom-nav button{color:#b9cce2}.staff-view-sidebar nav button.active{color:#39c1e6;background:#1268e838}.staff-view-bottom-nav button.active{color:#39c1e6}.sidebar-collapse-toggle{color:#071a36;border-color:#dfe7f1;box-shadow:0 2px 8px #173c682e}.sidebar-collapse-toggle:hover{background:#f3f7fb}.global-topbar{border-bottom-color:#dfe7f1;min-height:64px;padding:.45rem 1.5rem}.topbar-user-trigger{border-color:#dfe7f1;padding:.3rem .45rem .3rem .85rem}.topbar-user-welcome{letter-spacing:.02em;font-weight:500}.topbar-user-text strong,.page-header-actions h2,.panel-header h3,.settings-tab-content>h3,.detail-card-header{font-weight:600}.field-label,.login-field span,.table th,.section-label{letter-spacing:.025em;font-weight:600}.panel,.stat-card,.portal-welcome-banner,.portal-contact-banner,.staff-view-summary{border-radius:14px;box-shadow:0 8px 22px #173c680e}.portal-visit-card .portal-visit-daynum,.portal-visit-card .portal-visit-service,.portal-preview-card .panel-header a,.portal-preview-card .panel-header button.portal-link-btn,.portal-header-name,.detail-sidebar-card button,.staff-view-sidebar nav button,.staff-view-logout{font-weight:600}.settings-nav button.active{color:#3f78e5;background:#eaf3fd;font-weight:500}.settings-nav button:hover{background:#f3f7fb}.modal-box,.login-card,.topbar-user-dropdown{border-radius:14px;box-shadow:0 16px 38px #173c6829}.nav-section a.active{border:0;outline:none;box-shadow:inset 3px 0 #39c1e6}.nav-section a.active:focus,.nav-section a.active:focus-visible{outline:none}button.staff-message-row{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.65rem;display:flex}button.staff-message-row:hover,button.staff-message-row:focus-visible{color:inherit;background:#eef5fd}button.staff-message-row:focus-visible{outline-offset:-2px;outline:2px solid #3f78e5}.staff-message-row--unread{background:#f5f9ff}.staff-message-subject{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}@media (width<=700px){button.staff-message-row{flex-wrap:wrap}.staff-message-subject{flex-basis:calc(100% - 56px)}button.staff-message-row>span:last-child{width:100%;margin-left:46px!important}}
