.brand-card{position:relative;background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:44px 40px;box-shadow:var(--shadow-card);max-width:420px;width:100%}.brand-card__tick{position:absolute;width:22px;height:22px;pointer-events:none}.brand-card__tick:before,.brand-card__tick:after{content:"";position:absolute;background:var(--accent-primary)}.brand-card__tick:before{top:50%;left:0;width:100%;height:2px;transform:translateY(-50%)}.brand-card__tick:after{left:50%;top:0;width:2px;height:100%;transform:translate(-50%)}.brand-card__tick--tl{top:-11px;left:-11px}.brand-card__tick--br{bottom:-11px;right:-11px}.brand-card__content{color:var(--text-primary)}.login-page{min-height:100%;display:grid;grid-template-columns:1.1fr 1fr;background:var(--bg-app)}.login-brand{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:64px;border-right:1px solid var(--border-subtle)}.login-logo{width:380px;max-width:80%;height:auto;margin-bottom:32px}.login-tagline{font-family:var(--font-mono);font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--slate-600)}.login-blurb{font-family:var(--font-body);font-size:1.1rem;color:var(--text-secondary);max-width:40ch;margin:24px auto 0}.login-panel{display:flex;align-items:center;justify-content:center;padding:64px 32px}.login-form-title{font-family:var(--font-display);font-weight:600;font-size:1.4rem;color:var(--text-primary);margin-bottom:4px}.login-form-subtitle{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--orange-600);margin-bottom:28px;display:block}.login-field{margin-bottom:18px}.login-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.login-field input{width:100%;padding:11px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.95rem;background:var(--white);color:var(--text-primary)}.login-field input:focus-visible{border-color:var(--accent-primary)}.login-hint{font-size:.78rem;color:var(--slate-400);margin-top:-8px;margin-bottom:18px}.login-submit{width:100%;padding:12px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;transition:background-color .15s ease}.login-submit:hover:not(:disabled){background:var(--accent-primary-hover)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}@media (max-width: 860px){.login-page{grid-template-columns:1fr}.login-brand{border-right:none;border-bottom:1px solid var(--border-subtle);padding:48px 32px 32px;align-items:center;text-align:center}.login-panel{padding:32px}}.scan-page{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;background:var(--bg-app);text-align:center}.scan-logo{width:200px;max-width:70%;height:auto;margin-bottom:32px}.scan-loading{color:var(--text-secondary)}.scan-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:32px 28px;max-width:380px;width:100%}.scan-company{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--slate-400)}.scan-panel-label{font-family:var(--font-display);font-weight:700;font-size:1.6rem;color:var(--text-primary);margin:8px 0 4px}.scan-building-name{color:var(--text-secondary);font-size:.95rem;margin-bottom:28px}.scan-btn{display:block;width:100%;padding:14px;border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;margin-bottom:12px}.scan-btn--primary{background:var(--accent-primary);color:var(--white);border:none}.scan-btn--primary:hover{background:var(--accent-primary-hover)}.scan-btn--secondary{background:var(--white);color:var(--orange-600);border:1.5px solid var(--orange-300)}.scan-btn--secondary:hover{background:var(--orange-tint)}.scan-portal-disabled{font-size:.82rem;color:var(--slate-400);margin-top:4px}.scan-error{color:#a34a3d;font-weight:600;font-size:1.1rem}.scan-error-sub{color:var(--text-secondary);font-size:.9rem;margin-top:8px}.sigpad{border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);overflow:hidden;background:var(--white)}.sigpad-canvas{width:100%;height:160px;display:block;touch-action:none;cursor:crosshair;background:linear-gradient(var(--paper) 1px,transparent 1px);background-size:100% 40px}.sigpad-footer{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid var(--border-subtle)}.sigpad-hint{font-size:.78rem;color:var(--slate-400)}.sigpad-clear-btn{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.pcf-shell{min-height:100vh;background:var(--bg-app);display:flex;justify-content:center;padding:24px 16px}.pcf-card{width:100%;max-width:520px;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:28px 20px}.pcf-card--success{text-align:center;padding:48px 20px}.pcf-title{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--accent-primary);margin:0 0 2px}.pcf-subtitle{color:var(--slate-400);font-size:.9rem;margin:0 0 20px}.pcf-error{background:#fdeceb;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 14px;font-size:.86rem;margin-bottom:16px}.pcf-blocked{background:#fdeceb;color:#a34a3d;border-radius:var(--radius-sm);padding:16px;font-size:.92rem;line-height:1.5}.pcf-step{display:flex;flex-direction:column;gap:16px}.pcf-step-hint{font-size:.86rem;color:var(--slate-500);margin:0}.pcf-field{display:flex;flex-direction:column;gap:5px}.pcf-field-row{display:flex;gap:12px}.pcf-field-row .pcf-field{flex:1;min-width:0}.pcf-field label{font-size:.82rem;font-weight:600;color:var(--slate-700)}.pcf-field input{padding:11px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:1rem}.pcf-minor-note{background:var(--orange-tint);color:var(--orange-600);border-radius:var(--radius-sm);padding:12px 14px;font-size:.86rem;line-height:1.5;margin:0}.pcf-minor-policy{font-size:.8rem;color:var(--slate-400);font-style:italic}.pcf-health-q{border-bottom:1px solid var(--border-subtle);padding-bottom:14px}.pcf-health-label{font-size:.9rem;color:var(--text-primary);margin:0 0 8px;line-height:1.4}.pcf-yesno{display:flex;gap:8px}.pcf-yesno-btn{flex:1;padding:10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);font-weight:600;font-size:.9rem;color:var(--slate-500);cursor:pointer}.pcf-yesno-btn--active{border-color:var(--accent-primary);background:var(--orange-tint);color:var(--orange-600)}.pcf-health-detail{width:100%;margin-top:8px;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.9rem}.pcf-photo-preview-row{display:flex;align-items:center;gap:12px}.pcf-photo-preview{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-sm)}.pcf-photo-clear-btn{background:none;border:none;font-size:.82rem;font-weight:600;color:#a34a3d;cursor:pointer}.pcf-photo-upload-btn{display:inline-block;padding:12px 20px;border-radius:var(--radius-sm);border:1.5px dashed var(--slate-300);text-align:center;font-size:.9rem;font-weight:600;color:var(--slate-500);cursor:pointer}.pcf-consent-text{font-size:.87rem;line-height:1.55;color:var(--text-primary)}.pcf-consent-text p{margin:0 0 12px}.pcf-consent-text p:last-child{margin-bottom:0}.pcf-actions{display:flex;justify-content:space-between;align-items:center;margin-top:24px}.pcf-back-btn{background:none;border:none;font-weight:600;color:var(--slate-500);cursor:pointer;font-size:.92rem;padding:12px 8px}.pcf-next-btn,.pcf-submit-btn{margin-left:auto;background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:13px 28px;font-family:var(--font-display);font-weight:700;font-size:.95rem;cursor:pointer}.pcf-next-btn:hover,.pcf-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.pcf-submit-btn:disabled{opacity:.6;cursor:not-allowed}.pcf-choice-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.pcf-choice-returning{padding:13px 28px;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm)}.pcf-back-link{background:none;border:none;font-size:.82rem;font-weight:600;color:var(--slate-500);cursor:pointer;padding:0;margin-bottom:16px}.pcf-back-link:hover{color:var(--orange-600)}.pcf-artist-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.pcf-artist-btn{padding:14px 18px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text-primary);cursor:pointer;text-align:left}.pcf-artist-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.dashboard-shell{min-height:100%;background:var(--bg-app);color:var(--text-primary)}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;background:var(--white);border-bottom:1px solid var(--border-subtle)}.dashboard-topbar-logo{height:34px;width:auto}.dashboard-logout{background:none;border:1.5px solid var(--slate-200);color:var(--text-primary);padding:8px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.85rem;cursor:pointer}.dashboard-logout:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover)}.dashboard-body{padding:48px 32px;max-width:720px}.dashboard-role-tag{display:inline-block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;background:var(--orange-tint);color:var(--orange-600);padding:4px 10px;border-radius:999px;margin-bottom:16px;border:1px solid var(--orange-300)}.dashboard-heading{font-family:var(--font-display);font-weight:600;font-size:1.8rem;margin-bottom:8px}.dashboard-note{color:var(--text-secondary);max-width:52ch;margin-top:16px}.pa-page{min-height:100vh;background:var(--paper)}.pa-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--white);border-bottom:1px solid var(--border-subtle)}.pa-title{font-family:var(--font-display);font-weight:700;font-size:1.15rem;color:var(--text-primary)}.pa-topbar-right{display:flex;align-items:center;gap:14px}.pa-user{font-size:.85rem;color:var(--text-secondary)}.pa-logout{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:7px 14px;font-size:.82rem;font-weight:600;color:var(--slate-600);cursor:pointer}.pa-logout:hover{border-color:var(--accent-primary);color:var(--orange-600)}.pa-content{max-width:900px;margin:0 auto;padding:24px 20px 60px}.pa-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:22px}.pa-tab{padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer}.pa-tab:hover{color:var(--text-primary)}.pa-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.pa-tab-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;gap:12px;flex-wrap:wrap}.pa-tab-note{font-size:.82rem;color:var(--slate-400)}.pa-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.pa-loading,.pa-empty{color:var(--slate-400);font-size:.9rem}.pa-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);margin-bottom:10px;overflow:hidden}.pa-card-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;cursor:pointer;gap:12px;flex-wrap:wrap}.pa-card-title{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-primary)}.pa-card-sub{font-size:.78rem;color:var(--slate-400);margin-top:2px}.pa-card-stats{display:flex;align-items:center;gap:16px}.pa-stat{font-size:.8rem;color:var(--slate-500)}.pa-stat strong{color:var(--text-primary);font-weight:700}.pa-badge{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:700;background:#e2f1ec;color:#3f8f6f}.pa-badge--inactive{background:var(--slate-100);color:var(--slate-400)}.pa-card-detail{border-top:1px solid var(--border-subtle);padding:12px 16px}.pa-table{width:100%;border-collapse:collapse;font-size:.85rem}.pa-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:6px 8px;border-bottom:1px solid var(--border-subtle)}.pa-table td{padding:8px;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.pa-status-select{padding:6px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.82rem;background:var(--white);color:var(--text-primary)}.pa-ticket-description{padding:0 16px 14px;font-size:.85rem;color:var(--text-secondary);white-space:pre-wrap}.pa-action-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.pa-action-link--danger{color:#a34a3d}.pa-action-link:hover{text-decoration:underline}.pa-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap}.pa-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.pa-add-btn:disabled{opacity:.6;cursor:not-allowed}.pa-cancel-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.pa-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.pa-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:400px;width:100%}.pa-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;margin-bottom:16px}.pa-field{margin-bottom:14px}.pa-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.pa-field input{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.pa-field-hint{font-size:.74rem;color:var(--slate-400);margin-top:5px}.pa-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.pa-billing-panel{border-bottom:1px solid var(--border-subtle);padding-bottom:14px;margin-bottom:14px}.pa-field--inline{display:flex;flex-direction:column}.pa-billing-exempt{font-size:.85rem;color:var(--slate-400);font-style:italic}.pa-billing-status-row{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}.pa-badge--billing-active{background:#e2f1ec;color:#3f8f6f}.pa-badge--billing-trialing{background:var(--orange-tint);color:var(--orange-600)}.pa-badge--billing-past_due{background:#fdeceb;color:#a34a3d}.pa-badge--billing-canceled,.pa-badge--billing-incomplete{background:var(--slate-100);color:var(--slate-400)}.pa-billing-form{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:10px}.pa-billing-form .pa-field{margin-bottom:0}.pa-billing-form input,.pa-billing-form select{width:130px}.pa-billing-checkout{margin-top:4px}.pa-checkout-link{margin-top:10px}.pa-checkout-link input{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-mono);font-size:.78rem;background:var(--paper);color:var(--text-primary)}.pa-billing-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.pa-modules-panel{background:var(--paper);border-radius:var(--radius-sm);padding:12px 14px;margin-top:12px}.pa-modules-title{font-family:var(--font-display);font-weight:600;font-size:.82rem;color:var(--slate-600);margin-bottom:8px}.pa-modules-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-primary);cursor:pointer}.pa-modules-label-row{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:.82rem;color:var(--slate-600)}.pa-modules-label-row input{padding:6px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.85rem;width:140px}.pa-modules-saved{display:inline-block;margin-top:8px;font-size:.78rem;font-weight:600;color:#3f8f6f}.my-schedule-page{min-height:100vh;background:var(--paper)}.my-schedule-topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--white);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:10}.my-schedule-title{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--text-primary)}.my-schedule-logout{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:7px 14px;font-size:.82rem;font-weight:600;color:var(--slate-600);cursor:pointer}.my-schedule-logout:hover{border-color:var(--accent-primary);color:var(--orange-600)}.my-schedule-content{max-width:640px;margin:0 auto;padding:20px 16px 60px}.my-schedule-greeting{color:var(--text-secondary);font-size:.92rem;margin-bottom:20px}.my-schedule-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.my-schedule-empty{color:var(--slate-400);font-size:.9rem}.my-schedule-day{margin-bottom:22px}.my-schedule-day-heading{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-primary);margin-bottom:8px}.my-schedule-entry{background:var(--white);border-radius:var(--radius-md);padding:14px 16px;box-shadow:var(--shadow-card);margin-bottom:8px}.my-schedule-chip{display:inline-block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;font-weight:600;color:var(--white);margin-bottom:6px}.my-schedule-chip--project{background:var(--accent-primary)}.my-schedule-chip--service{background:#3f8f6f}.my-schedule-chip--inspection{background:var(--slate-600)}.my-schedule-chip--other{background:var(--slate-400)}.my-schedule-chip--time_off{background:#8a5a44}.my-schedule-entry-title{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-primary)}.my-schedule-entry-meta{font-size:.82rem;color:var(--slate-500);margin-top:2px}.my-schedule-entry-notes{font-size:.85rem;color:var(--text-secondary);margin-top:6px}.gt-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;pointer-events:none}.gt-spotlit{position:relative;z-index:2001;box-shadow:0 0 0 9999px #141518b8;border-radius:var(--radius-sm, 6px)}.gt-tooltip{position:fixed;z-index:2002;width:280px;background:#fff;border:3px solid #F0791E;border-radius:var(--radius-md, 10px);box-shadow:0 0 40px 4px #f0791e80,0 12px 32px #00000080;padding:18px;pointer-events:auto}.gt-tooltip-step{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--orange-600, #d9531e);margin-bottom:6px}.gt-tooltip h4{margin:0 0 6px;font-size:1rem}.gt-tooltip p{margin:0 0 16px;font-size:.86rem;color:var(--slate-500, #565a61);line-height:1.45}.gt-tooltip-actions{display:flex;align-items:center;justify-content:space-between}.gt-skip-btn{background:none;border:none;color:var(--slate-400, #8a8e96);font-size:.82rem;cursor:pointer;padding:0}.gt-skip-btn:hover{text-decoration:underline}.gt-tooltip-nav{display:flex;gap:8px}.gt-back-btn{background:none;border:1.5px solid var(--slate-200, #dadde1);border-radius:var(--radius-sm, 6px);padding:7px 14px;font-size:.82rem;font-weight:600;cursor:pointer}.gt-next-btn{background:var(--orange-500, #f0791e);color:#fff;border:none;border-radius:var(--radius-sm, 6px);padding:7px 16px;font-size:.82rem;font-weight:700;cursor:pointer}.gt-next-btn:hover{background:var(--orange-600, #d9531e)}.admin-shell{min-height:100%;display:grid;grid-template-columns:220px 1fr;background:var(--bg-app)}.admin-sidebar{background:var(--white);border-right:1px solid var(--border-subtle);padding:24px 20px;display:flex;flex-direction:column;min-height:100%}.admin-sidebar-logo{width:100%;max-width:150px;height:auto;margin-bottom:32px}.admin-sidebar-powered-by{margin-top:auto;padding-top:20px;display:flex;align-items:center;gap:8px}.admin-sidebar-powered-by span{font-size:.68rem;color:var(--slate-400);white-space:nowrap}.admin-sidebar-powered-by img{height:64px;width:auto;opacity:.7}.admin-nav{display:flex;flex-direction:column;gap:4px}.admin-nav-link{display:block;padding:10px 12px;border-radius:var(--radius-sm);font-family:var(--font-body);font-weight:500;font-size:.92rem;color:var(--slate-600);text-decoration:none}.admin-nav-link:hover{background:var(--slate-100);color:var(--text-primary)}.admin-nav-link--active{background:var(--orange-tint);color:var(--orange-600);font-weight:600}.admin-main{display:flex;flex-direction:column;min-width:0}.admin-topbar{display:flex;align-items:center;justify-content:flex-end;gap:16px;padding:16px 32px;background:var(--white);border-bottom:1px solid var(--border-subtle)}.admin-topbar-user{font-size:.88rem;color:var(--text-secondary)}.admin-logout{background:none;border:1.5px solid var(--slate-200);color:var(--text-primary);padding:7px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.85rem;cursor:pointer}.admin-logout:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover)}.admin-content{padding:32px;flex:1}@media (max-width: 900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:flex;align-items:center;justify-content:space-between;border-right:none;border-bottom:1px solid var(--border-subtle);padding:12px 20px}.admin-sidebar-logo{margin-bottom:0;max-width:110px}.admin-sidebar-powered-by{display:none}.admin-nav{flex-direction:row;flex-wrap:wrap;justify-content:flex-end}.admin-nav-link{padding:8px 10px}}.admin-demo-banner{grid-column:1 / -1;background:var(--orange-500, #F0791E);color:#fff;text-align:center;font-size:.86rem;font-weight:600;padding:8px 16px}.admin-demo-banner-tour-btn{background:none;border:1.5px solid rgba(255,255,255,.6);border-radius:var(--radius-sm, 6px);color:#fff;font-size:.78rem;font-weight:700;padding:3px 10px;cursor:pointer;margin-left:4px}.admin-demo-banner-tour-btn:hover{background:#ffffff26}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b313873;display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal-dialog{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);width:100%;max-width:440px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-subtle)}.modal-title{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--text-primary)}.modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:var(--slate-400);cursor:pointer;padding:4px}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:24px}.confirm-delete-warning{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.confirm-delete-instruction{font-size:.88rem;color:var(--text-primary);margin-bottom:10px}.confirm-delete-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.confirm-delete-input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;margin-bottom:16px}.confirm-delete-input:focus-visible{border-color:#a34a3d}.confirm-delete-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:#a34a3d;color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer}.confirm-delete-btn:hover:not(:disabled){background:#8a3d31}.confirm-delete-btn:disabled{opacity:.4;cursor:not-allowed}.staff-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.staff-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.staff-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.staff-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer}.staff-add-btn:hover{background:var(--accent-primary-hover)}.staff-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.staff-loading{color:var(--text-secondary)}.staff-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.staff-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.staff-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.staff-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.staff-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary)}.staff-table tr:last-child td{border-bottom:none}.staff-role-badge{font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;background:var(--slate-100);color:var(--slate-700);padding:3px 8px;border-radius:999px}.staff-status-badge{font-size:.78rem;font-weight:600;color:var(--accent-success)}.staff-status-badge--inactive{color:var(--slate-400)}.staff-last-login{color:var(--text-secondary);font-size:.85rem}.staff-actions{display:flex;gap:14px;white-space:nowrap}.staff-action-link{background:none;border:none;padding:0;color:var(--orange-600);font-size:.82rem;font-family:var(--font-body);cursor:pointer}.staff-action-link:hover{text-decoration:underline}.staff-action-link--danger{color:#a34a3d}.staff-field{margin-bottom:16px}.staff-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.staff-field input,.staff-field select{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary)}.staff-field input:focus-visible,.staff-field select:focus-visible{border-color:var(--accent-primary)}.staff-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.staff-submit-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer;margin-top:4px}.staff-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.staff-submit-btn:disabled{opacity:.6;cursor:not-allowed}.accounts-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:20px}.accounts-tab{padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer}.accounts-tab:hover{color:var(--text-primary)}.accounts-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.accounts-tab-header{display:flex;justify-content:flex-end;margin-bottom:16px}.staff-consent-field{background:var(--paper);border-radius:var(--radius-sm);padding:10px 12px}.staff-consent-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.staff-consent-label input[type=checkbox]{margin-top:3px;flex-shrink:0}.staff-consent-label span{font-size:.78rem;line-height:1.4;color:var(--slate-600);font-weight:400}.support-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.support-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.support-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.support-submit-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.support-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.support-submit-btn--full{width:100%}.support-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.support-loading,.support-empty{color:var(--slate-400)}.support-card{background:var(--white);border-radius:var(--radius-md);padding:16px 18px;box-shadow:var(--shadow-card);margin-bottom:10px}.support-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.support-card-title{font-family:var(--font-display);font-weight:600;font-size:.98rem;color:var(--text-primary)}.support-card-date{font-size:.76rem;color:var(--slate-400);margin-top:2px;margin-bottom:8px}.support-card-description{font-size:.88rem;color:var(--text-secondary);white-space:pre-wrap}.support-status-badge{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:700;white-space:nowrap}.support-status-badge--open{background:#fdeceb;color:#a34a3d}.support-status-badge--in_progress{background:var(--orange-tint);color:var(--orange-600)}.support-status-badge--closed{background:#e2f1ec;color:#3f8f6f}.support-field{margin-bottom:16px}.support-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.support-field input,.support-field textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary);resize:vertical}.sub-header{margin-bottom:24px}.sub-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.sub-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.sub-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.sub-loading{color:var(--slate-400)}.sub-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:24px;max-width:480px}.sub-exempt,.sub-empty{color:var(--slate-400);font-size:.9rem}.sub-row{display:flex;align-items:center;gap:14px;margin-bottom:12px}.sub-stat{font-size:.9rem;color:var(--slate-500)}.sub-stat strong{color:var(--text-primary);font-weight:700}.sub-status-badge{font-family:var(--font-mono);font-size:.66rem;text-transform:uppercase;padding:3px 9px;border-radius:999px;font-weight:700}.sub-status-badge--active{background:#e2f1ec;color:#3f8f6f}.sub-status-badge--trialing{background:var(--orange-tint);color:var(--orange-600)}.sub-status-badge--past_due{background:#fdeceb;color:#a34a3d}.sub-status-badge--canceled,.sub-status-badge--incomplete{background:var(--slate-100);color:var(--slate-400)}.sub-price{font-size:1.05rem;color:var(--text-primary);margin-bottom:18px}.sub-price strong{font-weight:700}.sub-active-note{font-size:.85rem;color:var(--slate-500);line-height:1.5}.sub-pay-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:11px 20px;font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer}.sub-pay-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.sub-pay-btn:disabled{opacity:.6;cursor:not-allowed}.sub-fee-note{font-size:.76rem;color:var(--slate-400);margin-top:8px}.cs-header{margin-bottom:20px}.cs-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.cs-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem;max-width:480px}.cs-loading{color:var(--slate-400)}.cs-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.cs-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:18px 20px;margin-bottom:14px;max-width:560px}.cs-card-label{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--text-primary);margin-bottom:4px}.cs-card-hint{font-size:.8rem;color:var(--slate-400);margin-bottom:14px}.cs-logo-row{display:flex;align-items:center;gap:16px;margin-top:10px}.cs-logo-preview{width:72px;height:72px;border-radius:var(--radius-sm);object-fit:contain;background:var(--paper);flex-shrink:0}.cs-logo-preview--empty{background:var(--slate-100)}.cs-upload-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:8px 16px;font-size:.85rem;font-weight:600;color:var(--slate-600);cursor:pointer}.cs-upload-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.cs-color-row{display:flex;align-items:center;gap:12px;margin-top:10px}.cs-color-input{width:48px;height:40px;padding:2px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);cursor:pointer;background:none}.cs-color-value{font-family:var(--font-mono);font-size:.88rem;color:var(--text-primary);text-transform:uppercase}.cs-field-row{display:flex;gap:14px}.cs-field{margin-bottom:14px;flex:1}.cs-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.cs-field input{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.cs-save-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 20px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer}.cs-save-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.cs-save-btn:disabled{opacity:.6;cursor:not-allowed}.al-header{margin-bottom:20px}.al-title{font-family:var(--font-display);font-size:1.5rem;margin:0 0 4px}.al-subtitle{color:var(--slate-400);font-size:.88rem;margin:0}.al-filter-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:18px}.al-filter-field{display:flex;flex-direction:column;gap:4px;min-width:160px}.al-filter-field label{font-size:.76rem;font-weight:600;color:var(--slate-500)}.al-filter-field input,.al-filter-field select{padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.86rem}.al-error{background:#fdeceb;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 14px;font-size:.86rem}.al-loading,.al-empty{color:var(--slate-400);font-size:.9rem}.al-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.al-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.al-table td{padding:9px 14px;border-bottom:1px solid var(--border-subtle);font-size:.85rem;color:var(--text-primary)}.al-mono{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-500);white-space:nowrap}.al-row--clickable{cursor:pointer}.al-row--clickable:hover{background:var(--paper)}.al-expand-cell{color:var(--slate-400);width:20px}.al-details-cell{background:var(--paper);padding:12px 14px!important}.al-details-json{margin:0;font-family:var(--font-mono);font-size:.78rem;color:var(--slate-600);white-space:pre-wrap;word-break:break-word}.al-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px}.al-page-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:7px 14px;font-size:.84rem;font-weight:600;color:var(--slate-600);cursor:pointer}.al-page-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--orange-600)}.al-page-btn:disabled{opacity:.5;cursor:not-allowed}.al-page-label{font-size:.84rem;color:var(--slate-500)}@media (max-width: 900px){.al-table{display:block;overflow-x:auto;white-space:nowrap}}.tt-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:24px}.tt-tab{padding:13px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1.5px}.tt-tab:hover{color:var(--text-primary)}.tt-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.ts-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.ts-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.ts-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.ts-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.ts-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.ts-add-btn:disabled{opacity:.6;cursor:not-allowed}.ts-filter-row{display:flex;align-items:flex-end;gap:14px;margin-bottom:16px;flex-wrap:wrap}.ts-filter-field{min-width:140px}.ts-filter-field label{display:block;font-size:.78rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.ts-filter-field input,.ts-filter-field select{width:100%;padding:7px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.85rem}.ts-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.ts-loading,.ts-empty{color:var(--slate-400)}.ts-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.ts-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.ts-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:.86rem;color:var(--text-primary)}.ts-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.ts-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:560px;width:100%;max-height:88vh;overflow-y:auto}.ts-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary);margin-bottom:16px}.ts-field{margin-bottom:14px}.ts-field-row{display:flex;gap:12px}.ts-field-row .ts-field{flex:1}.ts-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.ts-field input,.ts-field select,.ts-field textarea{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.ts-consent-hint{font-size:.76rem;color:var(--slate-400);margin-top:4px}.ts-selected-client{display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-radius:var(--radius-sm);padding:10px 12px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.ts-clear-btn{background:none;border:none;font-size:.78rem;font-weight:600;color:var(--orange-600);cursor:pointer}.ts-client-results{margin-top:6px;border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.ts-client-result-row{display:block;width:100%;text-align:left;background:var(--white);border:none;padding:8px 12px;font-size:.86rem;color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-subtle)}.ts-client-result-row:last-child{border-bottom:none}.ts-client-result-row:hover{background:var(--paper)}.ts-new-client-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer;margin-top:6px}.ts-new-client-box{border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px}.ts-new-client-box input{padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.88rem}.ts-new-client-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.ts-entries-section{margin-bottom:16px}.ts-entries-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ts-entries-header span{font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--text-primary)}.ts-row-add-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:5px 12px;font-size:.78rem;font-weight:600;color:var(--slate-600);cursor:pointer}.ts-row-add-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.ts-entry-row{display:grid;grid-template-columns:1fr .8fr .8fr .8fr auto;gap:6px;margin-bottom:6px;align-items:center}.ts-entry-row--needle{grid-template-columns:1.2fr 1fr 1fr auto}.ts-entry-row input{padding:7px 9px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.84rem}.ts-checklist{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:4px}.ts-checklist-empty{color:var(--slate-400);font-size:.84rem;margin:0 0 10px}.ts-checklist-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.86rem;color:var(--text-primary);cursor:pointer}.ts-checklist-item input[type=checkbox]{width:16px;height:16px;flex-shrink:0}.ts-checklist-item--checked{border-color:var(--accent-primary);background:var(--orange-tint);font-weight:600}.ts-manual-toggle-btn{background:none;border:none;font-size:.82rem;font-weight:600;color:var(--slate-500);cursor:pointer;padding:4px 0}.ts-manual-toggle-btn:hover{color:var(--orange-600)}.ts-row-remove-btn{background:none;border:none;color:var(--slate-400);font-size:1.1rem;cursor:pointer;line-height:1}.ts-row-remove-btn:hover{color:#a34a3d}.ts-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.ts-cancel-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.ts-status-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;white-space:nowrap}.ts-status-badge--incomplete{background:var(--orange-tint);color:var(--orange-600)}.ts-status-badge--logged{background:#e2f1ec;color:#3f8f6f}.ts-complete-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.ts-complete-link:hover{text-decoration:underline}.ts-modal-subtitle{font-size:.85rem;color:var(--slate-400);margin-top:-10px;margin-bottom:16px}@media (max-width: 900px){.ts-modal{max-width:100%;max-height:92vh}.ts-field-row{flex-direction:column;gap:0}.ts-entry-row,.ts-entry-row--needle{grid-template-columns:1fr;gap:8px;background:var(--paper);border-radius:var(--radius-sm);padding:10px;margin-bottom:10px}.ts-row-remove-btn{justify-self:end;font-size:1.4rem;padding:4px 10px}}@media (pointer: coarse){.ts-add-btn,.ts-cancel-btn,.ts-row-add-btn,.ts-complete-link,.ts-new-client-link,.ts-clear-btn,.ts-delete-session-btn,.ts-download-pdf-btn,.ts-photo-upload-btn,.ts-manual-toggle-btn,.ts-intake-link-btn,.ts-intake-copy-btn{min-height:44px;padding-top:12px;padding-bottom:12px}.ts-field input,.ts-field textarea,.ts-entry-row input,.ts-filter-field input,.ts-filter-field select,.ts-checklist-item{min-height:44px}.ts-client-result-row{padding:12px 14px}.ts-row-remove-btn{min-width:44px;min-height:44px}}.ts-logged-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:6px;font-size:.86rem;color:var(--text-primary)}.ts-mono{font-family:var(--font-mono);font-size:.8rem;color:var(--slate-500)}.ts-modal-actions--split{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.ts-delete-session-btn{background:none;border:1.5px solid #e8a49c;color:#a34a3d;border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.ts-delete-session-btn:hover:not(:disabled){background:#fdeceb}.ts-delete-session-btn:disabled{opacity:.6;cursor:not-allowed}.ts-photo-row{display:flex;align-items:center;gap:14px}.ts-photo-preview{width:80px;height:80px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.ts-photo-preview--empty{background:var(--slate-100)}.ts-photo-actions{display:flex;flex-direction:column;gap:6px}.ts-photo-upload-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:7px 14px;font-size:.82rem;font-weight:600;color:var(--slate-600);cursor:pointer;text-align:center}.ts-photo-upload-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.ts-photo-remove-btn{background:none;border:none;font-size:.78rem;font-weight:600;color:#a34a3d;cursor:pointer}.ts-photo-remove-btn:hover{text-decoration:underline}.ts-download-pdf-btn{background:none;border:1.5px solid var(--slate-200);color:var(--slate-600);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.ts-download-pdf-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--orange-600)}.ts-download-pdf-btn:disabled{opacity:.6;cursor:not-allowed}.ts-header-actions{display:flex;align-items:center;gap:10px}.ts-intake-link-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.ts-intake-link-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.ts-modal--narrow{max-width:380px}.ts-intake-qr{display:block;margin:16px auto;width:180px;height:180px}.ts-intake-qr--loading{display:flex;align-items:center;justify-content:center;background:var(--paper);border-radius:var(--radius-sm);color:var(--slate-400);font-size:.82rem}.ts-intake-url-row{display:flex;gap:8px;margin-bottom:16px}.ts-intake-url-input{flex:1;min-width:0;padding:9px 11px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.82rem;font-family:var(--font-mono);color:var(--slate-600)}.ts-intake-copy-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:0 16px;font-weight:600;font-size:.84rem;cursor:pointer;white-space:nowrap}.ts-client-link{color:var(--text-primary);font-weight:600;text-decoration:none}.ts-client-link:hover{color:var(--orange-600);text-decoration:underline}.tech-shell{min-height:100%;display:flex;flex-direction:column;background:var(--bg-app)}.tech-topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--white);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:10}.tech-topbar-brand{display:flex;align-items:center;gap:10px}.tech-topbar-logo{height:28px;width:auto}.tech-topbar-powered-by{height:16px;width:auto;opacity:.6}.tech-logout{background:none;border:1.5px solid var(--slate-200);color:var(--text-primary);padding:6px 12px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.8rem;cursor:pointer}.tech-content{flex:1;padding:16px 16px 84px;max-width:560px;width:100%;margin:0 auto}.tech-tabbar{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:var(--white);border-top:1px solid var(--border-subtle);padding-bottom:env(safe-area-inset-bottom,0);z-index:10}.tech-tab{text-align:center;padding:12px 4px;font-size:.78rem;font-weight:600;color:var(--slate-400);text-decoration:none}.tech-tab--active{color:var(--orange-600);box-shadow:inset 0 2px 0 var(--accent-primary)}@media (min-width: 720px){.tech-content{padding:24px 24px 84px}.tech-tabbar{grid-template-columns:repeat(5,minmax(90px,140px));justify-content:center;margin:0 auto}}.tsr-header{margin:20px 0 16px}.tsr-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.tsr-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.tsr-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.tsr-filters{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:18px 20px;margin-bottom:20px}.tsr-filter-row{display:flex;gap:14px;margin-bottom:14px;flex-wrap:wrap}.tsr-field{flex:1;min-width:140px}.tsr-field label{display:block;font-size:.78rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.tsr-field input,.tsr-field select{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem}.tsr-filter-actions{display:flex;justify-content:flex-end;gap:10px}.tsr-clear-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 18px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.tsr-search-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:9px 20px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.tsr-search-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.tsr-search-btn:disabled{opacity:.6;cursor:not-allowed}.tsr-empty{color:var(--slate-400)}.tsr-groups{display:flex;flex-direction:column;gap:10px}.tsr-folder{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.tsr-folder-header{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left;flex-wrap:wrap}.tsr-folder-icon{color:var(--slate-400);font-size:.8rem;width:12px}.tsr-folder-client{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-primary)}.tsr-folder-date,.tsr-folder-artist{color:var(--slate-400);font-size:.82rem}.tsr-folder-count{margin-left:auto;font-size:.78rem;color:var(--slate-500);background:var(--paper);padding:3px 9px;border-radius:999px}.tsr-folder-body{border-top:1px solid var(--border-subtle);padding:4px 16px 14px}.tsr-match-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border-subtle);font-size:.86rem;color:var(--text-primary)}.tsr-match-row:last-of-type{border-bottom:none}.tsr-view-session-btn{margin-top:10px;background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:8px 16px;font-family:var(--font-display);font-weight:600;font-size:.82rem;color:var(--slate-600);cursor:pointer}.tsr-view-session-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.tsr-mono{font-family:var(--font-mono);font-size:.82rem}.tsr-type-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700}.tsr-type-badge--ink{background:var(--orange-tint);color:var(--orange-600)}.tsr-type-badge--needle{background:#d6e4f0;color:#1a3a5c}@media (max-width: 900px){.tsr-filter-row{flex-direction:column;gap:12px}.tsr-field{min-width:0}.tsr-folder-header{gap:8px}.tsr-folder-count{margin-left:0}}@media (pointer: coarse){.tsr-search-btn,.tsr-clear-btn,.tsr-view-session-btn{min-height:44px;padding-top:12px;padding-bottom:12px}.tsr-field input,.tsr-field select{min-height:44px}}.tsr-export-all-row{display:flex;justify-content:flex-end;margin-bottom:12px}.tsr-export-all-btn{background:var(--ink, #1a1a1a);color:#fff;border:none;border-radius:var(--radius-sm, 6px);padding:9px 18px;font-size:.86rem;font-weight:600;cursor:pointer}.tsr-export-all-btn:hover:not(:disabled){opacity:.9}.tsr-export-all-btn:disabled{opacity:.6;cursor:wait}.cd-back-link{display:inline-block;font-size:.85rem;font-weight:600;color:var(--slate-500);text-decoration:none;margin-bottom:16px}.cd-back-link:hover{color:var(--orange-600)}.cd-error,.cd-loading{color:var(--slate-400)}.cd-header{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;margin-bottom:20px}.cd-name{font-family:var(--font-display);font-size:1.4rem;margin:0 0 12px}.cd-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;font-size:.88rem;color:var(--text-primary)}.cd-contact-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);font-weight:700;margin-bottom:2px}.cd-section{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;margin-bottom:20px}.cd-section-title{font-family:var(--font-display);font-size:1rem;margin:0 0 14px}.cd-empty{color:var(--slate-400);font-size:.86rem}.cd-session-list{display:flex;flex-direction:column;gap:6px}.cd-session-row{display:grid;grid-template-columns:100px 1fr 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border-subtle);background:none;font-size:.86rem;color:var(--text-primary);cursor:pointer;text-align:left}.cd-session-row:hover{border-color:var(--accent-primary)}.cd-status{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;justify-self:end}.cd-status--incomplete{background:var(--orange-tint);color:var(--orange-600)}.cd-status--logged{background:#e2f1ec;color:#3f8f6f}.cd-consent-list{display:flex;flex-direction:column;gap:10px}.cd-consent-card{border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.cd-consent-header{width:100%;display:flex;align-items:center;gap:12px;padding:8px 14px}.cd-consent-toggle{flex:1;display:flex;align-items:center;gap:12px;background:none;border:none;cursor:pointer;text-align:left;font-size:.88rem;padding:4px 0}.cd-consent-delete-btn{background:none;border:none;font-size:.8rem;font-weight:600;color:#a34a3d;cursor:pointer;flex-shrink:0}.cd-consent-delete-btn:hover{text-decoration:underline}.cd-consent-icon{color:var(--slate-400);width:12px}.cd-minor-badge{margin-left:auto;background:var(--orange-tint);color:var(--orange-600);font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px}.cd-consent-body{border-top:1px solid var(--border-subtle);padding:14px;display:flex;flex-direction:column;gap:16px}.cd-consent-subsection h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-500);margin:0 0 8px}.cd-health-flag{font-size:.86rem;margin:0 0 6px;color:var(--text-primary)}.cd-photo-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}.cd-photo{width:120px;height:90px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.cd-signature{max-width:220px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--white)}.cd-pdf-list{display:flex;flex-direction:column;gap:6px}.cd-pdf-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--border-subtle);font-size:.86rem;color:var(--text-primary);text-decoration:none}.cd-pdf-row:hover{border-color:var(--accent-primary)}.cd-pdf-generated{color:var(--slate-400);font-size:.8rem}.cd-pdf-download{color:var(--orange-600);font-weight:600;font-size:.82rem;justify-self:end}.tc-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}.tc-title{font-family:var(--font-display);font-size:1.5rem;margin:0 0 4px}.tc-subtitle{color:var(--slate-400);font-size:.88rem;margin:0}.tc-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:700;font-size:.9rem;cursor:pointer}.tc-add-btn:hover{background:var(--accent-primary-hover)}.tc-search-row{margin-bottom:16px;max-width:360px}.tc-search-input{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.9rem}.tc-error{background:#fdeceb;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 14px;font-size:.86rem}.tc-loading,.tc-empty{color:var(--slate-400);font-size:.9rem}.tc-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.tc-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.tc-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:.88rem;color:var(--text-primary)}.tc-name-link{color:var(--text-primary);font-weight:600;text-decoration:none}.tc-name-link:hover{color:var(--orange-600);text-decoration:underline}.tc-row-actions{display:flex;gap:12px}.tc-action-link{background:none;border:none;font-size:.82rem;font-weight:600;color:var(--slate-500);cursor:pointer}.tc-action-link:hover{color:var(--orange-600)}.tc-action-link--danger:hover{color:#a34a3d}.tc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.tc-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:460px;width:100%;max-height:88vh;overflow-y:auto}.tc-modal-title{font-family:var(--font-display);font-size:1.2rem;margin:0 0 16px}.tc-field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.tc-field-row{display:flex;gap:12px}.tc-field-row .tc-field{flex:1;min-width:0}.tc-field label{font-size:.82rem;font-weight:600;color:var(--slate-700)}.tc-field input,.tc-field textarea{padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.9rem}.tc-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.tc-cancel-btn{background:none;border:none;font-weight:600;color:var(--slate-500);cursor:pointer;padding:10px 14px}.tc-submit-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 20px;font-family:var(--font-display);font-weight:700;font-size:.9rem;cursor:pointer}.tc-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.tc-submit-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 900px){.tc-field-row{flex-direction:column;gap:0}.tc-table{display:block;overflow-x:auto;white-space:nowrap}}@media (pointer: coarse){.tc-add-btn,.tc-cancel-btn,.tc-submit-btn,.tc-field input,.tc-field textarea,.tc-search-input{min-height:44px}}.billing-header{margin-bottom:24px}.billing-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.billing-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.billing-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:20px}.billing-tab{padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer}.billing-tab:hover{color:var(--text-primary)}.billing-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.billing-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm)}.billing-loading,.billing-empty{color:var(--slate-400);font-size:.9rem}.billing-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.billing-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.billing-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:.86rem;color:var(--text-primary)}.billing-table tr:last-child td{border-bottom:none}.billing-mono{font-family:var(--font-mono);font-weight:600}.billing-job-link{color:var(--orange-600);text-decoration:none;font-weight:500}.billing-job-link:hover{text-decoration:underline}.billing-total{font-weight:700}.billing-date{color:var(--slate-400);white-space:nowrap}.billing-status-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;white-space:nowrap}.billing-status-badge--draft{background:var(--slate-100);color:var(--slate-500)}.billing-status-badge--sent{background:var(--orange-tint);color:var(--orange-600)}.billing-status-badge--accepted{background:#e2f1ec;color:#3f8f6f}.billing-status-badge--declined{background:#fdeceb;color:#a34a3d}.billing-status-badge--expired{background:var(--slate-100);color:var(--slate-400)}.billing-status-badge--paid{background:#e2f1ec;color:#3f8f6f}.billing-status-badge--partial{background:var(--orange-tint);color:var(--orange-600)}.billing-status-badge--overdue{background:#fdeceb;color:#a34a3d}.billing-status-badge--void{background:var(--slate-100);color:var(--slate-400)}.billing-action-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.billing-action-link:hover{text-decoration:underline}.qbo-panel{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:16px 20px;margin-bottom:20px}.qbo-panel-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.qbo-panel-title{font-family:var(--font-display);font-weight:600;font-size:.98rem;color:var(--text-primary)}.qbo-panel-sub{font-size:.84rem;color:var(--slate-500);margin-top:2px}.qbo-connect-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap}.qbo-connect-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.qbo-connect-btn:disabled,.qbo-disconnect-btn:disabled{opacity:.6;cursor:not-allowed}.qbo-disconnect-btn{background:none;border:1.5px solid var(--slate-200);color:var(--slate-600);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap}.qbo-disconnect-btn:hover:not(:disabled){border-color:#a34a3d;color:#a34a3d}.qbo-note{font-size:.85rem;padding:9px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.qbo-note--success{background:#e2f1ec;color:#3f8f6f}.qbo-note--error{background:#fdeceb;color:#a34a3d}.qbo-note--info{background:var(--slate-100);color:var(--slate-500)}.parts-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;flex-wrap:wrap;gap:12px}.parts-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.parts-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.parts-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.parts-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.parts-inactive-toggle{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--slate-500);margin-bottom:16px;cursor:pointer}.parts-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.parts-loading,.parts-empty{color:var(--slate-400)}.parts-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.parts-table th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:10px 14px;border-bottom:1px solid var(--border-subtle)}.parts-table td{padding:10px 14px;border-bottom:1px solid var(--border-subtle);font-size:.86rem;color:var(--text-primary)}.parts-row--inactive td{color:var(--slate-400)}.parts-mono{font-family:var(--font-mono);font-size:.82rem}.parts-price{font-weight:700}.parts-row-actions{display:flex;gap:12px}.parts-action-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.parts-action-link--danger{color:#a34a3d}.parts-action-link:hover{text-decoration:underline}.parts-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.parts-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:460px;width:100%;max-height:88vh;overflow-y:auto}.parts-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary);margin-bottom:16px}.parts-field{margin-bottom:14px;flex:1}.parts-field-row{display:flex;gap:12px}.parts-field--checkbox label{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--slate-600);font-weight:500;cursor:pointer}.parts-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.parts-field input,.parts-field select,.parts-field textarea{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.parts-submit-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:11px 18px;font-family:var(--font-display);font-weight:600;font-size:.9rem;cursor:pointer;width:100%}.parts-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.parts-submit-btn:disabled{opacity:.6;cursor:not-allowed}.parts-thumb{width:36px;height:36px;border-radius:var(--radius-sm);object-fit:cover;display:block}.parts-thumb--empty{background:var(--slate-100)}.parts-photo-hint{font-size:.8rem;color:var(--slate-400)}.parts-photo-row{display:flex;align-items:center;gap:14px}.parts-photo-preview{width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.parts-photo-preview--empty{background:var(--slate-100)}.parts-photo-actions{display:flex;flex-direction:column;gap:6px}.parts-photo-upload-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:7px 14px;font-size:.82rem;font-weight:600;color:var(--slate-600);cursor:pointer;text-align:center}.parts-photo-upload-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.parts-photo-remove-btn{background:none;border:none;font-size:.78rem;font-weight:600;color:#a34a3d;cursor:pointer}.parts-photo-remove-btn:hover{text-decoration:underline}.parts-type-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;white-space:nowrap}.parts-type-badge--ink{background:var(--orange-tint);color:var(--orange-600)}.parts-type-badge--needle{background:#d6e4f0;color:#1a3a5c}.parts-expired{color:#a34a3d;font-weight:600}.parts-closed-hint{font-size:.76rem;color:var(--slate-400);margin-top:4px}.parts-modal--narrow{max-width:380px}.parts-modal-subtitle{font-size:.84rem;color:var(--slate-400);margin:-8px 0 16px}.parts-favorite-star{color:var(--orange-500);margin-right:6px}.parts-reorder-photo-row{display:flex;align-items:center;gap:12px}.parts-reorder-photo-preview{width:90px;height:90px;object-fit:cover;border-radius:var(--radius-sm)}.home-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.home-subtitle{color:var(--text-secondary);margin-top:4px;margin-bottom:28px;font-size:.92rem}.home-loading,.home-error{color:var(--text-secondary)}.home-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:32px}.home-stat-card{background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:4px}.home-stat-value{font-family:var(--font-display);font-weight:700;font-size:1.7rem;color:var(--text-primary)}.home-stat-label{font-size:.8rem;color:var(--slate-400)}.home-stat-note{font-size:.7rem;color:var(--orange-600);text-transform:uppercase;letter-spacing:.03em}.home-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:20px}.home-chart-card{background:var(--white);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-card)}.home-chart-title{font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--text-primary);margin-bottom:12px}.home-chart-empty{color:var(--slate-400);font-size:.88rem}.home-week-schedule{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:20px;margin-top:20px}.home-week-loading{color:var(--slate-400)}.home-week-empty{color:var(--slate-300);font-size:.82rem;margin-top:8px}.home-today-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.home-today-entry{display:flex;align-items:center;gap:12px;background:var(--paper);border-radius:var(--radius-sm);padding:10px 14px;flex-wrap:wrap}.home-today-entry-time{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-500);min-width:110px}.home-today-entry-title{font-size:.86rem;font-weight:600;color:var(--text-primary)}.home-today-entry-name{margin-left:auto;font-size:.78rem;color:var(--slate-400)}.calendar-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}.calendar-header-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.calendar-notify-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer;white-space:nowrap}.calendar-notify-btn:hover{background:var(--accent-primary-hover)}.calendar-notify-btn--secondary{background:var(--white);color:var(--orange-600);border:1.5px solid var(--orange-300)}.calendar-notify-btn--secondary:hover{background:var(--orange-tint)}.calendar-add-dropdown{position:relative;display:inline-block}.calendar-add-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);border:1px solid var(--border-subtle);display:flex;flex-direction:column;min-width:180px;z-index:30;overflow:hidden}.calendar-add-dropdown-menu button{background:none;border:none;text-align:left;padding:10px 14px;font-family:var(--font-body);font-size:.88rem;color:var(--text-primary);cursor:pointer}.calendar-add-dropdown-menu button:hover{background:var(--orange-tint);color:var(--orange-600)}.calendar-notify-copy{font-size:.9rem;color:var(--text-secondary);margin-bottom:16px;line-height:1.5}.calendar-notify-list{list-style:none;margin:0 0 16px;padding:0;font-size:.88rem;color:var(--text-primary);display:flex;flex-direction:column;gap:8px}.calendar-notify-copy--muted{font-size:.8rem;color:var(--slate-400);margin-bottom:8px}.calendar-notify-list--muted{font-size:.82rem;color:var(--slate-400);gap:4px}.calendar-notify-send-btn{width:100%;padding:12px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer}.calendar-notify-send-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.calendar-notify-send-btn:disabled{opacity:.6;cursor:not-allowed}.calendar-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.calendar-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.calendar-nav{display:flex;align-items:center;gap:8px}.calendar-nav-btn{background:var(--white);border:1.5px solid var(--slate-200);color:var(--text-primary);border-radius:var(--radius-sm);padding:7px 12px;font-size:1rem;cursor:pointer;line-height:1}.calendar-nav-btn:hover{border-color:var(--accent-primary)}.calendar-nav-btn--today{font-size:.82rem;font-family:var(--font-body)}.calendar-month-label{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary);min-width:160px;text-align:center}.calendar-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.calendar-view-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:20px}.calendar-view-tab{padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--slate-400);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer}.calendar-view-tab:hover{color:var(--text-primary)}.calendar-view-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.calendar-job-view-link{display:block;text-align:center;text-decoration:none}.spreadsheet-nav{display:flex;align-items:center;gap:10px;margin-bottom:16px}.spreadsheet-scroll{overflow-x:auto;border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.spreadsheet-table{width:100%;min-width:720px;border-collapse:collapse;background:var(--white)}.spreadsheet-table th{text-align:center;font-size:.72rem;font-weight:600;color:var(--slate-500);padding:10px 6px;border-bottom:1.5px solid var(--border-subtle);white-space:nowrap}.spreadsheet-employee-col{text-align:left!important;padding-left:14px!important;min-width:140px;position:sticky;left:0;background:var(--white);z-index:1;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--text-primary)}.spreadsheet-cell{border:1px solid var(--border-subtle);padding:6px;min-width:100px;vertical-align:top;cursor:pointer;display:table-cell}.spreadsheet-cell:hover{background:var(--paper)}.spreadsheet-cell .calendar-chip{display:block;margin-bottom:3px}.calendar-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.calendar-filter-select{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.85rem;background:var(--white);color:var(--text-primary)}.calendar-holiday-label{display:block;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.02em;color:var(--orange-600);background:var(--orange-tint);padding:1px 4px;border-radius:3px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-holiday-badge{font-size:.9rem;font-weight:600;color:var(--orange-600);background:var(--orange-tint);padding:8px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.calendar-loading{color:var(--text-secondary);margin-top:12px}.calendar-weekday-row{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}.calendar-weekday{text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--slate-400);font-weight:600;padding-bottom:4px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.calendar-day{background:var(--white);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-height:100px;padding:8px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:6px;font-family:var(--font-body)}.calendar-day:hover{border-color:var(--accent-primary)}.calendar-day--outside{background:var(--paper);opacity:.55}.calendar-day--today{border-color:var(--accent-primary);border-width:2px}.calendar-day--holiday{background:var(--orange-tint)}.calendar-day-number{font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--text-primary)}.calendar-day-entries{display:flex;flex-direction:column;gap:3px}.calendar-chip{display:inline-block;font-size:.68rem;padding:2px 6px;border-radius:4px;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.calendar-chip--project{background:var(--orange-500)}.calendar-chip--service{background:#3f8f6f}.calendar-chip--inspection{background:var(--slate-600)}.calendar-chip--other{background:var(--slate-400)}.calendar-chip--time_off{background:#8a5a44}.calendar-chip--tattoo_session{background:#6b4ba3}.calendar-chip-overflow{font-size:.68rem;color:var(--slate-400)}.calendar-day-modal-empty{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.calendar-day-modal-list{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px}.calendar-day-modal-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.calendar-day-modal-item:last-child{border-bottom:none;padding-bottom:0}.calendar-day-modal-item-title{font-size:.9rem;color:var(--text-primary);margin-top:6px}.calendar-day-modal-item-notes{font-size:.82rem;color:var(--text-secondary);margin-top:4px}.calendar-day-modal-delete{background:none;border:none;color:#a34a3d;font-size:.8rem;cursor:pointer;white-space:nowrap}.calendar-day-modal-delete:hover{text-decoration:underline}.calendar-day-modal-delete-group{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.calendar-day-modal-add-btn{width:100%;padding:10px;border-radius:var(--radius-sm);border:1.5px dashed var(--slate-200);background:none;color:var(--orange-600);font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.calendar-day-modal-add-btn:hover{border-color:var(--accent-primary);background:var(--orange-tint)}.calendar-add-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-subtle)}.calendar-add-field{margin-bottom:12px}.calendar-add-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-weekday-picker{display:flex;gap:6px;flex-wrap:wrap}.calendar-weekday-toggle{padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--slate-600);font-size:.8rem;font-weight:600;cursor:pointer}.calendar-weekday-toggle--active{border-color:var(--accent-primary);background:var(--orange-tint);color:var(--orange-600)}.calendar-add-field label{display:block;font-size:.78rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.calendar-add-field input,.calendar-add-field select,.calendar-add-field textarea{width:100%;padding:9px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;background:var(--white);color:var(--text-primary);resize:vertical}.calendar-add-actions{display:flex;gap:10px;margin-top:4px}.calendar-add-cancel{flex:1;padding:10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--text-primary);font-size:.85rem;cursor:pointer}.calendar-add-submit{flex:1;padding:10px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.calendar-add-submit:hover:not(:disabled){background:var(--accent-primary-hover)}.calendar-add-submit:disabled{opacity:.6;cursor:not-allowed}.calendar-add-hint{font-size:.78rem;color:var(--slate-400);margin-top:8px}@media (max-width: 720px){.calendar-day{min-height:64px}.calendar-chip{font-size:.6rem}}.calendar-selected-client{display:flex;align-items:center;justify-content:space-between;background:var(--paper);border-radius:var(--radius-sm);padding:10px 12px;font-size:.9rem;font-weight:600;color:var(--text-primary)}.calendar-clear-client-btn{background:none;border:none;font-size:.78rem;font-weight:600;color:var(--orange-600);cursor:pointer}.calendar-client-results{margin-top:6px;border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.calendar-client-result-row{display:block;width:100%;text-align:left;background:var(--white);border:none;padding:8px 12px;font-size:.86rem;color:var(--text-primary);cursor:pointer;border-bottom:1px solid var(--border-subtle)}.calendar-client-result-row:last-child{border-bottom:none}.calendar-client-result-row:hover{background:var(--paper)}.calendar-new-client-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer;margin-top:6px}.calendar-new-client-box{border:1.5px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px}.calendar-new-client-box input{padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.88rem}.calendar-new-client-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}@media (pointer: coarse){.calendar-selected-client,.calendar-new-client-link,.calendar-clear-client-btn,.calendar-add-submit,.calendar-add-field input,.calendar-add-field select,.calendar-new-client-box input{min-height:44px}.calendar-client-result-row{padding:12px 14px}}.field-tooltip{position:relative;display:inline-block;margin-left:6px;vertical-align:middle}.field-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--slate-200);color:var(--slate-700);font-size:.68rem;font-weight:700;cursor:help;-webkit-user-select:none;user-select:none}.field-tooltip-icon:hover,.field-tooltip-icon:focus{background:var(--accent-primary);color:var(--white);outline:none}.field-tooltip-bubble{display:none;position:absolute;bottom:130%;left:0;background:var(--slate-900);color:var(--white);padding:8px 10px;border-radius:6px;font-size:.78rem;font-weight:400;line-height:1.4;white-space:normal;width:230px;z-index:20;box-shadow:0 4px 12px #0003}.field-tooltip-bubble:after{content:"";position:absolute;top:100%;left:8px;border:5px solid transparent;border-top-color:var(--slate-900)}.field-tooltip-icon:hover+.field-tooltip-bubble,.field-tooltip-icon:focus+.field-tooltip-bubble{display:block}.service-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.service-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.service-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.service-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:20px}.service-back-link:hover{color:var(--accent-primary-hover)}.service-header-actions{display:flex;gap:10px;align-items:center}.service-filter{padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;background:var(--white);color:var(--text-primary)}.service-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.service-add-btn:hover{background:var(--accent-primary-hover)}.service-add-btn--small{padding:7px 12px;font-size:.8rem}.service-job-order-upload-label{display:inline-block;margin-top:8px;color:var(--orange-600);font-size:.82rem;font-weight:600;cursor:pointer}.service-job-order-upload-label:hover{text-decoration:underline}.service-delete-btn{background:none;border:1.5px solid #d9b3ae;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.service-delete-btn:hover{background:#fdeceb}.service-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.service-loading,.service-empty-inline{color:var(--text-secondary)}.service-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.service-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.service-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.service-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.service-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary)}.service-table tr:last-child td{border-bottom:none}.service-row-link{color:var(--text-primary);font-weight:600;text-decoration:none}.service-row-link:hover{color:var(--orange-600)}.service-status-badge{display:inline-block;font-family:var(--font-mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 10px;border-radius:999px;font-weight:600}.service-status-badge--open{background:var(--slate-100);color:var(--slate-700)}.service-status-badge--assigned{background:var(--orange-tint);color:var(--orange-600)}.service-status-badge--in_progress{background:#fdf2c4;color:#8a6d0a}.service-status-badge--completed{background:#e2f1ec;color:#3f8f6f}.service-field{margin-bottom:16px}.service-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:-8px;margin-bottom:16px}.service-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.service-field input,.service-field select,.service-field textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary);resize:vertical}.service-submit-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer;margin-top:4px}.service-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.service-submit-btn:disabled{opacity:.6;cursor:not-allowed}.service-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:28px}.service-detail-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card)}.service-detail-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;margin-bottom:8px}.service-reassign-select{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem}.service-section{margin-bottom:28px}.service-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary);margin-bottom:10px}.service-scope-text{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.service-completion-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);margin-bottom:14px;font-size:.9rem;color:var(--text-primary)}.service-completion-card p{margin-bottom:8px}.service-completion-date{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-400)}.service-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:10px}.service-photo-thumb{width:100%;height:90px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.link-customer-mode-toggle{display:flex;gap:8px;margin-bottom:20px}.link-customer-mode-btn{flex:1;padding:8px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--slate-600);font-family:var(--font-body);font-size:.85rem;cursor:pointer}.link-customer-mode-btn--active{border-color:var(--accent-primary);color:var(--orange-600);background:var(--orange-tint);font-weight:600}.link-customer-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.link-customer-field{margin-bottom:16px}.link-customer-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.link-customer-field input{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary)}.link-customer-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.link-customer-submit{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer}.link-customer-submit:hover:not(:disabled){background:var(--accent-primary-hover)}.link-customer-submit:disabled{opacity:.6;cursor:not-allowed}.job-attachments{background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);margin-top:16px}.job-attachments-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.job-attachments-title{font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--text-primary)}.job-attachments-upload-label{display:inline-block;padding:7px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--orange-300);color:var(--orange-600);font-size:.82rem;font-weight:600;cursor:pointer;background:var(--white)}.job-attachments-upload-label:hover{background:var(--orange-tint)}.job-attachments-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.82rem;padding:8px 10px;border-radius:var(--radius-sm);margin-bottom:10px}.job-attachments-empty{color:var(--slate-400);font-size:.85rem}.job-attachments-list{display:flex;flex-direction:column;gap:6px}.job-attachments-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--paper)}.job-attachments-file-btn{background:none;border:none;color:var(--orange-600);font-weight:600;font-size:.85rem;text-align:left;cursor:pointer;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-attachments-file-btn:hover{text-decoration:underline}.job-attachments-meta{font-size:.72rem;color:var(--slate-400);white-space:nowrap}.job-attachments-delete{background:none;border:none;color:#a34a3d;font-size:.78rem;cursor:pointer;white-space:nowrap}.job-attachments-delete:hover{text-decoration:underline}.quotes-section{margin-top:28px}.quotes-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.quotes-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary)}.quotes-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-family:var(--font-display);font-weight:600;font-size:.82rem;cursor:pointer}.quotes-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.quotes-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.quotes-loading,.quotes-empty{color:var(--slate-400);font-size:.88rem}.quotes-list{display:flex;flex-direction:column;gap:8px}.quotes-row{display:flex;align-items:center;gap:16px;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:12px 14px;flex-wrap:wrap}.quotes-row-main{display:flex;align-items:center;gap:10px;min-width:160px}.quotes-row-number{font-family:var(--font-mono);font-weight:600;font-size:.86rem;color:var(--text-primary)}.quotes-status-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700}.quotes-status-badge--draft{background:var(--slate-100);color:var(--slate-500)}.quotes-status-badge--sent{background:var(--orange-tint);color:var(--orange-600)}.quotes-status-badge--accepted{background:#e2f1ec;color:#3f8f6f}.quotes-status-badge--declined{background:#fdeceb;color:#a34a3d}.quotes-status-badge--expired{background:var(--slate-100);color:var(--slate-400)}.quotes-status-badge--paid{background:#e2f1ec;color:#3f8f6f}.quotes-status-badge--partial{background:var(--orange-tint);color:var(--orange-600)}.quotes-status-badge--overdue{background:#fdeceb;color:#a34a3d}.quotes-status-badge--void{background:var(--slate-100);color:var(--slate-400)}.quotes-row-total{font-weight:700;color:var(--text-primary);font-size:.9rem}.quotes-row-balance{font-weight:600;color:var(--orange-600);font-size:.8rem}.quotes-modal--narrow{max-width:380px}.quotes-row-date{font-size:.8rem;color:var(--slate-400)}.quotes-row-actions{display:flex;gap:12px;margin-left:auto}.quotes-action-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.quotes-action-link--danger{color:#a34a3d}.quotes-action-link:hover{text-decoration:underline}.quotes-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.quotes-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:640px;width:100%;max-height:88vh;overflow-y:auto}.quotes-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.quotes-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary)}.quotes-modal-close{background:none;border:none;font-size:1.4rem;color:var(--slate-400);cursor:pointer;line-height:1}.quotes-modal-customer{font-size:.88rem;color:var(--slate-500);margin-bottom:14px}.quotes-field{margin-bottom:14px}.quotes-field--inline{display:flex;align-items:center;gap:10px}.quotes-field--inline label{margin-bottom:0;white-space:nowrap}.quotes-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.quotes-field input,.quotes-field select,.quotes-field textarea{padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;width:100%}.quotes-field--inline input,.quotes-field--inline select{width:auto}.quotes-line-items-table{width:100%;border-collapse:collapse;margin-bottom:8px}.quotes-line-items-table th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);padding:4px 6px}.quotes-line-items-table td{padding:4px 6px}.quotes-line-items-table input{padding:6px 8px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.85rem;width:100%}.quotes-num-input{width:70px!important}.quotes-line-total{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap}.quotes-remove-row-btn{background:none;border:none;color:var(--slate-400);font-size:1.1rem;cursor:pointer;line-height:1}.quotes-remove-row-btn:hover{color:#a34a3d}.quotes-add-row-btn{background:none;border:1.5px dashed var(--slate-200);border-radius:var(--radius-sm);padding:6px 12px;font-size:.8rem;color:var(--slate-500);cursor:pointer;margin-bottom:16px}.quotes-add-row-btn:hover{border-color:var(--accent-primary);color:var(--orange-600)}.quotes-totals{display:flex;align-items:flex-start;justify-content:space-between;background:var(--paper);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px;flex-wrap:wrap;gap:12px}.quotes-totals-lines{text-align:right;font-size:.85rem;color:var(--slate-600)}.quotes-totals-lines p{margin:2px 0}.quotes-total-final{font-weight:700;font-size:.98rem;color:var(--text-primary)}.quotes-submit-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:11px 18px;font-family:var(--font-display);font-weight:600;font-size:.9rem;cursor:pointer;width:100%}.quotes-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.quotes-submit-btn:disabled{opacity:.6;cursor:not-allowed}.jm-section{margin-top:28px}.jm-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.jm-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary)}.jm-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-family:var(--font-display);font-weight:600;font-size:.82rem;cursor:pointer}.jm-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.jm-add-btn:disabled{opacity:.6;cursor:not-allowed}.jm-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.jm-loading,.jm-empty{color:var(--slate-400);font-size:.88rem}.jm-list{display:flex;flex-direction:column;gap:8px}.jm-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:12px 14px;flex-wrap:wrap}.jm-row-main{display:flex;align-items:center;gap:10px}.jm-row-desc{font-weight:600;font-size:.88rem;color:var(--text-primary)}.jm-row-qty{font-size:.82rem;color:var(--slate-500)}.jm-invoiced-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;background:#e2f1ec;color:#3f8f6f}.jm-row-right{display:flex;align-items:center;gap:14px}.jm-row-total{font-weight:700;color:var(--text-primary);font-size:.88rem}.jm-row-meta{font-size:.76rem;color:var(--slate-400);white-space:nowrap}.jm-delete-btn{background:none;border:none;color:var(--slate-400);font-size:1.2rem;cursor:pointer;line-height:1}.jm-delete-btn:hover{color:#a34a3d}.jm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.jm-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:420px;width:100%}.jm-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary);margin-bottom:16px}.jm-mode-toggle{display:flex;gap:6px;margin-bottom:16px;border-bottom:1.5px solid var(--border-subtle)}.jm-mode-btn{padding:8px 4px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-400);cursor:pointer}.jm-mode-btn--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.jm-field{margin-bottom:14px}.jm-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.jm-field input,.jm-field select{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.jm-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.jm-cancel-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.vi-section{margin-top:28px}.vi-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.vi-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary)}.vi-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:8px 14px;font-family:var(--font-display);font-weight:600;font-size:.82rem;cursor:pointer}.vi-add-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.vi-add-btn:disabled{opacity:.6;cursor:not-allowed}.vi-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:12px}.vi-loading,.vi-empty{color:var(--slate-400);font-size:.88rem}.vi-list{display:flex;flex-direction:column;gap:8px}.vi-row{display:flex;align-items:center;gap:16px;background:var(--white);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:12px 14px;flex-wrap:wrap}.vi-row-main{display:flex;align-items:center;gap:8px;min-width:160px}.vi-row-vendor{font-weight:600;font-size:.88rem;color:var(--text-primary)}.vi-row-number{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-400)}.vi-row-amount{font-weight:700;color:var(--text-primary);font-size:.9rem}.vi-row-meta{font-size:.76rem;color:var(--slate-400);white-space:nowrap}.vi-row-actions{display:flex;gap:12px;margin-left:auto}.vi-action-link{background:none;border:none;font-size:.8rem;font-weight:600;color:var(--orange-600);cursor:pointer}.vi-action-link--danger{color:#a34a3d}.vi-action-link:hover{text-decoration:underline}.vi-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.vi-modal{background:var(--white);border-radius:var(--radius-md);padding:24px;max-width:420px;width:100%}.vi-modal-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary);margin-bottom:16px}.vi-field{margin-bottom:14px}.vi-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:5px}.vi-field input{width:100%;padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.9rem}.vi-field input[type=file]{padding:6px 0;border:none}.vi-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}.vi-cancel-btn{background:none;border:1.5px solid var(--slate-200);border-radius:var(--radius-sm);padding:9px 16px;font-family:var(--font-display);font-weight:600;font-size:.85rem;color:var(--slate-600);cursor:pointer}.projects-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.projects-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.projects-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.projects-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:20px}.projects-back-link:hover{color:var(--accent-primary-hover)}.projects-header-actions{display:flex;gap:10px;align-items:center}.projects-filter{padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;background:var(--white);color:var(--text-primary)}.projects-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.projects-add-btn:hover{background:var(--accent-primary-hover)}.projects-delete-btn{background:none;border:1.5px solid #d9b3ae;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.projects-delete-btn:hover{background:#fdeceb}.projects-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.projects-loading,.projects-empty-inline{color:var(--text-secondary)}.projects-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.projects-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.project-card{display:block;background:var(--white);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-card);text-decoration:none;border-top:3px solid var(--accent-primary);color:var(--text-primary)}.project-card-name{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin:10px 0 6px}.project-card-detail{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.project-card-foreman{font-size:.82rem;color:var(--slate-400);margin-top:10px}.project-card-eta{font-size:.78rem;color:var(--orange-600);margin-top:4px;font-family:var(--font-mono)}.projects-status-badge{display:inline-block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;font-weight:600}.projects-status-badge--active{background:#e2f1ec;color:#3f8f6f}.projects-status-badge--on_hold{background:#fdf2c4;color:#8a6d0a}.projects-status-badge--completed{background:var(--slate-100);color:var(--slate-700)}.projects-field{margin-bottom:16px}.projects-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.projects-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.projects-field input,.projects-field select,.projects-field textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary);resize:vertical}.projects-submit-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer;margin-top:4px}.projects-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.projects-submit-btn:disabled{opacity:.6;cursor:not-allowed}.projects-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:28px}.projects-detail-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card)}.projects-detail-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;margin-bottom:8px}.projects-detail-note{font-size:.72rem;color:var(--slate-400);margin-top:4px}.projects-progress-track{width:100%;height:8px;background:var(--slate-100);border-radius:999px;overflow:hidden;margin-top:4px}.projects-progress-fill{height:100%;background:var(--accent-primary);border-radius:999px}.projects-progress-label{font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary);margin-top:6px}.projects-inline-select{width:100%;padding:8px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem}.projects-section{margin-bottom:28px}.projects-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.projects-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary)}.projects-add-report-btn{background:none;border:1.5px solid var(--orange-300);color:var(--orange-600);border-radius:var(--radius-sm);padding:7px 14px;font-family:var(--font-display);font-weight:600;font-size:.82rem;cursor:pointer}.projects-add-report-btn:hover{background:var(--orange-tint)}.projects-scope-text{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.projects-report-form{background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);margin-bottom:16px}.projects-job-order-upload-label{display:inline-block;margin-top:8px;color:var(--orange-600);font-size:.82rem;font-weight:600;cursor:pointer}.projects-job-order-upload-label:hover{text-decoration:underline}.projects-crew-checklist{display:flex;flex-wrap:wrap;gap:10px 18px;background:var(--paper);border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);padding:12px}.projects-crew-checkbox{display:flex;align-items:center;gap:6px;font-size:.88rem;color:var(--text-primary);font-weight:400;cursor:pointer}.projects-report-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);margin-bottom:12px;font-size:.9rem;color:var(--text-primary)}.projects-report-card-header{display:flex;justify-content:space-between;margin-bottom:8px}.projects-report-date{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-400)}.projects-report-foreman{font-size:.8rem;color:var(--slate-600);font-weight:600}.projects-report-work{margin-bottom:8px;white-space:pre-wrap}.projects-report-crew{font-size:.85rem;color:var(--text-secondary);margin-bottom:6px}.projects-report-eta{font-size:.78rem;color:var(--orange-600);font-family:var(--font-mono)}.tech-page-title{font-family:var(--font-display);font-weight:600;font-size:1.4rem;color:var(--text-primary);margin-bottom:4px}.tech-page-subtitle{color:var(--text-secondary);font-size:.88rem;margin-bottom:20px}.tech-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:16px}.tech-loading,.tech-empty-inline{color:var(--text-secondary);font-size:.9rem}.tech-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.tech-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:32px 20px;text-align:center;color:var(--text-secondary)}.tech-empty-sub{font-size:.85rem;margin-top:6px;color:var(--slate-400)}.tech-card-list{display:flex;flex-direction:column;gap:10px}.tech-card{display:block;background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);text-decoration:none;color:var(--text-primary);border-left:4px solid var(--accent-primary)}.tech-card-title{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:4px}.tech-card-detail{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.tech-badge{display:inline-block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;font-weight:600;margin-bottom:8px}.tech-badge--open,.tech-badge--active{background:var(--slate-100);color:var(--slate-700)}.tech-badge--assigned{background:var(--orange-tint);color:var(--orange-600)}.tech-badge--in_progress{background:#fdf2c4;color:#8a6d0a}.tech-badge--completed,.tech-badge--on_hold{background:#e2f1ec;color:#3f8f6f}.tech-section{margin-bottom:24px}.tech-section-title{font-family:var(--font-display);font-weight:600;font-size:1rem;color:var(--text-primary);margin-bottom:10px}.tech-section-title--spaced{margin-top:16px}.tech-detail-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);margin-bottom:12px;font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.tech-field{margin-bottom:14px}.tech-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.tech-field input,.tech-field select,.tech-field textarea{width:100%;padding:11px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:1rem;background:var(--white);color:var(--text-primary);resize:vertical}.tech-field input[type=checkbox]{width:auto;padding:0;height:20px}.tech-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.tech-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tech-btn{width:100%;padding:13px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer}.tech-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.tech-btn:disabled{opacity:.6;cursor:not-allowed}.tech-btn--secondary{background:none;border:1.5px solid var(--orange-300);color:var(--orange-600)}.tech-btn--secondary:hover:not(:disabled){background:var(--orange-tint)}.tech-btn--link{display:block;text-align:center;text-decoration:none;margin-top:12px}.tech-pdf-preview{margin:14px 0 20px;display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow-y:auto;border-radius:var(--radius-sm)}.tech-pdf-preview-page{width:100%;height:auto;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);box-shadow:var(--shadow-card)}.tech-photo-input-label{display:block;text-align:center;padding:20px;border:1.5px dashed var(--slate-200);border-radius:var(--radius-md);color:var(--orange-600);font-weight:600;font-size:.9rem;cursor:pointer;margin-bottom:14px}.tech-photo-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.tech-photo-preview{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.tech-collapsible-toggle{background:none;border:none;color:var(--slate-600);font-size:.85rem;padding:8px 0;cursor:pointer;text-align:left;width:100%}.tech-crew-checklist{display:flex;flex-direction:column;gap:10px;background:var(--paper);border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);padding:12px}.tech-crew-checkbox{display:flex;align-items:center;gap:8px;font-size:.92rem;color:var(--text-primary);font-weight:400}.tech-report-date{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-400);margin-bottom:6px}.tech-section--spaced{margin-top:20px}.tech-history-row-header{display:flex;justify-content:space-between;align-items:flex-start}.ipm-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:24px}.ipm-tab{padding:10px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1.5px}.ipm-tab:hover{color:var(--text-primary)}.ipm-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.buildings-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.buildings-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.buildings-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.buildings-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:20px}.buildings-back-link:hover{color:var(--accent-primary-hover)}.buildings-add-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.buildings-add-btn:hover{background:var(--accent-primary-hover)}.buildings-header-actions{display:flex;gap:10px}.buildings-delete-btn{background:none;border:1.5px solid #d9b3ae;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.buildings-delete-btn:hover{background:#fdeceb}.buildings-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.buildings-loading{color:var(--text-secondary)}.buildings-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.buildings-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.buildings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.building-card{display:block;background:var(--white);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-card);text-decoration:none;border-top:3px solid var(--accent-primary)}.building-card-name{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary);margin-bottom:6px}.building-card-address,.building-card-contact{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.buildings-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.buildings-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.buildings-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary)}.buildings-table tr:last-child td{border-bottom:none}.buildings-field{margin-bottom:16px}.buildings-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.buildings-field input,.buildings-field select,.buildings-field textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary);resize:vertical}.buildings-field input:focus-visible,.buildings-field select:focus-visible,.buildings-field textarea:focus-visible{border-color:var(--accent-primary)}.buildings-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.buildings-submit-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer;margin-top:4px}.buildings-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.buildings-submit-btn:disabled{opacity:.6;cursor:not-allowed}.buildings-section-header{display:flex;align-items:center;justify-content:space-between;margin-top:36px;margin-bottom:6px}.buildings-section-title{font-family:var(--font-display);font-weight:600;font-size:1.15rem;color:var(--text-primary)}.buildings-section-note{font-size:.82rem;color:var(--slate-400);max-width:60ch;margin-bottom:16px}.buildings-add-btn--secondary{background:var(--white);color:var(--orange-600);border:1.5px solid var(--orange-300)}.buildings-add-btn--secondary:hover{background:var(--orange-tint)}.buildings-revoke-link{background:none;border:none;padding:0;color:#a34a3d;font-size:.82rem;cursor:pointer}.buildings-revoke-link:hover{text-decoration:underline}.buildings-mode-toggle{display:flex;gap:8px;margin-bottom:20px}.buildings-mode-btn{flex:1;padding:8px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--slate-600);font-family:var(--font-body);font-size:.85rem;cursor:pointer}.buildings-mode-btn--active{border-color:var(--accent-primary);color:var(--orange-600);background:var(--orange-tint);font-weight:600}.buildings-bulk-instructions{font-size:.85rem;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.buildings-bulk-template-link{display:inline-block;background:none;border:none;color:var(--orange-600);font-size:.82rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:14px}.buildings-bulk-template-link:hover{text-decoration:underline}.buildings-bulk-textarea{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-mono);font-size:.82rem;background:var(--white);color:var(--text-primary);resize:vertical;margin-bottom:14px}.buildings-bulk-summary{font-size:.9rem;color:var(--text-primary);margin-bottom:12px}.buildings-bulk-error-list{font-size:.82rem;color:#a34a3d;margin:0 0 16px;padding-left:18px;max-height:120px;overflow-y:auto}.buildings-bulk-preview{max-height:260px;overflow-y:auto;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:14px}.buildings-bulk-preview-table{width:100%;border-collapse:collapse;font-size:.82rem}.buildings-bulk-preview-table th{position:sticky;top:0;text-align:left;background:var(--paper);padding:8px 10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400)}.buildings-bulk-preview-table td{padding:8px 10px;border-top:1px solid var(--border-subtle);color:var(--text-primary)}.buildings-bulk-preview-table em{color:#a34a3d;font-style:normal}.buildings-field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.buildings-cancel-btn{padding:11px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--text-primary);font-size:.88rem;cursor:pointer}.buildings-cancel-btn:hover:not(:disabled){border-color:var(--accent-primary)}.panel-detail-layout{display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start}@media (max-width: 800px){.panel-detail-layout{grid-template-columns:1fr}}.panel-detail-qr-card{background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);text-align:center;position:sticky;top:20px}.panel-detail-qr-image{width:100%;max-width:220px;height:auto;margin:10px auto;display:block;border-radius:var(--radius-sm)}.panel-detail-main{min-width:0}.panel-detail-reports-title{margin-top:20px}.panel-detail-report-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);margin-bottom:10px}.panel-detail-report-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.panel-detail-report-date{font-family:var(--font-display);font-weight:600;font-size:.92rem;color:var(--text-primary)}.panel-detail-severity-badge{font-family:var(--font-mono);font-size:.68rem;font-weight:700;text-transform:uppercase;padding:3px 9px;border-radius:999px}.panel-detail-severity-badge--high{background:#fdeceb;color:#a34a3d}.panel-detail-severity-badge--normal{background:var(--slate-100);color:var(--slate-600)}.panel-detail-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px;margin:10px 0}.panel-detail-photo{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm)}.panel-detail-readings-toggle{background:none;border:none;cursor:pointer;margin-bottom:12px;display:inline-block}.buildings-panel-link{color:var(--orange-600);font-weight:600;text-decoration:none}.buildings-panel-link:hover{text-decoration:underline}.repairs-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.repairs-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.repairs-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.repairs-filter-group{display:flex;gap:10px;flex-wrap:wrap}.repairs-filter{padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;background:var(--white);color:var(--text-primary)}.repairs-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.repairs-loading{color:var(--text-secondary)}.repairs-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.repairs-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.repairs-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.repairs-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.repairs-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary);vertical-align:middle}.repairs-table tr:last-child td{border-bottom:none}.repairs-problem-cell{max-width:320px}.repairs-status-select{padding:6px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.85rem;background:var(--white);color:var(--text-primary)}.repairs-action-link,.repairs-upload-label{background:none;border:none;padding:0;color:var(--orange-600);font-size:.85rem;font-family:var(--font-body);cursor:pointer}.repairs-action-link:hover,.repairs-upload-label:hover{text-decoration:underline}.repairs-approved-badge{font-size:.78rem;font-weight:600;color:var(--slate-400)}.repairs-approved-badge--yes{color:var(--accent-success)}.repairs-note{margin-top:20px;font-size:.82rem;color:var(--slate-400);max-width:60ch}.repairs-empty-inline{color:var(--text-secondary);font-size:.9rem}.repairs-parts-list{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.repairs-part-row{background:var(--paper);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px}.repairs-part-row-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.repairs-part-title{font-weight:600;font-size:.88rem;color:var(--text-primary)}.repairs-part-ordered{display:flex;align-items:center;gap:6px;font-size:.82rem;color:var(--slate-600);white-space:nowrap}.repairs-part-specs{font-size:.82rem;color:var(--text-secondary);margin-top:6px}.repairs-part-notes{font-size:.82rem;color:var(--text-secondary);margin-top:4px}.repairs-part-photo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.repairs-part-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px;border:1px solid var(--border-subtle)}.repairs-add-part-btn{width:100%;padding:10px;border-radius:var(--radius-sm);border:1.5px dashed var(--slate-200);background:none;color:var(--orange-600);font-weight:600;font-size:.85rem;cursor:pointer}.repairs-add-part-btn:hover{border-color:var(--accent-primary);background:var(--orange-tint)}.repairs-add-part-form{border-top:1px solid var(--border-subtle);padding-top:14px;display:flex;flex-direction:column;gap:10px}.repairs-add-part-form input,.repairs-add-part-form textarea{width:100%;padding:9px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.85rem;resize:vertical}.repairs-part-field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px}.repairs-cancel-btn{padding:10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);background:var(--white);color:var(--text-primary);font-size:.85rem;cursor:pointer}.repairs-cancel-btn:hover:not(:disabled){border-color:var(--accent-primary)}.repairs-submit-btn{padding:10px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.85rem;cursor:pointer}.repairs-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.ri-back-link{display:inline-block;font-size:.85rem;color:var(--slate-500);text-decoration:none;margin-bottom:16px}.ri-back-link:hover{color:var(--orange-600)}.ri-loading{color:var(--slate-400)}.ri-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm)}.ri-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.ri-title{font-family:var(--font-display);font-weight:600;font-size:1.4rem;color:var(--text-primary);line-height:1.3}.ri-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.9rem}.ri-status-select{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-size:.85rem;font-weight:600;background:var(--white);color:var(--text-primary)}.ri-card{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:14px 16px;margin-bottom:12px}.ri-card-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--slate-400);font-weight:700;margin-bottom:4px}.ri-card-body{font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.ri-no-customer-note{background:var(--orange-tint);color:var(--orange-600);font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.cycles-header{margin:20px 0 16px}.cycles-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.cycles-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.cycles-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:16px}.cycles-loading,.cycles-empty{color:var(--slate-400)}.cycles-list{display:flex;flex-direction:column;gap:10px}.cycles-folder{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.cycles-folder-header{width:100%;display:flex;align-items:center;gap:12px;padding:14px 16px;background:none;border:none;cursor:pointer;text-align:left}.cycles-folder-icon{color:var(--slate-400);font-size:.8rem;width:12px}.cycles-folder-title{font-family:var(--font-display);font-weight:600;font-size:.95rem;color:var(--text-primary)}.cycles-folder-date{color:var(--slate-400);font-size:.82rem}.cycles-folder-count{margin-left:auto;font-size:.78rem;color:var(--slate-500);background:var(--paper);padding:3px 9px;border-radius:999px}.cycles-folder-body{border-top:1px solid var(--border-subtle)}.cycles-item-row{display:flex;align-items:center;gap:14px;padding:12px 16px 12px 40px;border-bottom:1px solid var(--border-subtle);text-decoration:none;color:inherit}.cycles-item-row:last-child{border-bottom:none}.cycles-item-row:hover{background:var(--paper)}.cycles-item-panel{font-size:.8rem;color:var(--slate-400);min-width:80px}.cycles-item-problem{flex:1;font-size:.88rem;color:var(--text-primary)}.cycles-status-badge{font-family:var(--font-mono);font-size:.64rem;text-transform:uppercase;padding:2px 8px;border-radius:999px;font-weight:700;white-space:nowrap}.cycles-status-badge--not_quoted{background:var(--slate-100);color:var(--slate-500)}.cycles-status-badge--quoted,.cycles-status-badge--in_process{background:var(--orange-tint);color:var(--orange-600)}.cycles-status-badge--completed{background:#e2f1ec;color:#3f8f6f}.qr-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.qr-subtitle{color:var(--text-secondary);margin-top:4px;margin-bottom:28px;font-size:.92rem}.qr-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.qr-loading{color:var(--text-secondary)}.qr-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.qr-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.qr-building-group{margin-bottom:32px}.qr-building-heading{font-family:var(--font-display);font-weight:600;font-size:1.1rem;color:var(--text-primary);margin-bottom:14px}.qr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.qr-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);text-align:center}.qr-image{width:100%;max-width:180px;height:auto;margin:0 auto}.qr-image-placeholder{width:100%;aspect-ratio:1;max-width:180px;margin:0 auto;display:flex;align-items:center;justify-content:center;background:var(--paper);border-radius:var(--radius-sm);color:var(--slate-400);font-size:.8rem}.qr-panel-label{font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--text-primary);margin-top:10px}.qr-card-logo{display:block;max-width:80px;max-height:40px;object-fit:contain;margin:8px auto 0}.qr-scan-link{display:block;margin-top:6px;color:var(--slate-600);font-size:.78rem;text-decoration:none}.qr-scan-link:hover{text-decoration:underline}.qr-download-link{display:inline-block;margin-top:8px;color:var(--orange-600);font-size:.8rem;font-weight:600;text-decoration:none}.qr-download-link:hover{text-decoration:underline}.qr-controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:24px}.qr-filter-select{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.85rem;background:var(--white);color:var(--text-primary)}.qr-logo-upload-label{display:inline-block;padding:8px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--orange-300);color:var(--orange-600);font-size:.85rem;font-weight:600;cursor:pointer;background:var(--white)}.qr-logo-upload-label:hover{background:var(--orange-tint)}.qr-logo-hint{font-size:.8rem;color:var(--slate-400);margin-bottom:20px}.ireports-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.ireports-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.ireports-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.ireports-filter-group{display:flex;gap:10px;flex-wrap:wrap}.ireports-filter{padding:9px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem;background:var(--white);color:var(--text-primary)}.ireports-download-all-btn{border-color:var(--orange-300);color:var(--orange-600);font-weight:600;cursor:pointer}.ireports-download-all-btn:hover:not(:disabled){background:var(--orange-tint)}.ireports-download-all-btn:disabled{opacity:.6;cursor:not-allowed}.ireports-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.ireports-loading{color:var(--text-secondary)}.ireports-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.ireports-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.ireports-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.ireports-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.ireports-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary)}.ireports-table tr:last-child td{border-bottom:none}.ireports-severity-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px;color:var(--white)}.ireports-severity-badge--P1{background:#b3352b}.ireports-severity-badge--P2{background:#c9622a}.ireports-severity-badge--P3{background:var(--orange-500)}.ireports-severity-badge--P4{background:var(--slate-600)}.ireports-severity-badge--P5{background:var(--slate-400)}.ireports-download-btn{background:none;border:none;color:var(--orange-600);font-size:.85rem;cursor:pointer}.ireports-download-btn:hover{text-decoration:underline}.ireports-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.ireports-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.docs-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.docs-title{font-family:var(--font-display);font-weight:600;font-size:1.6rem;color:var(--text-primary)}.docs-subtitle{color:var(--text-secondary);margin-top:4px;font-size:.92rem}.docs-upload-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.docs-upload-btn:hover{background:var(--accent-primary-hover)}.docs-tabs{display:flex;gap:4px;border-bottom:1.5px solid var(--border-subtle);margin-bottom:24px}.docs-tab{padding:10px 16px;font-family:var(--font-display);font-weight:600;font-size:.9rem;color:var(--slate-400);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1.5px;cursor:pointer}.docs-tab:hover{color:var(--text-primary)}.docs-tab--active{color:var(--orange-600);border-bottom-color:var(--accent-primary)}.docs-history-filter-row{margin-bottom:20px}.docs-history-filter{padding:8px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.85rem;background:var(--white);color:var(--text-primary)}.docs-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:18px}.docs-loading,.docs-empty-inline{color:var(--text-secondary)}.docs-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.docs-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.docs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.docs-card{display:block;background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);text-decoration:none;color:var(--text-primary);border-top:3px solid var(--accent-primary)}.docs-card-name{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-top:10px}.docs-category-badge{display:inline-block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;font-weight:600}.docs-category-badge--inspection{background:var(--slate-100);color:var(--slate-700)}.docs-category-badge--service{background:#e2f1ec;color:#3f8f6f}.docs-category-badge--project{background:var(--orange-tint);color:var(--orange-600)}.docs-category-badge--other{background:var(--slate-100);color:var(--slate-400)}.docs-field{margin-bottom:16px}.docs-field label{display:block;font-size:.8rem;font-weight:600;color:var(--slate-700);margin-bottom:6px}.docs-field input,.docs-field select{width:100%;padding:10px 12px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.92rem;background:var(--white);color:var(--text-primary)}.docs-field-hint{font-size:.76rem;color:var(--slate-400);margin-top:6px}.docs-submit-btn{width:100%;padding:11px;border-radius:var(--radius-sm);border:none;background:var(--accent-primary);color:var(--white);font-family:var(--font-display);font-weight:600;font-size:.92rem;cursor:pointer}.docs-submit-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.docs-submit-btn:disabled{opacity:.6;cursor:not-allowed}.docs-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:16px}.docs-back-link:hover{color:var(--accent-primary-hover)}.docs-delete-btn{background:none;border:1.5px solid #d9b3ae;color:#a34a3d;border-radius:var(--radius-sm);padding:10px 18px;font-family:var(--font-display);font-weight:600;font-size:.88rem;cursor:pointer;white-space:nowrap}.docs-delete-btn:hover{background:#fdeceb}.docs-section{margin-bottom:28px}.docs-section-title{font-family:var(--font-display);font-weight:600;font-size:1.05rem;color:var(--text-primary);margin-bottom:10px}.docs-subsection{margin-bottom:18px}.docs-subsection-title{font-family:var(--font-display);font-weight:600;font-size:.88rem;color:var(--slate-600);margin-bottom:8px}.docs-view-original-link{color:var(--orange-600);font-size:.85rem;font-weight:600;text-decoration:none}.docs-view-original-link:hover{text-decoration:underline}.docs-field-row{display:flex;align-items:center;gap:10px;background:var(--white);border-radius:var(--radius-sm);padding:12px 14px;box-shadow:var(--shadow-card);margin-bottom:8px}.docs-field-row-order{display:flex;flex-direction:column;gap:2px}.docs-field-row-order button{background:var(--paper);border:1px solid var(--slate-200);border-radius:3px;width:22px;height:18px;font-size:.7rem;cursor:pointer;color:var(--slate-600);line-height:1}.docs-field-row-order button:hover{border-color:var(--accent-primary)}.docs-field-row-main{flex:1;min-width:0}.docs-field-row-raw-name{font-family:var(--font-mono);font-size:.7rem;color:var(--slate-400);margin-bottom:4px}.docs-field-row-label-input{width:100%;padding:7px 10px;border-radius:var(--radius-sm);border:1.5px solid var(--slate-200);font-family:var(--font-body);font-size:.88rem}.docs-field-type-badge{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;color:var(--slate-400);white-space:nowrap}.docs-submission-row{display:flex;align-items:center;justify-content:space-between;background:var(--white);border-radius:var(--radius-sm);padding:12px 14px;box-shadow:var(--shadow-card);margin-bottom:8px;font-size:.88rem}.docs-submission-download{color:var(--orange-600);font-size:.82rem;font-weight:600;background:none;border:none;cursor:pointer}.docs-submission-download:hover{text-decoration:underline}.customer-shell{min-height:100%;background:var(--bg-app)}.customer-topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 32px;background:var(--white);border-bottom:1px solid var(--border-subtle)}.customer-topbar-brand{display:flex;align-items:center;gap:10px}.customer-topbar-logo{height:34px;width:auto}.customer-topbar-powered-by{height:18px;width:auto;opacity:.6}.customer-topbar-right{display:flex;align-items:center;gap:16px}.customer-topbar-user{font-size:.88rem;color:var(--text-secondary)}.customer-logout{background:none;border:1.5px solid var(--slate-200);color:var(--text-primary);padding:8px 14px;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.85rem;cursor:pointer}.customer-logout:hover{border-color:var(--accent-primary);color:var(--accent-primary-hover)}.customer-content{padding:40px 32px;max-width:960px;margin:0 auto}.portal-loading,.portal-empty-inline{color:var(--text-secondary)}.portal-error{background:#fdeceb;border:1px solid #e8a49c;color:#8a2f24;font-size:.85rem;padding:10px 12px;border-radius:var(--radius-sm)}.portal-empty{background:var(--white);border:1px dashed var(--slate-200);border-radius:var(--radius-md);padding:40px;text-align:center;color:var(--text-secondary)}.portal-empty-sub{font-size:.88rem;margin-top:6px;color:var(--slate-400)}.portal-page-title{font-family:var(--font-display);font-weight:600;font-size:1.8rem;color:var(--text-primary)}.portal-page-subtitle{color:var(--text-secondary);margin-top:4px}.portal-building-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-top:24px}.portal-building-card{display:block;background:var(--white);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-card);text-decoration:none;border-top:3px solid var(--accent-primary);color:var(--text-primary)}.portal-building-card h2{font-family:var(--font-display);font-weight:600;font-size:1.05rem;margin-bottom:6px}.portal-building-card p{font-size:.85rem;color:var(--text-secondary)}.portal-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px;margin:24px 0 40px}.portal-stat-card{background:var(--white);border-radius:var(--radius-md);padding:18px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:4px}.portal-stat-value{font-family:var(--font-display);font-weight:700;font-size:1.6rem;color:var(--text-primary)}.portal-stat-label{font-size:.78rem;color:var(--slate-400)}.portal-section{margin-bottom:40px}.portal-section-title{font-family:var(--font-display);font-weight:600;font-size:1.2rem;color:var(--text-primary);margin-bottom:16px}.portal-year-group{margin-bottom:20px}.portal-year-heading{font-family:var(--font-mono);font-size:.85rem;color:var(--slate-400);margin-bottom:8px}.portal-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-card)}.portal-table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--slate-400);font-weight:600;padding:12px 16px;border-bottom:1px solid var(--border-subtle)}.portal-table td{padding:14px 16px;border-bottom:1px solid var(--border-subtle);font-size:.9rem;color:var(--text-primary);vertical-align:middle}.portal-table tr:last-child td{border-bottom:none}.portal-problem-cell{max-width:320px}.portal-link-btn{background:none;border:none;padding:0;color:var(--orange-600);font-size:.85rem;cursor:pointer}.portal-link-btn:hover{text-decoration:underline}.portal-muted{color:var(--slate-400);font-size:.85rem}.portal-approve-btn{background:var(--accent-primary);color:var(--white);border:none;border-radius:var(--radius-sm);padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer}.portal-approve-btn:hover:not(:disabled){background:var(--accent-primary-hover)}.portal-approve-btn:disabled{opacity:.6;cursor:not-allowed}.portal-approved-tag{font-size:.78rem;font-weight:600;color:var(--accent-success)}.portal-severity-badge{font-family:var(--font-mono);font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:999px;color:var(--white)}.portal-stat-severity-badge{font-size:1rem;padding:4px 12px;width:fit-content}.portal-severity-P1{background:#b3352b}.portal-severity-P2{background:#c9622a}.portal-severity-P3{background:var(--orange-500)}.portal-severity-P4{background:var(--slate-600)}.portal-severity-P5{background:var(--slate-400)}.portal-progress-track{width:100%;height:10px;background:var(--slate-100);border-radius:999px;overflow:hidden;margin-bottom:32px}.portal-progress-fill{height:100%;background:var(--accent-primary);border-radius:999px}.portal-scope-text{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);font-size:.9rem;color:var(--text-primary);white-space:pre-wrap}.portal-update-card{background:var(--white);border-radius:var(--radius-md);padding:16px;box-shadow:var(--shadow-card);margin-bottom:12px;font-size:.9rem;color:var(--text-primary)}.portal-update-date{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-400);margin-bottom:6px}.portal-history-status-badge{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:3px 9px;border-radius:999px;font-weight:600;display:inline-block;margin-bottom:8px}.portal-history-status-badge--open,.portal-history-status-badge--assigned{background:var(--slate-100);color:var(--slate-700)}.portal-history-status-badge--in_progress{background:#fdf2c4;color:#8a6d0a}.portal-history-status-badge--completed{background:#e2f1ec;color:#3f8f6f}.portal-back-link{display:inline-block;color:var(--slate-600);font-size:.85rem;text-decoration:none;margin-bottom:16px}.portal-back-link:hover{color:var(--accent-primary-hover)}.portal-history-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:10px}.portal-history-photo-thumb{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.portal-billing-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.portal-billing-number{font-family:var(--font-mono);font-weight:600;font-size:.88rem;color:var(--text-primary)}.portal-billing-total{font-weight:700;font-size:1rem;color:var(--text-primary);margin:4px 0 8px}.portal-billing-balance{font-weight:600;font-size:.85rem;color:var(--orange-600)}.portal-billing-fee-note{font-size:.74rem;color:var(--slate-400);margin-top:6px}.portal-billing-actions{display:flex;align-items:center;gap:10px}.portal-decline-btn{background:none;border:1.5px solid var(--slate-200);color:var(--slate-600);border-radius:var(--radius-sm);padding:6px 14px;font-size:.82rem;font-weight:600;cursor:pointer}.portal-decline-btn:hover:not(:disabled){border-color:#a34a3d;color:#a34a3d}.portal-decline-btn:disabled{opacity:.6;cursor:not-allowed}:root{--orange-300: #f7a94d;--orange-400: #f0891f;--orange-500: #ea7412;--orange-600: #cc5f0a;--orange-700: #a34c08;--orange-tint: #fdf0e2;--slate-900: #2b3138;--slate-700: #454e57;--slate-600: #545e68;--slate-400: #89929b;--slate-200: #d8dce0;--slate-100: #eef0f2;--white: #ffffff;--paper: #fafafa;--bg-app: var(--paper);--bg-surface: var(--white);--bg-brand-dark: var(--slate-900);--bg-light: var(--white);--text-primary: var(--slate-900);--text-secondary: var(--slate-600);--text-on-dark: var(--white);--text-on-dark-muted: var(--slate-200);--accent-primary: var(--orange-500);--accent-primary-hover: var(--orange-600);--accent-link: var(--orange-600);--accent-success: #3f8f6f;--border-subtle: var(--slate-200);--border-strong: var(--slate-400);--font-display: "Poppins", sans-serif;--font-body: "IBM Plex Sans", sans-serif;--font-mono: "IBM Plex Mono", monospace;--radius-sm: 6px;--radius-md: 10px;--shadow-card: 0 12px 32px rgba(43, 49, 56, .12)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--bg-app);color:var(--text-primary);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.02em;margin:0}p{margin:0;line-height:1.5}a{color:var(--accent-link)}button{font-family:var(--font-body)}:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
