*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{color:#fff;background:#1f2029;margin:0;font-family:Arial,sans-serif}.dashboard-layout{min-height:calc(100vh - 100px);display:flex}.sidebar{background:#2a2b36;width:260px;padding:20px}.content{flex:1;padding:30px;overflow-x:auto}.app-header{background:#0f3d63;border-bottom:1px solid #2a5378;justify-content:space-between;align-items:center;gap:20px;min-height:86px;padding:10px 24px;display:flex}.app-brand{align-items:center;gap:16px;min-width:0;display:flex}.app-brand-logo{background:#fff;border:4px solid #fff;border-radius:5px;width:142px;height:auto;display:block}.app-brand-divider{background:#ffffff3d;width:1px;height:40px}.app-brand-title h1{color:#fff;letter-spacing:.06em;margin:0;font-size:20px}.app-brand-title span{color:#bfd0e3;letter-spacing:.11em;text-transform:uppercase;margin-top:4px;font-size:11px;display:block}.app-version{color:#d7e5f3;border:1px solid #ffffff38;border-radius:20px;flex-shrink:0;padding:6px 10px;font-size:11px}.app-header-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.app-user-email{color:#d7e5f3;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-size:12px;overflow:hidden}.app-signout{color:#fff;cursor:pointer;font:inherit;background:0 0;border:1px solid #fff5;border-radius:6px;padding:7px 10px;font-size:12px}.app-signout:hover{background:#ffffff18}@media (width<=520px){.app-header{min-height:70px;padding:8px 14px}.app-brand{gap:10px}.app-brand-logo{border-width:3px;width:105px}.app-brand-divider{height:32px}.app-brand-title h1{font-size:15px}.app-brand-title span{letter-spacing:.06em;font-size:9px}}.login-screen{background:radial-gradient(at 0 0,#174b70 0,#20242e 45%,#171a21 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#222936;border:1px solid #3a4658;border-radius:16px;width:min(100%,440px);padding:clamp(26px,6vw,42px);box-shadow:0 24px 70px #0007}.login-brand{border-bottom:1px solid #394355;align-items:center;gap:14px;padding-bottom:25px;display:flex}.login-brand img{background:#fff;border-radius:4px;width:94px;padding:3px}.login-brand span{color:#f2f6fc;letter-spacing:.1em;font-size:18px;font-weight:750}.login-intro{margin:27px 0 22px}.login-eyebrow{color:#7fb8fa;letter-spacing:.16em;font-size:10px;font-weight:700}.login-intro h1{color:#f3f6fb;margin:9px 0 7px;font-size:26px}.login-intro p,.login-footnote{color:#9aa8ba;font-size:13px;line-height:1.55}.login-form{gap:17px;display:grid}.login-field{gap:7px;display:grid}.login-field label{color:#dbe3ee;font-size:13px;font-weight:600}.login-field input{color:#f5f7fb;width:100%;min-height:46px;font:inherit;background:#171d27;border:1px solid #4a566a;border-radius:7px;padding:11px 12px;font-size:15px}.login-field input:focus{border-color:#67aaf7;outline:2px solid #67aaf744}.login-field small{color:#9aa8ba;font-size:11px}.login-submit{color:#fff;cursor:pointer;min-height:48px;font:inherit;background:#17804f;border:0;border-radius:7px;margin-top:3px;font-size:14px;font-weight:700}.login-submit:hover:not(:disabled){background:#1b9560}.login-submit:disabled{cursor:not-allowed;opacity:.55}.login-message{border-radius:7px;margin:0 0 16px;padding:11px 12px;font-size:12px;line-height:1.5}.login-error{color:#ffd4d7;background:#422a31;border:1px solid #875459}.login-notice{color:#c4f0dd;background:#203d34;border:1px solid #3e705e}.login-footnote{margin:19px 0 0;font-size:11px}.login-back{color:#9fcaff;margin-top:19px;font-size:12px;text-decoration:none;display:inline-block}.login-back:hover{text-decoration:underline}.auth-loading{color:#dbe3ee;background:#1f2029;place-items:center;min-height:100vh;font:14px Arial,sans-serif;display:grid}@media (width<=520px){.login-screen{align-items:start;padding:16px}.login-card{margin:auto 0;padding:25px 21px}.app-user-email{display:none}.app-header-actions{gap:7px}.app-signout{padding:6px 8px;font-size:11px}}ul{padding:0;list-style:none}li{cursor:pointer;padding:12px 0}li:hover{color:#00c8ff}.dashboard-cards{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:20px;margin:25px 0;display:grid}.dashboard-card{text-align:center;background:#34384f;border-radius:12px;width:auto;min-width:0;padding:20px;box-shadow:0 4px 12px #0000004d}.dashboard-card h3{color:#9fb3c8;margin:0;font-size:16px}.dashboard-card h1{color:#fff;white-space:nowrap;margin-top:20px;font-size:42px}.dashboard-card h1.dashboard-card-value-compact{letter-spacing:-.04em;white-space:normal;font-size:clamp(27px,2.7vw,36px)}.field-trial-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px;display:flex}.field-trial-heading>div>span{color:#8fb7ff;letter-spacing:.14em;font-size:10px;font-weight:700}.field-trial-heading h2{margin:7px 0 5px;font-size:25px}.field-trial-heading p{color:#a8b5c8;font-size:13px}.field-trial-heading small{color:#7f8ca1;margin-top:8px;font-size:11px;display:block}.today-jobs{margin-top:22px}.today-jobs-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;display:flex}.today-jobs-heading h2{margin:0}.today-jobs-heading p{color:#95a2b6;margin-top:5px;font-size:12px}.today-job-list{gap:10px;display:grid}.today-job-card{background:#252a36;border:1px solid #3a4050;border-radius:9px;justify-content:space-between;align-items:center;gap:16px;padding:14px;display:flex}.today-job-main{gap:5px;min-width:0;display:grid}.today-job-title{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.today-job-title a{color:#a9caff;font-size:13px;font-weight:700;text-decoration:none}.today-job-main>strong{color:#e9eef6;font-size:13px}.today-job-main>span,.today-job-main>small{color:#9ba7ba;overflow-wrap:anywhere;font-size:11px}.today-jobs-empty{color:#a8b5c8;justify-items:start;gap:10px;padding:20px 0;display:grid}.today-jobs-empty strong{color:#e6edf7}.jobs-table,.technician-status{background:#2b2f42;border-radius:12px;margin-top:30px;padding:20px}table{border-collapse:collapse;width:100%}th{text-align:left;color:#8ab4f8;padding-bottom:12px}td{border-bottom:1px solid #444;padding:8px 0}.tickets-table{background:#353a52;border-radius:12px;margin-top:25px;padding:20px}.sidebar a{color:#fff;text-decoration:none}.sidebar li{margin:18px 0;list-style:none}.sidebar a:hover{color:#4da6ff}.tickets-table{border-collapse:collapse;width:100%;margin-top:25px}.tickets-table th{text-align:left;color:#8fb7ff;padding:14px}.tickets-table td{border-top:1px solid #40455f;padding:14px}.tickets-table tr:hover{cursor:pointer;background:#343852}.tickets-page{color:#e8edf6;max-width:1440px;margin:0 auto}.create-ticket-panel{margin:0 0 18px}.ticket-form-error{color:#f3b1b1;background:#38292c;border:1px solid #804d4d;border-radius:7px;margin:0 0 14px;padding:10px 12px;font-size:12px}.dashboard-empty-note{color:#929fb3;padding:4px 0;font-size:12px}.dashboard-subtext{color:#8794a9;margin-top:4px;font-size:10px;display:block}.booking-reminders,.booking-editor,.delay-update-panel{margin-top:18px}.booking-reminders{color:#e8edf6;background:#252a36;border:1px solid #343a49;border-radius:10px;padding:18px 20px}.booking-reminders-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.booking-reminders-heading h3{margin:0;font-size:16px}.booking-reminders-heading p{color:#96a2b6;margin:5px 0 0;font-size:12px}.booking-reminder-list{display:grid}.booking-reminder-item{color:#dfe7f3;border-top:1px solid #373e4c;grid-template-columns:170px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 4px;text-decoration:none;display:grid}.booking-reminder-item:hover{background:#2c3240}.booking-date{color:#a9cbff;font-size:12px;font-weight:650}.booking-reminder-item strong,.booking-reminder-item small{display:block}.booking-reminder-item strong{font-size:12px}.booking-reminder-item small{color:#8f9bb0;margin-top:4px;font-size:11px}.booking-reminder-item b{color:#a9cbff;font-size:10px}.booking-reminder-item.overdue .booking-date,.booking-reminder-item.overdue b{color:#f0bd80}.booking-empty,.booking-footnote{color:#96a2b6;font-size:12px}.reminder-enabled{color:#8fe0b8;font-size:11px}.delay-message-preview{color:#c8d3e3;background:#202631;border:1px solid #394456;border-radius:8px;margin:16px 0;padding:13px 15px;font-size:12px;line-height:1.6}.delay-update-history{gap:10px;margin-top:18px;display:grid}.delay-update-history article{border:1px solid #383f4d;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:13px;display:flex}.delay-update-history article strong{font-size:12px}.delay-update-history article p{color:#c4cede;margin:5px 0;font-size:12px}.delay-update-history article small{color:#94a0b3;font-size:10px}.delay-actions{flex-wrap:wrap;gap:8px;display:flex}.delay-actions a[aria-disabled=true]{pointer-events:none;opacity:.5}@media (width<=680px){.booking-reminder-item{grid-template-columns:1fr auto;gap:5px 10px}.booking-date{grid-column:1/-1}.delay-update-history article{flex-direction:column;align-items:flex-start}}.tickets-page-heading,.ticket-scope-panel-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.tickets-page-heading h1{margin:0;font-size:25px}.tickets-page-heading p,.ticket-scope-panel-heading p{color:#9aa6b9;margin:7px 0 0;font-size:13px}.tickets-page-heading>span{color:#9aa6b9;font-size:12px}.ticket-scope-tabs{flex-wrap:wrap;gap:8px;margin:22px 0 16px;display:flex}.ticket-scope-tabs button{color:#aeb8c9;cursor:pointer;font:inherit;background:#252a36;border:1px solid #3a4152;border-radius:8px;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:flex}.ticket-scope-tabs button:hover{color:#eef3fb;border-color:#65748c}.ticket-scope-tabs button.active{color:#e8f1ff;background:#293b59;border-color:#5b91db}.ticket-scope-tabs button strong{color:#d7e2f3;text-align:center;background:#3a4353;border-radius:20px;min-width:22px;padding:2px 6px;font-size:11px}.ticket-scope-tabs button.active strong{background:#416ca7}.ticket-scope-panel{background:#252a36;border:1px solid #343a49;border-radius:10px;overflow:hidden}.ticket-scope-panel-heading{padding:18px 20px 14px}.ticket-scope-panel-heading h2{margin:0;font-size:16px}.tickets-table-wrap{overflow-x:auto}.tickets-page .tickets-table{margin:0}.tickets-page .tickets-table th{color:#98a7bd;font-size:11px;font-weight:600}.tickets-page .tickets-table td{color:#d7deea;font-size:12px}.tickets-page .tickets-table td:first-child a{color:#9dc2fa;font-weight:650;text-decoration:none}.tickets-page .tickets-table td:first-child a:hover{text-decoration:underline}.tickets-page .tickets-table td small{color:#8f9bae;margin-top:4px;font-size:10px;display:block}.ticket-scope-empty{text-align:center;border-top:1px solid #343a49;gap:6px;padding:35px 20px;display:grid}.ticket-scope-empty strong{color:#dbe3ef;font-size:13px}.ticket-scope-empty span{color:#97a3b7;font-size:12px}.ticket-details{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px;margin-top:30px;display:grid}.ticket-card{background:#34384f;border-radius:12px;padding:20px;box-shadow:0 4px 12px #0000004d}.ticket-card h3{color:#8fb7ff;margin-bottom:10px}.ticket-card p{color:#fff;font-size:18px}.ticket-tabs{flex-wrap:wrap;gap:15px;margin:25px 0;display:flex}.ticket-tabs button{color:#fff;cursor:pointer;background:#2f3550;border:none;border-radius:8px;padding:12px 22px;transition:all .2s}.ticket-tabs button:hover{background:#0f6efd}.ticket-actions{flex-wrap:wrap;gap:15px;margin:25px 0;display:flex}.ticket-actions button{color:#fff;cursor:pointer;background:#0f6efd;border:none;border-radius:8px;padding:12px 20px;font-weight:700;transition:all .2s}.ticket-actions button:hover{background:#0b5ed7}.ticket-card label{margin-top:15px;margin-bottom:6px;font-weight:700;display:block}.ticket-card select{color:#fff;background:#2f3550;border:none;border-radius:8px;width:100%;margin-bottom:10px;padding:12px}.save-btn{color:#fff;cursor:pointer;background:#0f6efd;border:none;border-radius:8px;width:100%;margin-top:20px;padding:14px;font-size:16px}.save-btn:hover{background:#0d5cd6}.ticket-card input{color:#fff;background:#2f3550;border:none;border-radius:8px;width:100%;margin-bottom:15px;padding:12px}.status{border-radius:20px;padding:6px 12px;font-size:13px;font-weight:700}.status.new{color:#fff;background:#666}.status.assigned{color:#fff;background:#0d6efd}.status.travelling{color:#000;background:#ffc107}.status.on-site{color:#fff;background:#28a745}.status.completed{color:#fff;background:#6f42c1}.status.closed{color:#fff;background:#198754}.ticket-page{color:#e8edf6;max-width:1440px;margin:0 auto}.ticket-breadcrumb{color:#8e9ab0;align-items:center;gap:10px;margin:2px 0 22px;font-size:13px;display:flex}.ticket-breadcrumb a{color:#91baff;text-decoration:none}.ticket-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:24px;display:flex}.ticket-title-line{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.ticket-title-line h1{letter-spacing:.01em;font-size:25px}.ticket-heading p{color:#9ba8bc;margin-top:9px;font-size:14px}.ticket-heading p span{color:#526079;padding:0 5px}.ticket-status{color:#9fc6ff;background:#243b60;border-radius:20px;padding:6px 11px;font-size:12px;font-weight:700}.status-open{color:#d4d7df;background:#3a3d48}.status-assigned,.status-accepted{color:#a8ccff;background:#1e3d65}.status-travelling{color:#f5d477;background:#4e4325}.status-on-site{color:#8ce0bb;background:#1d493e}.status-work-complete,.status-submitted{color:#c5baff;background:#34315b}.ticket-primary-actions,.form-actions{align-items:center;gap:10px;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 15px;font-size:13px;font-weight:650;text-decoration:none;transition:background .16s,border-color .16s;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.55}.button-primary{color:#fff;background:#3578db}.button-primary:hover:not(:disabled){background:#2868c4}.button-light{color:#dfe6f2;background:#292f3d;border-color:#3b4353}.button-light:hover{background:#343c4c}.ticket-summary-strip{background:#252a36;border:1px solid #343a49;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 21px;display:grid}.ticket-summary-strip>div{border-right:1px solid #343a49;min-width:0;padding:15px 18px}.ticket-summary-strip>div:last-child{border:0}.ticket-summary-strip span,.detail-item span{color:#8f9bb0;margin-bottom:7px;font-size:12px;display:block}.ticket-summary-strip strong{text-overflow:ellipsis;white-space:nowrap;color:#e1e8f3;font-size:14px;display:block;overflow:hidden}.ticket-tabs{border-bottom:1px solid #343a49;flex-wrap:nowrap;gap:4px;margin:0 0 20px;display:flex;overflow-x:auto}.ticket-tabs button{white-space:nowrap;color:#96a2b7;cursor:pointer;background:0 0;border:0;border-radius:0;align-items:center;gap:8px;padding:12px 14px;font-size:13px;display:flex;position:relative}.ticket-tabs button:hover{color:#e8edf6;background:#252a36}.ticket-tabs button.active{color:#a9cbff}.ticket-tabs button.active:after{content:"";background:#5b9bff;height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.tab-count{color:#a9cbff;background:#303b50;border-radius:9px;justify-content:center;min-width:18px;padding:2px 5px;font-size:10px;display:inline-flex}.ticket-notice{color:#abebce;background:#1c473b;border:1px solid #28634f;border-radius:8px;margin:0 0 16px;padding:11px 14px;font-size:13px}.ticket-content-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr);align-items:start;gap:18px;display:grid}.ticket-panel{background:#252a36;border:1px solid #343a49;border-radius:10px;min-width:0;padding:22px}.ticket-panel h2{color:#e5ebf5;margin:0;font-size:17px}.ticket-panel p{color:#96a2b6;margin-top:7px;font-size:13px;line-height:1.5}.panel-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:21px;display:flex}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;display:grid}.detail-item strong{color:#e3e9f3;overflow-wrap:anywhere;font-size:14px;font-weight:550;line-height:1.45;display:block}.overview-links{border-top:1px solid #343a49;flex-wrap:wrap;gap:18px;margin-top:22px;padding-top:17px;display:flex}.overview-links a{color:#91baff;font-size:13px;text-decoration:none}.overview-links a:hover{text-decoration:underline}.status-panel>p{margin-bottom:20px}.status-select-wrap label,.field label{color:#b0bbcd;margin-bottom:7px;font-size:12px;font-weight:600;display:block}.status-select-wrap select,.field input,.field select,.field textarea{color:#e1e8f3;width:100%;min-height:40px;font:inherit;background:#1e232e;border:1px solid #3a4252;border-radius:7px;outline:none;padding:10px 11px;font-size:13px}.field textarea{resize:vertical;min-height:100px}.status-select-wrap select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:#578fe1;box-shadow:0 0 0 2px #3578db2c}.status-progress{gap:12px;margin-top:22px;display:grid}.status-progress div{color:#778398;align-items:center;gap:9px;font-size:12px;display:flex}.status-progress i{background:#434b5b;border-radius:50%;width:8px;height:8px;display:block}.status-progress .complete{color:#b9c5d9}.status-progress .complete i{background:#54a1ff;box-shadow:0 0 0 3px #3578db2d}.ticket-form-panel form{margin:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px;display:grid}.field{min-width:0}.field input[readonly]{color:#9ba8bc;background:#222733}.field-wide{grid-column:1/-1}.form-actions{justify-content:flex-end;margin-top:20px}.assignment-confirmation{border-top:1px solid #373e4d;align-items:center;gap:12px;margin-top:20px;padding-top:18px;display:flex}.confirmation-mark{color:#a8ebcc;background:#1e493e;border-radius:50%;place-items:center;width:30px;height:30px;display:grid}.assignment-confirmation strong,.assignment-confirmation span{font-size:13px;display:block}.assignment-confirmation strong{color:#dce7f3}.assignment-confirmation div span{color:#8e9bb0;margin-top:4px}.photo-upload-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.photo-drop{cursor:pointer;background:#212631;border:1px dashed #4a566b;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:145px;display:flex;position:relative}.photo-drop:hover{background:#252d3a;border-color:#6ca5fa}.photo-drop input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.photo-drop strong{color:#dce5f2;font-size:13px}.photo-drop>span:not(.photo-plus){color:#8f9db3;font-size:11px}.photo-plus{color:#8cb9ff;font-size:26px;line-height:1}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:20px;display:grid}.photo-card{background:#202530;border:1px solid #394151;border-radius:8px;min-width:0;overflow:hidden}.photo-card img{object-fit:cover;background:#171b23;width:100%;height:145px;display:block}.photo-card>div{grid-template-columns:1fr auto;align-items:center;gap:7px;padding:10px;display:grid}.photo-card strong{text-overflow:ellipsis;white-space:nowrap;color:#d5dfed;min-width:0;font-size:11px;font-weight:500;overflow:hidden}.photo-stage{color:#aacbff;background:#2c3b53;border-radius:9px;grid-column:1/-1;width:max-content;padding:3px 7px;font-size:10px}.photo-card button{color:#ec9b9b;cursor:pointer;background:0 0;border:0;font-size:11px}.empty-state{text-align:center;color:#8794a9;border:1px dashed #3b4352;border-radius:8px;flex-direction:column;align-items:center;gap:9px;padding:35px 15px;font-size:12px;display:flex}.empty-state strong{color:#cbd5e4;font-size:13px}.empty-state .button{margin-top:5px}.materials-list{gap:10px;display:grid}.material-row{background:#212631;border:1px solid #363e4d;border-radius:8px;grid-template-columns:30px minmax(160px,1fr) minmax(90px,.45fr) minmax(100px,.45fr) 28px;align-items:end;gap:11px;padding:12px;display:grid}.material-index{color:#728199;align-self:center;font-size:11px}.remove-material{color:#e89999;cursor:pointer;background:0 0;border:0;height:37px;font-size:22px}.ticket-timeline{margin:6px 0 0;padding:0 0 0 9px;list-style:none;position:relative}.ticket-timeline:before{content:"";background:#3d4657;width:1px;position:absolute;top:8px;bottom:10px;left:13px}.ticket-timeline li{gap:15px;padding:0 0 24px;display:flex;position:relative}.ticket-timeline li:last-child{padding-bottom:0}.timeline-dot{z-index:1;background:#5d9cff;border-radius:50%;flex:0 0 9px;height:9px;margin-top:4px;box-shadow:0 0 0 4px #252a36}.ticket-timeline li strong{color:#dfe7f3;font-size:13px;font-weight:600}.ticket-timeline li p{margin:5px 0}.ticket-timeline time{color:#7f8ca1;font-size:11px}.ticket-empty{background:#252a36;border:1px solid #343a49;border-radius:10px;padding:40px}.ticket-empty p{color:#a3afc2;margin:12px 0}.ticket-empty a{color:#91baff}@media (width<=900px){.ticket-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-summary-strip>div:nth-child(2){border-right:0}.ticket-summary-strip>div:nth-child(-n+2){border-bottom:1px solid #343a49}.ticket-content-grid{grid-template-columns:1fr}}@media (width<=640px){.ticket-heading{flex-direction:column;align-items:flex-start}.ticket-primary-actions{width:100%}.ticket-primary-actions .button{flex:1}.ticket-summary-strip>div{padding:12px}.ticket-panel{padding:16px}.detail-grid,.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.photo-upload-grid{grid-template-columns:1fr}.photo-drop{min-height:100px}.material-row{grid-template-columns:24px minmax(0,1fr) minmax(75px,.5fr) 28px}.material-row .field:nth-of-type(3){grid-column:2/4}.panel-heading{align-items:flex-start}}.report-workspace{color:#e8edf6;max-width:1050px;margin:0 auto}.report-toolbar{justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;display:flex}.report-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;display:flex}.report-toolbar a{color:#9dc2fa;font-size:13px;text-decoration:none}.report-toolbar p{color:#8e9bb0;margin-top:6px;font-size:12px}.job-report{color:#192238;background:#fff;border-radius:8px;padding:36px 42px;box-shadow:0 8px 30px #0003}.report-header{border-bottom:2px solid #1c2b50;grid-template-columns:150px minmax(0,1fr) auto;align-items:center;gap:22px;padding-bottom:22px;display:grid}.report-header img{width:150px;height:auto;display:block}.report-header div:nth-child(2) span{color:#5775a4;letter-spacing:.15em;font-size:10px;font-weight:700}.report-header h1{color:#17264a;margin:5px 0;font-size:25px}.report-header p{color:#65728a;margin:0;font-size:12px}.report-status{color:#256044;background:#e7f2eb;border-radius:20px;padding:7px 11px;font-size:11px;font-weight:700}.report-section{break-inside:avoid;border-bottom:1px solid #e0e5ec;padding:20px 0 18px}.report-section-title{align-items:center;gap:10px;margin-bottom:15px;display:flex}.report-section-title>span{color:#587bb5;font-size:11px;font-weight:800}.report-section-title h2{color:#1a2a4d;margin:0;font-size:15px}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 22px;display:grid}.report-field span{color:#748096;margin-bottom:4px;font-size:10px;display:block}.report-field strong{color:#25324a;overflow-wrap:anywhere;white-space:pre-wrap;font-size:12px;font-weight:600;line-height:1.5;display:block}.report-field-wide{grid-column:1/-1}.report-table{border-collapse:collapse;color:#25324a;width:100%;font-size:12px}.report-table th{color:#64738b;text-transform:uppercase;border-bottom:1px solid #cfd6e1;padding:8px 10px;font-size:10px}.report-table td{border-bottom:1px solid #e5e9ef;padding:9px 10px}.report-muted{color:#748096!important;font-size:12px!important}.report-photo-group+.report-photo-group{margin-top:15px}.report-photo-group h3{color:#273653;align-items:center;gap:9px;margin:0 0 9px;font-size:12px;display:flex}.report-photo-group h3 span{color:#7b879a;font-size:10px;font-weight:400}.report-photos{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.report-photos figure{break-inside:avoid;min-width:0;margin:0}.report-photos img{object-fit:cover;border:1px solid #dce2ea;border-radius:4px;width:100%;height:155px;display:block}.report-photos figcaption{color:#65728a;overflow-wrap:anywhere;padding-top:4px;font-size:9px}.report-events{gap:10px;margin:0;padding:0;list-style:none;display:grid}.report-events li{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:12px;display:grid}.report-events time{color:#6b7890;font-size:10px}.report-events strong{color:#283650;font-size:11px}.report-events p{color:#67758d;margin:3px 0 0;font-size:10px}.report-footer{color:#8390a3;justify-content:space-between;gap:15px;padding-top:16px;font-size:9px;display:flex}.report-empty{background:#252a36;border-radius:9px;padding:32px}.report-empty p{color:#a4b0c1;margin:10px 0}.report-empty a{color:#9dc2fa}.required-tag{color:#f3cf8a;background:#4b3b21;border-radius:14px;flex-shrink:0;padding:6px 10px;font-size:10px;font-weight:700}.contractor-form-section{border-top:1px solid #343a49;padding:18px 0}.contractor-form-section h3{color:#dfe6f2;margin:0 0 14px;font-size:14px}.maintenance-help{color:#97a4b8;margin:-6px 0 12px;font-size:12px}.maintenance-table-wrap{overflow-x:auto}.maintenance-entry-table{border-collapse:collapse;width:100%;min-width:620px}.maintenance-entry-table th{color:#9eabc0;text-align:left;padding:8px;font-size:11px;font-weight:600}.maintenance-entry-table td{border-top:1px solid #343a49;padding:5px}.maintenance-entry-table input{width:100%;min-width:90px}.maintenance-total{margin-top:12px}.maintenance-job-details{margin:8px 0 18px}.maintenance-observation-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.maintenance-observation-list li{color:#29364e;grid-template-columns:100px minmax(0,1fr);gap:12px;font-size:12px;display:grid}.maintenance-observation-list strong{color:#66748a}.maintenance-report-total{color:#5f6d83;margin:12px 0 0;font-size:12px}.contractor-na-note{color:#95a2b6;font-size:12px}.contractor-missing{color:#e9d5a8;background:#3a3123;border:1px solid #725a31;border-radius:7px;flex-direction:column;gap:6px;margin-bottom:18px;padding:12px 14px;font-size:11px;line-height:1.6;display:flex}.contractor-missing strong{color:#ffdfa0;font-size:12px}.report-requirement-notice{color:#efdaa9;background:#3c3222;border:1px solid #8a6831;border-radius:8px;flex-direction:column;gap:7px;margin-bottom:16px;padding:14px 16px;font-size:12px;line-height:1.55;display:flex}.report-requirement-notice strong{color:#ffdf9b;font-size:13px}.report-requirement-notice a{color:#a9ccff;width:max-content}.report-download-error{margin-bottom:14px}.reports-page{color:#e8edf6;max-width:1440px;margin:0 auto}.reports-heading h1{font-size:24px}.reports-heading p{color:#96a2b6;margin-top:7px;font-size:13px}.reports-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0;display:grid}.reports-summary>div{background:#252a36;border:1px solid #343a49;border-radius:9px;padding:16px 18px}.reports-summary span{color:#95a2b6;font-size:11px;display:block}.reports-summary strong{color:#e7edf6;margin-top:8px;font-size:24px;display:block}.reports-panel{background:#252a36;border:1px solid #343a49;border-radius:10px;padding:20px}.reports-panel-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.reports-panel-heading h2{font-size:16px}.reports-panel-heading>span{color:#8f9bb0;font-size:11px}.reports-table-wrap{overflow-x:auto}.reports-table{border-collapse:collapse;min-width:770px}.reports-table th{color:#8eacd7;text-align:left;text-transform:uppercase;border-bottom:1px solid #41495a;padding:10px 12px;font-size:10px}.reports-table td{color:#ccd5e3;vertical-align:middle;border-bottom:1px solid #363d4c;padding:12px;font-size:12px}.reports-table td:first-child strong,.reports-table td:first-child span{display:block}.reports-table td:first-child strong{color:#dce7f6;font-size:12px}.reports-table td:first-child span{color:#8895aa;margin-top:5px;font-size:10px}.reports-table td small{color:#c1a876;max-width:190px;margin-top:5px;font-size:10px;line-height:1.45;display:block}.report-ready-label,.report-missing-label{font-size:11px;font-weight:650;display:inline-block}.report-ready-label{color:#8fe0b8}.report-missing-label{color:#efc77f}.reports-table .button{min-height:34px;padding:0 10px;font-size:11px}@media (width<=600px){.reports-summary{grid-template-columns:1fr;gap:8px}.reports-summary>div{padding:12px 15px}.reports-summary strong{margin-top:4px;font-size:20px}.reports-panel{padding:14px}}@media (width<=800px){.job-report{padding:24px 18px}.report-header{grid-template-columns:100px 1fr;gap:14px}.report-header img{width:100px}.report-status{grid-column:2;justify-self:start}.report-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.report-events li{grid-template-columns:1fr;gap:3px}.report-toolbar{flex-direction:column;align-items:flex-start}.report-toolbar-actions{justify-content:flex-start;width:100%}}@media print{@page{size:A4;margin:14mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#192238!important;background:#fff!important}.app-header,.sidebar,.report-toolbar{display:none!important}.dashboard-layout{min-height:0!important;display:block!important}.content{padding:0!important;overflow:visible!important}.report-workspace{max-width:none;margin:0}.job-report{box-shadow:none;border-radius:0;padding:0}.report-section{break-inside:avoid}.report-photos img{height:130px}}@media (width<=760px){.dashboard-layout{min-height:0;display:block}.sidebar{z-index:10;border-bottom:1px solid #3a4050;width:100%;padding:0 8px;position:sticky;top:0}.sidebar h2{display:none}.sidebar ul{scrollbar-width:thin;gap:4px;margin:0;padding:6px 0;display:flex;overflow-x:auto}.sidebar li{flex:none;margin:0;padding:0}.sidebar a{white-space:nowrap;background:#34384f;border-radius:7px;padding:9px 11px;font-size:12px;display:block}.content{min-width:0;padding:18px 14px 32px;overflow-x:hidden}.dashboard-cards{gap:10px;margin:16px 0}.dashboard-card{padding:15px 10px}.dashboard-card h3{font-size:12px}.dashboard-card h1{margin-top:12px;font-size:30px}.field-trial-heading{flex-direction:column;align-items:flex-start;gap:12px}.field-trial-heading h2{font-size:22px}.field-trial-heading>.button{width:100%}.today-jobs-heading{flex-direction:column;align-items:flex-start}.today-jobs-heading>.button{width:100%}.today-job-card{flex-direction:column;align-items:flex-start}.today-job-card>.button{width:100%}.jobs-table,.technician-status{margin-top:16px;padding:15px}.ticket-tabs{flex-wrap:nowrap;padding-bottom:5px;overflow-x:auto}.ticket-tabs button{flex:none}}@media (width<=420px){.app-brand-logo{width:84px}.app-brand-title h1{font-size:13px}.app-version{display:none}.dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.ticket-primary-actions{flex-direction:column}.ticket-primary-actions .button{width:100%}}.fttb-page{color:#e8edf6;max-width:1440px;margin:0 auto}.fttb-page .tickets-page-heading p{max-width:760px}.fttb-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:22px 0;display:grid}.fttb-summary>div{background:#252a36;border:1px solid #343a49;border-radius:9px;padding:15px 17px}.fttb-summary span{color:#95a2b6;font-size:11px;display:block}.fttb-summary strong{color:#e7edf6;margin-top:7px;font-size:24px;display:block}.fttb-form-panel{margin-bottom:20px}.fttb-list-panel{background:#252a36;border:1px solid #343a49;border-radius:10px;padding:20px}.fttb-list-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.fttb-list-heading h2{color:#e4ebf6;margin:0;font-size:16px}.fttb-list-heading p{color:#95a2b6;margin:6px 0 0;font-size:12px}.fttb-filter{background:#1e232e;border:1px solid #3b4353;border-radius:8px;gap:4px;padding:4px;display:flex}.fttb-filter button{color:#a5b0c2;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px;font-size:11px}.fttb-filter button.selected{color:#cce0ff;background:#344b70}.fttb-build-list{gap:10px;display:grid}.fttb-build-card{background:#202530;border:1px solid #3a4251;border-radius:9px;overflow:hidden}.fttb-card-toggle{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) minmax(180px,.45fr) 24px;align-items:center;gap:14px;width:100%;padding:16px;display:grid}.fttb-card-title{gap:4px;min-width:0;display:grid}.fttb-card-title strong{color:#e1e8f3;font-size:14px}.fttb-ticket-id{color:#91baff;font-size:11px;font-weight:700}.fttb-card-title small,.fttb-stage-state small{color:#8996aa;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.fttb-stage-state{gap:5px;display:grid}.fttb-stage-state>span{color:#f0d18b;font-size:12px;font-weight:650}.fttb-stage-state>span.fttb-complete,.fttb-complete{color:#8fe0b8}.fttb-chevron{color:#9bbfff;text-align:center;font-size:20px}.fttb-progress-track{background:#323947;height:3px}.fttb-progress-track span{background:#4e93ef;height:100%;transition:width .2s;display:block}.fttb-expanded{border-top:1px solid #343a49;grid-template-columns:minmax(190px,.38fr) minmax(0,1fr);gap:22px;padding:19px;display:grid}.fttb-stage-list{align-content:start;gap:3px;margin:0;padding:0;list-style:none;display:grid}.fttb-stage-list li button{color:#7e8ba0;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:23px minmax(0,1fr);align-items:center;gap:9px;width:100%;padding:7px 8px;display:grid}.fttb-stage-list li button:hover{background:#292f3d}.fttb-stage-list li button i{color:#8390a4;border:1px solid #495366;border-radius:50%;place-items:center;width:20px;height:20px;font-size:10px;font-style:normal;display:grid}.fttb-stage-list li button span{font-size:11px}.fttb-stage-list li button small{color:#718099;grid-column:2;font-size:9px}.fttb-stage-list li.done button{color:#9ddbbd}.fttb-stage-list li.done button i{color:#9de2bd;background:#244b3b;border-color:#397558}.fttb-stage-list li.current button{color:#c8ddff;background:#2b3a52}.fttb-stage-list li.current button i{color:#fff;background:#355782;border-color:#5d93da}.fttb-stage-editor{background:#252a36;border:1px solid #363e4d;border-radius:8px;min-width:0;padding:17px}.fttb-editor-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.fttb-editor-heading>div>span{color:#8290a6;font-size:10px}.fttb-editor-heading h3{color:#e1e8f3;margin:4px 0 0;font-size:15px}.fttb-stage-actions{flex-wrap:wrap;justify-content:flex-end;gap:9px;margin-top:15px;display:flex}.fttb-updated{color:#76839a;margin:12px 0 0;font-size:10px}.fttb-sow-import{background:#202938;border:1px solid #39475c;border-radius:9px;margin:0 0 20px;padding:16px}.fttb-sow-import h3,.fttb-sow-details h3{color:#e6edf8;margin:0 0 6px;font-size:14px}.fttb-sow-import p{color:#9aa8bc;margin:0 0 11px;font-size:12px}.fttb-sow-import textarea{box-sizing:border-box;color:#e8edf6;width:100%;font:inherit;background:#1c222c;border:1px solid #414b5c;border-radius:7px;padding:11px;font-size:12px;display:block}.fttb-sow-actions{flex-wrap:wrap;align-items:center;gap:11px;margin-top:10px;display:flex}.fttb-sow-actions [role=status]{color:#9ddbbd;font-size:11px}.fttb-sow-details{background:#252a36;border:1px solid #363e4d;border-radius:8px;grid-column:1/-1;padding:15px}.fttb-sow-details dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;margin:9px 0 0;display:grid}.fttb-sow-details dl>div{border-top:1px solid #343a49;grid-template-columns:minmax(130px,.55fr) minmax(0,1fr);gap:10px;padding:8px 0;display:grid}.fttb-sow-details dt{color:#94a1b5;font-size:11px}.fttb-sow-details dd{color:#e3eaf4;overflow-wrap:anywhere;margin:0;font-size:11px}@media (width<=760px){.fttb-sow-details dl{grid-template-columns:1fr}.fttb-sow-details dl>div{grid-template-columns:minmax(115px,.55fr) minmax(0,1fr)}.fttb-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fttb-summary>div{padding:12px}.fttb-list-panel{padding:14px}.fttb-list-heading{flex-direction:column;align-items:flex-start}.fttb-expanded{grid-template-columns:1fr;gap:14px;padding:13px}.fttb-stage-list{grid-template-columns:repeat(2,minmax(0,1fr))}.fttb-card-toggle{grid-template-columns:minmax(0,1fr) 24px}.fttb-stage-state{grid-area:2/1}.fttb-chevron{grid-area:1/2/3}.fttb-stage-actions .button{width:100%}}.archives-page{max-width:1100px;margin:0 auto;padding:24px}.archives-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.archives-heading h1{margin:0 0 6px;font-size:26px}.archives-heading p{color:#94a0b3;margin:0}.archives-info{color:#dce8f6;background:#1d2b3d;border:1px solid #36516d;border-radius:10px;flex-direction:column;gap:6px;margin-bottom:18px;padding:16px 18px;display:flex}.archives-info strong{color:#fff}.archives-info span{color:#aebcd0;font-size:13px;line-height:1.5}.archives-panel{background:#202938;border:1px solid #303b4d;border-radius:10px;margin-bottom:20px;overflow:hidden}.archives-panel-heading{border-bottom:1px solid #303b4d;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.archives-panel-heading h2{color:#edf3fb;margin:0 0 5px;font-size:16px}.archives-panel-heading p{color:#9aa8bc;margin:0;font-size:12px}.archives-form{padding:18px}.archives-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.archives-form .field{color:#dce5f1;flex-direction:column;gap:7px;display:flex}.archives-form .field span{font-size:13px;font-weight:600}.archives-form .field input,.archives-form .field select{box-sizing:border-box;color:#e8edf6;width:100%;font:inherit;background:#1c222c;border:1px solid #414b5c;border-radius:7px;padding:10px 12px}.archives-form .field small{color:#9aa8bc;line-height:1.4}.archives-form .field-wide{grid-column:1/-1}.archive-progress{color:#dce5f1;margin-top:16px}.archive-progress>div{justify-content:space-between;margin-bottom:6px;font-size:13px;display:flex}.archive-progress progress{accent-color:#35b779;width:100%;height:12px}.archive-message{border-radius:7px;margin:14px 0 0;padding:11px 13px;font-size:13px}.archive-error{color:#ffd7d7;background:#4a272e;border:1px solid #77404b}.archive-success{color:#d7ffe9;background:#1e4337;border:1px solid #326a55}.archives-list{flex-direction:column;display:flex}.archive-card{border-bottom:1px solid #303b4d;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px;display:flex}.archive-card:last-child{border-bottom:0}.archive-card-main{min-width:0}.archive-source{color:#85c5ff;text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:11px;font-weight:700;display:inline-block}.archive-card h3{color:#edf3fb;margin:0 0 4px;font-size:15px}.archive-card p{color:#d0d9e5;overflow-wrap:anywhere;margin:0 0 5px}.archive-card small{color:#9aa8bc}@media (width<=640px){.archives-page{padding:16px}.archives-form-grid{grid-template-columns:1fr}.archives-form .field-wide{grid-column:auto}.archive-card{flex-direction:column;align-items:flex-start}.archives-panel-heading{align-items:flex-start}}
