/* Level Yard shared styles. Pine header, stone ground, equipment orange for the one action. Light-only on purpose: used outdoors in sun. */
:root{
  --pine:#1D4A37; --pine-2:#2A5E47; --pine-ink:#E3EEE7; --pine-muted:#9FBBAA; --orange:#D45F15; --orange-ink:#fff; --orange-soft:#FBE6D6;
  --ground:#EDF0EB; --ink:#141C17; --muted:#56635B; --line:#D3DBCF; --surface:#FFFFFF; --surface-2:#F3F6F1;
  --good:#23703F; --good-soft:#DCEEE2; --gps:#1F63C6; --gps-soft:#EEF4FD; --warn:#8F5A00; --warn-soft:#F7EACB; --bad:#AE372B; --bad-soft:#F5DCD8;
  --f-display:"Archivo","Arial Narrow",system-ui,sans-serif; --f-body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif; --f-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--ground);color:var(--ink);font:15px/1.45 var(--f-body);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
h1,h2,h3{font-family:var(--f-display);font-stretch:112%;margin:0;letter-spacing:-.01em}
h1{font-size:22px;font-weight:800}h2{font-size:17px;font-weight:700}h3{font-size:14px;font-weight:700}
p{margin:0}
.hint{color:var(--muted);font-size:13.5px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
header.top{background:var(--pine);color:#fff;display:flex;align-items:center;gap:10px;padding:calc(8px + env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) 8px max(14px,env(safe-area-inset-left,0px));min-width:0}
header.top b{font-family:var(--f-display);font-stretch:120%;font-weight:800;font-size:17px;white-space:nowrap}
header.top .ws{color:var(--pine-muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
header.top .right{margin-left:auto;display:flex;gap:8px;align-items:center}
header.top a{color:#fff;font-weight:700;font-size:13.5px;text-decoration:none;padding:7px 10px;border-radius:7px;background:var(--pine-2);white-space:nowrap}
header.top svg{flex:none}
@media (max-width:480px){header.top{gap:8px}header.top .ws{display:none}header.top .right{gap:6px}header.top a{padding:7px 8px}}
.btn{min-height:42px;padding:0 14px;border-radius:9px;border:1px solid var(--line);background:var(--surface);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap}
.btn.primary{background:var(--orange);border-color:var(--orange);color:var(--orange-ink)}
.btn.ghost{border-color:transparent;background:none;color:var(--muted)}
.btn.sm{min-height:34px;padding:0 10px;font-size:13.5px}
a.btn{color:var(--ink);text-decoration:none}
.btn:disabled{opacity:.5;cursor:default}
.field{height:42px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 10px;width:100%;font-size:15px;color:var(--ink)}
textarea.field{height:auto;padding:8px 10px;resize:vertical}
label.f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:700;color:var(--muted);flex:1;min-width:0}
.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.stack{display:flex;flex-direction:column;gap:12px}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.it{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:8px 10px;background:var(--surface)}
.it .n{width:32px;height:32px;border-radius:50%;background:var(--orange);color:#fff;font-weight:800;display:grid;place-items:center}
.it.done{opacity:.6}.it.done .n{background:var(--good)}
.it.next{border-color:var(--orange);box-shadow:inset 4px 0 0 var(--orange)}
.it.here{border-color:var(--gps);box-shadow:inset 4px 0 0 var(--gps);background:var(--gps-soft)}
.it .t{font-weight:700}.it .d{font-size:14px;font-weight:700;color:var(--gps)}
.it .edit{display:flex;gap:6px;flex-wrap:wrap}.it .edit .field{height:38px;flex:1 1 120px}.it .edit select.field{flex:0 1 120px}
.icon-x{border:0;background:none;color:var(--muted);width:40px;height:40px;border-radius:8px;font-size:22px;line-height:1}
.empty{border:1px dashed var(--line);border-radius:11px;padding:16px;text-align:center;color:var(--muted);font-size:14px}
.st{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.03em;padding:2px 8px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.st.on{background:var(--warn-soft);color:var(--warn);border-color:transparent}.st.ok{background:var(--good-soft);color:var(--good);border-color:transparent}.st.blue{background:var(--gps-soft);color:var(--gps);border-color:transparent}.st.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.gps{display:flex;align-items:center;gap:8px;font-size:13.5px;padding:8px 10px;border-radius:9px;background:var(--surface-2)}
.gps i{width:10px;height:10px;border-radius:50%;background:var(--muted);flex:none}
.gps.ok i{background:var(--good)}.gps.rough i{background:var(--warn)}.gps.rough{background:var(--warn-soft)}
.bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.bar i{display:block;height:100%;background:var(--good)}
.pin{width:30px;height:30px;border-radius:50%;background:var(--orange);color:#fff;border:3px solid #fff;font:800 13px/24px var(--f-body);text-align:center;box-shadow:0 1px 6px rgba(0,0,0,.5)}
.pin.done{background:var(--good)}.pin.next{transform:scale(1.18)}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:9px;z-index:1000;max-width:calc(100% - 32px);font-size:14px}
[hidden]{display:none!important}
.leaflet-container{font-family:var(--f-body);background:#2a332d}
.map{position:relative;min-height:0;background:#2a332d}
.map>div.leaflet-container,.map>#map{position:absolute;inset:0}
.ev{font-size:13px;padding:8px 10px;border-radius:9px;background:var(--surface-2);border-left:3px solid var(--line)}
.ev.text_out{border-left-color:var(--pine-2)}.ev.text_in{border-left-color:var(--orange)}.ev.approved{border-left-color:var(--good)}
.ev small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 12px;font-size:13.5px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.link-box{display:flex;gap:6px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:6px 6px 6px 10px;font-size:13px;min-width:0}
.link-box span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--f-mono);font-size:12.5px}
.photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px}
.photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;border:1px solid var(--line)}

/* Divisions keep the demo's fixed service-line colors. Tables, chips and small labels are shared by the office pages and the client's estimate page. */
:root{--svc-maint:#3E8B57;--svc-hard:#8A6A4A;--svc-install:#7C8B2E;--svc-irr:#2D6E9E;--svc-snow:#6C7F93}
.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:2px 9px 2px 7px;border-radius:99px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.chip::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--c,var(--muted))}
.chip.maint{--c:var(--svc-maint)}.chip.hard{--c:var(--svc-hard)}.chip.install{--c:var(--svc-install)}.chip.irr{--c:var(--svc-irr)}.chip.snow{--c:var(--svc-snow)}
.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.nowrap{white-space:nowrap}
.end{margin-left:auto}
.tbl-wrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:10px;border-bottom:1px solid var(--line);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl .r{text-align:right}
.tbl .sub{font-size:12.5px;color:var(--muted);font-weight:400}
.approved{background:var(--good-soft);color:var(--good);border-radius:11px;padding:12px 14px;font-weight:700;display:flex;gap:8px;align-items:center}
.pin.yard{background:#1d3b2f}
@media(max-width:760px){.rt-grid{grid-template-columns:1fr!important}}
