:root{--color-bg-primary:#5db89f;--color-bg-secondary:#04373a;--color-panel:#60846a;--color-text-primary:#0a2e2e;--color-text-secondary:#c09554;--color-accent:#c09554;--color-alert:#b42d1c;--color-border:#378673;--color-card:#8ee0c7;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-xxl:2rem;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow:0 2px 8px #0000004d}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,sans-serif;font-size:var(--font-size-md);min-height:100vh}a{color:var(--color-text-secondary);text-decoration:none}button{cursor:pointer;border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);background-color:var(--color-bg-secondary);color:var(--color-text-primary);border:none;transition:opacity .2s}button:hover{opacity:.85}input,select,textarea{background-color:var(--color-card);color:#072323;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-sm);font-size:var(--font-size-md);width:100%}input::placeholder,textarea::placeholder{color:var(--color-panel)}.sidebar{background-color:var(--color-bg-secondary);width:280px;height:100vh;padding:var(--spacing-lg);z-index:1000;gap:var(--spacing-lg);flex-direction:column;transition:left .3s;display:flex;position:fixed;top:0;left:-280px;overflow-y:auto}.sidebar.open{left:0}.nav-overlay{z-index:999;background:#00000080;position:fixed;inset:0}.nav-header{justify-content:space-between;align-items:center;display:flex}.nav-title{color:#e5dfa3;font-size:var(--font-size-lg);font-weight:700}.nav-close{color:var(--color-text-primary);font-size:var(--font-size-lg);padding:var(--spacing-xs);background:0 0}.nav-section{gap:var(--spacing-xs);flex-direction:column;display:flex}.nav-section-label{color:#c09554;font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--spacing-xs)}.nav-link{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-md);transition:background-color .2s;display:block}.nav-link:hover{background-color:#ffffff1a}.nav-link.active{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-weight:600}.nav-link.sub{font-size:var(--font-size-sm);color:#91bf9f}.nav-link.sub.active{color:var(--color-text-primary)}.nav-footer{padding-top:var(--spacing-md);gap:var(--spacing-xs);border-top:1px solid #ffffff1a;flex-direction:column;margin-top:auto;display:flex}.nav-user{font-size:var(--font-size-sm);color:#91bf9f;padding:0 var(--spacing-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.nav-logout{color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;text-align:left;background:0 0;border:1px solid #ffffff26;transition:border-color .15s,color .15s}.nav-logout:hover{color:#f87171;border-color:#f87171}@media (width>=768px){.sidebar{position:fixed;left:0}.nav-overlay,.nav-close{display:none}}.layout{min-height:100vh;display:flex}.layout-main{flex-direction:column;flex:1;min-height:100vh;display:flex}.layout-header{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);z-index:100;display:flex;position:sticky;top:0}.menu-btn{color:#e5dfa3;font-size:var(--font-size-xl);padding:var(--spacing-xs) var(--spacing-sm);background:0 0}.home-btn{color:#c09554;font-weight:600;font-size:var(--font-size-md);background:0 0}.quick-actions{gap:var(--spacing-sm);margin-left:auto;display:flex}.quick-actions button{font-weight:600;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);cursor:pointer;border:none;border-radius:7px;transition:opacity .15s;background-color:var(--color-accent)!important;color:var(--color-bg-secondary)!important}.quick-actions button:hover{opacity:.85}.layout-content{padding:var(--spacing-xl);flex:1}@media (width>=768px){.layout-main{margin-left:280px}.menu-btn{display:none}}@media (width<=600px){.quick-actions{display:none}}@media (width<=640px){.layout-content{padding:1rem}}.dashboard{gap:var(--spacing-xl);flex-direction:column;display:flex}.stats-bar{gap:var(--spacing-md);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-xs);box-shadow:var(--shadow);flex-direction:column;display:flex}.stat-label{font-size:var(--font-size-sm);color:#e5dfa3;text-transform:uppercase;letter-spacing:.05em}.stat-value{font-size:var(--font-size-xxl);color:#e5dfa3;font-weight:700}.stat-value.alerts{font-size:var(--font-size-xl);color:#c09554}.dashboard-grid{gap:var(--spacing-lg);grid-template-columns:2fr 1fr;display:grid}.panel{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow)}.panel-title{font-size:var(--font-size-lg);color:#e5dfa3;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.panel-empty{color:#91bf9f;font-size:var(--font-size-sm);font-style:italic}.customer-log{width:100%}.log-summary{gap:var(--spacing-xl);display:flex}.log-item{gap:var(--spacing-xs);flex-direction:column;display:flex}.log-label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em}.log-count{font-size:var(--font-size-xxl);color:#e5dfa3;font-weight:700}.job-list{flex-direction:column;gap:0;display:flex}.job-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);border-bottom:1px solid #ffffff0f;transition:background .12s;display:flex}.job-row:last-child{border-bottom:none}.job-row:hover{background:#ffffff0d}.job-row-left{align-items:center;gap:var(--spacing-md);min-width:0;display:flex}.job-code{font-size:var(--font-size-sm);color:var(--color-accent);white-space:nowrap;font-weight:700}.job-customer{font-size:var(--font-size-sm);color:#e5dfa3;white-space:nowrap}.job-instrument{font-size:var(--font-size-sm);color:#91bf9f;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.job-row-right{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.job-stage-pill{color:var(--color-accent);white-space:nowrap;background:#c0955426;border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:600}.job-delivery{font-size:var(--font-size-sm);color:#91bf9f;white-space:nowrap}.job-delivery.overdue{color:#f87171;font-weight:600}.job-days-open{color:#60846a;text-align:right;min-width:2.5rem;font-size:.75rem}.alert-item{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm);cursor:pointer}.alert-warn{color:#f87171;background:#b42d1c26;border-left:3px solid #f87171}.alert-info{color:var(--color-accent);border-left:3px solid var(--color-accent);background:#c095541f}.comm-list{flex-direction:column;gap:0;display:flex}.comm-row{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-xs);cursor:pointer;border-radius:var(--radius-sm);font-size:var(--font-size-sm);border-bottom:1px solid #ffffff0f;grid-template-columns:1.5rem 6rem 5rem 1fr 4rem;transition:background .12s;display:grid}.comm-row:last-child{border-bottom:none}.comm-row:hover{background:#ffffff0d}.comm-icon{text-align:center}.comm-wo{color:var(--color-accent);font-weight:700}.comm-method{color:#91bf9f}.comm-notes{color:#e5dfa3;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.comm-time{color:#60846a;text-align:right;font-size:.75rem}@media (width<=768px){.stats-bar{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.log-summary{gap:var(--spacing-md);flex-wrap:wrap}}.work-orders-page{gap:var(--spacing-lg);flex-direction:column;display:flex}.page-header{justify-content:space-between;align-items:center;display:flex}.page-header h1{font-size:var(--font-size-xxl);color:#0a2e2e}.btn-primary{background-color:var(--color-bg-secondary);color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:600}.filter-bar{align-items:center;gap:var(--spacing-md);color:#0a2e2e;display:flex}.filter-bar select{background-color:var(--color-bg-secondary);color:#e5dfa3;width:auto;padding:var(--spacing-xs) var(--spacing-sm);border:none}.loading{color:#0a2e2e;font-style:italic}.empty-state{align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl);color:#0a2e2e;flex-direction:column;display:flex}.wo-list{gap:var(--spacing-md);flex-direction:column;display:flex}.wo-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-lg);cursor:pointer;box-shadow:var(--shadow);transition:opacity .2s;display:flex}.wo-card:hover{opacity:.85}.wo-code{color:#c09554;font-weight:700;font-size:var(--font-size-lg);min-width:140px}.wo-details{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.wo-customer{color:#e5dfa3;font-weight:600}.wo-instrument{color:#91bf9f;font-size:var(--font-size-sm)}@media (width<=600px){.wo-card{flex-wrap:wrap}}.wo-detail-loading{color:#0a2e2e;padding:var(--spacing-xl);font-style:italic}.wo-detail{gap:var(--spacing-xl);flex-direction:column;display:flex}.wo-detail-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.wo-detail-header>div:first-child{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.wo-detail-header h1{font-size:var(--font-size-xxl);color:#0a2e2e}.btn-back{color:#0a2e2e;padding:var(--spacing-xs) 0;background:0 0;font-weight:600}.wo-save-status{align-items:center;gap:var(--spacing-md);color:#0a2e2e;font-size:var(--font-size-sm);font-style:italic;display:flex}.btn-save{background-color:var(--color-bg-secondary);color:#e5dfa3;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md)}.wo-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.form-section{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-md);box-shadow:var(--shadow);flex-direction:column;display:flex}.form-section h2{font-size:var(--font-size-lg);color:#e5dfa3;border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm)}.section-header-with-control{border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-end;gap:1rem;display:flex}.section-header-with-control h2{border-bottom:none;flex:1;padding-bottom:0}.instrument-category-field{min-width:200px}.form-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.form-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-field label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em}.form-field.full-width{grid-column:1/-1}.btn-toggle-address{color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;text-align:left;margin-top:var(--spacing-xs);background:0 0;border:none;padding:0}.btn-toggle-address:hover{color:#e5dfa3}.address-fields{gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#0000001a;flex-direction:column;display:flex}.address-grid{grid-template-columns:2fr 1fr 1fr}.form-check{align-items:center;gap:var(--spacing-sm);color:#e5dfa3;font-size:var(--font-size-sm);display:flex}.form-check input[type=checkbox]{width:auto;accent-color:var(--color-accent)}.wo-actions{gap:var(--spacing-md);padding-bottom:var(--spacing-xl);justify-content:flex-end;display:flex}.btn-save-large{background-color:var(--color-bg-secondary);color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-xl);font-weight:600}.btn-send-approval{background-color:var(--color-bg-secondary);color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-xl);border:1px solid #c09554;font-weight:600}.btn-finalize{color:#0a2e2e;padding:var(--spacing-sm) var(--spacing-xl);font-weight:700;font-size:var(--font-size-md);background-color:#c09554}.wo-status{font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);text-transform:capitalize;font-weight:600}.wo-status.draft{color:#e5dfa3;background-color:#378673}.wo-status.approved{color:#e5dfa3;background-color:#2a6b4a}.wo-status.sent_for_approval{color:#0a2e2e;background-color:#c09554}.wo-status.declined{color:#e5dfa3;background-color:#b42d1c}.service-row{gap:var(--spacing-md);grid-template-columns:1fr 120px 120px auto;align-items:end;display:grid}.service-price,.service-discount{min-width:0}.btn-add-service{border:1px dashed var(--color-border);color:#91bf9f;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0;align-self:flex-start}.btn-add-service:hover{color:#e5dfa3;border-color:#91bf9f}.btn-remove-service{color:#b42d1c;font-size:var(--font-size-md);padding:var(--spacing-xs);cursor:pointer;background:0 0;border:none;line-height:1}.services-total{justify-content:space-between;align-items:baseline;gap:var(--spacing-sm);border-top:1px solid var(--color-border);padding-top:var(--spacing-md);color:#e5dfa3;font-weight:600;font-size:var(--font-size-md);flex-wrap:wrap;display:flex}.services-disclaimer{width:100%;font-size:var(--font-size-sm);color:#91bf9f;margin:0;font-style:italic;font-weight:400}.section-note{color:#91bf9f;font-size:var(--font-size-sm);margin:0}.photos-grid{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.photo-card{gap:var(--spacing-xs);flex-direction:column;width:160px;display:flex}.photo-thumb-wrap{position:relative}.photo-thumb{object-fit:cover;border-radius:var(--radius-sm);width:160px;height:120px;display:block}.btn-delete-photo{color:#e5dfa3;cursor:pointer;background:#0a2e2ebf;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;line-height:1;display:flex;position:absolute;top:4px;right:4px}.photo-caption{font-size:var(--font-size-sm);padding:var(--spacing-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-card);color:#072323;box-sizing:border-box;width:100%}.photo-upload-tile{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;width:160px;height:120px;font-size:var(--font-size-sm);cursor:pointer;justify-content:center;align-items:center;display:flex}.photo-upload-tile:hover{color:#e5dfa3;border-color:#91bf9f}.photo-limit-note{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;font-size:var(--font-size-sm);padding:var(--spacing-sm);text-align:center;justify-content:center;align-items:center;font-style:italic;display:flex}.signature-wrap{gap:var(--spacing-sm);flex-direction:column;align-items:flex-start;display:flex}.signature-canvas{background:var(--color-card);border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:crosshair;touch-action:none;max-width:100%}.btn-clear-sig{border:1px solid var(--color-border);color:#91bf9f;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;background:0 0}.btn-clear-sig:hover{color:#e5dfa3;border-color:#91bf9f}.sig-name-field{max-width:320px}.sig-optional-note{font-size:var(--font-size-sm);color:#91bf9f;margin:0;font-style:italic}.sig-display{gap:var(--spacing-sm);flex-direction:column;display:flex}.sig-display-img{border-radius:var(--radius-sm);background:var(--color-card);border:1px solid var(--color-border);max-width:400px}.sig-display-name{color:#e5dfa3;font-size:var(--font-size-sm);margin:0}.modal{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xl);gap:var(--spacing-lg);flex-direction:column;width:90%;max-width:480px;display:flex}.modal h2{color:#e5dfa3;font-size:var(--font-size-xl);margin:0}.modal-option{gap:var(--spacing-sm);flex-direction:column;display:flex}.modal-option h3{color:#e5dfa3;font-size:var(--font-size-md);margin:0}.modal-option p{color:#91bf9f;font-size:var(--font-size-sm);margin:0}.modal-divider{text-align:center;color:#91bf9f;font-size:var(--font-size-sm)}.btn-modal-confirm{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;background-color:#378673;border:none;font-weight:600}.btn-modal-confirm:disabled{opacity:.6;cursor:not-allowed}.btn-modal-send{color:#0a2e2e;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;background-color:#c09554;border:none;font-weight:600}.btn-modal-send:disabled{opacity:.6;cursor:not-allowed}.modal-warning{color:#b42d1c;font-size:var(--font-size-sm);margin:0}.modal-body{color:#91bf9f;font-size:var(--font-size-sm);margin:0}.modal-buttons{justify-content:flex-end;gap:var(--spacing-md);display:flex}.btn-modal-cancel{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0}@media (width<=600px){.form-grid{grid-template-columns:1fr}.wo-actions{flex-direction:column}.service-row{grid-template-columns:1fr 1fr}.service-row .form-field:first-child{grid-column:1/-1}}.jobs-page{gap:var(--spacing-lg);flex-direction:column;display:flex}.jobs-page .page-header{justify-content:space-between;align-items:center;display:flex}.jobs-page .page-header h1{font-size:var(--font-size-xxl);color:#0a2e2e}.btn-delivered-toggle{border:1px solid var(--color-border);color:#0a2e2e;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0}.jobs-page .filter-bar{align-items:center;gap:var(--spacing-md);color:#0a2e2e;flex-wrap:wrap;display:flex}.jobs-page .filter-bar select{background-color:var(--color-bg-secondary);color:#e5dfa3;width:auto;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);border:none}.stage-filters{gap:var(--spacing-xs);flex-wrap:wrap;display:flex}.stage-filter-btn{border:1px solid var(--color-border);color:#0a2e2e;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0}.stage-filter-btn.active{background-color:var(--color-bg-secondary);color:#e5dfa3;border-color:var(--color-bg-secondary)}.jobs-list{gap:var(--spacing-md);flex-direction:column;display:flex}.job-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-md);cursor:pointer;box-shadow:var(--shadow);flex-direction:column;transition:opacity .15s;display:flex}.job-card:hover{opacity:.9}.job-card-top{align-items:flex-start;gap:var(--spacing-lg);display:flex}.job-code{color:#c09554;font-weight:700;font-size:var(--font-size-lg);min-width:140px}.job-meta{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.job-customer{color:#e5dfa3;font-weight:600}.job-customer-link{cursor:pointer;text-underline-offset:2px;text-decoration:underline}.job-customer-link:hover{color:var(--color-accent)}.job-instrument{color:#91bf9f;font-size:var(--font-size-sm)}.job-services-summary{align-items:baseline;gap:var(--spacing-xs);flex-wrap:wrap;margin-top:2px;display:flex}.job-services-label{color:#91bf9f;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-size:10px}.job-services-chips{flex-wrap:wrap;gap:4px;display:flex}.job-service-chip{color:#c09554;background-color:#0f3333;border:1px solid #2a6060;border-radius:10px;padding:1px 7px;font-size:11px}.job-dates{align-items:flex-end;gap:var(--spacing-xs);text-align:right;flex-direction:column;display:flex}.job-date-item{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.job-date-label{color:#91bf9f;text-transform:uppercase;letter-spacing:.05em;font-size:10px}.job-date-value{color:#e5dfa3;font-size:var(--font-size-sm)}.job-date-value.overdue{color:#b42d1c;font-weight:600}.stage-tracker{align-items:center;gap:0;display:flex;position:relative}.stage-step-wrap{flex:1;align-items:center;display:flex}.stage-step-wrap:last-child{flex:0}.stage-dot{z-index:1;border-radius:50%;flex-shrink:0;width:12px;height:12px}.stage-dot.done{background-color:#378673}.stage-dot.active{background-color:#c09554;box-shadow:0 0 0 3px #c095544d}.stage-dot.pending{background-color:#1a4a4a;border:1px solid #2a6060}.stage-line{background-color:#1a4a4a;flex:1;height:2px}.stage-line.done{background-color:#378673}.stage-label{margin-left:var(--spacing-md);color:#c09554;font-size:var(--font-size-sm);white-space:nowrap;font-weight:600}.job-card-actions{align-items:center;gap:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid #ffffff0f;display:flex}.stage-select{color:#91bf9f;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background-color:#0f3333;border:1px solid #2a6060;width:auto}.btn-advance{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background-color:#378673;border:none;font-weight:600}.btn-advance:disabled{opacity:.5;cursor:not-allowed}.btn-view-job{color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #2a6060;margin-left:auto}.btn-view-job:hover{color:#e5dfa3;border-color:#91bf9f}.jobs-page .loading{color:#0a2e2e;font-style:italic}.jobs-page .empty-state{align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl);color:#0a2e2e;flex-direction:column;display:flex}@media (width<=600px){.job-card-top{flex-wrap:wrap}.job-dates{text-align:left;align-items:flex-start}.stage-filters{gap:var(--spacing-xs)}.stage-label{display:none}.job-card-actions{flex-wrap:wrap}}.portal-loading{padding:var(--spacing-xl);color:#91bf9f;text-align:center}.portal-page{flex-direction:column;gap:0;min-height:100%;display:flex}.portal-header{background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) var(--spacing-lg);align-items:flex-start;gap:var(--spacing-lg);display:flex}.btn-back-jobs{color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding-top:2px}.btn-back-jobs:hover{color:#e5dfa3}.portal-header-main{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.portal-title-row{align-items:center;gap:var(--spacing-md);display:flex}.portal-wo-code{color:#e5dfa3;font-size:var(--font-size-xl);margin:0}.portal-stage-badge{background-color:var(--color-accent);color:#0a2e2e;font-size:var(--font-size-sm);padding:2px var(--spacing-sm);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.portal-header-details{align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:#91bf9f;flex-wrap:wrap;display:flex}.portal-sep{opacity:.4}.portal-customer{color:#e5dfa3;font-weight:600}.portal-customer-link{cursor:pointer;text-underline-offset:2px;text-decoration:underline}.portal-customer-link:hover{color:var(--color-accent)}.portal-days,.portal-delivery{color:#91bf9f}.portal-delivery.overdue{color:var(--color-alert);font-weight:600}.portal-total-row{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.portal-total{color:#e5dfa3;font-size:var(--font-size-sm)}.portal-disclaimer{color:#91bf9f;font-size:var(--font-size-sm);font-style:italic}.portal-new-services-badge{border:1px solid var(--color-alert);border-radius:var(--radius-sm);color:var(--color-alert);font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-sm);background-color:#b42d1c26;width:fit-content}.btn-view-wo{border:1px solid var(--color-border);color:#91bf9f;font-size:var(--font-size-sm);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;background:0 0;align-self:flex-start}.btn-view-wo:hover{color:#e5dfa3;border-color:#e5dfa3}.portal-stage-wrap{background-color:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:var(--spacing-md) var(--spacing-lg);gap:var(--spacing-sm);flex-direction:column;display:flex}.portal-stage-tracker{padding-bottom:var(--spacing-xs);align-items:flex-start;display:flex;overflow-x:auto}.portal-stage-step{flex-direction:column;flex-shrink:0;align-items:center;display:flex;position:relative}.portal-dot{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:11px;font-weight:700;display:flex}.portal-dot.done{color:#e5dfa3;background-color:#378673}.portal-dot.active{background-color:var(--color-accent);color:#0a2e2e;box-shadow:0 0 0 3px #c0955459}.portal-dot.pending{color:#91bf9f;border:1px solid var(--color-border);background-color:#91bf9f33}.portal-dot-label{color:#91bf9f;text-align:center;max-width:60px;margin-top:4px;font-size:10px;line-height:1.2}.portal-stage-line{background-color:#91bf9f33;width:48px;height:2px;position:absolute;top:14px;left:28px}.portal-stage-line.done{background-color:#378673}.stage-controls-row{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.stage-manual{align-items:center;gap:var(--spacing-sm);display:flex}.stage-manual-label{color:#91bf9f;font-size:var(--font-size-sm);white-space:nowrap}.stage-manual-select{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#e5dfa3;font-size:var(--font-size-sm);padding:3px var(--spacing-sm);background-color:#0003}.btn-next-stage{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background-color:#378673;border:none;font-weight:600}.btn-next-stage:hover{background-color:#2a6b58}.stage-suggestion{align-items:center;gap:var(--spacing-md);border:1px solid var(--color-accent);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);color:#e5dfa3;background-color:#c095541f;display:flex}.btn-confirm-stage{background-color:var(--color-accent);color:#0a2e2e;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-weight:700;font-size:var(--font-size-sm);cursor:pointer;border:none}.btn-dismiss-suggestion{color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none}.portal-body{flex:1;gap:0;display:flex}.portal-main{flex-direction:column;flex:1;min-width:0;display:flex}.portal-tabs{border-bottom:1px solid var(--color-border);background-color:var(--color-bg-secondary);padding:0 var(--spacing-lg);gap:0;display:flex;overflow-x:auto}.portal-tab{color:#91bf9f;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;transition:color .15s;position:relative}.portal-tab:hover{color:#e5dfa3}.portal-tab.active{color:#e5dfa3;border-bottom-color:var(--color-accent)}.tab-badge{background-color:var(--color-alert);color:#fff;vertical-align:middle;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;margin-left:4px;font-size:9px;font-weight:700;display:inline-flex}.portal-tab-content{background-color:var(--color-bg-secondary);flex:1;overflow-y:auto}.tab-content{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.tab-empty{color:#91bf9f;font-size:var(--font-size-sm);font-style:italic}.tab-error{color:var(--color-alert);font-size:var(--font-size-sm);margin:0}.log-list,.task-list,.parts-list,.note-list,.comm-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.log-row{align-items:center;gap:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background-color:#0000001f;display:flex}.log-date{color:#e5dfa3}.log-arrow{color:#91bf9f}.log-duration{color:var(--color-accent);margin-left:auto;font-weight:600}.log-tech{color:#91bf9f}.btn-log-delete{color:#91bf9f;cursor:pointer;font-size:var(--font-size-sm);padding:0 var(--spacing-xs);background:0 0;border:none;line-height:1}.btn-log-delete:hover{color:var(--color-alert)}.time-controls{gap:var(--spacing-sm);flex-direction:column;display:flex}.time-total{color:#e5dfa3;font-size:var(--font-size-md)}.timer-live{color:var(--color-accent);font-style:italic}.timer-active-row{align-items:center;gap:var(--spacing-md);display:flex}.timer-running{color:var(--color-accent);font-size:var(--font-size-sm);font-weight:600}.btn-start-timer{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;background-color:#378673;border:none;width:fit-content;font-weight:600}.btn-stop-timer{background-color:var(--color-alert);color:#fff;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;border:none;font-weight:600}.timer-auto-stop-note{color:var(--color-text-secondary);margin:.4rem 0 0;font-size:.78rem}.timer-still-there-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.timer-still-there-modal{background:var(--color-card);border:1px solid var(--color-border);text-align:center;border-radius:10px;flex-direction:column;gap:1rem;max-width:380px;padding:2rem 2.5rem;display:flex}.timer-still-there-modal h3{margin:0;font-size:1.1rem}.timer-still-there-modal p{color:var(--color-text-secondary);margin:0;font-size:.9rem}.still-there-actions{justify-content:center;gap:.75rem;display:flex}.btn-keep-timer{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-primary);background:0 0;border-radius:6px;padding:8px 18px;font-size:.9rem}.btn-keep-timer:hover{border-color:var(--color-accent);color:var(--color-accent)}.new-services-warning{border:1px solid var(--color-alert);border-radius:var(--radius-sm);color:var(--color-alert);font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);background-color:#b42d1c1f}.task-progress{align-items:center;gap:var(--spacing-md);display:flex}.task-progress-bar{background-color:#91bf9f33;border-radius:3px;flex:1;height:6px;overflow:hidden}.task-progress-fill{background-color:#378673;border-radius:3px;height:100%;transition:width .3s}.task-progress-label{color:#91bf9f;font-size:var(--font-size-sm);white-space:nowrap}.task-row{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background-color:#0000001a;display:flex}.task-row.completed .task-name{color:#91bf9f;text-decoration:line-through}.task-check{width:auto;accent-color:var(--color-accent);flex-shrink:0}.task-name{color:#e5dfa3;font-size:var(--font-size-sm);flex:1}.task-new-badge{background-color:var(--color-alert);color:#fff;border-radius:var(--radius-sm);text-transform:uppercase;padding:1px 5px;font-size:10px;font-weight:700}.add-row{gap:var(--spacing-sm);display:flex}.add-input{flex:1}.btn-add-item{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;background-color:#378673;border:none;font-weight:600}.btn-add-item:disabled{opacity:.5;cursor:not-allowed}.part-row{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background-color:#0000001f;flex-wrap:wrap;display:flex}.part-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.part-name{color:#e5dfa3;font-size:var(--font-size-sm);font-weight:600}.part-supplier,.part-notes{color:#91bf9f;font-size:var(--font-size-sm)}.part-cost{color:var(--color-accent);font-size:var(--font-size-sm)}.part-actions{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.part-status-select{font-size:var(--font-size-sm);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);background-color:var(--color-bg-secondary);border:1px solid var(--color-border);color:#e5dfa3}.part-status-select.status-on_hand{border-color:#91bf9f}.part-status-select.status-ordered{border-color:var(--color-accent)}.part-status-select.status-received{border-color:#378673}.part-status-select.status-installed{color:#378673;border-color:#2a6b58}.btn-edit-part{border:1px solid var(--color-border);color:#91bf9f;font-size:var(--font-size-sm);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0}.btn-edit-part:hover{color:#e5dfa3}.part-form{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-md);gap:var(--spacing-md);background-color:#00000026;flex-direction:column;display:flex}.form-mini-title{color:var(--color-accent);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em;margin:0}.part-form-grid{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.pf-field{flex-direction:column;gap:4px;display:flex}.pf-field.full{grid-column:1/-1}.pf-field label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.04em}.form-actions-row{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.btn-cancel-sm{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0}.btn-save-item{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);background-color:#378673;border:none}.btn-save-item:disabled{opacity:.5;cursor:not-allowed}.btn-add-entry{border:1px dashed var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0;width:fit-content}.btn-add-entry:hover{color:#e5dfa3;border-color:#e5dfa3}.note-compose{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-md);gap:var(--spacing-sm);background-color:#0000001f;flex-direction:column;display:flex}.note-textarea{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-sm);font-size:var(--font-size-sm);resize:vertical;box-sizing:border-box;width:100%}.note-compose-footer{align-items:flex-end;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.reminder-field{flex-direction:column;flex:1;gap:4px;display:flex}.reminder-field label{font-size:var(--font-size-sm);color:#91bf9f}.note-compose-actions{gap:var(--spacing-sm);margin-left:auto;display:flex}.note-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-md);background-color:#0000001f}.note-content{color:#e5dfa3;font-size:var(--font-size-sm);margin:0 0 var(--spacing-sm);white-space:pre-wrap}.note-footer{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.note-date{color:#91bf9f;font-size:var(--font-size-sm)}.note-reminder{font-size:var(--font-size-sm);color:var(--color-accent)}.note-reminder.overdue{color:var(--color-alert)}.btn-edit-note{border:1px solid var(--color-border);color:#91bf9f;font-size:var(--font-size-sm);padding:1px var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;margin-left:auto}.photos-grid-portal{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(160px,1fr));display:grid}.portal-photo-card{gap:var(--spacing-xs);flex-direction:column;display:flex}.portal-photo-thumb-wrap{aspect-ratio:4/3;border-radius:var(--radius-sm);background-color:#0003;position:relative;overflow:hidden}.portal-photo-thumb{object-fit:cover;width:100%;height:100%}.portal-photo-overlay{justify-content:flex-end;align-items:flex-start;gap:var(--spacing-xs);padding:var(--spacing-xs);opacity:0;background-color:#00000080;transition:opacity .15s;display:flex;position:absolute;inset:0}.portal-photo-thumb-wrap:hover .portal-photo-overlay{opacity:1}.btn-photo-protect,.btn-photo-share,.btn-photo-delete{border-radius:var(--radius-sm);color:#fff;cursor:pointer;background-color:#0009;border:none;padding:2px 5px;font-size:14px;line-height:1.4}.btn-photo-protect.protected{color:var(--color-accent)}.btn-photo-delete:hover{background-color:var(--color-alert)}.portal-photo-caption{border:none;border-bottom:1px solid var(--color-border);color:#e5dfa3;font-size:var(--font-size-sm);background:0 0;width:100%;padding:2px 0}.portal-photo-caption::placeholder{color:#91bf9f}.photo-meta-row{align-items:center;gap:var(--spacing-sm);display:flex}.photo-date{color:#91bf9f;font-size:11px}.photo-protected-label{color:var(--color-accent);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.portal-photo-add{aspect-ratio:4/3;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex}.portal-photo-add:hover{color:#e5dfa3;border-color:#e5dfa3}.comm-form{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--spacing-md);gap:var(--spacing-md);background-color:#0000001f;flex-direction:column;display:flex}.comm-method-row{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.comm-method-btn{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0;transition:all .15s}.comm-method-btn.active{color:#e5dfa3;background-color:#378673;border-color:#378673;font-weight:600}.comm-form-grid{gap:var(--spacing-sm);grid-template-columns:1fr 1fr;display:grid}.comm-notes-area{background-color:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-sm);font-size:var(--font-size-sm);resize:vertical;box-sizing:border-box;width:100%}.field-hint{color:#91bf9f;margin:0;font-size:11px;font-style:italic}.comm-row{align-items:flex-start;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background-color:#0000001f;display:flex}.comm-icon{flex-shrink:0;padding-top:2px;font-size:1.25rem}.comm-body{flex-direction:column;flex:1;gap:4px;display:flex}.comm-header-row{align-items:center;gap:var(--spacing-md);display:flex}.comm-method-label{color:#e5dfa3;font-size:var(--font-size-sm);font-weight:600}.comm-date{color:#91bf9f;font-size:var(--font-size-sm)}.comm-notes{color:#e5dfa3;font-size:var(--font-size-sm);margin:0}.comm-followup{font-size:var(--font-size-sm);color:var(--color-accent)}.comm-followup.overdue{color:var(--color-alert)}.comm-actions{gap:var(--spacing-xs);flex-shrink:0;align-items:flex-start;display:flex}@media (width<=640px){.portal-header{gap:var(--spacing-sm);flex-direction:column}.part-form-grid,.comm-form-grid{grid-template-columns:1fr}.pf-field.full{grid-column:auto}.portal-stage-step{min-width:60px}.portal-stage-line{width:32px}}.inactive-banner{padding:var(--spacing-sm) var(--spacing-lg);color:#c09554;font-weight:600;font-size:var(--font-size-sm);justify-content:space-between;align-items:center;gap:var(--spacing-md);background-color:#1a1a0a;border-bottom:2px solid #c09554;display:flex}.btn-reactivate{color:#c09554;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #c09554}.btn-reactivate:hover{background-color:#c0955426}.btn-reactivate:disabled{opacity:.5;cursor:not-allowed}.inactive-prompt-overlay{z-index:200;background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.inactive-prompt{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xl);gap:var(--spacing-md);flex-direction:column;width:90%;max-width:420px;display:flex;box-shadow:0 8px 32px #00000080}.inactive-prompt h3{color:#e5dfa3;font-size:var(--font-size-lg);margin:0}.inactive-prompt p{color:#91bf9f;font-size:var(--font-size-sm);margin:0;line-height:1.5}.inactive-prompt-actions{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.portal-header-actions{gap:var(--spacing-xs);flex-direction:column;flex-shrink:0;align-items:flex-end;display:flex}.btn-copy-portal{border:1px solid var(--color-accent);color:var(--color-accent);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;background:0 0;transition:background .15s}.btn-copy-portal:hover{background:#c095541f}.btn-mark-inactive{color:#888;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #555}.btn-mark-inactive:hover{color:#c09554;border-color:#c09554}.btn-mark-inactive:disabled{opacity:.4;cursor:not-allowed}.portal-inactive-badge{color:#c09554;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.06em;background-color:#3a2800;border:1px solid #c09554;padding:2px 8px;font-size:11px;font-weight:600}.portal-services-list{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.portal-service-row{border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);justify-content:space-between;align-items:center;gap:var(--spacing-md);background-color:#0f3333;display:flex}.portal-service-info{flex-direction:column;gap:2px;display:flex}.portal-service-name{color:#e5dfa3;font-weight:600;font-size:var(--font-size-md)}.portal-service-discount{color:#91bf9f;font-size:var(--font-size-xs)}.portal-service-right{align-items:center;gap:var(--spacing-md);flex-shrink:0;display:flex}.portal-service-price{color:#c09554;font-weight:600;font-size:var(--font-size-md)}.portal-services-total{align-items:baseline;gap:var(--spacing-md);padding:var(--spacing-md) 0;margin-bottom:var(--spacing-md);color:#e5dfa3;border-top:1px solid #ffffff0f;flex-wrap:wrap;font-weight:600;display:flex}.portal-total-amount{color:#c09554;font-size:var(--font-size-lg)}.portal-total-disclaimer{color:#91bf9f;width:100%;font-size:var(--font-size-xs);margin:0;font-style:italic;font-weight:400}.portal-add-service-form{gap:var(--spacing-sm);flex-direction:column;display:flex}.portal-service-select-label{color:#91bf9f;font-size:var(--font-size-sm)}.portal-add-service-row{gap:var(--spacing-sm);align-items:center;display:flex}.portal-service-select{border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);background-color:#0f3333;border:1px solid #2a6060;flex:1}.portal-service-select:focus{border-color:var(--color-accent);outline:none}.settings-page{padding:var(--spacing-lg);max-width:900px;margin:0 auto}.settings-loading{padding:var(--spacing-xl);color:#91bf9f;text-align:center}.settings-title{color:#e5dfa3;font-size:var(--font-size-xl);margin:0 0 var(--spacing-lg)}.settings-tabs{gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);flex-wrap:wrap;display:flex}.settings-tab{border-radius:var(--radius-sm) var(--radius-sm) 0 0;color:#c4e0cc;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #0000;transition:color .15s,border-color .15s}.settings-tab:hover{color:#e5dfa3}.settings-tab.active{color:#e5dfa3;border-color:var(--color-border);border-bottom-color:var(--color-bg-primary);background-color:var(--color-bg-secondary)}.settings-panel{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xl);box-shadow:var(--shadow)}.settings-section{gap:var(--spacing-lg);flex-direction:column;display:flex}.section-title{color:#e5dfa3;font-size:var(--font-size-lg);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);margin:0}.section-hint{color:#91bf9f;font-size:var(--font-size-sm);margin:0;font-style:italic}.settings-subsection{gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#00000026;flex-direction:column;display:flex}.subsection-title{color:var(--color-accent);font-size:var(--font-size-md);margin:0}.subsection-title-row{align-items:center;gap:.5rem;display:flex}.btn-show-pin{cursor:pointer;opacity:.7;background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.btn-show-pin:hover{opacity:1}.settings-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.settings-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.settings-field.full-width{grid-column:1/-1}.settings-field label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em}.field-saved{font-size:var(--font-size-sm);color:#378673;margin:0}.settings-logo-row{align-items:center;gap:var(--spacing-md);flex-wrap:wrap;display:flex}.logo-preview-wrap{flex-shrink:0}.settings-logo-img{object-fit:contain;border-radius:var(--radius-sm);background:var(--color-card);max-width:200px;height:64px;padding:var(--spacing-xs)}.settings-logo-placeholder{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;width:120px;height:64px;font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.btn-upload{color:#91bf9f;border:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap;background-color:#0f3333}.pw-wrap{align-items:center;display:flex;position:relative}.pw-wrap input{flex:1;padding-right:2.5rem}.btn-show-pw{right:var(--spacing-sm);cursor:pointer;color:#91bf9f;background:0 0;border:none;padding:0;font-size:1rem;position:absolute}.settings-savebar{align-items:center;gap:var(--spacing-md);border-top:1px solid var(--color-border);padding-top:var(--spacing-md);justify-content:flex-end;display:flex}.savebar-error{color:var(--color-alert);font-size:var(--font-size-sm);margin-right:auto}.savebar-saved{color:#378673;font-size:var(--font-size-sm);margin-right:auto;font-weight:600}.forgot-pin-section{margin-top:.5rem}.btn-forgot-pin{color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;text-decoration:underline}.btn-forgot-pin:hover{color:var(--color-accent)}.forgot-pin-form{gap:var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#00000026;flex-direction:column;margin-top:.75rem;padding:1rem;display:flex}.forgot-pin-actions{justify-content:flex-end;display:flex}.settings-error{color:#e07070;font-size:var(--font-size-sm);margin:0}.btn-settings-save{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;font-weight:600;font-size:var(--font-size-sm);background-color:#378673;border:none}.btn-settings-save:disabled{opacity:.5;cursor:not-allowed}.team-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.team-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#00000026;transition:opacity .2s;display:flex}.team-row-inactive{opacity:.5}.team-info{flex-direction:column;gap:2px;min-width:0;display:flex}.team-name{color:#e5dfa3;font-weight:600;font-size:var(--font-size-sm);align-items:center;gap:var(--spacing-xs);display:flex}.team-badge-you{color:var(--color-accent);border:1px solid var(--color-accent);letter-spacing:.04em;text-transform:uppercase;background:#c0955433;border-radius:4px;padding:1px 5px;font-size:.65rem;font-weight:700}.team-email{color:#91bf9f;font-size:var(--font-size-sm)}.team-meta{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.team-role-badge{text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;border-radius:10px;padding:2px 8px;font-size:.7rem;font-weight:700}.badge-admin{color:#5db89f;border:1px solid var(--color-bg-primary);background:#5db89f26}.badge-tech{color:var(--color-accent);background:#c095541f;border:1px solid #c0955466}.btn-team-toggle{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;padding:3px 10px;font-size:.75rem;font-weight:600;transition:background .15s,color .15s}.btn-team-toggle.active{color:#5db89f;background:#5db89f26;border:1px solid #5db89f}.btn-team-toggle.active:hover{color:#f87171;background:#f8717126;border-color:#f87171}.btn-team-toggle.inactive{color:#f87171;background:#f871711f;border:1px solid #f87171}.btn-team-toggle.inactive:hover{color:#5db89f;background:#5db89f26;border-color:#5db89f}.team-access-locked{color:#60846a;padding:3px 10px;font-size:.75rem}.btn-team-delete{color:#60846a;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:3px 6px;font-size:.8rem;line-height:1;transition:color .15s}.btn-team-delete:hover{color:#f87171}.team-delete-confirm{align-items:center;gap:6px;display:flex}.team-delete-warn{color:#f87171;white-space:nowrap;font-size:.72rem}.btn-team-delete-yes{border-radius:var(--radius-sm);cursor:pointer;color:#f87171;background:#f8717126;border:1px solid #f87171;padding:2px 8px;font-size:.72rem;font-weight:700;transition:background .15s}.btn-team-delete-yes:hover{background:#f871714d}.btn-team-delete-no{border-radius:var(--radius-sm);cursor:pointer;color:#91bf9f;background:0 0;border:1px solid #ffffff26;padding:2px 8px;font-size:.72rem;transition:border-color .15s}.btn-team-delete-no:hover{border-color:#91bf9f}.btn-add-tech{border:1px dashed var(--color-border);color:#91bf9f;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0;width:fit-content;transition:color .15s,border-color .15s}.btn-add-tech:hover{color:#e5dfa3;border-color:#e5dfa3}.add-tech-form{margin-top:var(--spacing-sm)}.form-actions{gap:var(--spacing-md);justify-content:flex-end;display:flex}.btn-cancel{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0}.settings-toggles{gap:var(--spacing-md);flex-direction:column;display:flex}.retention-options{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.retention-option{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;font-size:var(--font-size-sm);cursor:pointer;transition:color .15s,border-color .15s,background-color .15s;display:flex}.retention-option input[type=radio]{display:none}.retention-option.active{color:#e5dfa3;background-color:#378673;border-color:#378673;font-weight:600}.retention-option:not(.active):hover{color:#e5dfa3;border-color:#e5dfa3}.slot-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.phase2-placeholder{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:#91bf9f}.phase2-icon{margin-bottom:var(--spacing-md);font-size:3rem}.phase2-placeholder h3{color:#e5dfa3;margin:0 0 var(--spacing-sm)}.phase2-placeholder p{font-size:var(--font-size-sm);margin:0}.contact-block{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid #ffffff0f}.contact-block:last-child{border-bottom:none;margin-bottom:0}.contact-detail{align-items:baseline;gap:var(--spacing-md);padding:var(--spacing-xs) 0;display:flex}.contact-label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:8rem}.contact-value{font-size:var(--font-size-sm);color:#e5dfa3}.contact-link{font-size:var(--font-size-sm);color:var(--color-accent);text-decoration:none}.contact-link:hover{text-decoration:underline}.contact-note{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:#f87171;font-style:italic}.contact-copyright{font-size:var(--font-size-sm);color:#e5dfa3;margin:0 0 var(--spacing-xs)}@media (width<=640px){.settings-grid,.slot-grid{grid-template-columns:1fr}.settings-field.full-width{grid-column:auto}.team-row{grid-template-columns:1fr}.settings-tabs{gap:2px}.settings-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem}}.services-page{gap:var(--spacing-lg);flex-direction:column;display:flex}.services-page .page-header{justify-content:space-between;align-items:center;display:flex}.services-page .page-header h1{font-size:var(--font-size-xxl);color:#0a2e2e}.services-subhead{color:#0a2e2e;font-size:var(--font-size-sm);margin:0;line-height:1.5}.services-loading{color:#0a2e2e;padding:var(--spacing-lg);font-style:italic}.service-new-form{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.service-new-form h3{color:#e5dfa3;font-size:var(--font-size-lg);margin:0}.svc-error{color:var(--color-alert);font-size:var(--font-size-sm);margin:0}.svc-form-grid{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.svc-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.svc-field.full{grid-column:1/-1}.svc-field label{color:#91bf9f;font-size:var(--font-size-sm)}.svc-field input,.svc-field textarea{border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);background-color:#0f3333;border:1px solid #2a6060}.svc-field input:focus,.svc-field textarea:focus{border-color:var(--color-accent);outline:none}.svc-form-actions{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.btn-save-svc{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background-color:#378673;border:none;font-weight:600}.btn-save-svc:disabled{opacity:.5;cursor:not-allowed}.btn-add-service{color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-lg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background-color:#378673;border:none;font-weight:600}.services-empty{color:#0a2e2e;text-align:center;padding:var(--spacing-xl)}.services-list{gap:var(--spacing-md);flex-direction:column;display:flex}.service-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);box-shadow:var(--shadow);overflow:hidden}.service-card-header{padding:var(--spacing-md) var(--spacing-lg);cursor:pointer;justify-content:space-between;align-items:center;gap:var(--spacing-md);-webkit-user-select:none;user-select:none;display:flex}.service-card-header:hover{background-color:#ffffff08}.service-card-title-group{align-items:center;gap:var(--spacing-sm);flex:1;min-width:0;display:flex}.service-chevron{color:#c09554;flex-shrink:0;font-size:14px}.service-card-info{flex-direction:column;gap:2px;min-width:0;display:flex}.service-name-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.service-name{color:#e5dfa3;font-weight:600;font-size:var(--font-size-md)}.svc-category-badge{color:var(--color-accent);white-space:nowrap;background:#c095542e;border:1px solid #c0955459;border-radius:20px;padding:.1rem .5rem;font-size:.68rem;font-weight:600}.service-desc{color:#91bf9f;font-size:var(--font-size-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.service-card-meta{align-items:center;gap:var(--spacing-md);flex-shrink:0;display:flex}.service-price{color:#c09554;font-weight:600;font-size:var(--font-size-md)}.service-item-count{color:#91bf9f;font-size:var(--font-size-sm)}.btn-edit-svc{color:#91bf9f;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #2a6060;padding:3px 10px}.btn-edit-svc:hover{color:#e5dfa3;border-color:#91bf9f}.btn-delete-svc{color:#666;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:3px 10px}.btn-delete-svc:hover{color:var(--color-alert);border-color:var(--color-alert)}.service-card-body{padding:var(--spacing-lg);gap:var(--spacing-lg);border-top:1px solid #ffffff0f;flex-direction:column;display:flex}.svc-inline-edit{gap:var(--spacing-md);padding-bottom:var(--spacing-lg);border-bottom:1px solid #ffffff0f;flex-direction:column;display:flex}.checklist-section{gap:var(--spacing-sm);flex-direction:column;display:flex}.checklist-title{color:#e5dfa3;font-size:var(--font-size-md);margin:0}.checklist-hint{color:#91bf9f;font-size:var(--font-size-xs);margin:0;line-height:1.4}.checklist-empty{color:#91bf9f;font-size:var(--font-size-sm);margin:var(--spacing-xs) 0;font-style:italic}.checklist-items{gap:var(--spacing-xs);flex-direction:column;display:flex}.checklist-item-row{align-items:center;gap:var(--spacing-sm);cursor:default;border-radius:var(--radius-sm);transition:opacity .15s;display:flex}.checklist-item-row.dragging{opacity:.4}.drag-handle{color:#2a6060;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:0 2px;font-size:16px}.drag-handle:active{cursor:grabbing}.checklist-num{color:#c09554;font-size:var(--font-size-sm);text-align:right;flex-shrink:0;min-width:20px}.checklist-item-input{border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);background:#0f3333;border:1px solid #0000;flex:1}.checklist-item-input:focus{border-color:#2a6060;outline:none}.checklist-item-input:hover{border-color:#2a6060}.btn-delete-item{color:#555;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:2px 6px;font-size:12px}.btn-delete-item:hover{color:var(--color-alert)}.checklist-add-row{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);display:flex}.checklist-new-input{border-radius:var(--radius-sm);color:#e5dfa3;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm);background:#0f3333;border:1px solid #2a6060;flex:1}.checklist-new-input:focus{border-color:var(--color-accent);outline:none}.btn-add-checklist-item{color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;margin-top:var(--spacing-xs);background:0 0;border:1px dashed #2a6060;align-self:flex-start}.btn-add-checklist-item:hover{color:#e5dfa3;border-color:#91bf9f}@media (width<=640px){.services-page{gap:.75rem;padding:0}.services-page .page-header{flex-wrap:wrap;gap:.75rem}.service-new-form{padding:1rem}.svc-form-grid{grid-template-columns:1fr}.svc-field.full{grid-column:auto}.svc-form-actions{flex-wrap:wrap}.svc-form-actions button{flex:1}.service-card-header{flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem}.service-card-title-group{flex-basis:100%}.service-card-meta{flex-wrap:wrap;gap:.5rem;width:100%;padding-left:1.6rem}.service-item-count{font-size:.78rem}.service-card-body{padding:1rem}.checklist-add-row{flex-wrap:wrap}}.clients-page{max-width:1100px;margin:0 auto;padding:2rem}.clients-page .page-header{align-items:baseline;gap:1rem;margin-bottom:1.5rem;display:flex}.clients-page .page-header h1{margin:0}.clients-count{color:var(--color-panel);font-size:.9rem}.clients-filter-bar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.clients-search{border:1px solid var(--color-border);background:var(--color-card);min-width:220px;color:var(--color-text-primary);border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.9rem}.clients-search:focus{border-color:var(--color-accent);outline:none}.clients-sort{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);cursor:pointer;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.clients-inactive-toggle{color:var(--color-panel);cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.clients-comm-bar{border:1px solid var(--color-accent);background:#c095541a;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.6rem 1rem;display:flex}.comm-bar-count{color:var(--color-accent);margin-right:auto;font-size:.85rem;font-weight:600}.btn-bcc,.btn-mailchimp,.btn-clear-selection{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:.4rem .85rem;font-size:.85rem;font-weight:500;transition:opacity .15s}.btn-bcc{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-mailchimp{color:#241600;background:#ffe01b;border-color:#d4b800}.btn-clear-selection{color:var(--color-panel);border-color:var(--color-border);background:0 0}.btn-bcc:hover,.btn-mailchimp:hover{opacity:.85}.btn-mailchimp:disabled{opacity:.5;cursor:not-allowed}.clients-table-wrap{border:1px solid var(--color-border);border-radius:10px;overflow-x:auto}.clients-table{border-collapse:collapse;width:100%;font-size:.9rem}.clients-table thead{background:var(--color-bg-primary)}.clients-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);border-bottom:1px solid var(--color-border);padding:.65rem 1rem;font-size:.78rem;font-weight:600}.clients-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.75rem 1rem}.clients-table tbody tr:last-child td{border-bottom:none}.client-row{cursor:pointer;transition:background .12s}.client-row:hover{background:#0000000f}.client-row.selected{background:#c0955414}.col-check{width:36px}.col-name{min-width:180px}.col-contact{width:140px}.col-jobs{text-align:center;width:90px}.col-instruments{text-align:center;width:110px}.col-ltv{text-align:right;font-variant-numeric:tabular-nums;width:120px}.col-optin{text-align:center;width:80px}.client-name{color:var(--color-text-primary);font-weight:600;display:block}.client-email{color:var(--color-panel);margin-top:1px;font-size:.78rem;display:block}.jobs-badge{background:var(--color-accent);color:#fff;border-radius:12px;padding:1px 8px;font-size:.75rem;font-weight:700;display:inline-block}.jobs-none{color:var(--color-panel)}.optin-yes{color:#16a34a;cursor:help;font-weight:700}.optin-no{color:var(--color-panel)}.no-optin input[type=checkbox]{opacity:.35;cursor:not-allowed}.clients-loading{color:var(--color-panel);padding:2rem 0}.clients-empty{text-align:center;color:var(--color-panel);padding:3rem 1rem}@media (width<=640px){.clients-page{padding:0}.clients-filter-bar{gap:.5rem}.clients-search{min-width:0}.clients-table thead{display:none}.clients-table,.clients-table tbody{display:block}.client-row{align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.client-row td{border:none;padding:0}.client-row .col-contact,.client-row .col-instruments,.client-row .col-ltv,.client-row .col-optin{display:none}.client-row .col-check{flex-shrink:0}.client-row .col-name{flex:1;min-width:0}.client-row .col-jobs{flex-shrink:0}}.profile-page{max-width:900px;margin:0 auto;padding:2rem}.profile-loading{text-align:center;color:var(--color-panel);padding:3rem}.profile-header{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.btn-back{color:var(--color-accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.9rem}.profile-header-name{flex:1;align-items:center;gap:.75rem;display:flex}.profile-header-name h1{margin:0;font-size:1.6rem}.profile-optin-badge{color:#fff;letter-spacing:.04em;text-transform:uppercase;background:#16a34a;border-radius:20px;padding:2px 10px;font-size:.72rem;font-weight:700}.profile-header-actions{gap:.5rem;display:flex}.profile-tabs{border-bottom:2px solid var(--color-border);scrollbar-width:none;gap:0;margin-bottom:1.5rem;display:flex;overflow-x:auto}.profile-tabs::-webkit-scrollbar{display:none}.profile-tab{color:var(--color-panel);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.6rem 1.1rem;font-size:.9rem;transition:color .15s}.profile-tab:hover{color:var(--color-text-primary)}.profile-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.profile-section{margin-bottom:2rem}.profile-section h3{color:var(--color-text-primary);margin:0 0 1rem;font-size:1rem;font-weight:700}.section-header-row h3{margin:0}.profile-empty{color:var(--color-panel);font-size:.9rem}.profile-detail-grid{grid-template-columns:160px 1fr;gap:.5rem 1.5rem;font-size:.9rem;display:grid}.detail-label{color:var(--color-panel);font-weight:500}.detail-notes{white-space:pre-wrap;line-height:1.5}.profile-form-grid{grid-template-columns:1fr 1fr;gap:.75rem 1rem;font-size:.9rem;display:grid}.profile-form-grid label,.log-form label{color:var(--color-panel);flex-direction:column;gap:.3rem;font-size:.8rem;font-weight:600;display:flex}.profile-form-grid input,.profile-form-grid select,.profile-form-grid textarea,.log-form input,.log-form select,.log-form textarea{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:6px;padding:.45rem .65rem;font-size:.9rem}.profile-form-grid input:focus,.profile-form-grid select:focus,.profile-form-grid textarea:focus,.log-form input:focus,.log-form select:focus,.log-form textarea:focus{border-color:var(--color-accent);outline:none}.profile-form-optin{align-items:center;gap:.5rem;flex-direction:row!important}.profile-form-optin input[type=checkbox]{background:0 0;border:none;width:16px;height:16px;padding:0}.optin-change-note{color:var(--color-accent);margin-left:.25rem;font-size:.75rem;font-weight:400}.span-2,.profile-form-notes{grid-column:span 2}.btn-primary,.btn-secondary{cursor:pointer;border-radius:7px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;transition:opacity .15s}.btn-primary{background:var(--color-accent);color:#fff;border:1px solid var(--color-accent)}.btn-secondary{color:var(--color-panel);border:1px solid var(--color-border);background:0 0}.btn-primary:disabled,.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.instruments-list{flex-direction:column;gap:.75rem;display:flex}.instrument-card{border:1px solid var(--color-border);background:var(--color-card);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.9rem 1.1rem;display:flex}.instrument-card.inactive{opacity:.55}.instrument-card-main{flex-direction:column;gap:.2rem;display:flex}.instrument-name{font-size:.95rem;font-weight:600}.instrument-serial,.instrument-detail{color:var(--color-panel);font-size:.8rem}.instrument-desc{color:var(--color-panel);margin:.25rem 0 0;font-size:.85rem}.instrument-category-badge{color:var(--color-accent);letter-spacing:.02em;background:#c095542e;border:1px solid #c0955459;border-radius:20px;padding:.15rem .55rem;font-size:.72rem;font-weight:600;display:inline-block}.instrument-category-badge.small{padding:.1rem .45rem;font-size:.68rem}.btn-toggle-instrument{cursor:pointer;white-space:nowrap;border:1px solid;border-radius:20px;flex-shrink:0;padding:.3rem .75rem;font-size:.75rem;font-weight:600;transition:opacity .15s}.btn-toggle-instrument.active{color:#16a34a;background:#16a34a1a;border-color:#16a34a}.btn-toggle-instrument.inactive{background:var(--color-bg-primary);color:var(--color-panel);border-color:var(--color-border)}.btn-toggle-instrument:hover{opacity:.75}.instrument-card-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.btn-set-reminder{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);white-space:nowrap;background:0 0;border-radius:6px;padding:4px 10px;font-size:.8rem}.btn-set-reminder:hover{border-color:var(--color-accent);color:var(--color-accent)}.instrument-reminder-form{background:var(--color-bg-secondary);border-radius:8px;flex-wrap:wrap;align-items:center;gap:.5rem;width:100%;margin-top:0;padding:.75rem;display:flex}.instrument-reminder-form label{color:var(--color-text-secondary);font-size:.8rem}.instrument-reminder-form input[type=date],.instrument-reminder-form input[type=text]{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:5px;padding:4px 8px;font-size:.85rem}.instrument-reminder-form input[type=text]{flex:1;min-width:160px}.reminder-form-actions{gap:.4rem;display:flex}.btn-save-reminder{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:5px;padding:4px 12px;font-size:.82rem}.btn-save-reminder:disabled{opacity:.5;cursor:default}.btn-cancel-reminder{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-secondary);background:0 0;border-radius:5px;padding:4px 10px;font-size:.82rem}.job-history-list{flex-direction:column;gap:.65rem;display:flex}.job-history-card{border:1px solid var(--color-border);cursor:pointer;background:var(--color-card);border-radius:8px;padding:.85rem 1rem;transition:background .12s}.job-history-card:hover{background:#0000000f}.job-history-header{align-items:center;gap:.75rem;margin-bottom:.4rem;display:flex}.job-history-code{font-family:monospace;font-size:.9rem;font-weight:700}.job-history-status{text-transform:uppercase;letter-spacing:.05em;border-radius:20px;padding:2px 8px;font-size:.72rem;font-weight:700}.status-approved{color:#16a34a;background:#16a34a1f}.status-draft{color:var(--color-panel);background:#0000000f}.status-sent_for_approval{color:#b45309;background:#eab3081f}.job-history-date{color:var(--color-panel);margin-left:auto;font-size:.82rem}.job-history-services{flex-wrap:wrap;gap:.3rem;display:flex}.job-history-chip{background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:20px;padding:2px 8px;font-size:.75rem}.log-form{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:.65rem;margin-bottom:1rem;padding:1rem;display:flex}.log-form-row{flex-wrap:wrap;gap:.75rem;display:flex}.log-form-row label{flex:1;min-width:140px}.log-form textarea{box-sizing:border-box;resize:vertical;width:100%}.log-form-actions{justify-content:flex-end;gap:.5rem;display:flex}.log-list{flex-direction:column;gap:.65rem;display:flex}.log-entry{border:1px solid var(--color-border);background:var(--color-card);border-radius:8px;overflow:hidden}.log-entry.log-job{opacity:.85}.log-job-label{background:var(--color-bg-primary);border-bottom:1px solid var(--color-border);padding:.3rem .85rem}.log-source-tag{text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);font-size:.72rem;font-weight:700}.log-entry-body{padding:.85rem 1rem}.log-entry-meta{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.4rem;display:flex}.log-method{font-size:.85rem;font-weight:700}.log-date{color:var(--color-panel);font-size:.82rem}.log-followup{color:var(--color-accent);font-size:.8rem;font-weight:500}.log-notes{white-space:pre-wrap;margin:0;font-size:.9rem;line-height:1.5}.log-entry-actions{gap:.5rem;margin-top:.5rem;display:flex}.btn-log-edit,.btn-log-delete{cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem}.btn-log-edit{color:var(--color-accent)}.btn-log-delete{color:var(--color-alert)}.btn-log-edit:hover,.btn-log-delete:hover{text-decoration:underline}@media (width<=640px){.profile-page{padding:0}.profile-header{gap:.6rem;margin-bottom:1rem}.profile-header-name h1{font-size:1.3rem}.profile-header-actions{justify-content:flex-end;width:100%}.profile-detail-grid{grid-template-columns:1fr;gap:.15rem}.detail-label{text-transform:uppercase;letter-spacing:.04em;margin-top:.75rem;font-size:.72rem;font-weight:700}.profile-detail-grid>.detail-label:first-child{margin-top:0}.profile-form-grid{grid-template-columns:1fr}.span-2,.profile-form-notes{grid-column:auto}.log-form-row{flex-direction:column;gap:.6rem}.log-form-row label{min-width:0}.job-history-header{flex-wrap:wrap;gap:.4rem}.job-history-date{margin-left:0;font-size:.78rem}}.invoices-page{max-width:1000px;margin:0 auto;padding:2rem}.invoices-page .page-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.invoices-page .page-header h1{margin:0 0 .2rem}.invoices-outstanding{color:var(--color-alert);font-size:.85rem;font-weight:600}.invoices-filter-bar{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.invoices-search{border:1px solid var(--color-border);background:var(--color-card);min-width:200px;color:var(--color-text-primary);border-radius:6px;flex:1;padding:.5rem .75rem;font-size:.9rem}.invoices-search:focus{border-color:var(--color-accent);outline:none}.invoices-status-filter{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);cursor:pointer;border-radius:6px;padding:.5rem .75rem;font-size:.9rem}.invoices-table-wrap{border:1px solid var(--color-border);border-radius:10px;overflow-x:auto}.invoices-table{border-collapse:collapse;width:100%;font-size:.9rem}.invoices-table thead{background:var(--color-bg-primary)}.invoices-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);border-bottom:1px solid var(--color-border);padding:.65rem 1rem;font-size:.78rem;font-weight:600}.invoices-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.75rem 1rem}.invoices-table tbody tr:last-child td{border-bottom:none}.invoice-row{cursor:pointer;transition:background .12s}.invoice-row:hover{background:#0000000f}.col-code{font-family:monospace;font-weight:700}.balance-zero{color:var(--color-panel)}.invoices-loading,.invoices-empty{color:var(--color-panel);padding:2rem 0}.invoices-empty p{font-size:.9rem}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-card);border-radius:12px;width:420px;max-width:95vw;padding:1.75rem;box-shadow:0 8px 40px #0003}.modal h2{margin:0 0 1.25rem;font-size:1.15rem}.modal-tabs{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:1.25rem;display:flex}.modal-tab{color:var(--color-panel);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.5rem 1rem;font-size:.9rem}.modal-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:600}.modal-body{margin-bottom:1.25rem}.modal-select{border:1px solid var(--color-border);background:var(--color-card);width:100%;color:var(--color-text-primary);border-radius:6px;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.9rem}.modal-note{color:var(--color-panel);margin:.5rem 0 0;font-size:.82rem}.modal-actions{justify-content:flex-end;gap:.5rem;display:flex}.btn-primary,.btn-secondary{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:.5rem 1rem;font-size:.9rem;font-weight:500}.btn-primary:hover:not(:disabled){opacity:.85}@media (width<=640px){.invoices-page{padding:0}.invoices-page .page-header{flex-wrap:wrap;gap:.75rem}.invoices-table thead{display:none}.invoices-table,.invoices-table tbody{display:block}.invoice-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:baseline;gap:.2rem .5rem;padding:.85rem 1rem;display:flex}.invoice-row td{border:none;padding:0}.invoice-row .col-code{flex-basis:100%;font-size:.95rem}.invoice-row .col-client{color:var(--color-panel);flex:1;font-size:.82rem}.invoice-row .col-balance{font-size:.85rem;font-weight:600}.invoice-row .col-status{margin-left:.4rem}.invoice-row .col-date,.invoice-row .col-total{display:none}}.invoice-detail-page{max-width:900px;margin:0 auto;padding:1.5rem 2rem;font-size:.9rem}.invoice-loading{text-align:center;color:var(--color-panel);padding:3rem}.invoice-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.invoice-toolbar-right{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.btn-back{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem}.btn-back:hover{text-decoration:underline}.btn-primary,.btn-secondary{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:.45rem .9rem;font-size:.85rem;font-weight:500;transition:opacity .15s}.btn-primary:hover:not(:disabled),.btn-secondary:hover{opacity:.8}.btn-danger{color:#c0392b;cursor:pointer;background:0 0;border:1px solid #c0392b;border-radius:6px;padding:6px 14px;font-size:.85rem}.btn-danger:hover{color:#fff;background:#c0392b}.invoice-doc{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;padding:2rem 2.5rem}.invoice-doc-header{justify-content:space-between;align-items:flex-start;gap:2rem;margin-bottom:2rem;display:flex}.invoice-doc-business{align-items:flex-start;gap:1rem;display:flex}.invoice-logo{object-fit:contain;max-width:120px;max-height:64px}.invoice-business-info{color:var(--color-panel);flex-direction:column;gap:.15rem;font-size:.85rem;display:flex}.invoice-business-info strong{color:var(--color-text-primary);margin-bottom:.2rem;font-size:1rem;display:block}.invoice-doc-meta{text-align:right}.invoice-title{letter-spacing:.08em;color:var(--color-accent);margin:0 0 .75rem;font-size:1.6rem;font-weight:800}.invoice-meta-grid{text-align:right;grid-template-columns:auto auto;gap:.25rem 1rem;font-size:.85rem;display:grid}.meta-label{color:var(--color-panel);text-align:right}.meta-value{text-align:right;font-weight:500}.inline-date{border:none;border-bottom:1px dashed var(--color-border);color:var(--color-text-primary);text-align:right;background:0 0;width:130px;padding:0 2px;font-size:.85rem}.inline-date:focus{border-bottom-color:var(--color-accent);outline:none}.invoice-bill-row{gap:3rem;margin-bottom:2rem;display:flex}.invoice-bill-to,.invoice-instrument{flex:1}.invoice-bill-to h4,.invoice-instrument h4{text-transform:uppercase;letter-spacing:.07em;color:var(--color-panel);border-bottom:1px solid var(--color-border);margin:0 0 .5rem;padding-bottom:.3rem;font-size:.75rem;font-weight:700}.invoice-bill-to p,.invoice-instrument p{margin:.15rem 0;font-size:.88rem}.no-client{color:var(--color-panel);font-style:italic}.invoice-section{margin-bottom:1.5rem}.invoice-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-panel);margin:0 0 .4rem;font-size:.75rem;font-weight:700}.line-table{border-collapse:collapse;width:100%;font-size:.88rem}.line-table th{text-align:right;text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);border-bottom:1px solid var(--color-border);padding:.35rem .5rem;font-size:.72rem;font-weight:600}.line-table th.col-desc{text-align:left}.line-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.45rem .5rem}.line-table tbody tr:last-child td{border-bottom:none}.col-desc{text-align:left;width:40%}.col-qty{text-align:right;width:60px}.col-price{text-align:right;width:90px}.col-disc{text-align:right;width:70px}.col-tax{text-align:center;width:50px}.col-linetotal{text-align:right;width:90px;font-weight:500}.col-actions{text-align:right;width:80px}.text-right{text-align:right}.line-row:hover{background:#0000000a}.btn-line-edit,.btn-line-del,.btn-line-save,.btn-line-cancel{cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:.8rem}.btn-line-edit{color:var(--color-accent)}.btn-line-del{color:var(--color-alert)}.btn-line-save{color:#16a34a;font-size:1rem}.btn-line-cancel{color:var(--color-panel);font-size:1rem}.line-input{border:1px solid var(--color-accent);background:var(--color-card);width:100%;color:var(--color-text-primary);border-radius:4px;padding:.25rem .4rem;font-size:.85rem}.line-input-sm{width:70px}.add-line-form{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem 0;display:flex}.flex-grow{flex:1;min-width:120px}.line-catalog-select{flex-basis:100%;width:100%;margin-bottom:.25rem}.line-tax-check{white-space:nowrap;align-items:center;gap:.3rem;font-size:.82rem;display:flex}.btn-add-line{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:.4rem 0;font-size:.82rem}.btn-add-line:hover{text-decoration:underline}.invoice-totals{justify-content:flex-end;margin:1.5rem 0;display:flex}.totals-table{border-top:2px solid var(--color-border);width:280px;padding-top:.75rem}.totals-row{color:var(--color-panel);justify-content:space-between;padding:.3rem 0;font-size:.9rem;display:flex}.discount-row{color:#16a34a}.totals-total{border-top:1px solid var(--color-border);color:var(--color-text-primary);margin-top:.4rem;padding-top:.4rem;font-size:1rem;font-weight:700}.totals-paid{color:#16a34a}.totals-balance{color:var(--color-alert);border-top:1px solid var(--color-border);margin-top:.3rem;padding-top:.3rem;font-size:1.05rem;font-weight:700}.inline-pct{border:none;border-bottom:1px dashed var(--color-border);width:50px;color:inherit;text-align:right;background:0 0;padding:0 2px;font-size:.9rem}.inline-pct:focus{border-bottom-color:var(--color-accent);outline:none}.invoice-payment-options,.invoice-notes{margin-bottom:1.5rem}.invoice-payment-options h4,.invoice-notes h4{text-transform:uppercase;letter-spacing:.07em;color:var(--color-panel);margin:0 0 .5rem;font-size:.75rem;font-weight:700}.payment-link-input,.invoice-notes-input{box-sizing:border-box;border:1px solid var(--color-border);background:var(--color-card);width:100%;color:var(--color-text-primary);resize:vertical;border-radius:6px;padding:.5rem .65rem;font-size:.88rem}.payment-link-input:focus,.invoice-notes-input:focus{border-color:var(--color-accent);outline:none}.payment-link-display{word-break:break-all;font-size:.9rem}.invoice-payment-log{border-top:1px solid var(--color-border);margin-top:1.5rem;padding-top:1.25rem}.invoice-payment-log h4{text-transform:uppercase;letter-spacing:.07em;color:var(--color-panel);margin:0;font-size:.75rem;font-weight:700}.section-header-row{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.payment-form{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:1fr 1fr 1fr 1fr;gap:.5rem;margin-bottom:.85rem;padding:.85rem;display:grid}.payment-form label{color:var(--color-panel);flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;display:flex}.payment-form input,.payment-form select{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:5px;padding:.4rem .5rem;font-size:.88rem}.payment-form input:focus,.payment-form select:focus{border-color:var(--color-accent);outline:none}.payment-form-actions{grid-column:span 4;justify-content:flex-end;gap:.5rem;display:flex}.no-payments{color:var(--color-panel);font-size:.88rem}.payment-entry{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.55rem 0;display:flex}.payment-entry:last-child{border-bottom:none}.payment-entry-info{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.payment-method{font-size:.88rem;font-weight:600}.payment-amount{color:#16a34a;font-weight:700}.payment-date,.payment-notes{color:var(--color-panel);font-size:.82rem}.btn-log-delete{color:var(--color-alert);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.85rem}.save-indicator{background:var(--color-accent);color:#fff;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 12px #0003}.status-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}@media print{.no-print{display:none!important}.invoice-detail-page{max-width:100%;padding:0}.invoice-doc{box-shadow:none;border:none;border-radius:0;padding:0}.invoice-toolbar,.invoice-payment-log,.save-indicator{display:none}.invoice-title{color:#000}.line-table{page-break-inside:avoid}.print-only{display:block!important}}@media screen{.print-only{display:none!important}}@media (width<=640px){.invoice-detail-page{padding:.75rem 0}.invoice-toolbar{flex-wrap:wrap;gap:.6rem}.invoice-toolbar-right{flex-wrap:wrap}.invoice-doc{padding:1.1rem 1rem}.invoice-doc-header{flex-direction:column;gap:1rem;margin-bottom:1.25rem}.invoice-doc-meta{text-align:left}.invoice-title{font-size:1.3rem}.invoice-meta-grid,.meta-label,.meta-value{text-align:left}.inline-date{text-align:left;width:110px}.invoice-bill-row{flex-direction:column;gap:1.25rem}.invoice-section{overflow-x:auto}.invoice-totals{justify-content:flex-start}.totals-table{width:100%}.payment-form{grid-template-columns:1fr 1fr}.payment-form-actions{grid-column:span 2}}.inventory-page{max-width:1100px;margin:0 auto;padding:1.5rem 2rem}.inv-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.inv-header-left h1{color:var(--color-text-primary);margin:0;font-size:1.5rem;font-weight:700}.inv-subtitle{color:var(--color-panel);margin:.1rem 0 0;font-size:.82rem}.inv-header-right{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.btn-primary,.btn-secondary,.btn-danger{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:.45rem .9rem;font-size:.85rem;font-weight:500;transition:opacity .15s}.btn-primary{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.btn-secondary{color:var(--color-text-primary);border-color:var(--color-border);background:0 0}.btn-danger{color:var(--color-alert);border-color:var(--color-alert);background:0 0}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:hover:not(:disabled),.btn-secondary:hover,.btn-danger:hover{opacity:.8}.btn-order-toggle{cursor:pointer;background:var(--color-bg-secondary);color:var(--color-card);border:1px solid var(--color-border);border-radius:7px;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.85rem;font-weight:500;display:flex}.order-badge{background:var(--color-alert);color:#fff;border-radius:12px;padding:1px 7px;font-size:.75rem;font-weight:700}.order-panel{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;margin-bottom:1.25rem;padding:1.25rem 1.5rem}.order-panel-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.order-panel-header h3{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:700}.btn-add-log{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:7px;padding:.35rem .8rem;font-size:.82rem;font-weight:500}.btn-add-log:hover{opacity:.85}.order-form{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:8px;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem;padding:.85rem;display:grid}.order-form label{color:var(--color-panel);flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;display:flex}.order-form input,.order-form select{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:5px;padding:.4rem .5rem;font-size:.88rem}.order-form input:focus,.order-form select:focus{border-color:var(--color-accent);outline:none}.order-form-actions{grid-column:span 3;justify-content:flex-end;gap:.5rem;display:flex}.order-table{border-collapse:collapse;width:100%;font-size:.875rem}.order-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-panel);border-bottom:1px solid var(--color-border);padding:.35rem .5rem;font-size:.72rem;font-weight:600}.order-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:.5rem}.order-table tbody tr:last-child td{border-bottom:none}.order-status-select{cursor:pointer;border:none;border-radius:12px;padding:3px 8px;font-size:.78rem;font-weight:600}.order-not{color:var(--color-alert);background:#b42d1c1f}.order-ship{color:#b45309;background:#eab30826}.order-arrived{color:#16a34a;background:#16a34a1f}.order-notes{color:var(--color-panel);max-width:200px;font-size:.82rem}.order-input{border:1px solid var(--color-accent);background:var(--color-card);width:100%;color:var(--color-text-primary);border-radius:4px;padding:.25rem;font-size:.85rem}.order-input-sm{border:1px solid var(--color-accent);background:var(--color-card);width:60px;color:var(--color-text-primary);border-radius:4px;padding:.25rem;font-size:.85rem}.no-orders{color:var(--color-panel);font-size:.9rem}.btn-line-edit{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.82rem}.btn-line-del{color:var(--color-alert);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:.85rem}.btn-line-save{color:#16a34a;cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:1rem}.btn-line-cancel{color:var(--color-panel);cursor:pointer;background:0 0;border:none;padding:0 3px;font-size:1rem}.cat-mgr{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;margin-bottom:1.25rem;padding:1rem 1.25rem}.cat-mgr h3{color:var(--color-text-primary);margin:0 0 .75rem;font-size:1rem;font-weight:700}.cat-add-row{gap:.5rem;margin-bottom:.75rem;display:flex}.cat-add-row input{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:6px;flex:1;padding:.4rem .6rem;font-size:.88rem}.cat-add-row input:focus{border-color:var(--color-accent);outline:none}.cat-list{max-height:220px;margin:0;padding:0;list-style:none;overflow-y:auto}.cat-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.4rem 0;font-size:.9rem;display:flex}.cat-row:last-child{border-bottom:none}.cat-edit-input{border:1px solid var(--color-accent);background:var(--color-card);color:var(--color-text-primary);border-radius:4px;flex:1;margin-right:.4rem;padding:.25rem .4rem;font-size:.88rem}.no-cats{color:var(--color-panel);padding:.5rem 0;font-size:.88rem}.inv-filters{flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem;display:flex}.inv-search{flex:1;min-width:200px}.inv-filters input,.inv-filters select{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:7px;padding:.45rem .65rem;font-size:.88rem}.inv-filters input:focus,.inv-filters select:focus{border-color:var(--color-accent);outline:none}.inv-empty{text-align:center;color:var(--color-panel);flex-direction:column;align-items:center;gap:1rem;padding:3rem;display:flex}.inv-table-wrap{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.inv-table{border-collapse:collapse;width:100%;font-size:.875rem}.inv-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-panel);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);white-space:nowrap;padding:.65rem .85rem;font-size:.72rem;font-weight:600}.inv-table th.col-num{text-align:right}.inv-table th.col-actions{width:1px}.inv-row td{border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--color-text-primary);padding:.6rem .85rem}.inv-row:last-child td{border-bottom:none}.inv-row:hover td{background:#00000008}.col-name{width:30%}.col-num{text-align:right;white-space:nowrap}.item-name{margin-bottom:2px;font-weight:600;display:block}.item-desc{color:var(--color-panel);text-overflow:ellipsis;white-space:nowrap;max-width:300px;margin-top:2px;font-size:.78rem;display:block;overflow:hidden}.stock-badge{vertical-align:middle;border-radius:10px;margin-left:.4rem;padding:1px 7px;font-size:.7rem;font-weight:700;display:inline-block}.stock-out{color:var(--color-alert);background:#b42d1c1f}.stock-low{color:#b45309;background:#eab30826}.price-cell{color:var(--color-accent);font-weight:600}.dist-link{color:var(--color-accent);text-decoration:none}.dist-link:hover{text-decoration:underline}.text-muted{color:var(--color-panel)}.col-actions{white-space:nowrap;text-align:right}.btn-row{cursor:pointer;color:var(--color-accent);background:0 0;border:none;border-radius:5px;padding:.2rem .5rem;font-size:.8rem;font-weight:500;transition:background .12s}.btn-row:hover{background:#00000012}.btn-row-danger{color:var(--color-alert)}.modal{background:var(--color-card);border-radius:12px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto;box-shadow:0 8px 32px #00000040}.modal-body{flex-direction:column;gap:.8rem;padding:1.1rem 1.4rem;display:flex}.modal-body p{margin:.2rem 0;font-size:.9rem}.item-form label{color:var(--color-panel);flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;display:flex}.item-form input,.item-form select,.item-form textarea{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:6px;padding:.4rem .55rem;font-family:inherit;font-size:.9rem}.item-form input:focus,.item-form select:focus,.item-form textarea:focus{border-color:var(--color-accent);outline:none}.item-form textarea{resize:vertical}.form-row{flex-wrap:wrap;gap:.75rem;display:flex}.form-row label{flex:1;min-width:140px}.checkbox-label{cursor:pointer;align-items:center;color:var(--color-text-primary)!important;flex-direction:row!important;gap:.4rem!important;font-size:.88rem!important;font-weight:500!important}.checkbox-label input{width:auto}.flash-msg{background:var(--color-accent);color:#fff;z-index:300;border-radius:8px;padding:.5rem 1rem;font-size:.85rem;font-weight:500;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 12px #0003}.text-center{text-align:center}@media (width<=640px){.inventory-page{padding:0}.inv-header{flex-direction:column;align-items:flex-start}.inv-header-right{gap:.4rem;width:100%}.inv-header-right button{flex:auto;padding:.35rem .5rem;font-size:.78rem}.order-panel{padding:1rem;overflow-x:auto}.order-form{grid-template-columns:1fr 1fr}.order-form-actions{grid-column:span 2}.inv-table thead{display:none}.inv-table,.inv-table tbody{display:block}.inv-row{border-bottom:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.4rem .75rem;padding:.85rem 1rem;display:flex}.inv-row:last-child{border-bottom:none}.inv-row td{border:none;padding:0}.inv-row:hover td{background:0 0}.inv-row td:first-child{flex-basis:100%;order:1}.item-desc{white-space:normal;max-width:100%}.inv-row td:nth-child(2){display:none}.inv-row td:nth-child(3){order:2;font-size:.85rem}.inv-row td:nth-child(3):before{content:"Qty ";color:var(--color-panel);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.inv-row td:nth-child(4){display:none}.inv-row td:nth-child(5){order:3;font-size:.85rem}.inv-row td:nth-child(5):before{content:"Price ";color:var(--color-panel);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600}.inv-row td:nth-child(6){display:none}.inv-row td:nth-child(7){order:4;gap:.2rem;margin-left:auto;display:flex}.btn-row{padding:.15rem .4rem;font-size:.75rem}}.photos-page{max-width:1200px;margin:0 auto;padding:1.5rem 2rem}.photos-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.photos-header-left h1{color:var(--color-text-primary);margin:0 0 .15rem;font-size:1.5rem;font-weight:700}.photos-stats{color:var(--color-panel);font-size:.82rem}.bulk-bar{background:var(--color-bg-secondary);color:var(--color-card);border-radius:8px;align-items:center;gap:.75rem;padding:.5rem 1rem;font-size:.88rem;font-weight:500;display:flex}.btn-danger-sm{background:var(--color-alert);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.35rem .8rem;font-size:.82rem;font-weight:600}.btn-danger-sm:hover{opacity:.85}.btn-ghost{color:var(--color-panel);cursor:pointer;background:0 0;border:none;padding:.2rem .4rem;font-size:.82rem}.btn-ghost:hover{text-decoration:underline}.photos-filters{flex-wrap:wrap;align-items:center;gap:.65rem;margin-bottom:1rem;display:flex}.photos-filters select,.photos-filters input[type=date]{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:7px;padding:.4rem .6rem;font-size:.85rem}.photos-filters select:focus,.photos-filters input[type=date]:focus{border-color:var(--color-accent);outline:none}.select-bar{margin-bottom:.75rem}.select-all-label{color:var(--color-panel);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.4rem;font-size:.85rem;display:flex}.photos-loading,.photos-empty{text-align:center;color:var(--color-panel);padding:4rem}.photos-empty p{margin:.3rem 0}.photos-empty-sub{font-size:.85rem}.photos-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;display:grid}.photo-card{background:var(--color-card);border:2px solid #0000;border-radius:8px;transition:border-color .12s;position:relative;overflow:hidden}.photo-card.selected{border-color:var(--color-accent)}.photo-thumb-wrap{cursor:pointer;aspect-ratio:1;background:var(--color-bg-secondary);position:relative;overflow:hidden}.photo-thumb{object-fit:cover;width:100%;height:100%;transition:transform .15s;display:block}.photo-thumb-wrap:hover .photo-thumb{transform:scale(1.04)}.photo-badge{border-radius:4px;padding:3px 5px;font-size:.8rem;font-weight:700;line-height:1;position:absolute;top:5px}.badge-protected{color:#fff;background:#0000008c;left:5px}.badge-portal{color:#fff;background:#00000073;right:5px}.photo-checkbox{cursor:pointer;width:16px;height:16px;accent-color:var(--color-accent);z-index:2;opacity:0;transition:opacity .12s;position:absolute;top:6px;left:6px}.photo-card:hover .photo-checkbox,.photo-card.selected .photo-checkbox{opacity:1}.photo-card:hover .badge-protected,.photo-card.selected .badge-protected{left:28px}.photo-meta{justify-content:space-between;align-items:center;gap:.3rem;padding:.35rem .5rem;display:flex}.photo-job{color:var(--color-accent);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;font-weight:600;overflow:hidden}.photo-job:hover{text-decoration:underline}.photo-label{color:var(--color-panel);white-space:nowrap;font-size:.7rem}.lightbox-overlay{z-index:400;background:#000000e0;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.lightbox{flex-direction:column;width:100%;max-width:900px;max-height:90vh;display:flex;position:relative}.lb-close{color:#fff;cursor:pointer;opacity:.8;background:0 0;border:none;padding:4px 8px;font-size:1.4rem;position:absolute;top:-2.5rem;right:0}.lb-close:hover{opacity:1}.lb-nav{color:#fff;cursor:pointer;z-index:10;opacity:.7;background:#00000080;border:none;border-radius:6px;padding:.5rem .75rem;font-size:2rem;line-height:1;transition:opacity .12s;position:absolute;top:50%;transform:translateY(-50%)}.lb-nav:hover{opacity:1}.lb-prev{left:-3.5rem}.lb-next{right:-3.5rem}.lb-img{object-fit:contain;background:#000;border-radius:8px 8px 0 0;width:100%;max-height:75vh;display:block}.lb-footer{background:var(--color-bg-secondary);border-radius:0 0 8px 8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.lb-info{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.lb-job-link{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.9rem;font-weight:700}.lb-job-link:hover{text-decoration:underline}.lb-label{color:var(--color-card);opacity:.8;font-size:.82rem}.lb-date{color:var(--color-card);opacity:.6;font-size:.78rem}.lb-badge{border-radius:10px;padding:2px 7px;font-size:.72rem;font-weight:700}.lb-protected{color:#f87171;background:#b42d1c40}.lb-portal{color:#4ade80;background:#16a34a40}.lb-actions{gap:.5rem;display:flex}.lb-btn{color:#fff;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;padding:.35rem .8rem;font-size:.82rem;font-weight:500;transition:background .12s}.lb-btn:hover{background:#fff3}.lb-btn-danger{color:#f87171;border-color:#b42d1c80}.lb-btn-danger:hover{background:#b42d1c40}.modal-overlay{z-index:500;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-card);border-radius:12px;width:100%;max-width:500px;box-shadow:0 8px 32px #00000040}.modal-sm{max-width:420px}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1rem 1.25rem .75rem;display:flex}.modal-header h3{color:var(--color-text-primary);margin:0;font-size:1rem;font-weight:700}.modal-close{cursor:pointer;color:var(--color-panel);background:0 0;border:none;padding:4px;font-size:1rem}.modal-body{color:var(--color-text-primary);padding:1rem 1.25rem;font-size:.9rem}.modal-body p{margin:.4rem 0}.warn-text{border-left:3px solid var(--color-alert);background:#b42d1c14;border-radius:0 6px 6px 0;padding:.6rem .75rem;margin-bottom:.75rem!important}.modal-footer{border-top:1px solid var(--color-border);justify-content:flex-end;gap:.6rem;padding:.75rem 1.25rem 1rem;display:flex}.btn-secondary{cursor:pointer;color:var(--color-text-primary);border:1px solid var(--color-border);background:0 0;border-radius:7px;padding:.4rem .85rem;font-size:.85rem;font-weight:500}.btn-secondary:hover{opacity:.8}.reports-page{max-width:960px;margin:0 auto;padding:1.5rem 2rem;font-size:.9rem}.reports-header{justify-content:space-between;align-items:center;margin-bottom:1.1rem;display:flex}.reports-header h1{color:var(--color-text-primary);margin:0;font-size:1.5rem;font-weight:700}.btn-lock{border:1px solid var(--color-border);color:var(--color-panel);cursor:pointer;background:0 0;border-radius:7px;padding:.35rem .8rem;font-size:.82rem}.btn-lock:hover{background:#0000000f}.date-bar{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.1rem;display:flex}.date-presets{flex-wrap:wrap;gap:.4rem;display:flex}.btn-preset{background:var(--color-card);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-primary);border-radius:6px;padding:.3rem .7rem;font-size:.8rem;transition:background .12s}.btn-preset:hover{background:var(--color-bg-primary)}.btn-preset.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.date-inputs{color:var(--color-panel);align-items:center;gap:.4rem;font-size:.85rem;display:flex}.date-inputs input[type=date]{border:1px solid var(--color-border);background:var(--color-card);color:var(--color-text-primary);border-radius:6px;padding:.3rem .5rem;font-size:.85rem}.date-inputs input[type=date]:focus{border-color:var(--color-accent);outline:none}.btn-print{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:7px;margin-left:auto;padding:.4rem .9rem;font-size:.85rem;font-weight:500}.btn-print:hover{opacity:.85}.tab-bar{border-bottom:2px solid var(--color-border);gap:0;margin-bottom:1.5rem;display:flex}.tab-btn{color:var(--color-panel);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:500;transition:color .12s,border-color .12s}.tab-btn:hover{color:var(--color-text-primary)}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:700}.report-loading{text-align:center;color:var(--color-panel);padding:3rem}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.85rem;margin-bottom:1.75rem;display:grid}.stat-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:10px;padding:1rem 1.1rem}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);margin-bottom:.3rem;font-size:.72rem;font-weight:600}.stat-value{color:var(--color-text-primary);font-size:1.45rem;font-weight:800;line-height:1.1}.alert-value{color:var(--color-alert)}.stat-sub{color:var(--color-panel);margin-top:.2rem;font-size:.75rem}.report-section{margin-bottom:2rem}.report-section h3{text-transform:uppercase;letter-spacing:.05em;color:var(--color-panel);border-bottom:1px solid var(--color-border);margin:0 0 .85rem;padding-bottom:.4rem;font-size:.85rem;font-weight:700}.bar-list{flex-direction:column;gap:.45rem;display:flex}.bar-row{grid-template-columns:160px 1fr 80px;align-items:center;gap:.75rem;display:grid}.bar-label{color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.bar-track{background:var(--color-bg-primary);border-radius:4px;height:18px;overflow:hidden}.bar-fill{background:var(--color-accent);border-radius:4px;min-width:2px;height:100%;transition:width .3s}.bar-value{color:var(--color-text-primary);text-align:right;font-size:.85rem;font-weight:600}.aging-table{background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;flex-direction:column;gap:0;display:flex;overflow:hidden}.aging-row{border-bottom:1px solid var(--color-border);justify-content:space-between;padding:.6rem 1rem;font-size:.88rem;display:flex}.aging-row:last-child{border-bottom:none}.aging-label{color:var(--color-text-primary)}.aging-value{color:var(--color-panel);font-weight:600}.aging-nonzero{color:var(--color-alert)}.report-table{border-collapse:collapse;background:var(--color-card);border:1px solid var(--color-border);border-radius:8px;width:100%;font-size:.875rem;overflow:hidden}.report-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--color-panel);border-bottom:1px solid var(--color-border);background:var(--color-bg-primary);padding:.55rem .85rem;font-size:.72rem;font-weight:600}.report-table td{border-bottom:1px solid var(--color-border);color:var(--color-text-primary);padding:.55rem .85rem}.report-table tbody tr:last-child td{border-bottom:none}.balance-cell{color:var(--color-alert);font-weight:700}.status-chip{border-radius:10px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.status-unpaid{color:var(--color-alert);background:#b42d1c1a}.status-deposit-paid{color:#b45309;background:#eab30826}.status-partially-paid{color:#2563eb;background:#3b82f61f}.status-paid-in-full{color:#16a34a;background:#16a34a1f}.pin-gate{justify-content:center;align-items:center;min-height:60vh;padding:2rem;display:flex}.pin-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:12px;width:100%;max-width:380px;padding:2rem 2.5rem;box-shadow:0 4px 20px #0000001a}.pin-card h2{color:var(--color-text-primary);margin:0 0 .4rem;font-size:1.3rem;font-weight:700}.pin-sub{color:var(--color-panel);margin:0 0 1.25rem;font-size:.88rem}.pin-card form{flex-direction:column;gap:.85rem;display:flex}.pin-card label{color:var(--color-panel);flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.pin-card input{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);letter-spacing:.2em;border-radius:7px;padding:.5rem .7rem;font-size:1rem}.pin-card input:focus{border-color:var(--color-accent);outline:none}.pin-error{color:var(--color-alert);margin:0;font-size:.82rem}.pin-actions{justify-content:space-between;align-items:center;margin-top:.25rem;display:flex}.btn-pin{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:7px;padding:.5rem 1.2rem;font-size:.9rem;font-weight:600}.btn-pin:disabled{opacity:.5;cursor:not-allowed}.btn-pin:hover:not(:disabled){opacity:.85}.btn-ghost-pin{color:var(--color-accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:.82rem}.btn-ghost-pin:hover{text-decoration:underline}.print-header{display:none}@media print{.no-print{display:none!important}.print-only{display:block!important}.reports-page{max-width:100%;padding:0}.stat-grid{grid-template-columns:repeat(4,1fr)}.print-header{margin-bottom:1.5rem;display:block}.print-header h1{margin:0 0 .25rem;font-size:1.4rem;font-weight:700}.print-range{color:#666;margin:0;font-size:.85rem}.bar-fill{background:#333!important}.bar-track{background:#eee!important}}@media (width<=640px){.reports-page{padding:.75rem 0}.reports-header{flex-wrap:wrap;gap:.5rem;margin-bottom:.85rem}.reports-header h1{font-size:1.25rem}.date-bar{gap:.5rem}.btn-preset{padding:.25rem .55rem;font-size:.75rem}.date-inputs{flex-wrap:wrap}.btn-print{width:100%;margin-left:0}.tab-bar{-webkit-overflow-scrolling:touch;overflow-x:auto}.tab-btn{white-space:nowrap;padding:.5rem .85rem;font-size:.82rem}.stat-grid{grid-template-columns:1fr 1fr;gap:.6rem;margin-bottom:1.25rem}.stat-card{padding:.75rem .85rem}.stat-value{font-size:1.2rem}.bar-row{grid-template-columns:85px 1fr 55px;gap:.5rem}.bar-label,.bar-value{font-size:.78rem}.report-section{overflow-x:auto}.aging-row{padding:.5rem .75rem;font-size:.82rem}.pin-card{padding:1.5rem 1.1rem}}.wizard-page{background-color:var(--color-bg-primary);min-height:100vh;padding:var(--spacing-xl) var(--spacing-lg);align-items:center;gap:var(--spacing-xl);flex-direction:column;display:flex}.wizard-header{text-align:center}.wizard-brand{font-size:var(--font-size-xxl);color:#0a2e2e;margin:0 0 var(--spacing-xs)}.wizard-subtitle{color:#0a2e2e;font-size:var(--font-size-md);opacity:.75;margin:0}.wizard-support{text-align:center;margin-top:var(--spacing-lg);color:#0a2e2e80;font-size:.78rem}.wizard-support-link{color:#0a2e2eb3;text-decoration:none}.wizard-support-link:hover{color:#0a2e2e;text-decoration:underline}.wizard-steps{align-items:center;gap:0;display:flex}.wizard-step-wrap{align-items:center;display:flex}.wizard-dot{width:32px;height:32px;font-size:var(--font-size-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.wizard-dot.done{color:#e5dfa3;background-color:#378673}.wizard-dot.active{color:#0a2e2e;background-color:#c09554}.wizard-dot.pending{color:#0a2e2e;opacity:.5;background-color:#b8d8cd}.wizard-line{opacity:.5;background-color:#b8d8cd;width:40px;height:2px}.wizard-line.done{opacity:1;background-color:#378673}.wizard-card{background-color:var(--color-bg-secondary);border-radius:var(--radius-md);padding:var(--spacing-xl);width:100%;max-width:560px;box-shadow:var(--shadow);gap:var(--spacing-lg);flex-direction:column;display:flex}.wizard-step-title{color:#e5dfa3;font-size:var(--font-size-lg);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-sm);margin:0}.wizard-note{color:#91bf9f;font-size:var(--font-size-sm);margin:0}.wizard-fields{gap:var(--spacing-md);flex-direction:column;display:flex}.wizard-row{gap:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.wizard-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.wizard-field label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em}.required{color:#b42d1c}.field-hint{font-size:var(--font-size-sm);color:#91bf9f;margin:0;font-style:italic}.field-error{font-size:var(--font-size-sm);color:#b42d1c;margin:0}.logo-upload-area{align-items:center;gap:var(--spacing-md);display:flex}.logo-preview{object-fit:contain;border-radius:var(--radius-sm);background:var(--color-card);max-width:160px;height:60px;padding:var(--spacing-xs)}.logo-placeholder{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:#91bf9f;width:120px;height:60px;font-size:var(--font-size-sm);justify-content:center;align-items:center;display:flex}.btn-upload-logo{color:#91bf9f;border:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;background-color:#0f3333}.password-wrap input{flex:1;padding-right:2.5rem}.btn-toggle-pw{right:var(--spacing-sm);cursor:pointer;color:#91bf9f;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;position:absolute}.wizard-toggles{gap:var(--spacing-md);flex-direction:column;display:flex}.toggle-row{align-items:center;gap:var(--spacing-sm);color:#e5dfa3;font-size:var(--font-size-sm);cursor:pointer;display:flex}.toggle-row input[type=checkbox]{width:auto;accent-color:var(--color-accent)}.wizard-nav{border-top:1px solid var(--color-border);padding-top:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.wizard-nav-right{gap:var(--spacing-md);margin-left:auto;display:flex}.btn-wizard-back{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0}.btn-wizard-next{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;background-color:#378673;border:none;font-weight:600}.btn-wizard-skip{border:1px solid var(--color-border);color:#91bf9f;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);background:0 0}.btn-wizard-skip:disabled{opacity:.5;cursor:not-allowed}.btn-wizard-finish{color:#0a2e2e;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-sm);cursor:pointer;background-color:#c09554;border:none;font-weight:700}.btn-wizard-finish:disabled{opacity:.5;cursor:not-allowed}@media (width<=600px){.wizard-row{grid-template-columns:1fr}.wizard-line{width:20px}.wizard-dot{width:26px;height:26px;font-size:11px}}.login-page{background-color:var(--color-bg-secondary);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{border-radius:var(--radius-lg);padding:var(--spacing-xl);width:100%;max-width:420px;box-shadow:var(--shadow);gap:var(--spacing-lg);background-color:#0a2e2e;flex-direction:column;display:flex}.login-title{font-size:var(--font-size-xxl);color:#e5dfa3;text-align:center}.login-subtitle{color:#91bf9f;text-align:center;font-size:var(--font-size-sm);margin-top:calc(var(--spacing-sm) * -1)}.login-error{color:#e5dfa3;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background-color:#b42d1c}.login-form{gap:var(--spacing-md);flex-direction:column;display:flex}.login-form .form-field{gap:var(--spacing-xs);flex-direction:column;display:flex}.login-form label{font-size:var(--font-size-sm);color:#91bf9f;text-transform:uppercase;letter-spacing:.05em}.password-wrap{align-items:center;display:flex;position:relative}.password-wrap input{width:100%;padding-right:2.5rem}.btn-show-password{color:#91bf9f;cursor:pointer;opacity:.7;background:0 0;border:none;align-items:center;padding:.2rem;transition:opacity .15s;display:flex;position:absolute;right:.6rem}.btn-show-password:hover{opacity:1}.btn-show-password svg{width:1.1rem;height:1.1rem}.btn-login{color:#0a2e2e;font-weight:700;font-size:var(--font-size-md);padding:var(--spacing-md);border-radius:var(--radius-md);margin-top:var(--spacing-sm);background-color:#c09554}.btn-login:disabled{opacity:.6}.login-support{margin-top:var(--spacing-md);color:#60846a;text-align:center;font-size:.78rem}.login-support-link{color:#91bf9f;text-decoration:none}.login-support-link:hover{color:#e5dfa3;text-decoration:underline}.customer-portal{background:var(--color-bg-secondary);min-height:100vh;color:var(--color-text-primary);font-family:inherit}.cp-login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.cp-login-card{background:var(--color-card);border:1px solid var(--color-border);border-radius:14px;width:100%;max-width:400px;padding:2.5rem 2rem;box-shadow:0 8px 32px #00000040}.cp-login-logo{justify-content:center;margin-bottom:1.25rem;display:flex}.cp-login-logo-mark{background:var(--color-accent);color:#fff;letter-spacing:.02em;border-radius:12px;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.1rem;font-weight:800;display:flex}.cp-login-title{color:var(--color-text-primary);text-align:center;margin:0 0 .4rem;font-size:1.5rem;font-weight:700}.cp-login-sub{color:var(--color-panel);text-align:center;margin:0 0 1.75rem;font-size:.88rem;line-height:1.5}.cp-login-form{flex-direction:column;gap:1rem;display:flex}.cp-field{color:var(--color-panel);flex-direction:column;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.cp-field input{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-primary);border-radius:8px;padding:.6rem .75rem;font-family:inherit;font-size:.95rem}.cp-field input:focus{border-color:var(--color-accent);outline:none}.cp-error{color:var(--color-alert);margin:0;font-size:.82rem;line-height:1.4}.cp-btn-login{background:var(--color-accent);color:#fff;cursor:pointer;border:none;border-radius:8px;margin-top:.25rem;padding:.65rem 1.25rem;font-size:.95rem;font-weight:600;transition:opacity .15s}.cp-btn-login:disabled{opacity:.55;cursor:not-allowed}.cp-btn-login:hover:not(:disabled){opacity:.88}.cp-job-wrap{max-width:760px;margin:0 auto;padding:0 1.25rem 3rem}.cp-loading{min-height:100vh;color:var(--color-panel);justify-content:center;align-items:center;font-size:.95rem;display:flex}.cp-error-page{min-height:100vh;color:var(--color-alert);text-align:center;justify-content:center;align-items:center;padding:2rem;font-size:.95rem;display:flex}.cp-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;padding:1.75rem 0 1.25rem;display:flex}.cp-header-biz{align-items:flex-start;gap:.85rem;display:flex}.cp-biz-logo{object-fit:contain;background:#ffffff14;border-radius:8px;flex-shrink:0;width:52px;height:52px}.cp-biz-info{flex-direction:column;gap:.2rem;display:flex}.cp-biz-name{color:#e5dfa3;font-size:1.05rem;font-weight:700}.cp-tech-name{color:#91bf9f;font-size:.85rem}.cp-biz-contact{color:var(--color-panel);margin-top:.1rem;font-size:.8rem}.cp-biz-contact a{color:var(--color-accent);text-decoration:none}.cp-biz-contact a:hover{text-decoration:underline}.cp-wo-badge{color:var(--color-accent);white-space:nowrap;background:#c095541f;border:1px solid #c095544d;border-radius:6px;flex-shrink:0;padding:.3rem .65rem;font-family:monospace;font-size:.82rem;font-weight:700}.cp-section{margin-bottom:2rem}.cp-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--color-panel);border-bottom:1px solid var(--color-border);margin:0 0 .85rem;padding-bottom:.4rem;font-size:.72rem;font-weight:700}.cp-instrument-name{color:#e5dfa3;margin-bottom:.35rem;font-size:1.15rem;font-weight:600}.cp-instrument-desc{color:var(--color-panel);margin:0;font-size:.88rem;line-height:1.5}.cp-eta{color:var(--color-panel);margin:0 0 1.25rem;font-size:.88rem}.cp-eta strong{color:var(--color-text-primary)}.cp-tracker{flex-direction:column;gap:0;display:flex;position:relative}.cp-stage{align-items:flex-start;gap:.85rem;padding-bottom:0;display:flex;position:relative}.cp-stage-dot{z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.75rem;font-weight:700;display:flex;position:relative}.cp-stage.done .cp-stage-dot{color:#fff;background:#16a34a}.cp-stage.active .cp-stage-dot{background:var(--color-accent);color:#fff;box-shadow:0 0 0 4px #c0955433}.cp-stage.pending .cp-stage-dot{color:var(--color-panel);border:1px solid var(--color-border);background:#ffffff0f}.cp-stage-label{padding-top:5px;font-size:.9rem;line-height:1.3}.cp-stage.done .cp-stage-label{color:#91bf9f}.cp-stage.active .cp-stage-label{color:#e5dfa3;font-weight:600}.cp-stage.pending .cp-stage-label{color:var(--color-panel)}.cp-stage-line{background:var(--color-border);width:2px;height:28px;position:absolute;top:28px;left:13px}.cp-stage-line.done{background:#16a34a}.cp-stage:not(:last-child){padding-bottom:28px}.cp-photos-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;display:grid}.cp-photo-card{border:1px solid var(--color-border);background:#ffffff0a;border-radius:8px;overflow:hidden}.cp-photo-img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.cp-photo-caption{color:var(--color-panel);margin:0;padding:.5rem .65rem;font-size:.8rem}.cp-disclaimer{border:1px solid var(--color-border);color:var(--color-panel);background:#ffffff0a;border-radius:8px;margin-top:2.5rem;padding:1rem 1.25rem;font-size:.85rem;line-height:1.5}.cp-disclaimer p{margin:0}.cp-contact-link{color:var(--color-accent);font-weight:500;text-decoration:none}.cp-contact-link:hover{text-decoration:underline}.btn-share-portal{border:1px dashed var(--color-border);width:100%;color:var(--color-panel);cursor:pointer;text-align:center;background:0 0;border-radius:0 0 6px 6px;padding:.3rem .5rem;font-size:.75rem;transition:border-color .12s,color .12s}.btn-share-portal:hover{border-color:var(--color-accent);color:var(--color-accent)}.btn-share-portal.shared{color:#16a34a;background:#16a34a0f;border-style:solid;border-color:#16a34a}@media (width<=640px){.cp-login-card{padding:2rem 1.25rem}.cp-job-wrap{padding:0 1rem 2.5rem}.cp-header{flex-direction:column;gap:.75rem;padding:1.25rem 0 1rem}.cp-wo-badge{align-self:flex-start}.cp-photos-grid{grid-template-columns:repeat(2,1fr);gap:.6rem}}
