:root{--ink:#102b25;--muted:#6d817b;--bg:#f4f7f4;--surface:#fff;--line:#dce7e2;--green:#1f765e;--pale:#e4f4ed;--mint:#bfe5d4;--lime:#d8ef8d;--amber:#db9a28;--amber-bg:#fff5de;--red:#c8574f;--red-bg:#fff0ed;--blue:#397f9e;--blue-bg:#eaf5f8;--shadow:0 16px 50px rgba(26,65,55,.08);--r:18px}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font:13px Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;height:100vh;padding:24px 16px 18px;display:flex;flex-direction:column;color:#fff;background:var(--ink);z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 26px}.brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--ink);background:var(--lime);font-weight:900;transform:rotate(-4deg)}.brand strong,.brand small,.profile strong,.profile small{display:block}.brand small,.profile small{margin-top:2px;color:#a8c0b8;font-size:10px}.nav{display:grid;gap:4px}.nav button,.mobile-nav button{border:0;border-radius:12px;padding:11px 12px;display:flex;gap:11px;align-items:center;color:#b9cbc5;background:transparent;text-align:left;font-weight:700}.nav button:hover,.nav button.active{color:#fff;background:rgba(216,239,141,.13)}.nav i{width:20px;text-align:center;font-style:normal;font-size:16px}.count{margin-left:auto;min-width:20px;padding:2px 6px;border-radius:20px;color:var(--ink);background:var(--lime);font-size:9px;text-align:center}.profile{margin-top:auto;padding:18px 6px 0;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:34px 1fr 24px;gap:9px;align-items:center}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;color:#fff;background:#2f5d50;font-size:10px;font-weight:850}.profile strong{font-size:11px}.profile button{border:0;color:#a8c0b8;background:transparent}.main{grid-column:2;min-width:0}.topbar{min-height:106px;padding:26px 32px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:10;background:rgba(244,247,244,.93);border-bottom:1px solid rgba(220,231,226,.8);backdrop-filter:blur(14px)}.eyebrow{margin:0 0 5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-size:9px;font-weight:850}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(24px,3vw,34px);line-height:1.1;letter-spacing:-.045em}h2,h3{letter-spacing:-.025em}.top-actions{display:flex;align-items:center;gap:9px}.search{width:min(280px,24vw);height:40px;padding:0 12px;display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--muted)}.search input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:11px}.primary,.secondary,.network,.tiny{border:0;border-radius:11px;font-weight:800}.primary{min-height:40px;padding:0 15px;color:#fff;background:var(--green);box-shadow:0 8px 18px rgba(31,118,94,.18)}.primary:hover{background:#185f4c}.secondary{min-height:38px;padding:0 13px;color:var(--ink);background:var(--pale)}.tiny{padding:7px 9px;color:var(--green);background:var(--pale);font-size:9px}.tiny.warn{color:#966311;background:var(--amber-bg)}.network{min-height:40px;padding:0 12px;display:flex;align-items:center;gap:8px;color:var(--ink);background:#fff;border:1px solid var(--line);font-size:10px}.network i{width:7px;height:7px;border-radius:50%;background:#42a77d;box-shadow:0 0 0 4px rgba(66,167,125,.12)}.network.offline i{background:var(--amber)}.content{max-width:1540px;margin:auto;padding:28px 32px 70px}.page-intro{margin-bottom:20px;display:flex;justify-content:space-between;align-items:end;gap:20px}.page-intro h2{margin-bottom:5px;font-size:20px}.page-intro p{margin:0;color:var(--muted);font-size:11px}.actions{display:flex;gap:8px;flex-wrap:wrap}.metrics{margin-bottom:18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric,.panel,.section-card,.batch-card,.task-card,.stock-card,.alert-card{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}.metric{min-height:135px;padding:18px;display:flex;flex-direction:column;position:relative;overflow:hidden}.metric:after{content:"";position:absolute;width:95px;height:95px;right:-25px;bottom:-38px;border-radius:50%;background:var(--pale)}.metric-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;font-weight:750}.metric-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:var(--green);background:var(--pale);font-size:13px}.metric strong{margin:auto 0 4px;font-size:27px;line-height:1;letter-spacing:-.05em}.metric small{color:var(--muted);font-size:9px}.good{color:var(--green)!important;font-weight:800}.bad{color:var(--red)!important;font-weight:800}.dashboard{display:grid;grid-template-columns:1.45fr .85fr;gap:18px}.stack{display:grid;gap:18px;align-content:start}.panel{padding:19px;min-width:0}.panel-head{margin-bottom:17px;display:flex;justify-content:space-between;gap:14px;align-items:start}.panel-head h3{margin:0 0 4px;font-size:13px}.panel-head p{margin:0;color:var(--muted);font-size:9px}.link{border:0;color:var(--green);background:transparent;font-size:9px;font-weight:850}.badge{display:inline-block;padding:4px 7px;border-radius:20px;color:var(--green);background:var(--pale);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.badge.high,.badge.alert{color:var(--red);background:var(--red-bg)}.badge.medium,.badge.harvesting{color:#966311;background:var(--amber-bg)}.badge.low,.badge.info{color:var(--blue);background:var(--blue-bg)}.badge.empty{color:var(--muted);background:#edf2ef}.progress-list{display:grid;gap:14px}.progress{display:grid;grid-template-columns:100px 1fr 34px;gap:10px;align-items:center;font-size:9px}.track{height:7px;border-radius:10px;overflow:hidden;background:#edf2ef}.fill{height:100%;border-radius:inherit;background:var(--green)}.fill.amber{background:var(--amber)}.fill.blue{background:var(--blue)}.progress span:last-child{text-align:right;color:var(--muted);font-weight:750}.chart svg{width:100%;height:210px}.grid-line{stroke:#e7efeb;stroke-width:1}.area{fill:url(#fill);opacity:.75}.line{fill:none;stroke:var(--green);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.point{fill:#fff;stroke:var(--green);stroke-width:2}.label{fill:var(--muted);font-size:8px}.activity-list,.alert-list{display:grid;gap:9px}.activity{padding:10px;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border-radius:12px;background:#f8faf9}.activity i,.alert-symbol{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;color:var(--green);background:var(--pale);font-style:normal}.activity strong{display:block;font-size:9px}.activity small{display:block;margin-top:2px;color:var(--muted);font-size:8px}.time{color:var(--muted);font-size:8px;white-space:nowrap}.bars{height:180px;display:grid;grid-template-columns:repeat(7,1fr);gap:7px;align-items:end}.bar-col{height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px;color:var(--muted);font-size:8px}.bar-col b{font-size:8px;color:var(--ink)}.bar{width:min(28px,70%);min-height:5px;border-radius:7px 7px 3px 3px;background:var(--mint)}.bar.today{background:var(--green)}
.summary{margin-bottom:18px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.summary div{padding:12px 14px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:14px;background:#fff;font-size:10px}.summary i{width:9px;height:9px;border-radius:50%;background:var(--green)}.summary i.alert{background:var(--red)}.summary i.harvesting{background:var(--amber)}.summary b{margin-left:auto;font-size:16px}.greenhouse{margin-bottom:22px}.greenhouse-head{margin-bottom:10px;display:flex;gap:9px;align-items:center}.greenhouse-head h3{margin:0;font-size:12px}.greenhouse-head span{color:var(--muted);font-size:9px}.section-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.section-card{min-height:165px;padding:15px;text-align:left;position:relative;overflow:hidden;transition:.2s}.section-card:hover{transform:translateY(-3px);border-color:var(--mint)}.section-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--green)}.section-card.alert:before{background:var(--red)}.section-card.harvesting:before{background:var(--amber)}.section-card.empty:before{background:#aebdb7}.card-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.card-head h3{margin:0 0 3px;font-size:12px}.card-head p{margin:0;color:var(--muted);font-size:8px}.crop{margin:17px 0 3px;font-size:17px;font-weight:850;letter-spacing:-.04em}.meta{color:var(--muted);font-size:8px}.climate-line{margin-top:15px;padding-top:11px;display:flex;gap:11px;border-top:1px solid var(--line);color:var(--muted);font-size:8px}.climate-line strong{color:var(--ink)}.filters{margin-bottom:16px;display:flex;gap:7px;overflow-x:auto}.filter{padding:7px 11px;border:1px solid var(--line);border-radius:20px;color:var(--muted);background:#fff;font-size:9px;font-weight:750;white-space:nowrap}.filter.active{color:#fff;border-color:var(--green);background:var(--green)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.batch-card,.stock-card{padding:16px}.trace{margin:15px 0 9px;font-size:9px;font-weight:850}.stages{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}.stages i{height:5px;border-radius:8px;background:#e8efeb}.stages i.done{background:var(--green)}.mini-stats{margin:14px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.mini-stats div{padding:8px;border-radius:10px;background:#f7faf8}.mini-stats span,.mini-stats strong{display:block}.mini-stats span{color:var(--muted);font-size:7px}.mini-stats strong{margin-top:3px;font-size:9px}.card-actions{padding-top:11px;display:flex;gap:7px;border-top:1px solid var(--line)}.card-actions>*{flex:1}.task-layout{display:grid;grid-template-columns:1fr 280px;gap:18px}.task-list{display:grid;gap:9px}.task-card{padding:13px;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;box-shadow:none}.check{width:22px;height:22px;border:2px solid var(--mint);border-radius:7px;color:#fff;background:#fff;font-weight:900}.check.done{border-color:var(--green);background:var(--green)}.task-main h3{margin:0 0 3px;font-size:10px}.task-main p{margin:0;color:var(--muted);font-size:8px}.chips{margin-top:6px;display:flex;gap:5px;flex-wrap:wrap}.chips span{padding:3px 6px;border-radius:10px;color:var(--muted);background:#f0f5f2;font-size:7px}.task-side{text-align:right}.task-side strong,.task-side small{display:block;font-size:9px}.task-side small{margin-top:3px;color:var(--muted);font-size:7px}.stock-card.low-stock{border-color:#f2c7bf}.stock-line{margin:16px 0 8px;display:flex;justify-content:space-between;align-items:end}.stock-line strong{font-size:22px;letter-spacing:-.04em}.stock-line small{color:var(--muted);font-size:8px}.stock-meta{margin-top:10px;display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.climate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.wide{grid-column:span 2}.sensors{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.sensor{padding:13px;border-radius:14px;background:#f7faf8}.sensor span,.sensor strong,.sensor small{display:block}.sensor span{color:var(--muted);font-size:7px}.sensor strong{margin:6px 0 2px;font-size:18px;letter-spacing:-.04em}.sensor small{color:var(--green);font-size:7px;font-weight:800}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:8px}th{padding:8px;color:var(--muted);text-align:left;border-bottom:1px solid var(--line)}td{padding:10px 8px;border-bottom:1px solid #eef3f0}.alert-card{padding:13px;display:grid;grid-template-columns:auto 1fr auto;gap:11px;align-items:center;box-shadow:none}.alert-symbol{color:var(--red);background:var(--red-bg)}.alert-card.medium .alert-symbol{color:#966311;background:var(--amber-bg)}.alert-card.low .alert-symbol{color:var(--blue);background:var(--blue-bg)}.alert-card h3{margin:0 0 3px;font-size:10px}.alert-card p{margin:0;color:var(--muted);font-size:8px;line-height:1.5}.alert-card.ack{opacity:.55}.empty{padding:35px 15px;text-align:center;color:var(--muted);font-size:9px}.empty b{display:block;margin-bottom:4px;color:var(--ink)}.search-results{display:grid;gap:9px}.result{padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.result b,.result small{display:block}.result b{font-size:10px}.result small{margin-top:3px;color:var(--muted);font-size:8px}.result em{float:right;color:var(--green);font-size:8px;font-style:normal;font-weight:850}.toasts{position:fixed;right:20px;bottom:20px;z-index:100;display:grid;gap:8px}.toast{min-width:230px;padding:12px 14px;border-radius:12px;color:#fff;background:var(--ink);box-shadow:var(--shadow);font-size:9px}dialog{width:min(500px,calc(100vw - 28px));max-height:calc(100vh - 32px);padding:0;border:0;border-radius:20px;color:var(--ink);box-shadow:0 28px 90px rgba(16,43,37,.25);display:flex;flex-direction:column}dialog::backdrop{background:rgba(16,43,37,.48);backdrop-filter:blur(3px)}dialog header,dialog footer{padding:18px 20px;display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);flex:0 0 auto}dialog footer{justify-content:end;gap:8px;border:0;border-top:1px solid var(--line)}.dialog-body{padding:20px;display:grid;gap:12px;overflow-y:auto;flex:1 1 auto;min-height:0}dialog h2{margin:0;font-size:19px}dialog header button{border:0;background:transparent;font-size:18px}.field{display:grid;gap:5px}.field label{color:var(--muted);font-size:8px;font-weight:800}.field input,.field select{width:100%;padding:10px;border:1px solid var(--line);border-radius:11px;outline:0;background:#fbfcfb;font-size:10px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.quick-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.quick{padding:14px;border:1px solid var(--line);border-radius:13px;background:#fbfcfb;text-align:left}.quick:hover{background:var(--pale);border-color:var(--mint)}.quick b,.quick small{display:block}.quick b{font-size:10px}.quick small{margin-top:3px;color:var(--muted);font-size:7px}.mobile-nav{display:none}
@media(max-width:1120px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard{grid-template-columns:1fr}.cards,.section-grid{grid-template-columns:repeat(2,1fr)}.task-layout{grid-template-columns:1fr}}
@media(max-width:780px),(max-height:500px) and (orientation:landscape){body{padding-bottom:70px}.app-shell{display:block}.sidebar{display:none}.main{display:block}.topbar{min-height:auto;padding:17px 14px 13px;align-items:start}.top-actions{gap:5px}.search{width:38px;padding:0 10px}.search input,.network span{display:none}.content{padding:18px 13px 35px}.page-intro{align-items:start}.metrics,.cards,.section-grid,.climate-grid,.summary{grid-template-columns:1fr}.wide{grid-column:span 1}.sensors{grid-template-columns:repeat(2,1fr)}.task-card{grid-template-columns:auto 1fr}.task-side{grid-column:2;display:flex;gap:8px;text-align:left}.field-row{grid-template-columns:1fr}.mobile-nav{position:fixed;inset:auto 0 0;height:64px;padding:6px;z-index:30;display:grid;grid-template-columns:repeat(6,1fr);background:rgba(16,43,37,.97)}.mobile-nav button{justify-content:center;padding:5px 2px;display:grid;gap:2px;text-align:center;font-size:7px}.mobile-nav i{font-style:normal;font-size:15px}.mobile-nav button.active{color:#fff;background:rgba(216,239,141,.13)}}
.recovery-mode .sidebar,.recovery-mode .top-actions,.recovery-mode .mobile-nav{display:none}.recovery-mode .app-shell{grid-template-columns:1fr}.recovery-mode .main{grid-column:1}.recovery-mode .topbar{position:static}.recovery-mode .content{max-width:820px;padding-top:52px}.recovery-card{padding:30px;border:1px solid #f0c1ba;border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}.recovery-symbol{width:46px;height:46px;margin-bottom:18px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--red);font-size:22px;font-weight:900}.recovery-card h2{margin-bottom:8px;font-size:24px}.recovery-card>p{color:var(--muted);line-height:1.6}.recovery-card dl{margin:22px 0;display:grid;gap:8px}.recovery-card dl div{padding:11px 13px;display:grid;grid-template-columns:180px 1fr;gap:12px;border-radius:11px;background:#f8faf9}.recovery-card dt{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.recovery-card dd{margin:0;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;overflow-wrap:anywhere}.recovery-note{margin:0;padding:11px 13px;border-radius:11px;color:#9b3f38!important;background:var(--red-bg);font-weight:800}@media(max-width:780px){.recovery-mode body{padding-bottom:0}.recovery-mode .content{padding-top:24px}.recovery-card{padding:20px}.recovery-card dl div{grid-template-columns:1fr;gap:4px}}
.profile{grid-template-columns:34px 1fr}.profile-actions{grid-column:1/-1;display:flex;gap:6px}.profile-actions button{padding:5px 7px;border:1px solid rgba(255,255,255,.12);border-radius:8px;font-size:8px}
.auth-mode .sidebar,.auth-mode .top-actions,.auth-mode .mobile-nav{display:none}.auth-mode .app-shell{grid-template-columns:1fr}.auth-mode .main{grid-column:1}.auth-mode .topbar{position:static}.auth-mode .content{max-width:460px;padding-top:52px}.login-card{padding:28px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}.login-card h2{margin-bottom:7px;font-size:24px}.login-card>p{color:var(--muted);line-height:1.6}.login-form{margin-top:22px;display:grid;gap:13px}.login-form label{display:grid;gap:6px;color:var(--muted);font-size:9px;font-weight:800}.login-form input{width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;outline:0}.login-form .primary{margin-top:3px}.login-error{margin:0;padding:9px 11px;border-radius:10px;color:#9b3f38!important;background:var(--red-bg);font-size:9px}.login-note{margin:16px 0 0;padding:10px 11px;border-radius:10px;background:#f7faf8;font-size:9px!important}@media(max-width:780px){.auth-mode body{padding-bottom:0}.auth-mode .content{padding-top:24px}.login-card{padding:21px}}
.network:disabled{cursor:default;opacity:.8}
.mode-indicator{padding:7px 9px;border-radius:20px;color:var(--muted);background:#edf2ef;font-size:8px;font-weight:850;text-transform:uppercase;white-space:nowrap}.mode-indicator.server{color:var(--green);background:var(--pale)}@media(max-width:780px){.mode-indicator{position:fixed;right:8px;bottom:70px;z-index:31;box-shadow:var(--shadow)}}
.worker-mode{max-width:720px;margin:0 auto}.worker-task-list,.worker-checklist,.worker-notes,.worker-audit-list{display:grid;gap:10px}.worker-task-card{width:100%;padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow);text-align:left;color:var(--ink)}.worker-task-card.completed{opacity:.65}.worker-task-top,.worker-task-footer,.worker-detail-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.worker-task-card h3{margin:14px 0 5px;font-size:17px}.worker-task-card p,.worker-task-card small{display:block;margin:0;color:var(--muted)}.worker-task-card small{margin-top:4px}.worker-task-footer{margin-top:15px;padding-top:12px;border-top:1px solid var(--line);text-transform:capitalize}.worker-sync{padding:5px 8px;border-radius:20px;color:#966311;background:var(--amber-bg);font-size:8px;font-weight:850;text-transform:uppercase}.worker-sync.conflict,.worker-sync.failed,.worker-sync.dead-letter{color:var(--red);background:var(--red-bg)}.worker-sync.synced{color:var(--green);background:var(--pale)}.worker-back{margin-bottom:14px;padding:10px 0;border:0;background:transparent;color:var(--green);font-weight:850}.worker-detail-head{margin-bottom:14px;padding:18px;border-radius:18px;color:#fff;background:var(--ink)}.worker-detail-head h2{margin:12px 0 5px;font-size:24px}.worker-detail-head p{margin:0;color:#b9cbc5}.worker-block{margin-bottom:13px;padding:17px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:var(--shadow)}.worker-block h3{margin-bottom:13px;font-size:14px}.worker-block>p{margin-bottom:0;color:var(--muted);line-height:1.65}.worker-check{min-height:58px;padding:10px;border:1px solid var(--line);border-radius:14px;display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:center;background:#fbfcfb;text-align:left}.worker-check i{width:34px;height:34px;border:2px solid var(--mint);border-radius:10px;display:grid;place-items:center;color:#fff;background:#fff;font-style:normal;font-weight:900}.worker-check.done i{border-color:var(--green);background:var(--green)}.worker-check strong,.worker-check small{display:block}.worker-check small{margin-top:3px;color:var(--muted)}.worker-note-form{display:grid;gap:9px}.worker-note-form textarea{width:100%;padding:13px;border:1px solid var(--line);border-radius:13px;resize:vertical}.worker-primary{min-height:52px;width:100%;font-size:12px}.worker-primary:disabled,.check:disabled{cursor:not-allowed;opacity:.65}.worker-notes{margin-top:14px}.worker-note,.worker-audit{padding:12px;border-radius:13px;background:#f7faf8}.worker-note p{margin-bottom:6px;line-height:1.5}.worker-note small,.worker-audit small{display:block;color:var(--muted);overflow-wrap:anywhere}.worker-audit strong{display:block;margin-bottom:4px;font-size:9px}.worker-muted{margin:0;color:var(--muted)}.worker-action-bar{position:sticky;bottom:72px;padding:10px 0;background:linear-gradient(transparent,var(--bg) 25%)}@media(max-width:780px){.worker-mode{max-width:none}.worker-detail-head{align-items:flex-start}.worker-task-card{min-height:165px}.worker-block{padding:15px}.worker-action-bar{bottom:64px}}
.harvest-entry .field span,.harvest-form .field span{color:var(--muted);font-size:9px;font-weight:800}.harvest-form{display:grid;gap:14px}.harvest-form input,.harvest-form select,.harvest-form textarea{width:100%;min-height:52px;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fbfcfb}.harvest-form textarea{min-height:100px}.harvest-card{padding:17px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow);text-align:left;color:var(--ink)}.harvest-card h3{margin:14px 0 4px;font-size:16px}.harvest-card p,.harvest-card small{display:block;margin:0;color:var(--muted)}.harvest-weight{margin:15px 0 5px;font-size:25px;font-weight:900;letter-spacing:-.05em}.harvest-notes{margin-top:14px!important;padding-top:14px;border-top:1px solid var(--line)}.harvest-actions{display:grid;gap:8px}
.attention-banner{margin-bottom:18px;padding:16px 18px;border:1px solid #f1c7c0;border-radius:16px;display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--red-bg)}.attention-banner h3{margin:8px 0 3px;font-size:15px}.attention-banner p{margin:0;color:var(--muted);font-size:9px}.review-banner,.stock-warning{border-color:#efd9aa;background:var(--amber-bg)}.ux-dashboard{grid-template-columns:1.35fr .75fr}.dashboard-task-list,.climate-snapshot-grid{display:grid;gap:9px}.dashboard-task{width:100%;padding:13px;border:1px solid var(--line);border-radius:13px;display:grid;grid-template-columns:1fr 150px;gap:12px;align-items:center;color:var(--ink);background:#fbfcfb;text-align:left}.dashboard-task.overdue,.worker-task-card.overdue,.task-context.overdue{border-color:#efc7bf;background:var(--red-bg)}.dashboard-task h3{margin:7px 0 3px;font-size:11px}.dashboard-task p,.task-progress span{margin:0;color:var(--muted);font-size:8px}.task-progress{display:grid;gap:6px;text-align:right}.task-progress strong{font-size:11px}.climate-snapshot{padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfcfb}.climate-snapshot.outside-range,.section-climate-card.outside-range{border-color:#efc7bf;background:var(--red-bg)}.climate-snapshot div{display:flex;justify-content:space-between;align-items:center;gap:8px}.climate-snapshot p{margin:8px 0 3px;font-size:9px;font-weight:750}.climate-snapshot small{color:var(--muted);font-size:7px}.review-summary{min-height:120px;display:grid;place-content:center;text-align:center}.review-summary strong{font-size:48px;line-height:1;letter-spacing:-.08em}.review-summary span{margin-top:5px;color:var(--muted);font-size:9px}.worker-task-progress{margin-top:13px;padding-top:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:6px;color:var(--muted);font-size:8px}.worker-task-progress .track{grid-column:1/-1}.task-context{margin-bottom:13px;padding:14px;border:1px solid var(--line);border-radius:16px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;background:#fff;box-shadow:var(--shadow)}.task-context>div{padding:9px;border-radius:11px;background:#f7faf8}.task-context span,.task-context strong{display:block}.task-context span{margin-bottom:5px;color:var(--muted);font-size:8px}.task-context strong{font-size:10px}.task-context .track{margin-top:8px}.section-climate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.section-climate-card{padding:16px;border:1px solid var(--line);border-radius:var(--r);background:#fff;box-shadow:var(--shadow)}.section-climate-card header{display:flex;justify-content:space-between;gap:10px;align-items:start}.section-climate-card h3{margin:0 0 3px;font-size:13px}.section-climate-card small{color:var(--muted);font-size:7px}.section-metrics{margin-top:14px;display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.section-metrics div{padding:10px;border-radius:11px;background:#f7faf8}.section-metrics span,.section-metrics strong{display:block}.section-metrics span{color:var(--muted);font-size:7px}.section-metrics strong{margin-top:4px;font-size:11px}.dialog-body textarea{width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;resize:vertical;background:#fbfcfb;font-size:10px}
@media(max-width:1120px){.section-climate-grid{grid-template-columns:repeat(2,1fr)}.ux-dashboard{grid-template-columns:1fr}}
@media(max-width:780px){.attention-banner{align-items:flex-start;display:grid}.dashboard-task{grid-template-columns:1fr}.task-progress{text-align:left}.task-context,.section-climate-grid{grid-template-columns:1fr}.section-metrics{grid-template-columns:repeat(2,1fr)}}
.photo-gallery .result{border-style:dashed}.worker-check,.worker-task-card,.harvest-card,.dashboard-task{touch-action:manipulation}.worker-sync:not(.synced){box-shadow:0 0 0 2px rgba(219,154,40,.12)}
@media(max-width:780px),(max-height:500px) and (orientation:landscape){button,.primary,.secondary,.tiny,.filter{min-height:44px}.tiny{padding:10px 12px}.worker-task-card h3,.harvest-card h3{font-size:18px}.worker-check{min-height:64px}.worker-action-bar{margin:0 -13px;padding:10px 13px;background:linear-gradient(transparent,var(--bg) 24%)}.harvest-actions{grid-template-columns:1fr}.mobile-nav{height:68px}.mode-indicator{bottom:74px}.photo-gallery .result{padding:15px}.result b{font-size:11px}dialog header button{min-width:44px}}
.evaluation-capture .evaluation-start form{display:grid;gap:12px}.evaluation-context{grid-template-columns:repeat(4,1fr)}.evaluation-metric-grid{display:grid;gap:12px}.evaluation-metric-card{padding:15px;border:1px solid var(--line);border-radius:16px;background:#fbfcfb}.evaluation-metric-card.incomplete{border-color:#efc7bf;background:var(--red-bg)}.evaluation-metric-card h3{margin:0 0 5px;font-size:15px}.evaluation-metric-card p{margin:0 0 12px;color:var(--muted);line-height:1.5}.evaluation-metric-card .badge{float:right}.metric-choice-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:8px}.metric-score,.metric-choice{min-height:50px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font-weight:850}.metric-score.active,.metric-choice.active{border-color:var(--green);background:var(--pale);color:var(--green)}.metric-inline-form{display:grid;grid-template-columns:1fr 120px;gap:8px}.metric-inline-form input{min-height:52px;width:100%;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff}.evaluation-metric-card small{display:block;margin-top:10px;color:var(--muted);font-size:8px}
@media(max-width:780px){.evaluation-context{grid-template-columns:1fr}.metric-inline-form{grid-template-columns:1fr}.metric-score,.metric-choice{min-height:56px}.evaluation-metric-card{padding:14px}.evaluation-start .field input,.evaluation-start .field select{min-height:52px}}
.nav{overflow-y:auto;min-height:0;padding-right:3px}.owner-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.owner-review-card{padding:17px;border:1px solid var(--line);border-radius:var(--r);display:grid;grid-template-columns:34px 1fr auto;gap:13px;align-items:center;background:#fff;box-shadow:var(--shadow)}.owner-review-number{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:var(--green);background:var(--pale);font-weight:900}.owner-review-card h3{margin:0 0 5px}.owner-review-card p{margin:0 0 7px;color:var(--muted);line-height:1.45}.owner-review-card small{color:var(--muted)}@media(max-width:980px){.owner-review-grid{grid-template-columns:1fr}}@media(max-width:780px){.owner-review-card{grid-template-columns:34px 1fr}.owner-review-card .primary{grid-column:1/-1;width:100%}}
.owner-signal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.owner-signal{min-height:112px;padding:13px;border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;align-items:flex-start;color:var(--ink);background:#fbfcfb;text-align:left}.owner-signal.attention{border-color:#efd9aa;background:var(--amber-bg)}.owner-signal span,.owner-signal small{color:var(--muted)}.owner-signal strong{margin:10px 0 5px;font-size:24px}.prototype-limitations,.capacity-clear{margin-top:18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#fff}.prototype-limitations h3{margin-bottom:6px}.prototype-limitations p{margin:0;color:var(--muted);line-height:1.55}.capacity-clear{margin:0 0 18px;display:flex;justify-content:space-between;gap:12px;color:var(--green);background:var(--pale)}.capacity-clear span{color:var(--muted)}.workflow-role-grid{margin-bottom:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.workflow-role-grid article{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.workflow-role-grid span,.workflow-role-grid strong,.workflow-role-grid small{display:block}.workflow-role-grid span{color:var(--green);font-size:8px;font-weight:900;text-transform:uppercase}.workflow-role-grid strong{margin:6px 0 4px}.workflow-role-grid small{color:var(--muted);line-height:1.45}.status-legend{margin-bottom:16px;padding:10px 13px;border:1px solid var(--line);border-radius:13px;display:flex;gap:16px;flex-wrap:wrap;background:#fff}.status-legend span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:9px}.status-legend i{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-legend i.submitted,.status-legend i.in-progress{background:var(--amber)}.status-legend i.approved,.status-legend i.completed{background:var(--green)}.status-legend i.rejected,.status-legend i.overdue{background:var(--red)}.harvest-card.review-needed{border-color:#efd9aa;background:var(--amber-bg)}.workflow-hint{margin-top:9px!important;padding-top:9px;border-top:1px solid var(--line);font-weight:800}.task-card.overdue{border-color:#efc7bf;background:var(--red-bg)}.result .track{margin-top:9px}.attention-banner>strong{font-size:13px}.attention-banner>span{color:var(--muted)}
@media(max-width:1120px){.owner-signal-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:780px){.owner-signal-grid,.workflow-role-grid{grid-template-columns:1fr}.capacity-clear{display:grid}.owner-signal{min-height:96px}.status-legend{gap:10px}}
@media(max-width:780px){.page-intro{display:grid}.page-intro .actions{width:100%}.page-intro .actions button{flex:1 1 140px}.card-actions{flex-wrap:wrap}.card-actions>*{min-width:120px}}
.login-form select{width:100%;padding:11px;border:1px solid var(--line);border-radius:11px;outline:0;background:#fff}.install-app[hidden]{display:none}@media(max-width:780px){.install-app{position:fixed;right:8px;bottom:122px;z-index:31;box-shadow:var(--shadow)}}
.attachment-heading{margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.attachment-heading h3{margin:0}.attachment-link-form{margin-top:13px;padding-top:13px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:10px;align-items:end}.attachment-link-form .field{margin:0}.attachment-link-form select{width:100%;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.attachment-link-form button{min-height:44px}.attachment-guidance{margin-top:10px!important;font-size:9px}.attachment-unavailable{border-color:#e9b9b2!important;background:var(--red-bg)}@media(max-width:780px){.attachment-link-form{grid-template-columns:1fr}.attachment-link-form button{width:100%;min-height:52px}.attachment-heading{align-items:flex-start}}
.calibration-form{margin-top:14px;padding-top:13px;border-top:1px solid var(--line);display:grid;gap:9px}.calibration-form .field input,.calibration-form .field select,.worker-block .field select{width:100%;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:10px;background:#fff}.calibration-form button{justify-self:start}@media(max-width:780px){.calibration-form button{width:100%}}
.issue-report-form{max-width:720px}.issue-report-form textarea,.worker-block textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:11px;background:#fff;resize:vertical}.issue-report-form .worker-primary{margin-top:4px}
.worker-home .page-intro{align-items:start}.worker-home-action{min-height:56px;min-width:132px}.worker-home-action.emergency{color:#9b3f38;background:var(--red-bg)}.worker-task-section{margin-bottom:16px}.worker-task-section>h3{margin:0 0 10px;font-size:15px}.worker-evidence-chips{margin-top:12px;display:flex;gap:6px;flex-wrap:wrap}.worker-evidence-chips span{padding:5px 8px;border-radius:999px;color:var(--green);background:var(--pale);font-size:8px;font-weight:900}.worker-evidence-grid{display:grid;gap:8px}.worker-evidence-item{padding:12px;border:1px solid var(--line);border-radius:13px;display:grid;grid-template-columns:1fr auto;gap:4px;background:#f8faf9}.worker-evidence-item strong{font-size:12px}.worker-evidence-item span{font-size:9px;font-weight:900;text-transform:uppercase}.worker-evidence-item small{grid-column:1/-1;color:var(--muted)}.worker-evidence-item.done{border-color:var(--mint);background:var(--pale)}.worker-evidence-item.missing{border-color:#efc7bf;background:var(--red-bg)}.worker-evidence-item.optional span{color:var(--muted)}.worker-simple-task .worker-block h3,.worker-issue-page .worker-block h3{font-size:16px}.worker-evidence-form select,.worker-evidence-form textarea,.worker-inventory-use select,.worker-inventory-use input,.worker-issue-simple select,.worker-issue-simple textarea{min-height:54px;font-size:14px}.worker-simple-context strong{font-size:13px}.worker-history-mini{opacity:.85}.worker-issue-simple{display:grid;gap:13px}.worker-issue-simple .field span,.worker-evidence-form .field span,.worker-inventory-use .field span{font-size:10px;font-weight:900;color:var(--ink)}
@media(max-width:780px){.worker-home .actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.worker-home .actions .worker-home-action:first-child{grid-column:1/-1}.worker-home-action{width:100%;min-height:60px;font-size:13px}.worker-task-section>h3{font-size:17px}.worker-task-card{min-height:150px;padding:20px}.worker-task-card h3{font-size:21px}.worker-task-card p{font-size:13px}.worker-task-card small{font-size:11px}.worker-task-footer strong{font-size:12px}.worker-evidence-item{min-height:62px;padding:14px}.worker-check{min-height:70px}.worker-check strong{font-size:14px}.worker-simple-task .worker-block,.worker-issue-page .worker-block{padding:18px}.worker-simple-task .field-row{grid-template-columns:1fr}.worker-issue-simple textarea{min-height:86px}}
.nav-group{display:grid;gap:3px}.nav-children{display:grid;gap:2px;padding:1px 0 5px}.nav-children button{min-height:30px;padding:7px 9px 7px 43px;border-radius:9px;font-size:9px;font-weight:650}.nav-children button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-nav{margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow)}.section-nav-head{margin-bottom:11px;display:flex;align-items:baseline;gap:10px}.section-nav-head strong{font-size:12px}.section-nav-head span{color:var(--muted);font-size:9px}.section-nav-links{display:flex;gap:7px;overflow-x:auto;padding-bottom:2px}.section-nav-links button{min-height:34px;padding:7px 11px;border:1px solid var(--line);border-radius:20px;color:var(--muted);background:#f8faf9;font-size:9px;font-weight:800;white-space:nowrap}.section-nav-links button.active{color:#fff;border-color:var(--green);background:var(--green)}
@media(max-width:780px){.section-nav{padding:12px}.section-nav-head{display:grid;gap:4px}.mobile-nav{height:68px;display:flex;grid-template-columns:none;gap:2px;overflow-x:auto}.mobile-nav button{flex:0 0 72px}.mode-indicator{bottom:74px}}
.calendar-compact-header{margin-bottom:8px;padding:8px 10px;border:1px solid var(--line);border-radius:16px;display:flex;align-items:center;gap:8px;background:#fff;box-shadow:var(--shadow)}.calendar-compact-header h2{margin:0;font-size:18px;letter-spacing:-.04em}.calendar-compact-header>strong{min-width:128px;text-align:center;font-size:12px}.calendar-compact-header .filters{margin:0}.calendar-view-toggle,.calendar-scope-toggle{gap:4px}.calendar-view-toggle .filter,.calendar-scope-toggle .filter,.compact-action{min-height:30px;padding:5px 9px}.calendar-filter-panel,.calendar-help{position:relative}.calendar-filter-panel>summary,.calendar-help>summary{min-height:30px;padding:6px 10px;border-radius:11px;color:var(--ink);background:var(--pale);font-size:9px;font-weight:850;list-style:none;cursor:pointer}.calendar-filter-panel>summary::-webkit-details-marker,.calendar-help>summary::-webkit-details-marker{display:none}.calendar-filter-panel[open]{flex-basis:100%;order:10}.calendar-help[open]{flex-basis:260px}.calendar-help p{position:absolute;right:0;top:36px;z-index:5;width:260px;margin:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);color:var(--muted);font-size:9px;line-height:1.45}.calendar-actions{margin-left:auto;display:flex;gap:6px}.calendar-filter-form{margin-top:7px;padding:9px;border:1px solid var(--line);border-radius:13px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;align-items:end;background:#fff}.calendar-filter-form .field{margin:0}.calendar-filter-form input,.calendar-filter-form select{width:100%;min-height:32px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:#fbfcfb}.calendar-status-filters{margin-bottom:7px}.calendar-legend{margin-bottom:10px;display:flex;gap:9px;flex-wrap:wrap;color:var(--muted);font-size:8px;font-weight:800}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.calendar-grid{margin-bottom:12px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff;box-shadow:var(--shadow)}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid var(--line);background:#f8faf9}.calendar-weekdays span{padding:6px;color:var(--muted);font-size:8px;font-weight:900;text-align:center;text-transform:uppercase}.calendar-grid.month{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-grid.month .calendar-weekdays{grid-column:1/-1}.calendar-grid.week,.calendar-grid.day{display:grid;grid-template-columns:1fr}.calendar-grid.week .calendar-weekdays,.calendar-grid.day .calendar-weekdays{display:none}.calendar-cell{min-height:86px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-cell:nth-child(7n+1){border-right:0}.calendar-cell.today{outline:2px solid var(--green);outline-offset:-2px;background:var(--pale)}.calendar-cell.muted{background:#f8faf9;color:var(--muted)}.calendar-cell header{margin-bottom:5px;display:flex;justify-content:space-between;gap:6px;align-items:center}.calendar-cell header strong{font-size:12px}.calendar-cell header span{color:var(--muted);font-size:7px}.calendar-cell-events{display:grid;gap:4px}.calendar-event-pill{width:100%;min-height:24px;padding:4px 6px;border:0;border-radius:8px;color:var(--ink);background:var(--pale);text-align:left}.calendar-event-pill strong,.calendar-event-pill small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event-pill strong{font-size:8px}.calendar-event-pill small{font-size:7px;opacity:.78}.calendar-more{color:var(--muted);font-size:8px}.event-blue,.calendar-legend .event-blue{background:var(--blue-bg)!important;color:#245f78!important}.event-green,.calendar-legend .event-green{background:var(--pale)!important;color:var(--green)!important}.event-light-green,.calendar-legend .event-light-green{background:#f1f8d9!important;color:#607a1e!important}.event-orange,.calendar-legend .event-orange{background:var(--amber-bg)!important;color:#966311!important}.event-purple,.calendar-legend .event-purple{background:#f1ebfb!important;color:#6b4aa1!important}.event-teal,.calendar-legend .event-teal{background:#e5f7f5!important;color:#21766f!important}.event-red,.calendar-legend .event-red{background:var(--red-bg)!important;color:var(--red)!important}.event-grey,.calendar-legend .event-grey{background:#edf2ef!important;color:var(--muted)!important}.calendar-event .card-actions{margin-top:10px}.calendar-event-pill:hover{filter:brightness(.98);transform:translateY(-1px)}
@media(max-width:1120px){.calendar-filter-form{grid-template-columns:repeat(3,minmax(0,1fr))}.calendar-cell{min-height:104px}}
@media(max-width:780px){.calendar-filter-form{grid-template-columns:1fr}.calendar-grid.month{display:block}.calendar-weekdays{display:none}.calendar-cell{min-height:auto;border-right:0}.calendar-cell.muted{display:none}.calendar-event-pill{min-height:44px}.calendar-toolbar .field-row{grid-template-columns:1fr}.calendar-toolbar .field-row strong{text-align:center}}
.event-yellow,.calendar-legend .event-yellow{background:#fff7d6!important;color:#8a6500!important}
.required-marker{color:var(--red);font-weight:900}.primary:disabled,.secondary:disabled,.tiny:disabled,button[aria-busy="true"]{cursor:wait;opacity:.62}
.qr-select{display:flex;align-items:center;gap:8px;margin-bottom:8px;color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.qr-print-box{display:grid;gap:6px}.qr-visual{min-height:86px;border:2px solid var(--ink);border-radius:10px;display:grid;place-items:center;background:repeating-linear-gradient(45deg,#111 0 6px,#fff 6px 12px);color:#fff;font-size:13px;font-weight:900;text-shadow:0 1px 2px #000;letter-spacing:.08em}.qr-workflow-hint{margin:10px 0;padding:10px;border-radius:12px;background:var(--pale);display:grid;gap:4px}.qr-workflow-hint strong{font-size:12px}.qr-workflow-hint small{color:var(--muted);line-height:1.4}.qr-worker-actions label{min-height:52px}
.qr-guided-result{border-color:var(--mint);background:#fbfffd}.qr-context-details{display:grid;gap:4px;margin:8px 0 12px}.qr-context-details small{color:var(--muted);font-size:9px}.qr-guided-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:9px}.qr-guided-actions button{min-height:58px;font-size:13px}@media(max-width:780px){.qr-guided-actions{grid-template-columns:1fr}.qr-guided-actions button{min-height:64px;font-size:15px}.qr-guided-result .mini-stats{grid-template-columns:1fr}}
.qr-camera-preview{width:100%;min-height:220px;max-height:55vh;border:1px solid rgba(255,255,255,.14);border-radius:18px;display:block;background:#07120d;object-fit:cover}.qr-camera-card .worker-action-bar{margin-top:12px}@media(max-width:640px){.qr-camera-preview{min-height:260px;max-height:50vh}}
.qr-digital-twin{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.qr-digital-twin h3{margin-bottom:9px}.qr-digital-twin .mini-stats{grid-template-columns:repeat(3,1fr)}@media(max-width:780px){.qr-digital-twin .mini-stats{grid-template-columns:1fr 1fr}}
body.keyboard-open{padding-bottom:0}body.keyboard-open .mobile-nav,body.keyboard-open .mode-indicator,body.keyboard-open .install-app{display:none!important}body.keyboard-open .worker-action-bar{position:static;background:none}
body.route-loading .topbar:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--green);animation:route-loading-sweep 1.1s ease-in-out infinite}@keyframes route-loading-sweep{0%{transform:translateX(-100%) scaleX(.4)}50%{transform:translateX(0) scaleX(.7)}100%{transform:translateX(100%) scaleX(.4)}}
