:root{--lcpc-green-dark:#2f5e1f;--lcpc-green:#4e8c25;--lcpc-lime:#8cc63f;--lcpc-yellow-green:#c5d92d;--color-bg:#f3f5f1;--color-surface:#ffffff;--color-surface-2:#f7faf4;--color-border:#e0e4dc;--color-text:#1a2417;--color-text-muted:#647060;--color-primary:var(--lcpc-green);--color-primary-dark:var(--lcpc-green-dark);--color-accent:var(--lcpc-lime);--color-danger:#c0362c;--color-danger-bg:#fbeae8;--color-warning:#b7791f;--color-warning-bg:#fdf6e3;--color-info-bg:#eef4fb;--status-active:#2563eb;--status-booked:var(--lcpc-green);--status-escalated:#c0362c;--status-closed:#647060;--font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--radius:10px;--radius-sm:7px;--shadow-sm:0 1px 2px rgba(26,36,23,0.06),0 1px 3px rgba(26,36,23,0.04);--shadow:0 2px 8px rgba(26,36,23,0.08);--sidebar-w:232px;--touch-target:48px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.25}h1{font-size:1.5rem}h2{font-size:1.2rem}button,input,select,textarea{font:inherit}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:18px 12px;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar__brand{padding:4px 8px 16px}.sidebar__brand img{width:100%;max-width:180px;height:auto}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--color-text-muted);font-weight:500}.nav-link:hover{background:var(--color-surface-2);color:var(--color-text)}.nav-link.is-active{background:var(--lcpc-green);color:#fff}.main,.sidebar__spacer{flex:1 1}.main{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:16px 28px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.content{padding:24px 28px;flex:1 1}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow-sm)}.card+.card{margin-top:16px}.card-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.stat{display:flex;flex-direction:column;gap:4px}.stat__value{font-size:1.9rem;font-weight:700;color:var(--color-primary-dark);line-height:1.1}.stat__label{font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.stat--link{text-decoration:none;color:inherit;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease,border-color .1s ease}.stat--link:hover{transform:translateY(-1px);box-shadow:var(--shadow);border-color:var(--lcpc-lime)}.nav-link svg{flex:0 0 auto;opacity:.9}.nav-link.is-active svg{opacity:1}.muted{color:var(--color-text-muted)}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table td,.table th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--color-border)}.table th{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}.table tbody tr:hover{background:var(--color-surface-2)}.table--card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm)}.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600;line-height:1.6;background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge--active{background:#eaf1fb;color:var(--status-active);border-color:#cfe0f7}.badge--booked{background:#eaf3e3;color:var(--lcpc-green-dark);border-color:#cfe6bf}.badge--escalated{background:var(--color-danger-bg);color:var(--status-escalated);border-color:#f0cbc6}.badge--closed{background:#eef0ec;color:var(--status-closed);border-color:#dfe3da}.badge--on{background:#eaf3e3;color:var(--lcpc-green-dark);border-color:#cfe6bf}.badge--off{background:#eef0ec;color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-weight:600;cursor:pointer;min-height:40px;transition:background .12s,border-color .12s}.btn:hover{background:var(--color-surface-2)}.btn--primary{background:var(--lcpc-green);border-color:var(--lcpc-green);color:#fff}.btn--primary:hover{background:var(--lcpc-green-dark);border-color:var(--lcpc-green-dark)}.btn--danger{color:var(--color-danger);border-color:#e7c4c0}.btn--sm{min-height:32px;padding:5px 11px;font-size:.85rem}.btn:disabled{opacity:.55;cursor:not-allowed}.form-group{margin-bottom:16px}.form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}.input,.select,.textarea{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text)}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--lcpc-lime);outline-offset:-1px;border-color:var(--lcpc-lime)}.helper-text{font-size:.82rem;color:var(--color-text-muted);margin-top:6px}.helper-text--warning{background:var(--color-warning-bg);border:1px solid #f0e3bf;color:var(--color-warning);padding:9px 12px;border-radius:var(--radius-sm)}.checkbox-list,.radio-list{display:flex;flex-direction:column;gap:2px}.checkbox-list label,.radio-list label{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;min-height:var(--touch-target)}.checkbox-list input,.radio-list input{width:18px;height:18px;accent-color:var(--lcpc-green)}.empty-state{text-align:center;color:var(--color-text-muted);padding:48px 20px}.mobile-shell{display:flex;flex-direction:column;min-height:100vh;padding-bottom:64px}.mobile-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--lcpc-green-dark);color:#fff}.mobile-header img{height:26px}.mobile-content{flex:1 1;padding:16px}.tabbar{position:fixed;bottom:0;left:0;right:0;height:60px;display:flex;background:var(--color-surface);border-top:1px solid var(--color-border)}.tabbar a{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-muted);font-size:.72rem;font-weight:600}.tabbar a.is-active{color:var(--lcpc-green)}.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--lcpc-green-dark);padding:20px}.auth-card{background:var(--color-surface);border-radius:14px;padding:30px;width:100%;max-width:380px;box-shadow:var(--shadow)}.auth-card img{display:block;max-width:220px;margin:0 auto 22px}.auth-tabs{display:flex;gap:6px;margin-bottom:18px}.auth-tabs button{flex:1 1;padding:9px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-sm);font-weight:600;cursor:pointer}.auth-tabs button.is-active{background:var(--lcpc-green);color:#fff;border-color:var(--lcpc-green)}.thread{display:flex;flex-direction:column;gap:8px}.bubble{max-width:76%;padding:9px 13px;border-radius:16px;white-space:pre-wrap;word-wrap:break-word;font-size:.92rem}.bubble--agent{align-self:flex-start;background:#e9ece6;color:var(--color-text);border-bottom-left-radius:5px}.bubble--customer{align-self:flex-end;background:var(--lcpc-green);color:#fff;border-bottom-right-radius:5px}.toast-stack{position:fixed;bottom:20px;right:20px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{pointer-events:auto;padding:11px 16px;border-radius:var(--radius-sm);color:#fff;font-weight:600;font-size:.9rem;box-shadow:var(--shadow);animation:toast-in .18s ease;max-width:320px}.toast--success{background:var(--lcpc-green)}.toast--error{background:var(--color-danger)}.toast--info{background:#2f3a2c}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dash-grid{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr)}@media (max-width:900px){.dash-grid{grid-template-columns:1fr}}.mobile-topbar{display:none}.hamburger{background:none;border:0;color:var(--color-text);cursor:pointer;padding:6px;display:flex;align-items:center}.nav-overlay{display:none}@media (max-width:720px){.sidebar{position:fixed;top:0;left:0;height:100vh;z-index:200;transform:translateX(-100%);transition:transform .22s ease;box-shadow:var(--shadow)}.sidebar.is-open{transform:translateX(0)}.nav-overlay{display:block;position:fixed;inset:0;background:rgba(20,28,18,.45);z-index:150}.topbar{display:none}.mobile-topbar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:-webkit-sticky;position:sticky;top:0;z-index:100}.content{padding-left:16px;padding-right:16px}.toast-stack{left:16px;right:16px;bottom:20px}.toast{max-width:none}.card-grid{grid-template-columns:1fr 1fr}}@media (max-width:480px){.card-grid{grid-template-columns:1fr}}:root[data-theme=dark]{--color-bg:#141a12;--color-surface:#1c2419;--color-surface-2:#222c1e;--color-border:#2e3b28;--color-text:#e8eed4;--color-text-muted:#8da07e;--color-primary:#6dbf38;--color-primary-dark:#4e8c25;--color-accent:var(--lcpc-lime);--status-active:#6aa3f5;--status-booked:#6dbf38;--status-escalated:#e07068;--status-closed:#8da07e;--color-danger:#e07068;--color-danger-bg:#2d1410;--color-warning:#d4a040;--color-warning-bg:#2a2010;--color-info-bg:#0f1e2d;--shadow-sm:0 1px 2px rgba(0,0,0,0.3),0 1px 3px rgba(0,0,0,0.2);--shadow:0 2px 10px rgba(0,0,0,0.4)}:root[data-theme=dark] .badge--active{background:#0d1f36;color:var(--status-active);border-color:#1a3a62}:root[data-theme=dark] .badge--booked{background:#182e10;color:#6dbf38;border-color:#2d5520}:root[data-theme=dark] .badge--escalated{background:var(--color-danger-bg);color:var(--status-escalated);border-color:#4a1f1c}:root[data-theme=dark] .badge--closed{background:#1e2620;color:var(--status-closed);border-color:#2e3b28}:root[data-theme=dark] .badge--on{background:#182e10;color:#6dbf38;border-color:#2d5520}:root[data-theme=dark] .badge--off{background:#1e2620;color:var(--color-text-muted);border-color:#2e3b28}:root[data-theme=dark] .bubble--agent{background:#222c1e;color:var(--color-text)}:root[data-theme=dark] .toast--info{background:#1c2d3a}:root[data-theme=dark] .leaflet-container,:root[data-theme=dark] .map-loading{background:#1a2218}.stop-photo-grid{display:flex;flex-wrap:wrap;gap:8px}.stop-photo-strip{display:flex;flex-wrap:wrap;gap:6px;padding-top:4px}.stop-photo-thumb{position:relative;display:block;width:88px;height:88px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border);background:var(--color-surface-2);flex-shrink:0;transition:border-color .12s,box-shadow .12s}.stop-photo-thumb:hover{border-color:var(--lcpc-lime);box-shadow:var(--shadow-sm)}.stop-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.stop-photo-thumb--sm{width:72px;height:72px}.stop-photo-badge{position:absolute;bottom:4px;left:4px;padding:1px 5px;border-radius:4px;font-size:.68rem;font-weight:700;line-height:1.5;background:rgba(0,0,0,.52);color:#fff;letter-spacing:.02em;text-transform:uppercase;pointer-events:none}.stop-photo-job{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2);font-size:.82rem}:root[data-theme=dark] .stop-photo-badge{background:rgba(0,0,0,.68)}:root[data-theme=dark] .stop-photo-job{background:var(--color-surface-2);border-color:var(--color-border)}:root[data-theme=dark] .helper-text--warning{background:var(--color-warning-bg);border-color:#4a3a18;color:var(--color-warning)}:focus-visible{outline:2px solid var(--lcpc-lime);outline-offset:2px}a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}@keyframes skeleton-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{display:block;background:linear-gradient(90deg,var(--color-surface-2) 25%,var(--color-border) 50%,var(--color-surface-2) 75%);background-size:800px 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@media (prefers-reduced-motion:reduce){.skeleton{animation:none;background:var(--color-surface-2)}.sidebar{transition:none}.toast{animation:none}.btn,.global-search__input-wrap,.global-search__result,.stat--link{transition:none}}.global-search{position:relative}.global-search__input-wrap{display:flex;align-items:center;gap:6px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 8px;min-width:220px;transition:border-color .12s,box-shadow .12s}.global-search__input-wrap:focus-within{border-color:var(--lcpc-lime);box-shadow:0 0 0 2px rgba(140,198,63,.18)}.global-search__icon{display:flex;align-items:center;color:var(--color-text-muted);flex:0 0 auto}.global-search__input{flex:1 1;border:none;background:transparent;color:var(--color-text);padding:7px 0;font-size:.87rem;outline:none;min-width:0}.global-search__input::placeholder{color:var(--color-text-muted)}.global-search__input::-webkit-search-cancel-button,.global-search__input::-webkit-search-decoration,.global-search__input::-webkit-search-results-button,.global-search__input::-webkit-search-results-decoration{display:none}.global-search__clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 0;display:flex;align-items:center;flex:0 0 auto}.global-search__clear:hover{color:var(--color-text)}.global-search__panel{position:absolute;top:calc(100% + 6px);right:0;min-width:300px;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:500;overflow:hidden}.global-search__status{padding:12px 14px;font-size:.85rem;color:var(--color-text-muted)}.global-search__group{padding:4px 0}.global-search__group+.global-search__group{border-top:1px solid var(--color-border)}.global-search__group-label{padding:6px 14px 4px;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--color-text-muted)}.global-search__result{display:flex;flex-direction:column;gap:1px;padding:8px 14px;cursor:pointer;transition:background .1s}.global-search__result:focus-visible,.global-search__result:hover{background:var(--color-surface-2);outline:none}.global-search__result-primary{font-size:.88rem;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.global-search__result-secondary{font-size:.78rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-list-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr}.schedule-list-grid--cols-2{grid-template-columns:repeat(2,1fr)}.schedule-list-grid--cols-3{grid-template-columns:repeat(3,1fr)}@media (max-width:1000px){.schedule-list-grid--cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:720px){.schedule-list-grid--cols-2,.schedule-list-grid--cols-3{grid-template-columns:1fr}}.schedule-col-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.schedule-col-badge{border-radius:999px;padding:2px 9px;font-size:.74rem;font-weight:600;border:1px solid transparent}.sb-card{display:flex;gap:11px;align-items:flex-start;width:100%;text-align:left;cursor:pointer;padding:10px 12px;border:1px solid var(--color-border);border-left:3px solid var(--hue,var(--color-border));border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-sm);transition:box-shadow .12s,transform .1s,border-color .12s;font-family:inherit;font-size:inherit;color:inherit}.sb-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.sb-card__num{flex:0 0 auto;width:23px;height:23px;border-radius:50%;display:grid;place-items:center;margin-top:1px;font-size:.74rem;font-weight:700;line-height:1;color:var(--hue,var(--color-text));background:color-mix(in srgb,var(--hue,var(--color-border)) 15%,var(--color-surface))}.sb-card__body{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;gap:1px}.sb-card__row1{display:flex;align-items:center;justify-content:space-between;gap:8px}.sb-card__time{font-size:.82rem;color:var(--color-text)}.sb-card__status,.sb-card__time{font-weight:600;white-space:nowrap}.sb-card__status{font-size:.7rem;display:inline-flex;align-items:center;gap:5px}.sb-card__status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}.sb-card__status--scheduled{color:var(--status-active)}.sb-card__status--arrived,.sb-card__status--en_route{color:var(--color-warning)}.sb-card__status--completed{color:var(--lcpc-green)}.sb-card__status--cancelled{color:var(--color-text-muted)}.sb-card__name{font-size:.9rem;font-weight:600;color:var(--color-text)}.sb-card__addr,.sb-card__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-card__addr{font-size:.78rem}.sb-card__addr,.sb-card__tag{color:var(--color-text-muted)}.sb-card__tag{align-self:flex-start;margin-top:6px;font-size:.68rem;font-weight:500;background:var(--color-surface-2);border:1px solid var(--color-border);padding:2px 8px;border-radius:999px}.sb-card--done{opacity:.7}.sb-card--cancelled{opacity:.6}.sb-card--cancelled .sb-card__name{text-decoration:line-through}.schedule-timeline-block{position:absolute;left:4px;right:4px;border-radius:5px;border:none;border-left:3px solid;box-shadow:0 1px 3px rgba(0,0,0,.09);padding:4px 7px;overflow:hidden;cursor:pointer;text-align:left;font-family:inherit;font-size:inherit;color:inherit;transition:box-shadow .1s,filter .1s;z-index:1}.schedule-timeline-block:hover{box-shadow:0 2px 8px rgba(0,0,0,.16);filter:brightness(.96)}.schedule-peek-backdrop{position:fixed;inset:0;background:rgba(10,20,8,.42);z-index:300;display:flex;justify-content:flex-end;align-items:stretch}.schedule-peek{width:380px;max-width:100vw;background:var(--color-surface);border-left:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto;box-shadow:-4px 0 24px rgba(0,0,0,.14);animation:peek-slide-in .18s ease}@keyframes peek-slide-in{0%{transform:translateX(40px);opacity:0}to{transform:translateX(0);opacity:1}}.schedule-peek--form{width:440px}.schedule-peek__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--color-border);position:-webkit-sticky;position:sticky;top:0;background:var(--color-surface);z-index:1}.schedule-peek__close{flex:0 0 auto;min-height:30px;padding:4px 10px}.schedule-peek__body{flex:1 1;padding:18px 20px;overflow-y:auto}.schedule-peek__detail-row{display:flex;gap:10px;margin-bottom:10px;font-size:.9rem;align-items:center}.schedule-peek__detail-label{flex:0 0 80px;font-weight:600;font-size:.8rem;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em}.schedule-peek__status-seg{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;flex-wrap:wrap}.schedule-peek__seg-btn{flex:1 1;min-width:0;padding:7px 6px;font-size:.78rem;font-weight:600;background:var(--color-surface);border:none;border-right:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;font-family:inherit;transition:background .1s,color .1s;white-space:nowrap}.schedule-peek__seg-btn:last-child{border-right:none}.schedule-peek__seg-btn:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.schedule-peek__seg-btn.is-active{background:var(--color-primary);color:#fff}.schedule-peek__seg-btn:disabled{opacity:.55;cursor:not-allowed}@media (max-width:720px){.schedule-peek-backdrop{align-items:flex-end;justify-content:stretch}.schedule-peek,.schedule-peek--form{width:100%;max-height:85vh;border-left:none;border-top:1px solid var(--color-border);border-radius:14px 14px 0 0;box-shadow:0 -4px 24px rgba(0,0,0,.18);animation:peek-slide-up .18s ease}@keyframes peek-slide-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}}.week-view__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:10px;gap:10px}.week-view__day{display:flex;flex-direction:column;gap:6px;padding:12px 10px;border-radius:var(--radius);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);text-decoration:none;color:var(--color-text);transition:box-shadow .12s,border-color .12s,transform .1s;min-height:96px}.week-view__day:hover{box-shadow:var(--shadow);border-color:var(--lcpc-lime);transform:translateY(-1px)}.week-view__day--today{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 6%,var(--color-surface))}.week-view__day--selected{border-color:var(--lcpc-lime);box-shadow:0 0 0 2px color-mix(in srgb,var(--lcpc-lime) 35%,transparent)}.week-view__day--empty{opacity:.7}.week-view__day--empty:hover{opacity:1}.week-view__day-header{display:flex;align-items:center;gap:6px}.week-view__weekday{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);flex:0 0 auto}.week-view__date-num{font-size:.82rem;font-weight:600;color:var(--color-text)}.week-view__today-pip{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-primary);flex:0 0 auto;margin-left:2px}.week-view__count{font-size:.88rem;font-weight:700;color:var(--color-primary-dark)}.week-view__bar-track{height:4px;border-radius:2px;background:var(--color-surface-2);overflow:hidden}.week-view__bar-fill{height:100%;border-radius:2px;background:var(--color-primary);min-width:4px;transition:width .3s ease}.week-view__tech-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.week-view__tech-chip{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;font-size:.7rem;font-weight:600;border:1px solid;line-height:1.6;white-space:nowrap}.week-view__empty-label{font-size:.78rem;color:var(--color-text-muted);font-style:italic;margin-top:4px}@media (max-width:1100px){.week-view__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:640px){.week-view__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:380px){.week-view__grid{grid-template-columns:1fr}}:root[data-theme=dark] .week-view__day--today{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}:root[data-theme=dark] .week-view__bar-fill{background:var(--color-primary)}.day-map-panel__header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--color-border)}.day-map-panel--empty .day-map-panel__header{border-bottom:none}.day-map-panel__toggle{width:100%;background:none;border:none;border-bottom:1px solid var(--color-border);border-radius:0;cursor:pointer;font:inherit;text-align:left;transition:background .12s;padding:12px 16px;color:inherit}.day-map-panel__toggle:hover{background:var(--color-surface-2)}.day-map-panel__title{font-weight:700;font-size:.95rem}.day-map-panel__meta{font-size:.82rem}.day-map-panel__chevron{margin-left:auto;font-size:.72rem;color:var(--color-text-muted);flex:0 0 auto}.day-map-panel__body{padding:16px}@media print{.mobile-topbar,.nav-overlay,.no-print,.sidebar,.topbar{display:none!important}.main{display:block;width:100%}.content{padding:0}body{background:#fff;font-size:12px}.table td,.table th{padding:6px 8px}}.map-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:10px;background:#eef3ea;color:var(--color-text-muted);font-size:.88rem}.leaflet-container{font:inherit;background:#eef3ea}.leaflet-bottom,.leaflet-pane,.leaflet-top{z-index:1}