:root{--carbon:#181c1f;--carbon-soft:#272d31;--canvas:#f3f5f5;--surface:#fff;--line:#d9dfe0;--line-strong:#b8c1c2;--ink:#182023;--muted:#607074;--teal:#007a78;--teal-hover:#006663;--teal-soft:#e1f2f1;--green:#16794b;--green-soft:#e4f4eb;--amber:#9a5d00;--amber-soft:#fff1d6;--red:#b42318;--red-soft:#fee9e7;--gray-soft:#edf0f1;color:var(--ink);background:var(--canvas);font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html,body{background:var(--canvas);min-height:100%;margin:0}body{min-width:320px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}.portal{min-height:100dvh;padding-bottom:76px}.topbar{background:var(--carbon);color:#fff;z-index:20;justify-content:space-between;align-items:center;gap:12px;height:58px;padding:0 16px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{border:2px solid #51d0c8;place-items:center;width:30px;height:30px;font-size:12px;font-weight:800;display:grid}.brand-copy{min-width:0}.brand-copy strong,.brand-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.brand-copy strong{font-size:14px}.brand-copy span{color:#b9c2c4;margin-top:2px;font-size:11px}.icon-button{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;display:grid}.icon-button:hover{background:var(--carbon-soft)}.content{width:min(100%,980px);margin:0 auto;padding:18px 14px 28px}.bottom-nav{background:var(--carbon);color:#c5cdcf;z-index:30;border-top:1px solid #394247;justify-content:center;height:68px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{grid-template-columns:repeat(3,1fr);width:min(100%,560px);display:grid}.nav-link{flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:58px;padding:7px 4px 5px;font-size:11px;text-decoration:none;display:flex}.nav-link:hover,.nav-link:focus-visible{color:#68d8d0;background:var(--carbon-soft)}.page-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.page-header h1{letter-spacing:0;margin:0;font-size:22px;line-height:1.2}.detail-back{width:fit-content;min-height:44px;color:var(--teal);text-transform:uppercase;border-radius:4px;align-items:center;gap:6px;margin:-8px 0 2px -8px;padding:8px;font-size:11px;font-weight:800;text-decoration:none;display:inline-flex}.detail-back:hover,.detail-back:focus-visible{background:var(--teal-soft)}.eyebrow{color:var(--teal);text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:800}.subtle{color:var(--muted);font-size:13px;line-height:1.45}.section{margin-top:22px}.section-heading{border-bottom:1px solid var(--line-strong);justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;padding-bottom:8px;display:flex}.section-heading h2{margin:0;font-size:14px}.count{background:var(--gray-soft);min-width:24px;height:24px;color:var(--muted);border-radius:4px;place-items:center;padding:0 7px;font-size:11px;font-weight:700;display:grid}.job-list{gap:8px;display:grid}.job-card{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:6px;padding:13px 13px 12px;text-decoration:none;display:block;box-shadow:0 1px 2px #1820230d}.job-card:hover{border-color:#9ab7b6}.job-card-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.job-card h3{margin:8px 0 4px;font-size:15px;line-height:1.35}.job-card p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.job-meta{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:8px 14px;margin-top:10px;padding-top:9px;font-size:11px;display:flex}.meta-item{align-items:center;gap:5px;min-width:0;display:inline-flex}.status{text-transform:uppercase;white-space:nowrap;border-radius:4px;align-items:center;min-height:24px;padding:3px 7px;font-size:10px;font-weight:800;display:inline-flex}.status-assigned{color:#46565a;background:var(--gray-soft)}.status-en-route{color:var(--amber);background:var(--amber-soft)}.status-in-progress{color:var(--teal);background:var(--teal-soft)}.status-pending-parts{color:var(--red);background:var(--red-soft)}.status-completed{color:var(--green);background:var(--green-soft)}.metric-grid{border:1px solid var(--line);background:var(--surface);border-radius:6px;grid-template-columns:repeat(2,minmax(0,1fr));display:grid;overflow:hidden}.metric{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;padding:13px}.metric:nth-child(2n){border-right:0}.metric:nth-last-child(-n+2){border-bottom:0}.metric strong{font-size:22px;display:block}.metric span{color:var(--muted);margin-top:3px;font-size:11px;display:block}.detail-grid{gap:12px;display:grid}.work-surface{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:14px}.work-surface h2{margin:0 0 12px;font-size:14px}.data-list{grid-template-columns:minmax(90px,.7fr) minmax(0,1.4fr);gap:9px 12px;margin:0;font-size:12px;display:grid}.data-list dt{color:var(--muted)}.data-list dd{overflow-wrap:anywhere;margin:0;font-weight:600}.contact-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;display:grid}.button,.button-secondary,.button-danger{cursor:pointer;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:9px 13px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.button{background:var(--teal);color:#fff}.button:hover{background:var(--teal-hover)}.button-secondary{color:var(--ink);border-color:var(--line-strong);background:#fff}.button-secondary:hover{background:var(--gray-soft)}.button-danger{color:var(--red);background:#fff;border-color:#e6aaa5}.button:disabled,.button-secondary:disabled,.button-danger:disabled{opacity:.55;cursor:wait}.button-full{width:100%}.action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.field{gap:6px;margin-top:10px;display:grid}.field label{font-size:12px;font-weight:700}.input,.select,.textarea{border:1px solid var(--line-strong);width:100%;min-height:44px;color:var(--ink);background:#fff;border-radius:5px;padding:9px 10px}.textarea{resize:vertical;min-height:88px}.input:focus,.select:focus,.textarea:focus{outline-offset:1px;outline:2px solid #73cac5}.inline-error,.inline-success,.inline-note{border-radius:4px;margin-top:10px;padding:9px 10px;font-size:12px;line-height:1.4}.inline-error{background:var(--red-soft);color:var(--red)}.inline-success{background:var(--green-soft);color:var(--green)}.inline-note{background:var(--amber-soft);color:var(--amber)}.timeline{gap:0;display:grid}.timeline-item{padding:0 0 16px 22px;font-size:12px;position:relative}.timeline-item:before{content:"";background:var(--teal);border-radius:50%;width:7px;height:7px;position:absolute;top:4px;left:5px}.timeline-item:after{content:"";border-left:1px solid var(--line-strong);position:absolute;top:12px;bottom:0;left:8px}.timeline-item:last-child:after{display:none}.timeline-item strong{display:block}.timeline-item span{color:var(--muted);margin-top:3px;line-height:1.4;display:block}.part-row,.history-row,.upload-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;font-size:12px;display:flex}.part-row:first-child,.history-row:first-child,.upload-row:first-child{border-top:0;padding-top:0}.part-row strong,.history-row strong,.upload-row strong{overflow-wrap:anywhere;display:block}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.photo-grid img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);border-radius:5px;width:100%}.camera-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.camera-label{width:100%;min-height:48px}.empty,.error-panel{border:1px dashed var(--line-strong);text-align:center;background:#fff;border-radius:6px;padding:18px 14px}.empty strong,.error-panel strong{font-size:13px;display:block}.empty span,.error-panel span{color:var(--muted);margin-top:5px;font-size:12px;display:block}.terminal{background:var(--green-soft);color:var(--green);border:1px solid #aad7bf;border-radius:6px;align-items:flex-start;gap:10px;padding:12px;font-size:12px;line-height:1.4;display:flex}.auth-page{background:var(--canvas);grid-template-rows:74px 1fr;min-height:100dvh;display:grid}.auth-brand{background:var(--carbon);color:#fff;align-items:center;gap:10px;padding:0 18px;display:flex}.auth-main{width:min(100%,430px);margin:0 auto;padding:40px 18px}.auth-main h1{margin:0;font-size:24px}.auth-main>p{color:var(--muted);margin:8px 0 24px;font-size:13px;line-height:1.5}.auth-form{background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:18px}.auth-form .field:first-child{margin-top:0}.auth-form .button{margin-top:16px}.loading-stack{gap:9px;display:grid}.skeleton{border:1px solid var(--line);background:#e5e9ea;border-radius:6px;height:96px}@media (min-width:760px){.content{padding:24px 24px 38px}.detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid .wide{grid-column:1/-1}.metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.metric{border-bottom:0}.metric:nth-child(2n){border-right:1px solid var(--line)}.metric:last-child{border-right:0}.job-list{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1000px){.portal{padding-bottom:0}.content{width:min(100% - 120px,980px);margin-left:max(96px,50% - 490px);margin-right:auto}.bottom-nav{border-top:0;border-right:1px solid #394247;align-items:flex-start;width:72px;height:auto;top:58px;right:auto}.bottom-nav-inner{flex-direction:column;width:100%;padding-top:10px;display:flex}.nav-link{min-height:66px;padding:8px 3px}}@media (max-width:390px){.content{padding-left:12px;padding-right:12px}.action-grid{grid-template-columns:1fr}.page-header h1{font-size:20px}}
