:root{--green:#2f5d3a;--cream:#f3e9d2;--warn:#8a2d1d}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:#1c1c1c;background:var(--cream);font-family:system-ui,sans-serif}.app{flex-direction:column;height:100%;display:flex}.topbar{padding:8px 16px;padding-top:max(8px, env(safe-area-inset-top));background:var(--green);color:#fff;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.topbar h1{margin:0;font-size:1.1rem}.muted-light{opacity:.8;font-size:.8rem}.main{flex:1;min-height:0;position:relative}.map-wrap,.map-wrap .map{position:absolute;inset:0}.map-status{z-index:5;background:#fff;border-radius:8px;padding:10px 12px;position:absolute;top:16px;left:16px;right:16px;box-shadow:0 1px 6px #00000040}.map-status.error{color:var(--warn);background:#fbe9e6;top:64px}.tabs{padding-bottom:env(safe-area-inset-bottom);background:#fff;border-top:1px solid #ccc;display:flex}.tabs button{color:#444;background:0 0;border:0;flex:1;padding:14px 8px;font-size:1rem}.tabs button[aria-current=true]{color:var(--green);box-shadow:inset 0 3px 0 var(--green);font-weight:700}.panel{z-index:6;background:#fff;position:absolute;inset:0;overflow-y:auto}.panel-body{max-width:640px;margin:0 auto;padding:16px}.panel-body h2{margin-top:0}.panel-body h3{margin-bottom:4px}.btn{background:var(--green);color:#fff;border:0;border-radius:8px;padding:10px 14px;font-size:1rem}.warning{border-left:4px solid var(--warn);background:#fbe9e6;padding:10px 12px}.muted{color:#666;font-size:.85rem}.list{margin:0 0 12px;padding:0;list-style:none}.list button{text-align:left;background:#f6f6f1;border:0;border-bottom:1px solid #e3e3da;justify-content:space-between;align-items:center;width:100%;padding:14px 12px;font-size:1rem;display:flex}.badge{background:var(--warn);color:#fff;border-radius:10px;padding:2px 8px;font-size:.7rem}.checks{padding:0;list-style:none}.checks label{align-items:flex-start;gap:12px;padding:10px 0;display:flex}.checks input{flex:none;width:24px;height:24px}.sheet{z-index:5;background:#fff;border-radius:16px 16px 0 0;max-height:55%;padding:12px 16px;position:absolute;bottom:0;left:0;right:0;overflow-y:auto;box-shadow:0 -2px 10px #00000040}.sheet-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.sheet h2{margin:0;font-size:1.15rem}.facts{grid-template-columns:max-content 1fr;gap:6px 14px;margin:12px 0 0;display:grid}.facts dt{color:#666}.facts dd{margin:0}.facts ul{margin:0;padding-left:18px}.controls{z-index:4;background:#fffffff5;border-radius:12px;flex-direction:column;gap:6px;padding:8px;display:flex;position:absolute;top:8px;left:8px;right:8px;box-shadow:0 1px 6px #0000004d}.controls select{background:#fff;border:1px solid #bbb;border-radius:8px;width:100%;padding:8px;font-size:1rem}.days{gap:4px;display:flex;overflow-x:auto}.days button{white-space:nowrap;background:#fff;border:1px solid #bbb;border-radius:8px;flex:1 0 auto;padding:8px 10px;font-size:.9rem}.days button[aria-selected=true]{background:var(--green);color:#fff;border-color:var(--green);font-weight:700}.legend{color:#555;align-items:center;gap:6px;font-size:.75rem;display:flex}.legend .steps{border:1px solid #ccc;border-radius:4px;flex:1;height:12px;display:flex;overflow:hidden}.legend .steps i{flex:1}.banner{border-radius:8px;padding:6px 8px;font-size:.85rem}.banner.info{color:#34532e;background:#eef3ea}.banner.error{color:var(--warn);background:#fbe9e6;font-weight:600}.chance{margin:8px 0 4px}.chance-main{margin:4px 0;font-size:1.05rem}.chance-main strong{font-size:1.4rem}.bars{align-items:flex-end;gap:6px;height:74px;margin:6px 0;display:flex}.bar{color:#222;background:#f1f1ea;border:0;border-radius:6px;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;padding:0;display:flex;position:relative;overflow:hidden}.bar[aria-current=true]{outline:2px solid var(--green)}.bar-fill{opacity:.75;background:#8bc979;position:absolute;bottom:0;left:0;right:0}.bar-label,.bar-value{font-size:.7rem;line-height:1.2;position:relative}.bar-value{margin-bottom:2px;font-weight:700}.actions{gap:6px;display:flex}.actions .btn{white-space:nowrap;flex:1 1 0;padding:8px 4px}.sheet.compact{max-height:40%}.btn.light{color:#1c1c1c;background:#fff;border:1px solid #bbb;padding:8px 10px;font-size:.9rem}.btn.light[aria-pressed=true]{background:var(--green);color:#fff;border-color:var(--green)}.btn:disabled{opacity:.55}.ok{color:#1f6b2e;font-weight:600}.nearby{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.nearby button{text-align:left;background:#fafafa;border:1px solid #ccc;border-radius:10px;grid-template-columns:56px 1fr;grid-template-areas:"c n""c d";gap:0 10px;width:100%;padding:8px 10px;display:grid}.nearby-chance{color:var(--green);grid-area:c;align-self:center;font-size:1.3rem;font-weight:700}.nearby-name{grid-area:n;font-weight:600}.nearby-dist{color:#555;grid-area:d;font-size:.85rem}.arrow{margin-right:6px;font-weight:700;display:inline-block}.me-marker{width:22px;height:22px;position:relative}.me-dot{background:#1a73e8;border:3px solid #fff;border-radius:50%;position:absolute;inset:3px;box-shadow:0 0 4px #00000080}.me-wedge{transform-origin:9px 34px;border-bottom:30px solid #1a73e88c;border-left:9px solid #0000;border-right:9px solid #0000;width:0;height:0;margin:-34px 0 0 -9px;position:absolute;top:50%;left:50%}.car-marker{filter:drop-shadow(0 1px 2px #0009);cursor:grab;font-size:28px;line-height:1}.car-way{align-items:center;gap:14px;margin:10px 0;font-size:1.1rem;display:flex}.car-arrow{color:var(--green);font-size:2.6rem;font-weight:700;line-height:1;display:inline-block}.actions.wrap{flex-wrap:wrap}.bans-toggle{color:#444;align-items:center;gap:6px;font-size:.85rem;display:flex}.session-bar{background:#eef3ea;border-radius:8px;align-items:center;gap:6px;padding:4px 6px;font-size:.85rem;display:flex}.session-bar .session-car{white-space:nowrap;flex:1}.session-bar .btn.light{white-space:nowrap;padding:6px 8px;font-size:.85rem}.toast{z-index:20;color:#fff;background:#1f4d2a;border-radius:20px;padding:8px 14px;font-size:.9rem;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #0006}.pin-marker{filter:drop-shadow(0 1px 2px #0009);font-size:26px;line-height:1}.report-form{flex-direction:column;gap:10px;margin-top:8px;display:flex}.report-form label{color:#444;flex-direction:column;gap:4px;font-size:.85rem;display:flex}.report-form input,.report-form select,.report-form textarea{background:#fff;border:1px solid #bbb;border-radius:8px;padding:8px;font-family:inherit;font-size:1rem}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{gap:6px;display:flex}.choice button{background:#fff;border:1px solid #bbb;border-radius:8px;flex:1;padding:10px;font-size:1rem}.choice button[aria-checked=true]{background:var(--green);color:#fff;border-color:var(--green);font-weight:600}.reports{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.reports li{background:#fff;border:1px solid #ddd;border-radius:10px;padding:8px 10px}.link{color:var(--warn);background:0 0;border:0;padding:4px 0;font-size:.85rem;text-decoration:underline}.sheet>.btn{margin-top:10px}.tabs button{font-size:.85rem}.banner{justify-content:space-between;align-items:center;gap:8px;display:flex}.banner .collapse{color:inherit;background:0 0;border:0;padding:2px 8px;font-size:1rem}.banner.alert{border:2px solid var(--warn);padding:10px;font-size:.95rem}.features{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.targets{margin-bottom:10px}.targets>span{color:#444;font-size:.85rem}.simulation{border-top:1px dashed #bbb;margin-top:18px;padding-top:6px}.file-btn{justify-content:center;align-items:center;display:inline-flex;position:relative;overflow:hidden}.file-btn input{opacity:0;position:absolute;inset:0}.link.plain{color:var(--green)}.summary .sheet-head h2{margin:0}.stays{border-collapse:collapse;width:100%;font-size:.95rem}.stays td{border-bottom:1px solid #e3e3da;padding:6px 4px}.stays td.num{text-align:right;white-space:nowrap}.proposals{flex-direction:column;gap:8px;margin:0 0 10px;padding:0;list-style:none;display:flex}.proposals li{background:#fff;border:1px solid #ddd;border-radius:10px;padding:8px 10px}.proposals li.off{opacity:.6}.proposals .check{align-items:flex-start;gap:10px;display:flex}.proposals .check input{flex:none;width:22px;height:22px}.proposal-edit{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 0 32px;font-size:.85rem;display:flex}.proposal-edit select,.proposal-edit input{background:#fff;border:1px solid #bbb;border-radius:8px;padding:6px;font-size:1rem}.proposal-edit input{width:4.5em}.alert-banner{z-index:30;background:#fff4e0;border:2px solid #c25e00;border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:.95rem;display:flex;position:absolute;bottom:8px;left:8px;right:8px;box-shadow:0 2px 10px #00000059}.alert-banner .alert-text{flex:1}.alert-banner .alert-car{margin-top:6px}.alert-banner .arrow{color:#c25e00;font-weight:700;display:inline-block}.test-clock{border:1px dashed #bbb;border-radius:10px;margin:10px 0;padding:4px 10px 8px}html.field-ui,html.field-ui body{overscroll-behavior:none}.app.field{-webkit-tap-highlight-color:transparent;color:#111}.app.field button,.app.field select,.app.field label,.app.field summary{touch-action:manipulation}.app.field .btn{min-height:48px;font-weight:600}.app.field .btn.light{border-color:#888;min-height:44px;font-size:.95rem}.app.field .muted{color:#555}.app.field .report-form input,.app.field .report-form select,.app.field .report-form textarea{min-height:48px}.field-top{z-index:7;padding:6px 8px;padding-top:max(6px, env(safe-area-inset-top));background:#fff;flex-direction:column;gap:6px;display:flex;position:relative;box-shadow:0 1px 5px #0000004d}.ft-species{color:#111;border:2px solid var(--green);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:8px 10px;font-size:1.05rem;font-weight:700}.ft-days{gap:4px;display:flex}.ft-days button{color:#111;white-space:nowrap;background:#fff;border:1px solid #888;border-radius:10px;flex:1 1 0;min-width:0;min-height:44px;padding:2px;font-size:.9rem;overflow:hidden}.ft-days button[aria-selected=true]{background:var(--green);border-color:var(--green);color:#fff;font-weight:700}.ft-targets{gap:4px;display:flex;overflow-x:auto}.ft-targets button{border:1px dashed var(--green);color:#1f4d2a;white-space:nowrap;background:#f3f8f0;border-radius:20px;flex:1 0 auto;min-height:40px;padding:4px 10px;font-size:.85rem}.ft-targets button[aria-pressed=true]{background:#dcebd5;border-style:solid;font-weight:700}.ft-legend{color:#333;align-items:center;gap:6px;font-size:.75rem;display:flex}.ft-legend .steps{border-radius:4px;flex:1;height:8px;display:flex;overflow:hidden}.ft-legend .steps i{flex:1}.ft-date{white-space:nowrap;margin-left:4px}.field-top .banner.alert{font-size:.9rem}.fabs{z-index:4;flex-direction:column;gap:10px;display:flex;position:absolute;bottom:34px;right:10px}.fab{color:#1c1c1c;background:#fff;border:0;border-radius:50%;place-items:center;width:52px;height:52px;padding:0;font-size:1.7rem;line-height:1;display:grid;box-shadow:0 2px 6px #0006}.fab.on{color:#fff;background:#1a73e8}.fab.warn{color:var(--warn)}.fab.busy svg{animation:1s ease-in-out infinite fab-pulse}@keyframes fab-pulse{50%{opacity:.3}}.fab-group{background:#fff;border-radius:26px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 2px 6px #0006}.fab-group .fab{box-shadow:none;border-radius:0}.fab-group .fab+.fab{border-top:1px solid #ddd}.field-bottom{z-index:7;background:#fff;border-top:1px solid #bbb;padding:8px;position:relative;box-shadow:0 -1px 5px #00000026}.hud-actions{gap:8px;display:flex}.hud-btn{color:#111;background:#fff;border:1px solid #888;border-radius:12px;flex-direction:column;flex:1 1 0;justify-content:center;align-items:center;gap:2px;min-height:58px;font-size:.95rem;font-weight:600;display:flex}.hud-btn .ico{font-size:1.35rem;line-height:1}.hud-btn[aria-pressed=true]{border-color:var(--green);background:#dcebd5}.hud-btn.primary{background:var(--green);border-color:var(--green);color:#fff}.hud-session{align-items:stretch;gap:6px;display:flex}.hud-car{text-align:left;color:#111;background:#fff;border:1px solid #888;border-radius:12px;flex:1 1 0;align-items:center;gap:6px;min-width:0;padding:4px 8px;display:flex}.hud-car[aria-pressed=true]{border-color:var(--green);background:#dcebd5}.hud-car .car-arrow{font-size:2.1rem}.hud-car strong,.hud-time strong{white-space:nowrap;font-size:1.1rem;display:block}.hud-car small,.hud-time small{color:#444;white-space:nowrap;font-size:.75rem;display:block}.hud-time{flex-direction:column;justify-content:center;align-items:center;min-width:50px;display:flex}.app.field .hud-pin{white-space:nowrap;flex:1.2 1 0;min-height:58px;padding:4px 6px;font-size:1.05rem}.app.field .hud-end{width:48px;min-height:58px;padding:0;font-size:1.2rem}.app.field .tabs button{color:#333;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:6px 2px 8px;font-size:.75rem;display:flex;position:relative}.app.field .tabs .tab-ico{filter:grayscale(.6);font-size:1.35rem;line-height:1.1}.app.field .tabs button[aria-current=true] .tab-ico{filter:none}.app.field .tabs .tab-dot{background:#d32f2f;border:2px solid #fff;border-radius:50%;width:11px;height:11px;position:absolute;top:5px;left:calc(50% + 8px)}.app.field .sheet{overscroll-behavior:contain;max-height:62%;padding-top:0}.app.field .sheet-head{z-index:1;background:#fff;padding:12px 0 8px;position:sticky;top:0}.app.field .panel{overscroll-behavior:contain;padding-top:env(safe-area-inset-top)}.app.field .days button{min-height:44px}.app.field .nearby button{min-height:60px}.app.field .list button{min-height:52px}.app.field .checks input,.app.field .proposals .check input{width:28px;height:28px}.app.field .link{min-height:40px;padding:8px 0;font-size:.95rem}.app.field .actions .btn{min-height:48px}.stand-way{background:#eef3ea;border-radius:10px;align-items:center;gap:12px;margin:4px 0 8px;padding:6px 12px;display:flex}.stand-way .car-arrow{font-size:2.2rem}.stand-way strong{font-size:1.15rem}.stand-way small{color:#444;font-size:.8rem;display:block}details.stand-more{margin-top:10px}details.stand-more summary{min-height:44px;color:var(--green);cursor:pointer;align-items:center;font-weight:600;display:flex}.quick-species{grid-template-columns:1fr 1fr;gap:8px;margin:4px 0 6px;display:grid}.quick-species button{border:2px solid var(--green);color:#1f4d2a;background:#f3f8f0;border-radius:12px;min-height:64px;padding:6px;font-size:1rem;font-weight:700}.quick-species button:active{background:#dcebd5}.toggles{flex-direction:column;gap:6px;margin:6px 0 10px;padding:0;list-style:none;display:flex}.toggle{border:1px solid #bbb;border-radius:10px;align-items:center;gap:12px;min-height:56px;padding:6px 10px;display:flex}.toggle input{width:26px;height:26px;accent-color:var(--green);flex:none}.toggle small{color:#555;font-size:.8rem;display:block}.line-key{vertical-align:middle;border-top:3px dashed;width:24px;height:0;margin:0 6px 0 2px;display:inline-block}.legend-full{border:1px solid #ccc;border-radius:6px;display:flex;overflow:hidden}.legend-full span{text-align:center;flex:1;padding:4px 0;font-size:.7rem}.toast-action{color:#ffd54f;background:0 0;border:0;min-height:36px;margin-left:12px;padding:4px 6px;font-size:.95rem;font-weight:700;text-decoration:underline}.app.field .alert-banner{top:8px;bottom:auto}.app.field .toast{pointer-events:none;align-items:center;width:fit-content;margin:0 auto;font-size:.95rem;display:flex;inset:auto 12px 14px;transform:none}.app.field .toast .toast-action{pointer-events:auto}.app.field .maplibregl-ctrl-scale{color:#111;background:#ffffffd9;border-width:0 2px 2px;border-color:#333;font-size:12px;font-weight:600}.pin-compass{background:#eef3ea;border-radius:10px;align-items:center;gap:12px;margin:4px 0 8px;padding:8px 12px;display:flex}.pin-compass .car-arrow{font-size:2.6rem}.pin-compass strong{font-size:1.2rem}.pin-compass small{color:#444;font-size:.8rem;display:block}.count-stepper{align-items:center;gap:10px;margin:6px 0;font-size:1rem;display:flex}.count-stepper>span{color:#333;flex:1}.count-stepper button{color:#111;background:#fff;border:1px solid #888;border-radius:10px;width:48px;height:44px;font-size:1.5rem;line-height:1}.count-stepper button:disabled{opacity:.4}.count-stepper strong{text-align:center;min-width:2.2em;font-size:1.3rem}.pin-marker.clickable{cursor:pointer;padding:8px 8px 0}.compass-prompt{gap:8px}.compass-prompt .btn.light{white-space:nowrap;flex:none;min-height:40px}.btn.light.danger{color:var(--warn);border-color:var(--warn);margin-top:10px}.pin-list{padding:0;list-style:none}.pin-list li{border-bottom:1px solid #e3e3da;justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}
