:root{--ink:#17212b;--muted:#718096;--line:#e5eaf0;--surface:#fff;--canvas:#f5f7fa;--blue:#2f6fed;--navy:#182538;--green:#1a9b68;--orange:#e08b31;--violet:#7b61d1}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;border:0;cursor:pointer}.landing{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 20%,#e9f0ff,transparent 35%),var(--canvas)}.landing-card{max-width:640px;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:56px;box-shadow:0 24px 80px #27364d12}.brand-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;color:#fff;background:var(--blue);font-size:25px;font-weight:800;box-shadow:0 10px 25px #2f6fed40}.small-mark{width:32px;height:32px;border-radius:10px;font-size:17px}.brand{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:750}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.landing h1{max-width:500px;margin:12px 0;font-size:clamp(2.3rem,5vw,4rem);line-height:1.02;letter-spacing:-.055em}.lede{max-width:520px;color:var(--muted);font-size:18px;line-height:1.6;margin:20px 0 32px}.button{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;padding:11px 16px;font-weight:700}.button-primary{color:#fff;background:var(--blue);box-shadow:0 8px 20px #2f6fed2b}.button-primary:hover{background:#255dcc}.muted{color:var(--muted)}.small{font-size:12px}.app-shell{display:flex;min-height:100vh}.sidebar{width:245px;background:var(--navy);color:#d9e3f1;display:flex;flex-direction:column;padding:24px 16px;gap:26px}.sidebar .brand{color:#fff}.tenant-switcher{border:1px solid #ffffff18;border-radius:10px;padding:11px 12px;font-size:12px;color:#bdc8d7}.status-dot{display:inline-block;width:7px;height:7px;background:#55d49b;border-radius:50%;margin-right:7px}.main-nav{display:grid;grid-gap:5px;gap:5px}.nav-link{display:flex;gap:11px;align-items:center;padding:11px 12px;border-radius:9px;color:#acb9c9;font-size:13px}.nav-link:hover{background:#ffffff0d;color:#fff}.sidebar-footer{margin-top:auto;display:grid;grid-gap:16px;gap:16px}.main-area{width:calc(100% - 245px)}.topbar{height:64px;display:flex;align-items:center;justify-content:flex-end;padding:0 40px;background:#ffffffb8;border-bottom:1px solid var(--line)}.mobile-brand{display:none}.user-pill{background:#eaf0fb;border-radius:999px;padding:8px 14px;color:#36527d;font-size:12px;font-weight:700}.content{max-width:1260px;margin:0 auto;padding:42px 40px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px}.page-heading h1{margin:0 0 8px;font-size:32px;letter-spacing:-.04em}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px;margin-bottom:22px}.empty-state,.panel,.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:15px;padding:21px}.stat-card{display:grid;grid-gap:10px;gap:10px}.stat-card strong{font-size:29px;letter-spacing:-.04em}.icon-box{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;margin-bottom:4px}.icon-box.blue{color:var(--blue);background:#eaf1ff}.icon-box.violet{color:var(--violet);background:#f0edff}.icon-box.green{color:var(--green);background:#e8f8f1}.icon-box.orange{color:var(--orange);background:#fff3e5}.two-column{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:22px;gap:22px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.empty-state h2,.panel h2{font-size:18px;letter-spacing:-.02em;margin:0}.setup-list{display:grid;grid-gap:18px;gap:18px}.setup-list>div{display:flex;gap:13px;align-items:flex-start}.step{width:25px;height:25px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;color:var(--muted);font-size:11px;font-weight:800;flex:none}.step.done{color:#fff;border-color:var(--green);background:var(--green)}.setup-list strong{font-size:14px}.setup-list p{margin:4px 0 0}.accent-panel{background:#edf4ff;border-color:#dbe8ff}.empty-state{text-align:center;padding:80px 28px}.empty-state p{max-width:550px;margin:12px auto 0;line-height:1.6}.user-pill+.small{margin-left:5px}@media(max-width:800px){.sidebar{width:66px;padding:18px 10px}.nav-link,.sidebar .brand span:last-child,.tenant-switcher{font-size:0}.nav-link{justify-content:center}.nav-link svg{width:20px;height:20px}.sidebar-footer .muted{display:none}.main-area{width:calc(100% - 66px)}.topbar{padding:0 18px;justify-content:space-between}.mobile-brand{display:block;font-weight:800}.content{padding:28px 18px}.page-heading{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:repeat(2,1fr)}.two-column{grid-template-columns:1fr}.landing-card{padding:35px 26px}}:root{--inventory-gap:22px}.integration-secret{display:block;overflow:auto;margin:12px 0;padding:12px;border-radius:8px;background:#17212b;color:#fff;font-size:12px}.scope-list{display:grid;grid-gap:7px;gap:7px}.check-row{display:flex;align-items:center;gap:8px;font-weight:500}.check-row input{width:auto}.module-grid{align-items:start}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.form-grid label{display:grid;grid-gap:7px;gap:7px;color:var(--ink);font-size:13px;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;font-size:14px;padding:10px 11px}.form-grid textarea{resize:vertical}.full-width{grid-column:1/-1}.form-actions{display:flex;align-items:flex-end}.button-secondary{border:1px solid var(--line);background:#fff;color:var(--ink)}.button-secondary:hover{background:#f8fafc}.button:disabled{cursor:not-allowed;opacity:.6}.form-error{margin:0 0 20px;padding:12px 14px;border:1px solid #f1c7c7;border-radius:9px;background:#fff2f2;color:#a63131;font-size:13px}.record-list{display:grid;grid-gap:10px;gap:10px}.record{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}.record:last-child{border-bottom:0;padding-bottom:0}.record span,.record strong{display:block}.record .muted{margin-top:4px}.tag{border-radius:999px;background:#edf4ff;color:var(--blue);font-size:11px;font-weight:800;padding:5px 9px;text-transform:uppercase}.record-actions{display:flex;align-items:center;gap:10px}.compact-button{margin:0;padding:0}.employee-record{flex-wrap:wrap}.employee-edit{width:100%;padding-top:14px;border-top:1px solid var(--line)}.record-link{color:var(--blue);font-weight:700}.large-tag{align-self:flex-end;font-size:13px}.detail-actions{display:flex;align-items:center;gap:10px}.full-panel{grid-column:1/-1}.detail-eyebrow{margin-top:18px}.detail-list{display:grid;grid-gap:15px;gap:15px;margin:0 0 20px}.detail-list div{display:grid;grid-template-columns:130px 1fr;grid-gap:12px;gap:12px;border-bottom:1px solid var(--line);padding-bottom:12px}.detail-list dt{color:var(--muted);font-size:12px}.detail-list dd{margin:0;font-size:14px;line-height:1.5}.detail-list a{color:var(--blue)}.action-stack{display:grid;grid-gap:12px;gap:12px}.action-stack label{display:grid;grid-gap:7px;gap:7px;color:var(--ink);font-size:13px;font-weight:700}.action-stack select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--ink);font:inherit;padding:10px 11px}.filter-row{display:grid;grid-template-columns:1.5fr .8fr .8fr;grid-gap:8px;gap:8px;margin:0 0 14px}.filter-row input,.filter-row select{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:12px;padding:9px 10px}.warehouse-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:22px;gap:22px}.scanner-panel,.warehouse-grid{margin-bottom:22px}.scanner-controls{display:grid;grid-template-columns:1fr auto auto;grid-gap:8px;gap:8px}.scanner-controls input{min-width:0;border:1px solid var(--line);border-radius:9px;padding:10px 11px;font:inherit}.scanner-video{display:block;width:min(100%,430px);max-height:260px;margin-top:14px;border-radius:12px;background:#101820;object-fit:cover}.scan-results{margin-top:12px}.warehouse-records{margin-top:20px}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table td,.data-table th{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}.data-table th{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.data-table tr:last-child td{border-bottom:0}.low-stock{background:#fff2dc;color:#a56c15}.stock-ok{background:#eaf8f2;color:#18724c}.material-consumption-form{display:grid;grid-template-columns:1fr 110px auto;grid-gap:8px;gap:8px;margin-bottom:14px}.material-consumption-form input,.material-consumption-form select{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 11px;font:inherit}.material-records{margin-top:16px}.billing-create{margin-bottom:22px}.inline-form{display:grid;grid-template-columns:1fr auto;grid-gap:10px;gap:10px}.inline-form select{min-width:0;border:1px solid var(--line);border-radius:9px;background:#fff;padding:10px 11px;font:inherit}.invoice-items{display:grid;grid-gap:8px;gap:8px}.invoice-item{display:grid;grid-template-columns:minmax(0,1fr) 95px 95px 120px 120px;grid-gap:8px;gap:8px;align-items:center}.invoice-item input{min-width:0;border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit}.invoice-totals{display:flex;justify-content:flex-end;gap:22px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}.invoice-totals span{display:grid;grid-gap:4px;gap:4px;color:var(--muted)}.invoice-totals strong{color:var(--ink);font-size:15px}.invoice-actions{margin-bottom:20px}.payment-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;grid-gap:8px;gap:8px;margin-bottom:16px}.payment-form input,.payment-form select{min-width:0;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px;font:inherit}@media (max-width:800px){.filter-row,.form-grid{grid-template-columns:1fr}.full-width{grid-column:auto}.scanner-controls,.warehouse-grid{grid-template-columns:1fr}.material-consumption-form{grid-template-columns:1fr 100px}.material-consumption-form .button{grid-column:1/-1}.inline-form,.payment-form{grid-template-columns:1fr}.invoice-item{grid-template-columns:1fr 1fr}.invoice-item input:first-child{grid-column:1/-1}.invoice-totals{display:grid;justify-content:stretch;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}}.technician-shell{width:min(100%,920px);margin:0 auto;padding:24px 18px 48px}.technician-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:22px}.technician-header h1{margin:0 0 8px;font-size:clamp(28px,6vw,42px);letter-spacing:-.05em}.technician-eyebrow{margin-top:14px}.technician-order-list{display:grid;grid-gap:12px;gap:12px}.technician-empty,.technician-order-card,.technician-panel{border:1px solid var(--line);border-radius:15px;background:var(--surface);padding:18px;box-shadow:0 8px 24px #27364d08}.technician-order-card{display:block;transition:transform .15s ease,border-color .15s ease}.technician-order-card:hover{border-color:#b9cdf4;transform:translateY(-1px)}.technician-card-footer,.technician-card-top,.technician-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.technician-card-top .eyebrow{margin:0}.technician-order-card h2{margin:12px 0 5px;font-size:20px}.technician-card-customer{margin:0 0 9px;font-weight:700}.technician-card-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}.technician-card-footer .urgency{color:#b55f1d;font-weight:800}.technician-empty{text-align:center;padding:56px 20px}.technician-panel{margin-top:14px}.technician-panel h2{margin:0;font-size:19px}.technician-summary{display:flex;justify-content:space-between;gap:20px}.technician-summary p{margin:6px 0 0;line-height:1.55}.technician-summary>p{margin:0;text-align:right}.workflow-steps{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:5px;gap:5px;margin:18px 0}.workflow-steps span{min-height:42px;display:grid;place-items:center;padding:7px 4px;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:10px;text-align:center}.workflow-steps span.current{border-color:var(--blue);background:#edf4ff;color:var(--blue);font-weight:800}.wide-button{width:100%}.consent-list{display:grid;grid-gap:12px;gap:12px}.consent-row{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:13px;line-height:1.4}.consent-row input{width:18px;height:18px;margin:0;accent-color:var(--blue)}.photo-columns,.signature-section{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px}.photo-columns>div,.signature-section>div{min-width:0}.photo-strip{min-height:92px;display:flex;gap:8px;overflow-x:auto;margin:12px 0;padding-bottom:4px}.photo-strip:empty{border:1px dashed var(--line);border-radius:10px}.photo-strip img{width:92px;height:92px;flex:none;border-radius:9px;object-fit:cover}.upload-button{position:relative;width:100%}.upload-button input{position:absolute;width:1px;height:1px;opacity:0}.technician-form{display:grid;grid-gap:14px;gap:14px}.technician-form label{display:grid;grid-gap:7px;gap:7px;color:var(--ink);font-size:13px;font-weight:700}.technician-form textarea{width:100%;resize:vertical;border:1px solid var(--line);border-radius:9px;padding:10px 11px;color:var(--ink);font:inherit}.signature-section>div{display:grid;grid-gap:10px;gap:10px}.signature-pad-wrap{min-width:0}.signature-pad{display:block;width:100%;height:auto;touch-action:none;border:1px dashed #b6c3d2;border-radius:10px;background:#fff}.signature-pad-wrap .signature-actions{display:flex;justify-content:space-between;gap:8px;margin-top:8px}.signature-actions .button{padding:9px 10px;font-size:12px}.completion-panel{border-color:#bddfcc;background:#f5fcf8}.completion-panel h2{margin:0 0 8px}.completion-panel .button{margin-top:16px}.status-new{background:#f1f3f5;color:#5e6874}.status-assigned{background:#edf4ff;color:var(--blue)}.status-accepted,.status-en_route{background:#fff5df;color:#a56c15}.status-in_progress,.status-on_site{background:#eaf8f2;color:#18724c}.status-completed{background:#e5f6ec;color:#18724c}@media (max-width:650px){.technician-header{align-items:flex-start;flex-direction:column}.technician-header .button{align-self:stretch}.technician-summary{display:grid;grid-gap:12px;gap:12px}.technician-summary>p{text-align:left}.workflow-steps{grid-template-columns:repeat(3,1fr)}.photo-columns,.signature-section{grid-template-columns:1fr}}.topbar-actions{display:flex;align-items:center;gap:10px}.logout-button{border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);cursor:pointer;font-size:12px;padding:8px 12px}.logout-button:hover{color:var(--ink);background:#f8fafc}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 10%,#e9f0ff,transparent 35%),var(--canvas)}.auth-card{width:min(100%,460px);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:36px;box-shadow:0 24px 80px #27364d12}.auth-card .brand{margin-bottom:52px}.auth-card h1{margin:0 0 8px;font-size:30px;letter-spacing:-.04em}.auth-card>.muted{line-height:1.5;margin:0 0 24px}.auth-form{display:grid;grid-gap:17px;gap:17px}.auth-form label{display:grid;grid-gap:7px;gap:7px;font-size:13px;font-weight:700}.auth-form input{width:100%;background:#fff;color:var(--ink);font:inherit;padding:11px}.auth-form input,.password-field{border:1px solid var(--line);border-radius:9px}.password-field{display:flex;align-items:center;overflow:hidden}.password-field input{border:0;outline:0}.password-field button{background:#fff;color:var(--blue);font-size:12px;padding:0 11px}.auth-submit{width:100%;margin-top:4px}.text-button{display:block;margin:20px auto 0;background:transparent;color:var(--blue);font-size:13px;cursor:pointer}.form-success{margin:0 0 20px;padding:12px 14px;border:1px solid #bfe8d5;border-radius:9px;background:#effbf5;color:#18724c;font-size:13px}