:root{--bg: #0a101c;--bg-glow: #101828;--surface: #141c2c;--surface2: #1a2436;--border: #3a4558;--text: #eef2f7;--muted: #8b97a8;--accent: #e8a04a;--accent2: #3ecfc9;--ok: #4caf7a;--warn: #e8b84a;--danger: #e5726a;--home: #e8a04a;--font-display: "Fraunces", Georgia, serif;--font-body: "DM Sans", system-ui, sans-serif;--glass-bg: rgba(14, 22, 36, .52);--glass-bg-strong: rgba(10, 16, 28, .68);--glass-bg-soft: rgba(16, 26, 40, .42);--glass-border: rgba(255, 255, 255, .14);--glass-border-soft: rgba(255, 255, 255, .1);--glass-sheen: linear-gradient( 135deg, rgba(255, 255, 255, .18) 0%, rgba(255, 255, 255, .05) 32%, transparent 58% );--glass-blur: 20px;--glass-saturate: 1.55;--glass-shadow: 0 18px 48px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(255, 255, 255, .16), inset 0 -1px 0 rgba(0, 0, 0, .28);--glass-shadow-sm: 0 8px 24px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .12);--radius-glass: 14px;--radius-control: 10px;--radius-chip: 8px}.glass,.login-card,.app-header,.overlay-panel,.island-drawer,.rail-toggle,.map-search-bar .search,.search-drop,.legend-check,.map-ping-hint,.map-editor-hint,.dialog,.panel{border-color:var(--glass-border);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:var(--glass-shadow)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass,.login-card,.app-header,.overlay-panel,.island-drawer,.rail-toggle,.map-search-bar .search,.search-drop,.legend-check,.map-ping-hint,.map-editor-hint,.dialog,.panel{background-color:#101828f0!important;background-image:none!important}}@media(prefers-reduced-transparency:reduce){.glass,.login-card,.app-header,.overlay-panel,.island-drawer,.rail-toggle,.map-search-bar .search,.search-drop,.legend-check,.map-ping-hint,.map-editor-hint,.dialog,.panel{--glass-blur: 0px;background-color:#101828f5!important;background-image:none!important;box-shadow:0 12px 32px #00000073}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);color:var(--text);background:radial-gradient(ellipse 80% 50% at 20% -10%,rgba(232,160,74,.14),transparent 55%),radial-gradient(ellipse 60% 40% at 90% 10%,rgba(62,207,201,.12),transparent 50%),linear-gradient(165deg,var(--bg) 0%,var(--bg-glow) 45%,#070b14 100%);background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}select{color:var(--text);background-color:#141c2c;border:1px solid var(--glass-border-soft);border-radius:var(--radius-control);padding:.35rem .5rem}select option{color:var(--text);background-color:#141c2c}.admin-table select{min-width:10rem;max-width:16rem;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 55%),#080c14d9;color:var(--text);border:1px solid var(--glass-border);box-shadow:inset 0 1px #ffffff0f}button{cursor:pointer}a{color:var(--accent2)}.app-shell{min-height:100%;display:flex;flex-direction:column}.login-page{min-height:100%;display:grid;place-items:center;padding:2rem;position:relative;background-color:#070b14;background-image:linear-gradient(180deg,#080e1459,#080e148c),url(/atlas-farmplanner-login-wallpaper.png);background-size:cover;background-position:center;background-repeat:no-repeat}.made-by{position:fixed;right:14px;bottom:10px;z-index:1000;pointer-events:none;font-family:var(--font-body);font-size:.72rem;letter-spacing:.04em;color:#e8f0f4c7;padding:.28rem .55rem;border-radius:var(--radius-chip);background:#0a101c59;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);text-shadow:0 1px 3px rgba(0,0,0,.8)}.login-card{width:min(420px,100%);padding:2.5rem 2rem;background:var(--glass-sheen),linear-gradient(160deg,#1a243494,#0a101cb8);border:1px solid var(--glass-border);border-radius:calc(var(--radius-glass) + 2px);animation:glass-rise .55s ease-out both}@keyframes glass-rise{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.login-card{animation:none}}.login-card h1{font-family:var(--font-display);font-size:2rem;font-weight:700;margin:0 0 .35rem;letter-spacing:-.02em}.login-card .sub{color:var(--muted);margin:0 0 1.75rem;font-size:.95rem}.field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem}.field label{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.field input,.field select{background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 55%),#080c148c;border:1px solid var(--glass-border-soft);border-radius:var(--radius-control);padding:.65rem .75rem;-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);box-shadow:inset 0 1px #ffffff0f}.field input:focus,.field select:focus{outline:2px solid rgba(232,160,74,.45);border-color:var(--accent)}.btn{border:1px solid var(--glass-border-soft);background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 48%),#1a24348c;border-radius:var(--radius-control);padding:.55rem .9rem;-webkit-backdrop-filter:blur(12px) saturate(1.35);backdrop-filter:blur(12px) saturate(1.35);box-shadow:var(--glass-shadow-sm);transition:border-color .18s ease,background .18s ease,transform .18s ease,box-shadow .18s ease}.btn:hover:not(:disabled){border-color:#e8a04aa6;background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 48%),#2430449e;box-shadow:0 10px 28px #00000052,inset 0 1px #ffffff29}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 42%),linear-gradient(180deg,#f0b05a,#e8a04a);border-color:#ffdca073;color:#1a1208;font-weight:600;box-shadow:0 10px 28px #e8a04a38,inset 0 1px #ffffff59}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 32px #e8a04a4d,inset 0 1px #fff6}.btn-danger{border-color:#e5726a73;color:var(--danger);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 48%),#30161673}.error{color:var(--danger);font-size:.9rem;margin:.5rem 0 0}.app-header{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;padding:.85rem 1.25rem;border-bottom:1px solid var(--glass-border-soft);background:var(--glass-sheen),linear-gradient(180deg,#121c2cb8,#0a101c9e);position:sticky;top:0;z-index:20}.header-tribe{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;display:inline-flex;align-items:center;gap:.45rem;max-width:min(42vw,320px);padding:.35rem .85rem;border-radius:999px;border:1px solid rgba(232,160,74,.55);background:linear-gradient(180deg,rgba(255,255,255,.14),transparent 48%),linear-gradient(180deg,#e8a04a47,#141c2ab8);box-shadow:0 8px 24px #00000047,inset 0 1px #ffffff2e;-webkit-backdrop-filter:blur(12px) saturate(1.35);backdrop-filter:blur(12px) saturate(1.35);pointer-events:none}.header-tribe-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffe6bed9}.header-tribe-name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:#fff4e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:1100px){.header-tribe{position:static;transform:none;max-width:100%;pointer-events:auto}}.brand{font-family:var(--font-display);font-size:1.35rem;font-weight:700;margin:0;letter-spacing:-.02em}.meta{color:var(--muted);font-size:.9rem}.header-actions{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.locale-controls{display:inline-flex;align-items:center;gap:.4rem}.locale-lang-btn{min-width:2.6rem;font-weight:700;letter-spacing:.04em;border-color:#3ecfc973;color:#d8fffb}.locale-guide-btn{font-weight:700;letter-spacing:.02em}.login-locale{position:absolute;top:16px;right:16px;z-index:5}.user-guide-dialog{width:min(720px,100%);max-height:min(85vh,820px);display:flex;flex-direction:column}.user-guide-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}.user-guide-head h3{margin:0}.user-guide-intro{margin:0 0 .75rem;color:var(--muted);line-height:1.45}.user-guide-body{overflow:auto;min-height:0;flex:1;padding-right:.25rem;display:flex;flex-direction:column;gap:1rem}.user-guide-section h4{margin:0 0 .35rem;font-family:var(--font-display);font-size:1.05rem;color:var(--accent)}.user-guide-section p{margin:0 0 .4rem;line-height:1.45}.user-guide-section ul{margin:.25rem 0 0;padding-left:1.15rem;color:var(--text);line-height:1.45}.user-guide-section li{margin-bottom:.25rem}.presence{display:flex;gap:.3rem;margin-right:.5rem}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:.7rem;font-weight:700;color:#0a141a;border:2px solid rgba(255,255,255,.25);title:""}.tabs{display:flex;gap:.25rem;padding:.5rem 1.25rem 0;border-bottom:1px solid var(--glass-border-soft)}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:.65rem 1rem;border-radius:0}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.main{flex:1;padding:1rem 1.25rem 2rem;display:flex;flex-direction:column;gap:1rem;min-height:0}.panel{background:var(--glass-sheen),linear-gradient(165deg,#1624308c,#0c1420ad);border:1px solid var(--glass-border);border-radius:var(--radius-glass);padding:1rem}.panel h2{margin:0 0 .75rem;font-size:1rem;font-weight:600}.options-row{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}.check{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .5rem;border:1px solid transparent;border-radius:var(--radius-chip)}.check.locked{border-color:var(--lock-color, var(--danger));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--lock-color, var(--danger)) 40%,transparent)}.locked-hint{font-size:.75rem;color:var(--lock-color, var(--danger));margin-left:.25rem}.badge{display:inline-block;font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:var(--radius-chip);background:linear-gradient(180deg,rgba(255,255,255,.08),transparent),#e0b84a2e;color:var(--warn);border:1px solid rgba(224,184,74,.35);box-shadow:inset 0 1px #ffffff14}.badge.ok{background:linear-gradient(180deg,rgba(255,255,255,.08),transparent),#3d9b6e2e;color:var(--ok);border-color:#3d9b6e59}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media(max-width:960px){.grid-2{grid-template-columns:1fr}}.mat-list{max-height:420px;overflow:auto;display:flex;flex-direction:column;gap:.25rem}.mat-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border:1px solid transparent;border-radius:3px}.mat-row.locked{border-color:var(--lock-color, var(--danger))}.mat-row:hover{background:#ffffff08}.search{width:100%;margin-bottom:.75rem;background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 55%),#080c1480;border:1px solid var(--glass-border-soft);border-radius:var(--radius-control);padding:.55rem .75rem;box-shadow:inset 0 1px #ffffff0d}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid rgba(61,90,102,.55)}.table th{color:var(--muted);font-weight:500;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.map-wrap{height:min(70vh,720px);border:1px solid var(--glass-border);border-radius:var(--radius-glass);overflow:hidden;box-shadow:var(--glass-shadow-sm)}.map-wrap .leaflet-container{height:100%;width:100%;background:#1a2a3a}.admin-table .swatch{width:14px;height:14px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:.4rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem}.mark-toolbar{gap:.4rem}.btn.mark-active-ps{border-color:#f0a090;background:#c0605040}.btn.mark-active-trench{border-color:#9ec4ea;background:#5a8ec847}.mark-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin:.35rem 0 .55rem}.mark-badge-ps{background:#c0605059;border:1px solid #f0a090}.mark-badge-trench{background:#5a8ec859;border:1px solid #9ec4ea}.muted{color:var(--muted)}.warn-text{color:var(--warn)}.island-picker{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04080e6b;-webkit-backdrop-filter:blur(8px) saturate(1.2);backdrop-filter:blur(8px) saturate(1.2);display:grid;place-items:center;z-index:2000;padding:1rem}.dialog{width:min(560px,100%);max-height:85vh;overflow:auto;background:var(--glass-sheen),linear-gradient(165deg,#1c283ab8,#0c121ed1);border:1px solid var(--glass-border);border-radius:var(--radius-glass);padding:1.25rem}.dialog h3{margin:0 0 1rem;font-family:var(--font-display)}.dialog-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1.25rem}.ps-exception-dialog p{margin:0 0 .75rem;line-height:1.45}.app-shell.map-first{height:100%;overflow:hidden}.app-shell.map-first .app-header{flex-shrink:0}.planner-stage{position:relative;flex:1;min-height:0;overflow:hidden}.map-stage{position:absolute;top:0;right:0;bottom:0;left:0}.map-stage .leaflet-container{height:100%;width:100%;background:#1a2a3a}.leaflet-grid-header{color:#fff;font:bold 13px/1.1 var(--font-body);text-shadow:0 0 4px #000,0 0 8px #000;white-space:nowrap;pointer-events:none}.route-order-icon{background:transparent!important;border:none!important}.route-marker-label{color:#fff;font:bold 12px/24px var(--font-body);text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.85);width:26px;height:26px;border-radius:50%;background:var(--danger);border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 6px #0000008c}.route-marker-label.home{background:var(--accent);color:#1a1208;text-shadow:none}.route-marker-label.return{background:#d4923c;color:#1a1208;text-shadow:none}.island-pin{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#3a4550,#0b1016 70%);border:1.5px solid #d2dde4;box-shadow:0 0 0 1px #000000bf,0 1px 3px #000000a6}.island-pin.home{background:radial-gradient(circle at 35% 30%,#f0d878,#8a6a12 75%);border-color:#fff4c2;box-shadow:0 0 0 2px #e6c35c8c,0 1px 4px #000000b3;width:14px;height:14px}.island-pin.ps{background:radial-gradient(circle at 35% 30%,#c06050,#3a1210 75%);border-color:#f0a090;box-shadow:0 0 0 2px #e0706073,0 1px 4px #000000b3}.island-pin.trench{background:radial-gradient(circle at 35% 30%,#5a8ec8,#152838 75%);border-color:#9ec4ea;box-shadow:0 0 0 2px #5a8ec880,0 1px 4px #000000b3;border-radius:2px;width:11px;height:11px;transform:rotate(45deg)}.island-pin.sel{background:radial-gradient(circle at 35% 30%,#7ad4e8,#1a4a58 75%);border-color:#e8f7fb;box-shadow:0 0 0 2px #3ecfc9a6,0 0 10px #3ecfc973;width:14px;height:14px}.rank-map-pin{min-width:26px;height:20px;padding:0 4px;border-radius:4px 4px 4px 0;background:#1a3a44;border:1px solid var(--accent2);color:#e8f7fb;font:bold 11px/18px var(--font-body);text-align:center;box-shadow:0 1px 4px #000000a6}.resource-map-pin{display:flex;align-items:center;justify-content:center;min-width:48px;max-width:72px;height:20px;padding:0 6px;border-radius:3px 3px 3px 0;background:#2a2418;border:1px solid #c4a45a;color:#f2e2b8;font:600 10px/18px var(--font-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 4px #000000b3;pointer-events:auto}.resource-map-pin span{overflow:hidden;text-overflow:ellipsis}.resource-pin-tip{min-width:8rem;text-align:left}.leaflet-container.resource-pin-place-mode{cursor:crosshair}.presence-map-pin{width:22px;height:22px;border-radius:50%;background:var(--pc, var(--accent2));border:2px solid rgba(255,255,255,.85);color:#0b1016;font:bold 9px/18px var(--font-body);text-align:center;box-shadow:0 1px 4px #000000b3}.map-ping-hint{position:absolute;left:12px;bottom:12px;z-index:450;pointer-events:none;padding:.3rem .65rem;border-radius:var(--radius-chip);background:var(--glass-sheen),#0a101c7a;border:1px solid var(--glass-border-soft);color:var(--muted);font-size:.75rem;letter-spacing:.01em;box-shadow:var(--glass-shadow-sm)}.map-ping-pulse{width:48px;height:48px;pointer-events:none;position:relative}.map-ping-pulse:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid var(--pc, var(--accent));background:color-mix(in srgb,var(--pc, var(--accent)) 28%,transparent);animation:map-ping-ring 3s ease-out forwards}.map-ping-pulse span{position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:50%;background:var(--pc, var(--accent));box-shadow:0 0 0 2px #ffffff8c;animation:map-ping-dot 3s ease-out forwards}@keyframes map-ping-ring{0%{transform:scale(.35);opacity:.95}70%{transform:scale(1.15);opacity:.35}to{transform:scale(1.35);opacity:0}}@keyframes map-ping-dot{0%,55%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.6)}}.wind-arrow{color:#e3f2fd;font-size:16px;text-shadow:0 0 4px #000;pointer-events:none}.overlay-panel{position:absolute;top:12px;bottom:12px;z-index:500;display:flex;flex-direction:column;background:var(--glass-sheen),linear-gradient(180deg,#101a2894,#080e18b8);border:1px solid var(--glass-border);border-radius:var(--radius-glass);overflow:hidden;min-width:320px}.overlay-panel.left{left:12px;width:min(380px,calc(50vw - 28px))}.overlay-panel.right{right:12px;width:min(400px,calc(50vw - 28px))}.overlay-rail{position:absolute;top:12px;z-index:500}.overlay-rail.left{left:12px}.overlay-rail.right{right:12px}.rail-toggle{width:40px;height:40px;border:1px solid rgba(255,220,160,.5);background:linear-gradient(180deg,rgba(255,255,255,.28),transparent 42%),linear-gradient(180deg,#f0b05a,var(--accent));border-radius:var(--radius-control);color:#1a1208;font-weight:700;box-shadow:0 10px 28px #e8a04a47,inset 0 1px #ffffff59;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease,filter .18s ease}.rail-toggle:hover{border-color:#ffe6b4b3;transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 14px 32px #e8a04a5c,inset 0 1px #ffffff6b}.overlay-head{display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border-bottom:1px solid var(--glass-border-soft);background:linear-gradient(180deg,rgba(255,255,255,.06),transparent)}.overlay-head .rail-toggle{width:34px;height:34px;flex-shrink:0;font-size:.85rem}.overlay-head strong{flex:1}.overlay-tabs{display:flex;border-bottom:1px solid var(--border)}.overlay-tab{flex:1;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:.45rem;font-size:.82rem}.overlay-tab.active{color:var(--text);border-bottom-color:var(--accent)}.overlay-body{flex:1;overflow:auto;padding:.85rem .9rem;font-size:.92rem;line-height:1.35}.overlay-body .field label,.overlay-body .check,.overlay-body .muted,.overlay-body .rank-detail,.overlay-body .rank-meta,.overlay-body .stop-meta{font-size:inherit}.overlay-body input,.overlay-body select,.overlay-body .btn,.overlay-body .list-btn{font-size:.9rem}.ps-allow-chip-list{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center;margin-top:.35rem;padding:.35rem .45rem;border-radius:var(--radius-chip);border:1px solid rgba(229,114,106,.35);background:linear-gradient(180deg,#e5726a24,#e5726a0f)}.ps-allow-label{font-size:.8rem;font-weight:600;color:#f0a098}.ps-allow-chip-list .chip{border-color:#e5726a66;background:linear-gradient(180deg,rgba(255,255,255,.06),transparent),#30161673;color:#ffd4cf}.chip-list{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}.chip{border:1px solid var(--border);background:var(--surface2);border-radius:999px;padding:.25rem .55rem;font-size:.8rem}.chip:hover{border-color:var(--danger);color:var(--danger)}.mat-list.compact{max-height:220px}.list-btn{width:100%;text-align:left;margin-bottom:.25rem}.rank-list{display:flex;flex-direction:column;gap:.4rem;margin-top:.5rem}.include-list{margin:.55rem 0;padding-top:.45rem;border-top:1px solid var(--border)}.include-list h4{margin:0 0 .3rem;font-size:.82rem}.include-row{display:flex;gap:.3rem;margin-bottom:.25rem;align-items:stretch}.rank-row{border:1px solid rgba(61,90,102,.5);border-radius:4px;padding:.35rem}.rank-main{width:100%;display:flex;gap:.4rem;align-items:center;background:transparent;border:none;color:inherit;text-align:left;padding:.2rem}.rank-n{font-weight:700;color:var(--accent2);min-width:1.6rem}.rank-detail{font-size:.72rem;color:var(--muted);padding:0 .2rem .15rem 2rem}.rank-meta{display:flex;gap:.75rem;font-size:.72rem;color:var(--muted);padding:0 .2rem .1rem 2rem}.rank-weight-list{display:flex;flex-direction:column;gap:.35rem;margin:.35rem 0}.rank-wish-list{display:flex;flex-direction:column;gap:.45rem;margin:.4rem 0 .6rem;max-height:220px;overflow:auto}.rank-wish-row{border:1px solid rgba(61,90,102,.45);border-radius:4px;padding:.35rem .4rem;display:flex;flex-direction:column;gap:.25rem}.rank-wish-head{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:space-between}.pri-toggle{display:flex;gap:.2rem}.pri-toggle .btn{font-size:.7rem;padding:.15rem .4rem}.pri-toggle .btn.active,.rank-actions .btn.active{border-color:var(--accent2);background:#3ecfc933}.rank-wish-row.pri-nice{border-style:dashed;opacity:.95}.rank-preset-row{display:flex;gap:.35rem;margin-bottom:.35rem}.rank-preset-row .search{flex:1;min-width:0}.rank-preset-list{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.65rem;max-height:110px;overflow:auto}.rank-preset-item{display:flex;gap:.3rem;align-items:stretch}.rank-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:.15rem .5rem;font-size:.7rem;color:var(--muted);padding:.25rem .35rem .35rem 2rem}.rank-breakdown .rank-pen{color:var(--warn, #e8a04a)}.rank-compare{margin:.55rem 0;padding:.45rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.rank-compare h4{margin:0 0 .35rem;font-size:.82rem;display:flex;align-items:center}.rank-compare-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.35rem}.rank-compare-card{border:1px solid rgba(61,90,102,.5);border-radius:4px;padding:.35rem;font-size:.72rem;display:flex;flex-direction:column;gap:.15rem}.rank-wish-field{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--muted)}.rank-wish-field input[type=range]{flex:1;min-width:0}.rank-add-list{max-height:140px;margin-bottom:.35rem}.rank-row.rank-partial{border-color:#e4a85073}.rank-actions{display:flex;gap:.35rem;margin-top:.3rem}.rank-actions .btn{flex:1;font-size:.78rem}.rank-weight-row{display:flex;flex-direction:column;gap:.2rem}.rank-weight-label{display:flex;align-items:center;gap:.4rem;font-size:.75rem;color:var(--muted)}.rank-weight-label input[type=range]{flex:1}.min-nodes-list{display:flex;flex-direction:column;gap:.55rem;margin:.4rem 0 .75rem;max-height:280px;overflow:auto}.min-nodes-row{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem}.min-nodes-row>span.name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text, inherit);font-weight:600}.min-nodes-controls{display:grid;grid-template-columns:1fr 4.6rem auto;gap:.35rem;align-items:center}.min-nodes-num{width:4.6rem;padding:.15rem .25rem;background:#00000040;border:1px solid rgba(61,90,102,.6);color:inherit;border-radius:3px}.mat-kind-tabs{display:flex;gap:.25rem;margin:.35rem 0 .5rem}.mat-kind-tabs button.active{border-color:var(--accent2);color:var(--accent2)}.avatar.focusing{box-shadow:0 0 0 2px #3ecfc9cc}.saved-routes{margin:.75rem 0;padding-top:.5rem;border-top:1px solid var(--border)}.saved-routes h4{margin:0 0 .4rem;font-size:.85rem}.saved-list{margin-top:.5rem;display:flex;flex-direction:column;gap:.35rem;max-height:160px;overflow:auto}.saved-row{display:flex;gap:.3rem;align-items:center;border:1px solid rgba(61,90,102,.45);border-radius:4px;padding:.3rem}.stop-list{display:flex;flex-direction:column;gap:.4rem}.stop-row{text-align:left;background:#ffffff08;border:1px solid transparent;border-radius:4px;padding:.45rem .5rem;color:inherit}.stop-row:hover{border-color:var(--border)}.stop-top{display:flex;gap:.4rem;align-items:center}.stop-label{flex:1;font-size:.88rem}.stop-meta{font-size:.75rem;color:var(--muted);margin-top:.15rem}.stop-note{font-size:.72rem;color:var(--accent2);margin-top:.15rem}.badge.muted-badge{background:#8aa0ab26;color:var(--muted);border-color:#8aa0ab4d}.map-search-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:510;width:min(520px,calc(100% - 820px));min-width:220px;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.map-search-row{display:flex;align-items:center;gap:.45rem;flex:1 1 100%;min-width:0}.map-search-row .legend-check{flex:0 0 auto;white-space:nowrap}.map-search-bar .search,.map-search-row .search{margin:0;flex:1;min-width:140px;background:var(--glass-sheen),linear-gradient(180deg,#1c283ab8,#0c121ec7);border:1px solid rgba(232,160,74,.42);border-radius:var(--radius-control);box-shadow:0 10px 28px #00000052,0 0 0 1px #e8a04a1f,inset 0 1px #ffffff24}.map-search-bar .search:focus{outline:none;border-color:#e8a04abf;box-shadow:0 12px 32px #00000059,0 0 0 2px #e8a04a47,inset 0 1px #ffffff29}.legend-check{background:var(--glass-sheen),#0a101c7a;border:1px solid var(--glass-border-soft);border-radius:var(--radius-chip);padding:.28rem .5rem;font-size:.78rem;box-shadow:var(--glass-shadow-sm)}.map-legend{display:flex;gap:.45rem;font-size:.68rem;color:var(--muted)}.map-legend .leg:before{content:"";display:inline-block;width:14px;height:3px;margin-right:4px;vertical-align:middle;border-radius:2px}.map-legend .leg.wind:before{background:#7ad4ef}.map-legend .leg.route-wind:before{background:var(--accent2)}.map-legend .leg.route-direct:before{background:var(--danger)}.map-legend .leg.rank:before{background:var(--accent2)}.map-legend .leg.trench:before{background:#5a8ec8;border-radius:1px;transform:rotate(45deg);width:8px;height:8px}.search-drop{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:var(--glass-sheen),linear-gradient(180deg,#101a28b8,#080e18d1);border:1px solid var(--glass-border);border-radius:var(--radius-control);max-height:220px;overflow:auto;padding:.35rem}.island-drawer{position:absolute;right:calc(24px + min(400px,calc(50vw - 28px)));top:12px;bottom:12px;width:min(380px,calc(100% - 820px));min-width:280px;z-index:520;display:flex;flex-direction:column;background:var(--glass-sheen),linear-gradient(180deg,#101a2899,#080e18c7);border:1px solid var(--glass-border);border-radius:var(--radius-glass);overflow:hidden}.banner-err{margin:0;padding:.45rem 1.25rem;background:linear-gradient(90deg,#e5726a38,#e5726a1a);border-bottom:1px solid rgba(229,114,106,.28);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3)}.admin-main{overflow:auto}@media(max-width:1100px){.overlay-panel.left,.overlay-panel.right{width:min(100% - 24px,400px);top:12px;bottom:12px;max-height:none}.overlay-panel.right{top:12px;bottom:12px}.island-drawer{right:12px;left:12px;width:auto;top:auto;bottom:12px;max-height:min(50vh,420px)}.map-search-bar{width:calc(100% - 24px)}.map-editor{grid-template-columns:1fr;grid-template-rows:1fr minmax(180px,38vh)}.map-editor-side{border-left:0;border-top:1px solid var(--border)}}.surface-tabs{display:flex;gap:.35rem}.map-editor{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:minmax(0,1fr) 320px;background:#0b1520}.map-editor-stage{position:relative;min-width:0;min-height:0}.map-editor-stage canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.map-editor-stage canvas:active{cursor:grabbing}.map-editor-hint,.map-editor-loading{position:absolute;left:12px;right:12px;margin:0;pointer-events:none}.map-editor-hint{bottom:12px;padding:.5rem .8rem;background:var(--glass-sheen),#0a101c8c;border:1px solid var(--glass-border);border-radius:var(--radius-chip);color:var(--text);font-size:.82rem;line-height:1.35}.map-editor-loading{top:16px;color:var(--text)}.map-editor-side{min-height:0;overflow:auto;border-left:1px solid var(--glass-border-soft);background:var(--glass-sheen),linear-gradient(180deg,#121c2ac7,#0c121ce0);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));padding:.75rem;display:flex;flex-direction:column;gap:.55rem;box-shadow:inset 1px 0 #ffffff0f}.editor-list{overflow:auto;min-height:8rem;max-height:28vh;flex:1}.editor-list .list-btn{font-size:.85rem;padding:.35rem .5rem}.editor-list .list-btn.is-on{border-color:var(--accent);background:#2a2116}.editor-detail{display:flex;flex-direction:column;gap:.4rem}.editor-actions,.editor-promote{display:flex;flex-wrap:wrap;gap:.35rem}.editor-resources{list-style:none;margin:0;padding:0;max-height:9rem;overflow:auto;font-size:.82rem}.editor-resources li{display:flex;justify-content:space-between;gap:.75rem;padding:.1rem 0;color:var(--muted)}.editor-resources span{color:var(--text)}@media(max-width:1100px){.map-editor{grid-template-columns:1fr;grid-template-rows:1fr minmax(180px,38vh)}.map-editor-side{border-left:0;border-top:1px solid var(--border)}}
