:root{
    --brand:#0b3b66;
    --brand-strong:#082f53;
    --brand-soft:#edf4fa;
    --accent:#1268dc;
    --accent-soft:#eaf2ff;
    --ink:#152536;
    --muted:#66798c;
    --line:#dfe7ee;
    --line-strong:#cdd8e2;
    --surface:#ffffff;
    --surface-soft:#f6f8fa;
    --background:#f2f5f7;
    --success:#16734a;
    --success-soft:#eaf7f0;
    --warning:#8a5b08;
    --warning-soft:#fff6df;
    --danger:#b42318;
    --danger-soft:#fff0ef;
    --shadow:0 8px 28px rgba(28,48,68,.08);
    --shadow-soft:0 3px 14px rgba(28,48,68,.06);
    --radius:18px;
    --radius-small:13px;
    --safe-bottom:max(10px,env(safe-area-inset-bottom));
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:var(--ink);
    background:var(--background)
}
*{box-sizing:border-box}
html,body,#app{height:100%;min-height:100%;margin:0;overflow:hidden}
html{background:var(--background);scroll-behavior:smooth}
body{background:var(--background);color:var(--ink);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
a{color:inherit}
.ui-icon{width:22px;height:22px;display:block;flex:0 0 auto}
.shell{height:100dvh;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden;padding-bottom:0}
.shell.with-job-actions{padding-bottom:0}
.app-header{
    position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:12px;
    min-height:66px;padding:9px 15px;background:rgba(255,255,255,.96);
    border-bottom:1px solid rgba(211,222,231,.85);backdrop-filter:blur(16px)
}
.brand-button{display:flex;align-items:center;gap:10px;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:var(--ink)}
.brand-button img{width:40px;height:40px;border-radius:12px;box-shadow:var(--shadow-soft)}
.brand-button>span{min-width:0;display:grid;gap:1px}
.brand-button strong,.brand-button small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-button strong{font-size:14px;font-weight:800}
.brand-button small{font-size:11px;color:var(--muted);font-weight:650}
.header-actions{margin-left:auto;display:flex;gap:7px}
.icon-button,.avatar-button{
    width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);
    border-radius:13px;background:var(--surface);color:var(--ink)
}
.icon-button:hover,.avatar-button:hover{background:var(--surface-soft)}
.avatar-button{background:var(--brand-soft);color:var(--brand);border-color:transparent;overflow:hidden}.avatar-button img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
.app-main{width:min(760px,100%);height:100%;min-height:0;margin:0 auto;padding:20px 15px calc(96px + var(--safe-bottom));overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.shell.with-job-actions .app-main{padding-bottom:calc(166px + var(--safe-bottom))}
.shell.with-active-job-strip .app-main{padding-bottom:calc(164px + var(--safe-bottom))}
.app-loading{min-height:70vh;display:grid;place-items:center;align-content:center;gap:13px;color:var(--muted)}
.spinner{width:32px;height:32px;border:3px solid #d7e0e7;border-top-color:var(--accent);border-radius:50%;animation:spin .75s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.install-banner{
    width:min(760px,100%);margin:0 auto;display:flex;align-items:center;justify-content:space-between;
    gap:12px;padding:10px 15px;background:var(--warning-soft);border-bottom:1px solid #f1dfab;color:#674509;font-size:12px;font-weight:650
}
.install-banner button{border:0;border-radius:10px;padding:8px 12px;background:var(--ink);color:#fff;font-weight:800}
.bottom-nav{
    position:fixed;left:0;right:0;bottom:0;z-index:50;display:grid;grid-template-columns:repeat(5,1fr);
    min-height:72px;padding:6px 6px var(--safe-bottom);background:rgba(255,255,255,.97);
    border-top:1px solid var(--line);box-shadow:0 -8px 26px rgba(28,48,68,.07);backdrop-filter:blur(18px)
}
.nav-item{
    position:relative;display:grid;place-items:center;align-content:center;gap:2px;min-width:0;
    padding:5px 2px;border:0;background:transparent;color:#758493;text-decoration:none;font-size:10px;font-weight:750
}
.nav-item .ui-icon{width:21px;height:21px}
.nav-item.active{color:var(--accent)}
.nav-item.active:before{
    content:"";position:absolute;top:-6px;width:28px;height:3px;border-radius:0 0 8px 8px;background:var(--accent)
}
.active-job-strip{
    position:fixed;left:10px;right:10px;bottom:calc(73px + var(--safe-bottom));z-index:46;
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;
    max-width:740px;margin:auto;padding:9px 11px;border:1px solid #cdd9e4;border-radius:15px;
    background:rgba(255,255,255,.98);box-shadow:0 9px 25px rgba(28,48,68,.14);text-align:left;color:var(--ink)
}
.active-job-strip span:nth-child(2){min-width:0;display:grid}
.active-job-strip small{font-size:10px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.active-job-strip strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.active-job-strip .ui-icon{width:18px}
.active-job-dot{width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px var(--success-soft)}
.home-greeting{margin-bottom:14px}
.home-greeting span,.eyebrow{display:block;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.075em}
.home-greeting h1,.page-title h1,.job-hero h1,.offer-hero h1,.profile-card h1{margin:2px 0 0;font-size:26px;line-height:1.15;letter-spacing:-.025em}
.page-title{display:flex;justify-content:space-between;gap:12px;margin:2px 0 20px}
.page-title p{margin:6px 0 0;color:var(--muted);max-width:560px}
.next-card{
    padding:20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);
    box-shadow:var(--shadow);margin-bottom:14px;overflow:hidden
}
.next-card.active{background:linear-gradient(145deg,var(--brand),var(--brand-strong));color:#fff;border-color:transparent}
.next-card.offer{border-color:#bdd3e7}
.next-card.clear{background:var(--surface-soft);box-shadow:none}
.next-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.next-card.active .eyebrow{color:rgba(255,255,255,.68)}
.next-card.active .status-pill{background:rgba(255,255,255,.14);color:#fff}
.next-card h1{margin:13px 0 4px;font-size:24px;line-height:1.15}
.next-card-rate-line{display:block;margin:2px 0 6px;color:var(--success);font-size:13px;line-height:1.3;font-weight:850;white-space:normal;overflow-wrap:anywhere;max-width:100%}
.next-card p{margin:0 0 18px;color:var(--muted)}
.next-card.active p{color:rgba(255,255,255,.75)}
.quick-stat-grid{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:24px}
.quick-stat{
    display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;width:100%;
    padding:12px 13px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);text-align:left
}
.quick-stat>.ui-icon:first-child{width:21px;color:var(--accent)}
.quick-stat>span{display:flex;align-items:baseline;gap:7px}
.quick-stat strong{font-size:19px}
.quick-stat small{font-size:12px;color:var(--muted);font-weight:650}
.quick-stat>.ui-icon:last-child{width:17px;color:#9aabba}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 1px 9px}
.section-heading h2{margin:0;font-size:18px;letter-spacing:-.015em}
.text-button{
    display:inline-flex;align-items:center;gap:2px;border:0;background:transparent;color:var(--accent);
    padding:6px 0;font-size:12px;font-weight:800
}
.text-button .ui-icon{width:16px}
.section-count{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:12px;font-weight:800}
.job-list,.history-list,.earning-list{display:grid;gap:9px}
.job-card{
    display:grid;gap:11px;padding:15px;background:var(--surface);border:1px solid var(--line);
    border-radius:17px;text-decoration:none;color:var(--ink);box-shadow:var(--shadow-soft)
}
.job-card:active{transform:scale(.995)}
.job-card.compact{padding:13px;box-shadow:none}
.job-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.card-eyebrow{display:block;margin-bottom:2px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.065em}
.job-card h3,.earning-card h3{margin:0;font-size:17px;line-height:1.2}
.job-card-copy{min-width:0;max-width:100%;flex:1}
.job-card-rate-line{display:block;margin:4px 0 1px;color:var(--success);font-size:12px;line-height:1.3;font-weight:850;white-space:normal;overflow-wrap:anywhere;max-width:100%}
.job-card p{margin:3px 0 0;color:var(--muted)}
.job-fault{padding:9px 10px!important;border-radius:11px;background:var(--surface-soft);color:#35495d!important;font-size:13px}
.job-card-meta{display:flex;align-items:center;justify-content:space-between;gap:9px;color:var(--muted);font-size:11px;font-weight:650}
.job-card-meta>span{display:flex;align-items:center;gap:4px}
.job-card-meta .ui-icon{width:15px;height:15px}
.continue-link{color:var(--accent)!important;font-weight:800}
.status-pill{
    display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:100%;
    padding:5px 9px;border-radius:999px;background:#eef2f5;color:#526576;font-size:10px;font-weight:850;
    text-transform:capitalize;white-space:nowrap
}
.status-pill.success{background:var(--success-soft);color:var(--success)}
.status-pill.warning{background:var(--warning-soft);color:var(--warning)}
.jobs-group-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px}
.jobs-group-card{
    min-width:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;
    padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:left;color:var(--ink)
}
.jobs-group-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand)}
.jobs-group-icon .ui-icon{width:18px;height:18px}
.jobs-group-card>span:nth-child(2){min-width:0;display:grid}
.jobs-group-card strong{font-size:19px;line-height:1}
.jobs-group-card small{font-size:11px;font-weight:800;margin-top:3px}
.jobs-group-card em{font-style:normal;color:var(--muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jobs-group-card>.ui-icon{width:15px;color:#a2afbb}
.jobs-section{scroll-margin-top:80px;margin-top:25px}
.empty-state{
    display:grid;justify-items:center;text-align:center;padding:26px 18px;border:1px dashed var(--line-strong);
    border-radius:18px;background:rgba(255,255,255,.55);color:var(--muted)
}
.empty-state strong{color:var(--ink);font-size:15px}
.empty-state p{margin:4px 0 0;max-width:340px;font-size:12px}
.empty-mark{width:43px;height:43px;display:grid;place-items:center;margin-bottom:8px;border-radius:14px;background:var(--brand-soft);color:var(--brand)}
.back-link{display:inline-flex;align-items:center;gap:4px;padding:4px 2px 12px;border:0;background:transparent;color:var(--muted);font-weight:800;font-size:12px}
.back-link .ui-icon{width:17px}
.offer-hero,.job-hero{
    padding:19px;border:1px solid var(--line);border-radius:21px;background:var(--surface);box-shadow:var(--shadow);margin-bottom:12px
}
.offer-hero-row{display:block}
.offer-hero-copy{min-width:0;max-width:100%}
.job-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.offer-hero-row h1{margin-top:5px}
.offer-hero-row p,.job-hero p{margin:4px 0 0;color:var(--muted)}
.offer-rate-line{display:block;margin:5px 0 1px;color:var(--success);font-size:14px;line-height:1.3;font-weight:850;white-space:normal;overflow-wrap:anywhere;max-width:100%}
.offer-fault{margin:16px 0 0;padding:12px;border-radius:13px;background:var(--surface-soft);color:#35495d}
.offer-actions{display:grid;gap:8px;margin-top:15px}
.info-card,.content-card,.workflow-card,.profile-card,.inbox-status-card{
    padding:17px;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow-soft);margin-bottom:12px
}
.info-list{display:grid}
.info-row{
    display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;align-items:center;
    padding:11px 0;border-bottom:1px solid #edf1f4
}
.info-row:last-child{border-bottom:0}
.info-row span{color:var(--muted);font-size:12px;font-weight:650}
.info-row strong,.info-row address{text-align:right;font-style:normal;font-size:13px;font-weight:750}
.info-row.multiline{align-items:start}
.info-list.compact .info-row{padding:9px 0}
.notice{display:grid;gap:2px;padding:12px 13px;border-radius:13px;margin-bottom:12px;background:var(--accent-soft);color:#245b8a}
.notice.warning{background:var(--warning-soft);color:#6d4908}
.notice.error{background:var(--danger-soft);color:var(--danger)}
.workflow-progress{
    display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:0 3px 14px;padding:11px 3px;
    border-radius:16px;background:var(--surface);border:1px solid var(--line)
}
.workflow-step{position:relative;display:grid;justify-items:center;gap:4px;color:#99a7b3;text-align:center}
.workflow-step:after{content:"";position:absolute;top:11px;left:calc(50% + 12px);right:calc(-50% + 12px);height:2px;background:#e2e8ed}
.workflow-step:last-child:after{display:none}
.workflow-step>span{position:relative;z-index:1;width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#eef2f5;font-size:10px;font-weight:850}
.workflow-step small{font-size:8px;font-weight:750}
.workflow-step.done,.workflow-step.current{color:var(--success)}
.workflow-step.done>span,.workflow-step.current>span{background:var(--success);color:#fff}
.workflow-step.done:after{background:var(--success)}
.workflow-card{padding:18px;border-color:#cfdce7;box-shadow:var(--shadow)}
.workflow-card.ready{border-color:#b9ddc8;background:linear-gradient(180deg,#fff,var(--success-soft))}
.workflow-card.travel{border-color:#bfd6ee}
.workflow-card.waiting{background:#fffdf7;border-color:#efdfb5}
.workflow-heading{margin-bottom:14px}
.workflow-heading h2{margin:4px 0 3px;font-size:20px;letter-spacing:-.02em}
.workflow-heading p{margin:0;color:var(--muted);font-size:13px}
.waiting-pulse{display:flex;align-items:center;gap:8px;padding:11px 12px;border-radius:12px;background:rgba(255,255,255,.7);font-size:12px;font-weight:750;color:var(--warning)}
.waiting-pulse>span{width:8px;height:8px;border-radius:50%;background:#d29319;animation:pulse 1.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.35}}
.form{display:grid;gap:12px}
.form label{display:grid;gap:5px;font-size:12px;font-weight:750}
.form label small{font-weight:500;color:var(--muted)}
input,textarea,select{
    width:100%;min-height:45px;padding:11px 12px;border:1px solid var(--line-strong);border-radius:12px;
    background:#fff;color:var(--ink);outline:none
}
textarea{min-height:100px;resize:vertical}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(18,104,220,.11)}
input[type="date"],input[type="time"],input[type="datetime-local"]{display:block;width:100%;min-width:0;max-width:100%;height:45px;min-height:45px;box-sizing:border-box;-webkit-appearance:none;appearance:none}input[type="date"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value,input[type="datetime-local"]::-webkit-date-and-time-value{min-height:0;text-align:left}.form label{min-width:0}
@media(max-width:760px){input,textarea,select{font-size:16px}}
.button{
    display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 14px;
    border:1px solid transparent;border-radius:12px;text-decoration:none;font-weight:800;font-size:13px
}
.button .ui-icon{width:18px}
.button.primary{background:var(--accent);color:#fff;box-shadow:0 5px 14px rgba(18,104,220,.22)}
.button.secondary{background:#fff;color:var(--ink);border-color:var(--line-strong)}
.button.ghost{background:transparent;border-color:transparent;box-shadow:none}
.button.large{min-height:50px;font-size:14px;border-radius:14px}
.button.full{width:100%}
.button:disabled{opacity:.48;cursor:not-allowed}
.danger-text{color:var(--danger)}
.stack-actions{display:grid;gap:8px}
.diagnosis-grid{display:grid;gap:10px}
.choice-panel{padding:14px;border:1px solid var(--line);border-radius:15px;background:#fff}
.choice-panel.secondary-choice{background:var(--surface-soft)}
.choice-panel h3{margin:0;font-size:16px}
.choice-panel>p{margin:3px 0 13px;color:var(--muted);font-size:12px}
.check-grid{display:grid;gap:8px}
.check{
    display:flex!important;align-items:flex-start;gap:9px;padding:11px!important;border:1px solid var(--line);
    border-radius:12px;background:#fff;font-weight:700!important
}
.check input{width:19px;height:19px;min-height:auto;flex:0 0 auto;margin:1px 0 0;accent-color:var(--accent)}
.upload-grid{display:grid;gap:8px}
.upload-control{display:block;min-width:0}
.upload-card{
    width:100%;min-height:64px;display:grid!important;grid-template-columns:auto 1fr;align-items:center;gap:10px;text-align:left;
    padding:12px!important;border:1px dashed #adc0d0!important;border-radius:13px;background:var(--surface-soft);color:var(--ink);
    cursor:pointer;font:inherit;font-weight:inherit!important
}
.upload-card:active{transform:scale(.995)}
.upload-icon{width:35px;height:35px;display:grid;place-items:center;border-radius:11px;background:var(--brand-soft);color:var(--brand)}
.upload-icon .ui-icon{width:18px}
.upload-card>span:nth-child(2){display:grid}
.upload-card strong{font-size:12px}
.upload-card small{font-size:9px;color:var(--muted);font-weight:600}
.upload-control>input[type="file"][hidden]{display:none!important}
.evidence-list{display:grid;gap:5px;margin-top:9px}
.evidence-item{padding:7px 9px;border-radius:9px;background:var(--success-soft);color:var(--success);font-size:10px;font-weight:750}
.completion-ready{margin-top:14px;padding:14px;border-radius:14px;background:var(--success-soft);color:var(--success)}
.completion-ready p{margin:2px 0 10px;font-size:12px}
.map-card{scroll-margin-top:80px}
.map-frame{display:block;width:100%;height:290px;border:0;border-radius:14px;background:#e4ebf1}
.location-share-prompt{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.location-share-prompt>div{display:grid;gap:3px;min-width:0}.location-share-prompt strong{display:flex;align-items:center;gap:6px;font-size:13px}.location-share-prompt strong svg{width:17px;height:17px}.location-share-prompt span{color:var(--muted);font-size:11px;line-height:1.4}.location-share-prompt .button{flex:0 0 auto;width:auto;min-height:42px;margin:0}.location-share-prompt.is-enabled{border-color:color-mix(in srgb,var(--success) 35%,var(--line));background:color-mix(in srgb,var(--success) 7%,var(--surface))}
@media(max-width:520px){.location-share-prompt{align-items:stretch;flex-direction:column}.location-share-prompt .button{width:100%}}
.job-action-bar{
    position:fixed;left:8px;right:8px;bottom:calc(72px + var(--safe-bottom));z-index:48;
    display:grid;grid-template-columns:repeat(4,1fr);max-width:744px;margin:auto;
    border:1px solid var(--line);border-radius:17px;background:rgba(255,255,255,.98);
    box-shadow:0 8px 30px rgba(28,48,68,.16);overflow:hidden;backdrop-filter:blur(16px)
}
.job-action{
    display:grid;justify-items:center;align-content:center;gap:2px;min-height:58px;padding:5px 3px;
    border:0;border-right:1px solid #edf1f4;background:transparent;color:var(--ink);text-decoration:none;font-size:9px;font-weight:800
}
.job-action:last-child{border-right:0}
.job-action .ui-icon{width:20px;color:var(--brand)}
.job-action:disabled{opacity:.4}
.earnings-summary{
    padding:18px;border-radius:20px;background:linear-gradient(145deg,var(--brand),var(--brand-strong));color:#fff;margin-bottom:14px;box-shadow:var(--shadow)
}
.earnings-total{display:grid;gap:2px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,.15)}
.earnings-total span{font-size:11px;color:rgba(255,255,255,.7);font-weight:700}
.earnings-total strong{font-size:29px;letter-spacing:-.03em}
.earnings-split{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:13px}
.earnings-split>div{display:grid}
.earnings-split small{color:rgba(255,255,255,.68);font-size:10px}
.earnings-split strong{font-size:16px}
.earning-card{
    padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-soft)
}
.earning-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.earning-main p{margin:3px 0 0;color:var(--muted);font-size:11px}
.earning-main>strong{font-size:18px;white-space:nowrap}
.earning-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px}
.part-cost{font-size:10px;color:var(--muted);font-weight:700}
.upload-invoice{
    display:flex;align-items:center;justify-content:center;gap:6px;margin-top:10px;padding:9px 10px;border-radius:11px;
    background:var(--surface-soft);border:1px solid var(--line);font-size:11px;font-weight:800;cursor:pointer
}
.upload-invoice .ui-icon{width:17px;color:var(--brand)}
.upload-invoice>span{display:grid;line-height:1.2}.upload-invoice small{font-size:9px;color:var(--muted);font-weight:650}
.history-card{
    display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 13px;
    border:1px solid var(--line);border-radius:15px;background:var(--surface)
}
.history-card-main{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:var(--ink)}
.history-card-main>span{min-width:0;display:grid}
.history-card-main small{font-size:9px;color:var(--muted)}
.history-card-main strong{font-size:13px}
.history-card-main em{font-style:normal;font-size:10px;color:var(--muted)}
.history-amount{font-size:14px}
.inbox-status-card{display:flex;align-items:flex-start;gap:13px}
.inbox-mark{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:14px;background:var(--brand-soft);color:var(--brand)}
.inbox-status-card h2{margin:1px 0 3px;font-size:17px}
.inbox-status-card p{margin:0;color:var(--muted);font-size:12px}
.menu-list{display:grid;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-soft)}
.menu-row{
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;
    min-height:62px;padding:10px 13px;border:0;border-bottom:1px solid #edf1f4;background:transparent;text-align:left;text-decoration:none;color:var(--ink)
}
.menu-row:last-child{border-bottom:0}
.menu-icon{width:37px;height:37px;display:grid;place-items:center;border-radius:12px;background:var(--surface-soft);color:var(--brand)}
.menu-icon .ui-icon{width:19px}
.menu-row>span:nth-child(2){min-width:0;display:grid}
.menu-row strong{font-size:13px}
.menu-row small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-row>.ui-icon{width:16px;color:#9aabba}
.danger-row .menu-icon,.danger-row strong{color:var(--danger)}
.profile-card{display:flex;align-items:center;gap:13px;width:100%;text-align:left;color:var(--ink)}
.profile-card-button{padding:0;border:0;background:transparent}.profile-card-button>div{min-width:0;flex:1}.profile-card-button>.ui-icon{width:18px;color:var(--muted)}
.engineer-avatar{width:52px;height:52px;display:grid;place-items:center;flex:0 0 auto;border-radius:17px;background:var(--brand-soft);color:var(--brand);overflow:hidden}.engineer-avatar .ui-icon{width:27px;height:27px}.engineer-avatar img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}
.profile-card p{margin:3px 0 0;color:var(--muted);font-size:11px}.profile-card small{color:var(--accent);font-size:9px;font-weight:700}
.profile-page-card{display:flex;align-items:center;gap:15px;padding:16px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft)}.profile-photo-button{position:relative;width:76px;height:76px;display:grid;place-items:center;flex:0 0 auto;border-radius:24px;background:var(--brand-soft);color:var(--brand);overflow:hidden;cursor:pointer}.profile-photo-button>img{width:100%;height:100%;display:block;object-fit:cover}.profile-photo-button>.ui-icon{width:34px;height:34px}.profile-photo-button>span{position:absolute;right:3px;bottom:3px;width:25px;height:25px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:50%;background:var(--accent);color:#fff}.profile-photo-button>span .ui-icon{width:14px;height:14px}.profile-page-copy{min-width:0}.profile-page-copy h1{margin:3px 0 2px;font-size:20px}.profile-page-copy p{margin:0;color:var(--ink);font-size:12px;font-weight:700}.profile-page-copy small{display:block;margin-top:5px;color:var(--muted);font-size:10px}.profile-details{margin-top:12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-soft)}.profile-details .info-row{margin:0;padding:12px 14px;border:0;border-bottom:1px solid #edf1f4;border-radius:0;background:transparent}.profile-details .info-row strong,.profile-details .info-row address{min-width:0;overflow-wrap:anywhere}.profile-details .info-row:last-child{border-bottom:0}
.app-meta{display:grid;justify-items:center;gap:2px;margin:22px 0;color:var(--muted);font-size:10px}
.app-meta strong{color:var(--ink);font-size:11px}
.modal-backdrop{position:fixed;inset:0;z-index:90;display:grid;align-items:end;background:rgba(12,28,43,.48);backdrop-filter:blur(3px)}
.modal{width:min(600px,100%);max-height:88vh;margin:0 auto;overflow:auto;border-radius:23px 23px 0 0;background:#fff;box-shadow:0 -16px 55px rgba(12,28,43,.25)}
.modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 17px 10px;background:#fff}
.modal-head h2{margin:0;font-size:18px}
.modal-close{width:37px;height:37px;border:0;border-radius:12px;background:var(--surface-soft);font-size:24px;line-height:1}
.modal-body{padding:6px 17px calc(18px + var(--safe-bottom))}
.modal-copy{margin-top:0;color:var(--muted);font-size:12px}
.toast-stack{position:fixed;z-index:110;top:74px;left:10px;right:10px;display:grid;gap:7px;pointer-events:none}
.toast{width:min(520px,100%);margin:0 auto;padding:11px 13px;border-radius:12px;background:#173b5f;color:#fff;box-shadow:0 8px 28px rgba(8,28,46,.2);font-size:12px;font-weight:700}
.toast.error{background:#8f261e}.toast.success{background:#14653e}
.login-shell{
    min-height:100vh;display:grid;place-items:center;padding:22px;background:
    radial-gradient(circle at 20% 15%,rgba(18,104,220,.14),transparent 34%),
    linear-gradient(160deg,#edf3f7,#f8fafb)
}
.login-card{width:min(430px,100%);padding:24px;border:1px solid rgba(205,216,226,.9);border-radius:24px;background:#fff;box-shadow:0 24px 70px rgba(21,42,61,.15)}
.login-brand{display:flex;align-items:flex-start;gap:13px;margin-bottom:21px}
.login-brand img{width:54px;height:54px;border-radius:16px;box-shadow:var(--shadow-soft)}
.login-brand h1{margin:3px 0 3px;font-size:23px;letter-spacing:-.025em}
.login-brand p{margin:0;color:var(--muted);font-size:12px}
.login-help{text-align:center;color:var(--muted);font-size:11px;margin:15px 0 0}

@media(min-width:560px){
    .app-main{padding:26px 20px 36px}
    .quick-stat-grid{grid-template-columns:repeat(3,1fr)}
    .quick-stat{grid-template-columns:auto 1fr;padding:13px}
    .quick-stat>.ui-icon:last-child{display:none}
    .quick-stat>span{display:grid;gap:0}
    .jobs-group-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
    .diagnosis-grid{grid-template-columns:1fr 1fr;align-items:start}
    .upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .bottom-nav{left:50%;right:auto;transform:translateX(-50%);width:min(760px,100%);border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:18px 18px 0 0}
    .modal-backdrop{align-items:center;padding:18px}.modal{border-radius:22px;max-height:86vh}
}
@media(min-width:760px){
    .jobs-group-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .job-list{grid-template-columns:repeat(2,minmax(0,1fr))}
    .jobs-section .job-list .empty-state{grid-column:1/-1}
    .workflow-progress{padding:13px 9px}
    .workflow-step small{font-size:9px}
    .job-action-bar{bottom:calc(72px + var(--safe-bottom))}
}
@media(max-width:380px){
    .app-main{padding-left:11px;padding-right:11px}
    .app-header{padding-left:11px;padding-right:11px}
    .brand-button strong{max-width:155px}
    .jobs-group-card{padding:10px}
    .jobs-group-card em{display:none}
    .nav-item span{font-size:9px}
}

/* Canonical Engineer PWA job-scoped chat / inbox */
.nav-unread-badge{position:absolute;top:2px;left:calc(50% + 7px);min-width:17px;height:17px;padding:0 4px;display:grid;place-items:center;border:2px solid var(--surface);border-radius:999px;background:var(--danger);color:#fff;font-size:8px;font-weight:900;line-height:1}
.inbox-title{margin-bottom:12px}
.inbox-search{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-soft)}
.inbox-search .ui-icon{width:18px;color:var(--muted)}
.inbox-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}
.inbox-conversations{display:grid;border:1px solid var(--line);border-radius:18px;background:var(--surface);overflow:hidden;box-shadow:var(--shadow-soft)}
.inbox-conversation{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:11px;width:100%;min-height:78px;padding:11px 13px;border:0;border-bottom:1px solid #edf1f4;background:transparent;color:var(--ink);text-align:left}
.inbox-conversation:last-child{border-bottom:0}.inbox-conversation:hover{background:var(--surface-soft)}
.inbox-avatar,.chat-avatar{position:relative;width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--brand);color:#fff;font-size:16px;font-weight:850}
.inbox-avatar.job-avatar{border-radius:14px;background:var(--brand-soft);color:var(--brand)}.job-avatar .ui-icon{width:22px}
.inbox-conversation-copy{min-width:0;display:grid;gap:2px}.inbox-conversation-copy>span{display:flex;align-items:center;justify-content:space-between;gap:10px}.inbox-conversation-copy strong{font-size:13px}.inbox-conversation-copy time{color:var(--muted);font-size:10px;font-weight:650;white-space:nowrap}.inbox-conversation-copy small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inbox-conversation-copy em{color:var(--ink);font-size:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inbox-chat-action{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent);flex:0 0 auto}.inbox-chat-action .ui-icon{width:18px;height:18px}.inbox-unread{min-width:21px;height:21px;padding:0 6px;display:grid;place-items:center;border-radius:999px;background:var(--accent);color:#fff;font-size:9px;font-weight:900}.inbox-quick-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.inbox-job-empty{min-height:190px;display:grid;place-items:center;align-content:center;gap:7px;padding:28px;text-align:center;color:var(--muted)}.inbox-job-empty>.ui-icon{width:34px;height:34px;color:var(--brand)}.inbox-job-empty strong{color:var(--ink);font-size:14px}.inbox-job-empty small{max-width:300px;font-size:11px}
.shell.with-chat{height:100dvh;min-height:100dvh;grid-template-rows:minmax(0,1fr);background:var(--surface);padding:0}
.chat-main{width:min(760px,100%);height:100dvh;min-height:0;margin:0 auto;padding:0;overflow:hidden}
.pwa-chat-page{height:100dvh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;background:var(--surface);overflow:hidden}
.chat-header{display:flex;align-items:center;gap:9px;min-height:68px;padding:calc(7px + env(safe-area-inset-top)) 10px 7px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.98);backdrop-filter:blur(14px);z-index:2}
.chat-back,.chat-call{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto;border:0;border-radius:50%;background:var(--surface-soft);color:var(--brand);text-decoration:none}.chat-back .ui-icon,.chat-call .ui-icon{width:20px}.chat-call{margin-left:auto}.chat-call.is-disabled{opacity:.35;pointer-events:none}
.chat-avatar{width:40px;height:40px;font-size:14px}.chat-header-copy{min-width:0;display:grid;gap:0;line-height:1.2}.chat-header-copy strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-copy>small:not(.chat-presence){max-width:100%;font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-presence{font-size:9px;color:var(--muted);font-weight:700}.chat-presence.online{color:var(--success)}.chat-presence.typing{color:var(--accent)}
.chat-messages{min-height:0;overflow-y:auto;padding:14px 11px 10px;background:linear-gradient(180deg,#f7f9fb,#eef3f6);overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.chat-loading,.chat-empty{min-height:100%;display:grid;place-items:center;align-content:center;gap:8px;color:var(--muted);text-align:center;padding:30px}.chat-empty strong{color:var(--ink);font-size:14px}.chat-empty small{max-width:290px;font-size:11px}.chat-day{display:flex;justify-content:center;margin:7px 0 12px}.chat-day span{padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.92);color:var(--muted);font-size:9px;font-weight:800}
.chat-message-row{display:flex;margin:4px 0}.chat-message-row.outgoing{justify-content:flex-end}.chat-message-row.incoming{justify-content:flex-start}.chat-message-bubble{max-width:min(82%,500px);padding:8px 10px 6px;border:1px solid var(--line);border-radius:16px 16px 16px 5px;background:#fff;box-shadow:0 2px 7px rgba(28,48,68,.04)}.chat-message-row.outgoing .chat-message-bubble{border-color:#c9daf0;border-radius:16px 16px 5px 16px;background:var(--accent-soft)}.chat-message-text{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.chat-message-meta{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:3px;color:var(--muted);font-size:8px;font-weight:650}.chat-receipt{letter-spacing:-2px;padding-right:2px}.chat-receipt.read{color:var(--accent)}.chat-receipt.delivered{color:#6e8294}.chat-attachment{display:flex;align-items:center;gap:7px;margin-top:3px;padding:8px;border:1px solid rgba(95,126,154,.2);border-radius:10px;background:rgba(255,255,255,.7);text-decoration:none;font-size:11px;font-weight:750}.chat-attachment .ui-icon{width:17px}.chat-typing{padding:3px 13px;background:var(--surface);color:var(--accent);font-size:9px;font-weight:700}
.chat-composer{position:relative;display:grid;width:100%;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:7px;padding:8px 9px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);z-index:2}.chat-composer.without-attachment{grid-template-columns:minmax(0,1fr) auto}.chat-composer textarea{width:100%;min-width:0;max-height:110px;min-height:40px;resize:none;padding:10px 12px;border:1px solid var(--line);border-radius:18px;outline:0;background:var(--surface-soft);color:var(--ink);font-size:16px;line-height:1.35}.chat-composer textarea:focus{border-color:#a9c5e8;box-shadow:0 0 0 3px var(--accent-soft)}.chat-attach,.chat-send{width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--surface-soft);color:var(--brand)}.chat-send{background:var(--accent);color:#fff}.chat-attach .ui-icon,.chat-send .ui-icon{width:19px}.chat-file-preview{position:absolute;left:9px;right:9px;bottom:100%;margin-bottom:4px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--muted);font-size:10px;box-shadow:var(--shadow-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(min-width:560px){.inbox-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-main{padding:0}.pwa-chat-page{border-left:1px solid var(--line);border-right:1px solid var(--line)}}


.part-source-options{margin:0;padding:0;border:0;display:grid;gap:10px}
.part-source-options legend{margin:0 0 2px;font-size:13px;font-weight:800;color:var(--ink)}
.part-source-options .check{margin:0;padding:12px 13px;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--surface)}
.part-source-options .check span{display:grid;gap:2px}
.part-source-options .check small{font-size:12px;color:var(--muted);font-weight:600}
.part-evidence-notice{padding:14px;border:1px solid color-mix(in srgb,var(--warning) 28%,var(--line));border-radius:var(--radius-small);background:var(--warning-soft);display:grid;gap:8px}
.part-evidence-notice strong{font-size:13px}.part-evidence-notice p{margin:0;color:var(--ink);font-size:13px;line-height:1.55}
.part-evidence-notice .check{margin-top:2px;background:var(--surface);border:1px solid var(--line);padding:11px 12px;border-radius:var(--radius-small)}
/* Canonical engineer workflow evidence timing and reviewable steps */
.workflow-step-button{appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;min-width:0;cursor:pointer}
.workflow-step-button.done,.workflow-step-button.current{color:var(--success)}
.workflow-step-button.done>span,.workflow-step-button.current>span{background:var(--success);color:#fff}
.workflow-step-button:hover>span,.workflow-step-button:focus-visible>span{box-shadow:0 0 0 4px rgba(24,137,75,.13)}
.workflow-step-button.reviewing>span{box-shadow:0 0 0 4px rgba(24,137,75,.18)}
.workflow-step-button.reviewing small{text-decoration:underline;text-underline-offset:2px}
.part-photo-reminder{margin:0 0 14px;padding:13px 14px;border:1px solid #efc36a;border-radius:14px;background:var(--warning-soft);color:#63420a}
.part-photo-reminder strong{display:block;font-size:14px;margin-bottom:3px}
.part-photo-reminder p{margin:0;font-size:12px;line-height:1.45}
.part-photo-reminder.pre-journey{border-color:#b9d1ec;background:#f4f8fc;color:#274b70}
.part-workflow-uploads{margin:0 0 12px}
.evidence-missing-note,.evidence-complete-note{margin:0 0 12px;padding:10px 12px;border-radius:11px;font-size:12px;font-weight:750}
.evidence-missing-note{background:var(--warning-soft);color:#6d4908}
.evidence-complete-note{background:var(--success-soft);color:var(--success)}
.review-return{margin-top:10px}
.legacy-evidence-fallback{border-color:#efc36a;background:#fffdf7}


.form-section-note{display:grid;gap:3px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--success) 24%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--success) 6%,var(--surface));color:var(--ink)}.form-section-note strong{font-size:12px}.form-section-note span{color:var(--muted);font-size:11px;line-height:1.35}
.commercial-offer-card{display:grid;gap:14px}.commercial-offer-form{display:grid;gap:12px}.commercial-arrival-fields,.commercial-rate-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.commercial-arrival-summary,.commercial-offer-readout{display:grid;gap:3px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.commercial-arrival-summary span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.commercial-arrival-summary strong,.commercial-offer-readout>strong{font-size:13px}.commercial-offer-readout small{color:var(--muted);font-size:11px;line-height:1.4}.commercial-counter-inline{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}.commercial-counter-inline[hidden]{display:none!important}@media(max-width:520px){.commercial-arrival-fields,.commercial-rate-fields{grid-template-columns:1fr}}

/* New Dispatch offers use the canonical danger token and stay visually urgent until the offer count returns to zero. */
.pwa-new-offers-alert{position:relative;border-color:var(--danger)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 34%,transparent),var(--shadow-soft);animation:pwa-new-offer-outline 1.15s ease-in-out infinite}
@keyframes pwa-new-offer-outline{0%,100%{border-color:var(--danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 34%,transparent),var(--shadow-soft)}50%{border-color:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 17%,transparent),var(--shadow-soft)}}
@media (prefers-reduced-motion:reduce){.pwa-new-offers-alert{animation:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--danger) 30%,transparent),var(--shadow-soft)}}
