:root{--ink:#102629;--muted:#627477;--line:#dbe5e4;--bg:#f3f7f6;--surface:#fff;--brand:#0b5d57;--brand-2:#0e766d;--brand-soft:#dff3f0;--accent:#2dd4bf;--accent-soft:#d4f7f1;--accent-ink:#083b38;--sidebar:#0d3434;--sidebar-hover:#174746;--danger:#b42318;--danger-soft:#fee4e2;--warning:#b54708;--warning-soft:#fef0c7;--success:#067647;--success-soft:#dcfae6;--blue:#175cd3;--blue-soft:#e9f1ff;--shadow:0 10px 30px rgba(16,38,41,.08);--radius:18px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.65rem,3vw,2.25rem);line-height:1.1;margin-bottom:.35rem}h2{font-size:1.25rem;line-height:1.25;margin-bottom:.5rem}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:800;color:var(--brand);margin-bottom:.45rem}.muted{color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1rem;border:1px solid transparent;border-radius:12px;font-weight:750;cursor:pointer;text-decoration:none;transition:.16s ease}.button:hover{text-decoration:none;transform:translateY(-1px)}.button.primary{background:var(--brand);color:#fff}.button.secondary{background:var(--brand-soft);color:var(--brand);border-color:#b7ded8}.button.ghost{background:#fff;color:var(--ink);border-color:var(--line)}.button.large{min-height:54px;font-size:1.05rem;width:100%}.success-button{background:var(--success);color:#fff}.danger-button{background:var(--danger);color:#fff}.link-button{border:0;background:none;color:#d4efec;padding:0;cursor:pointer}.admin-layout{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#0d3434;color:#fff;padding:1.3rem 1rem;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:.7rem;color:#fff;font-weight:850;font-size:1.05rem;padding:.35rem .55rem 1.2rem}.brand:hover{text-decoration:none}.brand-mark,.login-logo{display:grid;place-items:center;background:#2dd4bf;color:#083b38;border-radius:12px;font-weight:900}.brand-mark{width:38px;height:38px}.sidebar nav{display:flex;flex-direction:column;gap:.22rem}.sidebar nav a{color:#d7e9e7;padding:.62rem .7rem;border-radius:10px;font-size:.93rem}.sidebar nav a:hover{background:#174746;color:#fff;text-decoration:none}.sidebar-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:.9rem .7rem 0;display:grid;gap:.25rem;font-size:.9rem}.main-content{padding:2rem clamp(1rem,3vw,3rem);min-width:0}.mobile-admin-header{display:none}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.heading-actions,.form-actions,.review-actions{display:flex;gap:.65rem;flex-wrap:wrap}.page-note{margin:-.8rem 0 1rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:0 2px 7px rgba(16,38,41,.03);margin-bottom:1.25rem}.narrow-panel{max-width:720px}.split-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem}.two-column,.review-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.25rem}.metric{position:relative;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.05rem 1.2rem}.metric:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--brand)}.metric span,.metric small{display:block;color:var(--muted)}.metric strong{font-size:2.1rem;line-height:1.2;display:block;margin:.15rem 0}.metric.danger:before{background:var(--danger)}.metric.warning:before{background:#f79009}.metric.accent:before{background:var(--blue)}.metric.success:before{background:var(--success)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.section-heading h2,.section-heading p{margin-bottom:0}.table-wrap{overflow:auto;margin:0 -.2rem}.table-wrap table{width:100%;border-collapse:collapse;min-width:680px}th{text-align:left;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}th,td{padding:.8rem .75rem;border-bottom:1px solid var(--line);vertical-align:middle}tbody tr:last-child td{border-bottom:0}.empty-cell{text-align:center;color:var(--muted);padding:2.5rem}.table-sub{display:block;color:var(--muted);margin-top:.15rem}.status,.status-chip{display:inline-flex;padding:.28rem .55rem;border-radius:999px;background:#eef3f2;color:#405658;font-size:.78rem;font-weight:800}.status.pending{background:var(--warning-soft);color:var(--warning)}.status.reviewed{background:var(--success-soft);color:var(--success)}.status.rejected{background:var(--danger-soft);color:var(--danger)}.count-pill{background:var(--warning-soft);color:var(--warning);padding:.4rem .75rem;border-radius:999px;font-weight:800}.stack-form{display:grid;gap:.75rem}.stack-form label,.field-row label,.filter-grid label,.review-form label{display:grid;gap:.35rem;font-weight:720}.stack-form input,.stack-form select,.stack-form textarea,.field-row input,.field-row select,.field-row textarea,.filter-grid input,.filter-grid select,.review-form input{width:100%;border:1px solid #bdccca;border-radius:11px;padding:.7rem .8rem;background:#fff;color:var(--ink);min-height:44px}.stack-form input:focus,.stack-form select:focus,.filter-grid input:focus,.filter-grid select:focus{outline:3px solid rgba(14,118,109,.15);border-color:var(--brand-2)}.field-row{display:grid;gap:.35rem}.checkbox-row{grid-template-columns:auto 1fr;align-items:center}.checkbox-row input{width:auto;min-height:0}.field-row small,.stack-form small{color:var(--muted)}.errorlist{list-style:none;padding:0;margin:.2rem 0;color:var(--danger);font-weight:650}.search-form{display:flex;gap:.6rem;margin-bottom:1rem}.search-form input{flex:1;border:1px solid #bdccca;border-radius:11px;padding:.7rem .8rem}.filter-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr auto;gap:.75rem;align-items:end;margin-bottom:1rem}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.photo-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px;color:var(--ink);box-shadow:0 2px 10px rgba(16,38,41,.04)}.photo-card:hover{text-decoration:none;box-shadow:var(--shadow);transform:translateY(-2px)}.photo-card img{width:100%;height:185px;object-fit:cover;background:#dae4e3}.photo-card>div:last-child{padding:.9rem;display:grid;gap:.2rem}.photo-card span,.photo-card small{color:var(--muted)}.photo-missing{min-height:185px;display:grid;place-items:center;background:#e9efee;color:var(--muted)}.empty-state{grid-column:1/-1;text-align:center;background:#fff;border:1px dashed #b9cbc8;border-radius:var(--radius);padding:3rem}.empty-icon{margin:auto auto 1rem;width:56px;height:56px;display:grid;place-items:center;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:1.6rem;font-weight:900}.photo-review{padding:.5rem}.photo-review img{width:100%;max-height:70vh;object-fit:contain;border-radius:13px;background:#eaf0ef}.detail-list{margin:0 0 1.2rem}.detail-list div{display:grid;grid-template-columns:125px 1fr;padding:.65rem 0;border-bottom:1px solid var(--line)}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;font-weight:700}.review-form{display:grid;gap:.7rem}.notice{background:var(--blue-soft);border-color:#b2ccff}.danger-panel{border-color:#fecdca}.backup-list{display:grid;gap:.5rem;margin-top:1rem}.backup-list a{display:flex;justify-content:space-between;gap:1rem;padding:.7rem;border:1px solid var(--line);border-radius:10px;overflow-wrap:anywhere}.row-error{background:#fff1f0}.route-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.route-list li{display:grid;grid-template-columns:30px 38px minmax(160px,1fr) minmax(120px,1fr) auto;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:12px;padding:.65rem;background:#fff}.route-list li.dragging{opacity:.45}.drag-handle{font-size:1.4rem;color:var(--muted);cursor:grab}.route-position{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--brand-soft);color:var(--brand);font-weight:850}.row-buttons{display:flex;gap:.25rem}.row-buttons button{width:38px;height:38px;border:1px solid var(--line);background:#fff;border-radius:9px;cursor:pointer}.save-feedback{color:var(--success);font-weight:750;margin:1rem 0 0}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:1rem;padding-top:1rem}.messages{position:fixed;right:1rem;top:1rem;z-index:1000;display:grid;gap:.5rem}.message{max-width:460px;padding:.85rem 1rem;border-radius:12px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.message.success{border-color:#6ce9a6}.message.error{border-color:#fda29b}.login-body{display:grid;place-items:center;padding:1rem;background:radial-gradient(circle at 15% 15%,#d7f4ef,transparent 35%),linear-gradient(145deg,#f5faf9,#e9f1f0)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:clamp(1.4rem,5vw,2.2rem);box-shadow:var(--shadow)}.login-logo{width:58px;height:58px;font-size:1.7rem;margin-bottom:1.3rem}.login-card h1{font-size:2rem}.login-card .button{margin-top:.45rem}
/* Employee app */
.employee-body{background:#edf4f2;padding-bottom:82px}.employee-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:max(.8rem,env(safe-area-inset-top)) clamp(1rem,4vw,2rem) .8rem;background:rgba(250,253,252,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.employee-header h1{font-size:1.15rem;margin:0}.employee-header .eyebrow{font-size:.65rem;margin:0}.header-tools{display:flex;align-items:center;gap:.5rem}.sync-badge,.icon-button{border:1px solid var(--line);background:#fff;border-radius:999px;min-height:40px;padding:.45rem .7rem;display:flex;align-items:center;gap:.45rem;font-weight:700;color:var(--ink)}.icon-button{border-radius:10px}.sync-badge span:first-child{width:9px;height:9px;border-radius:50%;background:#98a2a2}.sync-badge.online span:first-child{background:#12b76a}.sync-badge.offline span:first-child{background:#f79009}.employee-main{width:min(760px,100%);margin:0 auto;padding:1rem}.offline-banner{background:var(--warning-soft);color:#7a2e0e;border:1px solid #fedf89;border-radius:12px;padding:.75rem .9rem;margin-bottom:1rem;font-weight:700}.app-screen{display:none}.app-screen.active{display:block}.employee-greeting{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:.4rem 0 1rem}.employee-greeting h2{font-size:1.7rem}.install-button{white-space:nowrap}.employee-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:1rem}.employee-metrics article{background:#fff;border:1px solid var(--line);border-radius:15px;padding:.8rem}.employee-metrics strong{display:block;font-size:1.55rem}.employee-metrics span{color:var(--muted);font-size:.82rem}.scan-main{width:100%;display:flex;align-items:center;gap:1rem;text-align:left;border:0;border-radius:18px;padding:1rem;background:linear-gradient(135deg,var(--brand),#128278);color:#fff;box-shadow:0 12px 26px rgba(11,93,87,.22);cursor:pointer}.scan-main:hover{transform:translateY(-1px)}.scan-main span:last-child{display:grid;gap:.12rem}.scan-main strong{font-size:1.1rem}.scan-main small{color:#d6f6f2}.scan-icon{width:48px;height:48px;border:1px solid rgba(255,255,255,.38);border-radius:13px;display:grid;place-items:center;font-size:1.65rem}.manual-entry{margin:1rem 0 1.4rem}.manual-entry label{display:block;color:var(--muted);font-size:.83rem;margin-bottom:.35rem}.manual-entry div{display:flex;gap:.5rem}.manual-entry input{min-width:0;flex:1;border:1px solid #bdccca;border-radius:11px;padding:.65rem .75rem}.task-list,.recent-list{display:grid;gap:.65rem}.task-card,.recent-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:.8rem;background:#fff;border:1px solid var(--line);border-radius:15px;padding:.75rem;color:var(--ink)}.task-card:hover{text-decoration:none;border-color:#9bcac4}.task-number{display:grid;place-items:center;width:52px;height:52px;border-radius:13px;background:var(--brand-soft);color:var(--brand);font-weight:900;font-size:1.12rem;overflow:hidden}.task-info{min-width:0}.task-info strong,.task-info span,.task-info small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-info span,.task-info small{color:var(--muted)}.task-state{font-size:.73rem;padding:.3rem .5rem;border-radius:999px;font-weight:850}.task-card.overdue .task-state,.task-card.never .task-state{background:var(--danger-soft);color:var(--danger)}.task-card.today .task-state{background:var(--warning-soft);color:var(--warning)}.task-card.claimed{opacity:.65}.skeleton-card{height:78px;border-radius:15px;background:linear-gradient(90deg,#e4ecea 25%,#f1f5f4 50%,#e4ecea 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}@keyframes shimmer{to{background-position:-200% 0}}.empty-tasks{text-align:center;background:#fff;border:1px dashed #b5c8c5;border-radius:16px;padding:2rem}.recent-card{grid-template-columns:52px minmax(0,1fr)}.recent-card .status-line{font-size:.8rem;font-weight:800}.recent-card.rejected{border-color:#fda29b}.camera-screen{padding-top:.25rem}.back-button{border:0;background:none;color:var(--brand);font-weight:800;padding:.6rem 0;margin-bottom:.45rem;cursor:pointer}.video-frame{position:relative;width:100%;aspect-ratio:3/4;max-height:62vh;border-radius:20px;overflow:hidden;background:#132526;margin:1rem 0}.video-frame video,.video-frame img{width:100%;height:100%;object-fit:cover}.scan-target{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:62%;aspect-ratio:1;border:3px solid #fff;border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.camera-message{padding:.75rem;border-radius:11px;background:#e9f0ef;color:#425b5c}.camera-message:empty{display:none}.capture-title{display:flex;justify-content:space-between;align-items:center;gap:1rem}.capture-title h2{font-size:1.8rem}.capture-frame{aspect-ratio:4/3}.capture-actions{display:grid;gap:.55rem}.status-chip.overdue,.status-chip.never{background:var(--danger-soft);color:var(--danger)}.status-chip.today{background:var(--warning-soft);color:var(--warning)}.status-chip.ok,.status-chip.soon{background:var(--success-soft);color:var(--success)}.employee-nav{position:fixed;z-index:30;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr 1fr;background:#fff;border-top:1px solid var(--line);padding:.35rem max(.5rem,env(safe-area-inset-right)) max(.35rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}.employee-nav button{border:0;background:none;color:var(--muted);min-height:58px;display:grid;place-items:center;font-weight:750;font-size:.76rem;cursor:pointer}.employee-nav button span{font-size:1.15rem;line-height:1}.employee-nav button.active{color:var(--brand)}.toast{position:fixed;z-index:100;left:50%;bottom:88px;transform:translateX(-50%);width:min(92%,520px);background:#102f30;color:#fff;padding:.85rem 1rem;border-radius:12px;box-shadow:var(--shadow);text-align:center;font-weight:700}
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.filter-grid{grid-template-columns:repeat(2,1fr)}.filter-grid .button{align-self:end}.sidebar{font-size:.9rem}.admin-layout{grid-template-columns:225px}}
@media(max-width:760px){.admin-layout{display:block}.sidebar{display:none}.mobile-admin-header{display:flex;position:sticky;top:0;z-index:20;background:#0d3434;color:#fff;padding:.65rem .75rem .75rem;align-items:stretch;flex-direction:column;gap:.55rem}.mobile-admin-top{display:flex;align-items:center;justify-content:space-between}.mobile-admin-header summary{cursor:pointer;font-weight:800}.mobile-admin-header nav{position:absolute;left:.6rem;top:calc(100% + .35rem);max-height:calc(100vh - 8rem);overflow-y:auto;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:.5rem;display:grid;min-width:210px}.mobile-admin-header nav a{padding:.55rem}.mobile-admin-header nav form{border-top:1px solid var(--line);margin-top:.25rem;padding-top:.25rem}.section-switcher-mobile{display:block}.section-switcher-mobile .section-switcher-label{margin-left:.2rem;margin-bottom:.3rem}.section-switcher-mobile .section-switcher-options{grid-template-columns:repeat(3,1fr)}.section-switcher-mobile a{min-height:58px;padding:.4rem .35rem;font-size:.69rem;align-content:center}.section-switcher-mobile a small{font-size:.58rem}.mobile-logout{width:100%;border:0;background:none;color:var(--danger);padding:.55rem;text-align:left;cursor:pointer;font-weight:750}.main-content{padding:1rem}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%}.heading-actions .button{flex:1}.metric-grid{grid-template-columns:1fr 1fr;gap:.65rem}.metric{padding:.85rem}.metric strong{font-size:1.7rem}.split-panel,.two-column,.review-layout{grid-template-columns:1fr;display:grid}.filter-grid{grid-template-columns:1fr}.photo-grid{grid-template-columns:1fr 1fr}.route-list li{grid-template-columns:24px 34px 1fr auto}.route-list li>span:nth-of-type(3){display:none}.table-wrap{margin:0 -.75rem}.panel{padding:1rem}.messages{left:.7rem;right:.7rem;top:.7rem}.message{max-width:none}.employee-header{padding-left:.75rem;padding-right:.75rem}.sync-badge{font-size:.76rem}.employee-main{padding:.75rem}.employee-greeting h2{font-size:1.5rem}}
@media(max-width:480px){.photo-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.employee-metrics{gap:.4rem}.employee-metrics article{padding:.65rem}.employee-metrics strong{font-size:1.3rem}.employee-metrics span{font-size:.72rem}.task-card{grid-template-columns:46px 1fr auto;gap:.6rem}.task-number{width:46px;height:46px}.task-state{max-width:82px;text-align:center}.employee-header .eyebrow{display:none}.install-button{font-size:.78rem;padding:.45rem .6rem}.capture-frame{aspect-ratio:3/4}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* Configurable identity */
.sidebar,.mobile-admin-header{background:var(--sidebar)}
.sidebar nav a:hover{background:var(--sidebar-hover)}
.brand-mark,.login-logo{background:var(--accent);color:var(--accent-ink)}
.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:10px;background:#fff;padding:3px;flex:0 0 auto}
.login-brand-logo{display:block;max-width:190px;max-height:90px;object-fit:contain;margin-bottom:1.3rem}
.employee-brand,.mobile-brand{display:flex;align-items:center;gap:.65rem;min-width:0}
.employee-brand img{width:42px;height:42px;object-fit:contain;border-radius:9px;background:#fff}
.mobile-brand img{width:30px;height:30px;object-fit:contain;border-radius:6px;background:#fff}
.sidebar-user small{color:#b9d2d0}
.login-body{background:radial-gradient(circle at 15% 15%,var(--accent-soft),transparent 35%),linear-gradient(145deg,#f5faf9,var(--brand-soft))}
.scan-main{background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:0 12px 26px color-mix(in srgb,var(--brand) 25%,transparent)}

/* General settings */
.settings-form{max-width:980px}.settings-section{padding:1.5rem}.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.settings-grid-three{grid-template-columns:repeat(3,1fr)}.settings-checkbox{margin-top:1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:12px;background:var(--brand-soft)}.settings-checkbox .field-row{grid-template-columns:auto 1fr}.settings-checkbox small,.settings-checkbox .errorlist{grid-column:2}.brand-preview{display:flex;align-items:center;gap:.65rem;border:1px solid var(--line);border-radius:14px;padding:.6rem .8rem;max-width:300px}.brand-preview img{width:52px;height:52px;object-fit:contain}.plan-preview{width:180px;height:100px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.map-center-fields>.button{justify-self:start}.settings-actions{position:sticky;bottom:1rem;background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:14px;padding:.75rem;box-shadow:var(--shadow);z-index:5}

/* Feedlot maps */
.map-shell{max-width:1200px}.map-editor-toolbar{display:grid;grid-template-columns:minmax(240px,380px) 1fr;gap:.8rem 1.25rem;align-items:end}.map-editor-toolbar select{width:100%;border:1px solid #bdccca;border-radius:11px;padding:.7rem .8rem;background:#fff;min-height:44px}.map-editor-toolbar p{margin:0}.map-toolbar-actions{grid-column:1/-1;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.map-tabs{display:inline-grid;grid-template-columns:1fr 1fr;background:#e3ecea;padding:.3rem;border-radius:13px;margin-bottom:.75rem}.map-tabs button{border:0;background:transparent;color:var(--muted);padding:.65rem 1rem;border-radius:10px;font-weight:800;cursor:pointer}.map-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 1px 5px rgba(16,38,41,.1)}.map-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem;color:var(--muted);font-size:.88rem;font-weight:700}.map-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:.25rem}.map-dot-ok{background:var(--success)}.map-dot-alert{background:var(--danger)}.map-panel{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#dfe8e6}.plan-map-surface{position:relative;width:100%;line-height:0;cursor:crosshair;background:#e4ebe9}.plan-map-surface>img{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain;margin:auto}.plan-map-surface>svg{position:absolute;inset:0;width:100%;height:100%}.geo-map-surface{position:relative;width:100%;height:min(68vh,680px);min-height:430px;overflow:hidden;background:#dbe7e4;touch-action:none;cursor:grab}.geo-map-surface:active{cursor:grabbing}.geo-map-surface>svg{display:block;width:100%;height:100%}.map-marker{cursor:pointer;filter:drop-shadow(0 2px 2px rgba(0,0,0,.28));outline:none}.map-marker circle{stroke:#fff;stroke-width:3}.map-marker.ok circle{fill:var(--success)}.map-marker.alert circle{fill:var(--danger)}.map-marker text{fill:#fff;font-size:10px;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none}.map-marker:focus circle{stroke:var(--accent);stroke-width:5}.geo-map-controls{position:absolute;left:.75rem;top:.75rem;display:grid;gap:.35rem}.geo-map-controls button{width:42px;height:42px;border:1px solid #bdccca;background:#fff;color:var(--ink);border-radius:10px;font-size:1.3rem;font-weight:900;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}.osm-credit{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.88);padding:.15rem .35rem;font-size:.7rem}.map-empty{text-align:center;padding:4rem 1rem;background:#fff;line-height:1.5}.map-detail{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem}.employee-map-page{min-height:100vh;background:var(--bg)}.employee-map-main{width:min(1100px,100%);padding:1rem;margin:auto}.employee-map-main>h1{margin:1rem 0}.employee-nav{grid-template-columns:repeat(3,1fr)}.employee-nav a{border:0;background:none;color:var(--muted);min-height:58px;display:grid;place-items:center;font-weight:750;font-size:.76rem;cursor:pointer}.employee-nav a:hover{text-decoration:none;color:var(--brand)}.employee-nav a span{font-size:1.15rem;line-height:1}

/* Interactive feedlot plan */
.map-dot-warning{background:#f79009}.plan-map-viewport{position:relative;max-height:72vh;overflow:auto;background:#e4ebe9;overscroll-behavior:contain;touch-action:pan-x pan-y pinch-zoom}.plan-map-surface{min-width:100%;cursor:default}.map-shell[data-editable="1"] .plan-map-surface{cursor:crosshair}.plan-map-surface.plan-zoom-1{width:100%}.plan-map-surface.plan-zoom-2{width:150%}.plan-map-surface.plan-zoom-3{width:225%}.plan-map-surface.plan-zoom-4{width:325%}.plan-map-surface>img{max-height:none;object-fit:initial}.plan-map-controls{position:sticky;left:.75rem;top:.75rem;z-index:6;display:flex;gap:.35rem;width:max-content;height:0;transform:translateY(.75rem)}.plan-map-controls button,.geo-map-controls button{width:42px;height:42px;border:1px solid #bdccca;background:#fff;color:var(--ink);border-radius:10px;font-size:1.3rem;font-weight:900;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.12)}.map-marker circle{stroke:#fff;stroke-width:3}.map-marker.ok circle{fill:var(--success)}.map-marker.alert circle{fill:var(--danger)}.map-marker:focus circle{stroke:var(--accent);stroke-width:5}.map-detail>div{display:grid;gap:.2rem}.map-location-link{flex:0 0 auto;align-self:center}

@media(max-width:760px){.settings-heading{display:grid}.settings-grid,.settings-grid-three{grid-template-columns:1fr}.settings-section{padding:1rem}.brand-preview{max-width:100%}.plan-preview{width:100%;height:150px}.map-editor-toolbar{grid-template-columns:1fr}.map-toolbar-actions{grid-column:auto}.map-tabs{display:grid;width:100%}.geo-map-surface{height:58vh;min-height:380px}.map-detail{display:grid}.employee-map-main{padding:.75rem}.employee-map-main>h1{font-size:1.5rem}.employee-map-page .employee-header h1{font-size:1rem}.employee-map-page .employee-header .eyebrow{display:none}}

/* v0.4.0: observaciones e instalación PWA en iPhone */
.capture-observation{display:grid;gap:.4rem;margin:.9rem 0;text-align:left;font-weight:750}.capture-observation textarea{width:100%;resize:vertical;min-height:88px;border:1px solid #bdccca;border-radius:12px;padding:.75rem .85rem;background:#fff;color:var(--ink)}.capture-observation>small{text-align:right;color:var(--muted);font-weight:500}.install-help{position:fixed;inset:0;z-index:2000;background:rgba(8,32,35,.62);display:grid;place-items:end center;padding:1rem}.install-help[hidden]{display:none}.install-help-card{position:relative;width:min(100%,520px);background:#fff;border-radius:20px;padding:1.35rem;box-shadow:0 20px 70px rgba(0,0,0,.28)}.install-help-card h2{padding-right:2rem}.install-help-close{position:absolute;right:.75rem;top:.55rem;border:0;background:transparent;font-size:2rem;line-height:1;cursor:pointer;color:var(--muted)}.metric-grid:has(.metric:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.metric-grid:has(.metric:nth-child(2):last-child){grid-template-columns:1fr 1fr}.install-help{place-items:end stretch}}

/* v0.4.1: marcadores circulares y plano ampliable */
body.plan-map-fullscreen{overflow:hidden}.plan-map-viewport.is-fullscreen{position:fixed;inset:0;z-index:3000;width:100vw;height:100dvh;max-height:none;border-radius:0;background:#e4ebe9;overflow:auto}.plan-map-viewport.is-fullscreen .plan-map-controls{position:sticky;top:.75rem;left:.75rem;z-index:3010}.plan-map-viewport.is-fullscreen .plan-map-surface{min-height:100%;display:block}.plan-map-controls #planFullscreen{font-size:1.15rem}

/* v0.4.2: números de 3+ cifras centrados sin recorte en los marcadores */
.map-marker.marker-3digits text{font-size:8.5px}.map-marker.marker-4digits text{font-size:7.25px}


/* v0.4.3: marcadores adaptativos y etiquetas siempre por encima de los círculos */
.map-marker-label{fill:#fff;font-weight:900;text-anchor:middle;dominant-baseline:middle;pointer-events:none;letter-spacing:-.12px}

/* The section selector stays visible while only the option list scrolls. */
.sidebar-label{font-size:.67rem;letter-spacing:.09em;font-weight:750;opacity:.7;margin:6px 12px 5px}
.section-switcher{flex:0 0 auto}
.section-switcher-label{display:block;font-size:.64rem;letter-spacing:.1em;font-weight:800;color:#b9d2d0;margin:0 .35rem .4rem}
.section-switcher-options{display:grid;gap:.4rem}
.section-switcher a{display:grid;gap:.08rem;border:1px solid rgba(255,255,255,.16);border-radius:11px;padding:.58rem .65rem;background:rgba(255,255,255,.05);color:#e6f2f1;font-size:.82rem;font-weight:700;line-height:1.25;text-decoration:none}
.section-switcher a:hover{background:var(--sidebar-hover);border-color:rgba(255,255,255,.3);text-decoration:none}
.section-switcher a small{font-size:.66rem;font-weight:850;letter-spacing:.02em;color:inherit}
.section-switcher a.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 2px rgba(45,212,191,.18)}
.section-switcher-sidebar{padding:0 0 .8rem;border-bottom:1px solid rgba(255,255,255,.15);margin-bottom:.55rem}
.sidebar nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.18rem;scrollbar-color:rgba(215,233,231,.55) transparent;scrollbar-width:thin}
.sidebar-user{flex:0 0 auto;margin-top:.6rem}
.current-section{font-size:.8rem;color:var(--brand);font-weight:700;margin:0 0 16px}
.section-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 22px}
.section-tabs a{padding:13px 10px;border:1px solid #c4d6d1;border-radius:12px;background:#fff;text-align:center;font-size:.86rem;line-height:1.3;font-weight:700;color:var(--brand);text-decoration:none}
.section-tabs a.selected{background:var(--brand);color:#fff;border-color:var(--brand)}
.section-switcher-mobile{display:none}
@media(max-width:760px){.section-switcher-mobile{display:block}.section-switcher-mobile .section-switcher-label{margin-left:.2rem;margin-bottom:.3rem}.section-switcher-mobile .section-switcher-options{grid-template-columns:repeat(3,1fr)}.section-switcher-mobile a{min-height:58px;padding:.4rem .35rem;font-size:.69rem;align-content:center}.section-switcher-mobile a small{font-size:.58rem}.section-tabs{gap:5px}.section-tabs a{padding:10px 5px;font-size:.75rem}}

/* Print only the selected map, with a separate unzoomed plan snapshot. */
.map-print-toolbar{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap;margin:0 0 1rem}
.map-print-toolbar p{margin:0;font-size:.86rem;flex:1 1 260px}
.map-print-toolbar .map-print-feedback{flex-basis:100%;color:var(--brand);font-weight:700}
.plan-map-controls #planPrintButton{width:auto;padding:0 .7rem;font-size:.85rem}
#mapPrintDocument{display:none}
@media print{
  @page map-portrait{size:A4 portrait;margin:10mm}
  @page map-landscape{size:A4 landscape;margin:10mm}
  html:has(body.map-print-ready),body.map-print-ready{height:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  body.map-print-ready>*:not(#mapPrintDocument){display:none!important}
  body.map-print-ready>#mapPrintDocument{display:grid!important;grid-template-rows:auto auto minmax(0,1fr) auto;gap:3mm;width:100%;padding:0;margin:0;color:#18332f;font:10pt/1.35 Arial,sans-serif;break-inside:avoid;box-sizing:border-box;print-color-adjust:exact;-webkit-print-color-adjust:exact}
  #mapPrintDocument.map-print-portrait{page:map-portrait;height:272mm}
  #mapPrintDocument.map-print-landscape{page:map-landscape;height:185mm}
  .map-print-header{border-bottom:1pt solid #0b5d57;padding-bottom:3mm}
  .map-print-header p{margin:0 0 1mm;font-size:9pt}
  .map-print-header p:first-child{color:#0b5d57;font-weight:700}
  .map-print-header h1{font-size:17pt;line-height:1.15;margin:0 0 2mm}
  #mapPrintDocument .map-legend{display:flex;align-items:center;gap:5mm;font-size:9pt;color:#18332f;margin:0}
  #mapPrintDocument .map-legend span{display:inline-flex;align-items:center;gap:1mm}
  .map-print-figure{min-width:0;min-height:0;width:100%;height:100%;overflow:hidden}
  .map-print-figure>svg{display:block;width:100%;height:100%}
  .map-print-footer{border-top:.5pt solid #c7d8d1;padding-top:2mm;font-size:8pt;color:#52675f}
  .map-print-footer p{margin:0}
}

.section-permissions-field{margin:.5rem 0;padding:1rem;border:1px solid var(--line);border-radius:12px;min-width:0}
.section-permissions-field legend{font-weight:750;padding:0 .4rem}
.section-permissions-field .section-permissions{display:grid;gap:.55rem;margin-bottom:.6rem}
.section-permissions-field label{display:flex;align-items:center;gap:.65rem;min-height:44px;font-weight:600}
.section-permissions-field input[type=checkbox]{width:22px;min-width:22px;height:22px;margin:0;accent-color:var(--brand)}
.section-permissions-field small{display:block;color:var(--muted)}
.access-message{max-width:620px;margin:12vh auto;padding:2rem}

/* Photo/video choice, kept within the existing capture flow. */
.media-choice { display:flex; gap:.75rem; margin:1rem 0; }
.media-choice button { flex:1; }
.media-choice [aria-pressed="true"] { background:var(--brand,#0b5d57); color:white; }
.recording-timer { color:#b91c1c; font-size:1.4rem; font-weight:700; font-variant-numeric:tabular-nums; }
#recordedVideo { object-fit:contain; }
.photo-review video { display:block; width:100%; max-height:70vh; background:#111; border-radius:12px; }
.video-card-cover { display:grid; place-items:center; min-height:180px; background:#113b38; color:white; font-size:1.25rem; }

.media-choice[hidden] { display:none; }
/* Buttons/layout rules must never override the hidden capture controls. */
[hidden] { display:none !important; }
