@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-Thin.otf') format('opentype');font-weight:100;font-style:normal;font-display:swap}
@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-Italic.otf') format('opentype');font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-SemiBold.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'HSE Sans';src:url('/assets/fonts/HSESans-Black.otf') format('opentype');font-weight:900;font-style:normal;font-display:swap}

:root{
  --bg:#0f1035;--bg2:#161850;--bg3:#1c1e63;
  --card:rgba(255,255,255,.05);--card-h:rgba(255,255,255,.09);
  --accent:#7b8cff;--accent2:#a0adff;--accent-glow:rgba(123,140,255,.15);
  --warm:#f4c87a;--warm2:#e8a94e;
  --white:#e0e2f0;--text:#b8bad4;--td:#7a7ca0;
  --bd:rgba(255,255,255,.08);
  --red:#ff7070;--green:#5cd9b0;
  --font:'HSE Sans','Montserrat',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:var(--font);background:var(--bg);color:var(--text)}
#map{width:100%;height:100vh;height:100dvh}
/* Light map — no tile filter */

/* Panel */
.panel{position:absolute;top:0;right:0;z-index:1000;width:400px;height:100vh;height:100dvh;background:var(--bg);border-left:1px solid var(--bd);display:flex;flex-direction:column}
.ph{padding:16px 18px 12px;border-bottom:1px solid var(--bd);flex-shrink:0;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,var(--bg),var(--bg2))}
.ph-logos{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ph-logo{width:46px;height:46px;border-radius:10px;object-fit:contain}
.ph-t{flex:1;min-width:0}
.ph-t h1{font-size:18px;font-weight:800;color:var(--white);letter-spacing:.2px}
.ph-t .sub{font-size:10px;color:var(--td);margin-top:2px;letter-spacing:2px;text-transform:uppercase;font-weight:600}
.ph-auth{display:flex;align-items:center;gap:8px;flex-shrink:0}
.ph-user{font-size:11px;color:var(--accent2);font-weight:600}
.ph-logout,.ph-login{color:var(--td);text-decoration:none;font-size:16px;transition:color .2s;line-height:1}
.ph-logout:hover{color:var(--red)}
.ph-login:hover{color:var(--accent2)}
.ph-admin-link{color:var(--td);text-decoration:none;font-size:18px;transition:color .2s;line-height:1}
.ph-admin-link:hover{color:var(--accent2)}

/* Partner logos */
.ph-partners{padding:10px 14px 12px;border-top:1px solid var(--bd);flex-shrink:0}
.ph-partners-label{font-size:9px;color:var(--td);text-transform:uppercase;letter-spacing:1.5px;font-weight:600;margin-bottom:6px;text-align:center}
.ph-partners-logos{display:flex;align-items:center;justify-content:center;gap:14px}
.partner-logo{height:32px;max-width:120px;object-fit:contain;opacity:.7;transition:opacity .2s}
.partner-logo:hover{opacity:1}

/* Tabs */
.tabs{display:flex;border-bottom:1px solid var(--bd);flex-shrink:0;background:var(--bg2)}
.tab{flex:1;padding:10px;text-align:center;font-size:13px;font-weight:600;cursor:pointer;color:var(--td);border:none;background:none;border-bottom:2px solid transparent;transition:all .2s;font-family:inherit}
.tab:hover{color:var(--text)}.tab.on{color:var(--accent2);border-bottom-color:var(--accent)}

/* Search */
.search-wrap{padding:10px 14px;flex-shrink:0;border-bottom:1px solid var(--bd);position:relative}
.search{width:100%;padding:8px 12px 8px 32px;border:1px solid var(--bd);border-radius:8px;background:var(--card);color:var(--white);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}
.search:focus{border-color:var(--accent)}
.search-wrap::before{content:'';position:absolute;left:22px;top:50%;transform:translateY(-50%);font-size:13px;opacity:.5;width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%238486b0' stroke-width='2'%3E%3Ccircle cx='6' cy='6' r='5'/%3E%3Cline x1='10' y1='10' x2='13' y2='13'/%3E%3C/svg%3E") no-repeat center}

/* Scroll */
.scr{flex:1;overflow-y:auto;padding:10px}.scr::-webkit-scrollbar{width:3px}.scr::-webkit-scrollbar-thumb{background:var(--bd);border-radius:4px}

/* Object cards */
.c{background:var(--card);border-radius:12px;margin-bottom:8px;overflow:hidden;border:1px solid var(--bd);transition:all .3s;backdrop-filter:blur(4px)}
.c:hover{border-color:rgba(123,140,255,.3);box-shadow:0 4px 24px var(--accent-glow)}
.c.sel{border-color:var(--accent);box-shadow:0 4px 28px var(--accent-glow)}
.iw{width:100%;height:140px;overflow:hidden;position:relative;background:rgba(255,255,255,.03);cursor:pointer}
.iw img{width:100%;height:100%;object-fit:cover;transition:transform .4s;opacity:.85}.c:hover .iw img{transform:scale(1.04);opacity:1}
.iw .b{position:absolute;top:8px;left:8px;background:var(--accent);color:var(--white);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px;z-index:2}
.iw .ov{position:absolute;inset:0;background:rgba(15,16,53,.6);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .25s;z-index:3;cursor:pointer}
.iw:hover .ov{opacity:1}.ov svg{width:20px;height:20px;fill:none;stroke:var(--white);stroke-width:2}.ov span{color:var(--white);font-size:11px;font-weight:600;margin-top:3px}
.ph2{width:100%;height:90px;background:rgba(255,255,255,.02);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:background .2s}
.ph2:hover{background:rgba(255,255,255,.06)}.ph2 svg{width:20px;height:20px;fill:none;stroke:var(--td);stroke-width:1.5}.ph2 span{color:var(--td);font-size:10px;margin-top:3px;font-weight:500}
.ph2 .b{position:absolute;top:8px;left:8px;background:var(--accent);color:var(--white);font-size:11px;font-weight:700;padding:3px 10px;border-radius:20px}
.inf{padding:10px 14px 6px}
.inf h3{font-size:16px;font-weight:700;line-height:1.35;margin-bottom:2px;color:var(--white);cursor:pointer}
.inf .ad{font-size:13px;color:var(--td);cursor:pointer}
.inf .metro{font-size:12px;color:var(--accent2);margin-top:3px;display:flex;align-items:center;gap:3px}
.inf .metro::before{content:'M';font-size:9px;font-weight:800;background:var(--accent);color:var(--white);width:14px;height:14px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.inf .desc{font-size:11px;color:var(--td);margin-top:5px;line-height:1.5;display:none}
.inf .desc.open{display:block}
.inf .more-btn{font-size:12px;color:var(--accent);cursor:pointer;margin-top:4px;font-weight:600;background:none;border:none;font-family:inherit;padding:0}
.inf .more-btn:hover{color:var(--accent2)}

/* Edit */
.ef{display:flex;align-items:flex-start;gap:3px}.ef h3,.ef .ad{flex:1;min-width:0}
.ef .ed{flex-shrink:0;width:16px;height:16px;background:none;border:1px solid transparent;border-radius:3px;color:var(--td);cursor:pointer;opacity:0;transition:all .15s;display:flex;align-items:center;justify-content:center}
.inf:hover .ed{opacity:.4}.ef .ed:hover{opacity:1;border-color:var(--bd);background:rgba(255,255,255,.06)}.ef .ed svg{width:10px;height:10px;fill:none;stroke:currentColor;stroke-width:2}
.einp{width:100%;padding:4px 7px;border:1.5px solid var(--accent);border-radius:4px;font-size:14px;font-weight:600;color:var(--white);background:var(--bg2);outline:none;font-family:inherit}
.einp.sm{font-size:12px;font-weight:400;color:var(--td)}
.esave{margin-top:3px;padding:2px 8px;background:var(--accent);color:var(--white);border:none;border-radius:3px;font-size:10px;font-weight:600;cursor:pointer;font-family:inherit}
.ecancel{margin-top:3px;margin-left:3px;padding:2px 8px;background:var(--card);color:var(--td);border:none;border-radius:3px;font-size:10px;font-weight:600;cursor:pointer;font-family:inherit}

/* Type selector */
.type-sel{position:relative;display:inline-block;margin-top:4px}
.type-sel .tg{cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:10px;font-weight:600;transition:all .15s}
.type-sel .tg::after{content:'';font-size:8px;margin-left:1px;opacity:.5}
.type-sel.admin .tg::after{content:'\25BE'}
.type-dd{display:none;position:absolute;left:0;top:100%;margin-top:3px;z-index:10;background:var(--bg2);border:1px solid var(--bd);border-radius:10px;box-shadow:0 8px 32px rgba(0,0,0,.4);padding:4px;min-width:180px}
.type-dd.open{display:block}
.type-dd-item{padding:6px 10px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;transition:background .15s;color:var(--text)}
.type-dd-item:hover{background:rgba(255,255,255,.06)}.type-dd-item .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}

/* Actions */
.pa{display:flex;gap:3px;padding:4px 14px 10px;flex-wrap:wrap}
.pa button{padding:2px 7px;border-radius:20px;border:1px solid var(--bd);background:transparent;color:var(--td);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .15s}
.pa button:hover{border-color:var(--accent);color:var(--accent)}
.pa .dl{color:var(--red);border-color:transparent}.pa .dl:hover{border-color:var(--red)}

/* Type manager */
.tm-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;align-items:center;justify-content:center}
.tm-overlay.open{display:flex}
.tm-box{background:var(--bg2);border:1px solid var(--bd);border-radius:16px;padding:20px;width:340px;max-height:80vh;overflow-y:auto;box-shadow:0 16px 64px rgba(0,0,0,.5)}
.tm-box h2{font-size:16px;font-weight:700;color:var(--white);margin-bottom:12px}
.tm-row{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--bd)}
.tm-color{width:24px;height:24px;border-radius:8px;border:2px solid var(--bd);cursor:pointer;flex-shrink:0;position:relative;overflow:hidden}
.tm-color input{position:absolute;inset:-4px;width:32px;height:32px;border:none;cursor:pointer;opacity:0}
.tm-name{flex:1;font-size:13px;font-weight:500;border:none;background:transparent;font-family:inherit;color:var(--white);outline:none;padding:3px 0}
.tm-name:focus{border-bottom:1.5px solid var(--accent)}
.tm-del{background:none;border:none;color:var(--td);cursor:pointer;font-size:16px;opacity:.4}.tm-del:hover{opacity:1;color:var(--red)}
.tm-add{display:flex;align-items:center;gap:6px;padding:8px 0;cursor:pointer;color:var(--accent2);font-size:12px;font-weight:600;border:none;background:none;font-family:inherit}
.tm-close{padding:9px;border-radius:8px;border:none;background:var(--accent);color:var(--white);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:10px;width:100%}

/* Route */
.ri{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--card);border-radius:8px;margin-bottom:4px;font-size:12px;border:1px solid var(--bd)}
.ri:hover{border-color:rgba(123,140,255,.2)}.ri .n{width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--white);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.ri .nm{flex:1;font-weight:500}.ri .x{background:none;border:none;color:var(--red);cursor:pointer;font-size:16px;opacity:.3}.ri .x:hover{opacity:1}
.ri-start .n{background:var(--green)!important;color:#0a2e24!important}.ri-end .n{background:var(--red)!important;color:#2e0a0a!important}
.ri-badge{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;padding:1px 6px;border-radius:20px;margin-left:3px;flex-shrink:0}
.ri-badge.start{background:rgba(92,217,176,.12);color:var(--green)}.ri-badge.end{background:rgba(255,112,112,.12);color:var(--red)}
.rs{display:flex;gap:6px;margin:10px 0}
.st{flex:1;background:var(--card);border-radius:8px;padding:10px;text-align:center;border:1px solid var(--bd)}
.st .v{font-size:24px;font-weight:800;color:var(--warm)}
.st .l{font-size:9px;color:var(--td);margin-top:1px;text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.bt{width:100%;padding:10px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;margin-top:4px}
.bt1{background:linear-gradient(135deg,var(--accent),#6070ee);color:var(--white)}.bt1:hover{box-shadow:0 4px 16px var(--accent-glow)}
.bt2{background:var(--card);color:var(--td);border:1px solid var(--bd)}.bt2:hover{color:var(--text)}
.bt3{background:transparent;color:var(--red);border:1px solid rgba(255,112,112,.3)}.bt3:hover{background:rgba(255,112,112,.06)}
.rl{font-size:10px;color:var(--td);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:6px;font-weight:600}
.rc{background:var(--card);border:1px solid var(--bd);border-radius:10px;padding:12px;margin-bottom:6px;cursor:pointer;transition:all .25s;position:relative;display:flex;align-items:flex-start;gap:8px}
.rc>div:first-child{flex:1;min-width:0}
.rc:hover{border-color:rgba(123,140,255,.25);box-shadow:0 2px 16px var(--accent-glow)}
.rc h4{font-size:14px;font-weight:700;color:var(--white);margin-bottom:3px}
.rc p{font-size:11px;color:var(--td);line-height:1.5;margin-bottom:4px}
.rc .rc-meta{font-size:11px;color:var(--warm);font-weight:600}
.rc-share{background:none;border:1px solid var(--bd);color:var(--td);border-radius:8px;padding:4px 8px;cursor:pointer;font-size:14px;flex-shrink:0;transition:all .2s;margin-top:2px}
.rc-share:hover{border-color:var(--warm);color:var(--warm);background:rgba(244,200,122,.08)}
.rh{font-size:12px;color:var(--td);line-height:1.6;background:var(--card);border-radius:8px;padding:11px;border:1px solid var(--bd);margin-top:5px}
.rh b{color:var(--accent2)}

/* Map elements */
.start-label,.end-label{font-family:var(--font);font-weight:700;font-size:12px;padding:3px 9px 3px 7px;border-radius:20px;white-space:nowrap;box-shadow:0 2px 12px rgba(0,0,0,.3);display:flex;align-items:center;gap:3px}
.start-label{background:var(--green);color:#0a2e24}.end-label{background:var(--red);color:#2e0a0a}
.start-label::before,.end-label::before{content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:#fff}

.map-toolbar{position:absolute;top:12px;left:56px;z-index:1000;display:flex;gap:5px}
.tb-btn{padding:7px 12px;border-radius:10px;border:1px solid var(--bd);background:rgba(15,16,53,.92);backdrop-filter:blur(8px);color:var(--text);font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;box-shadow:0 2px 10px rgba(0,0,0,.2);display:flex;align-items:center;gap:4px}
.tb-btn:hover{border-color:var(--accent)}.tb-btn.active{background:var(--accent);color:var(--white);border-color:var(--accent)}
.tb-btn svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2}
.add-mode .leaflet-container{cursor:crosshair!important}

/* Popups */
.leaflet-popup-content-wrapper{background:var(--bg2)!important;color:var(--text)!important;border-radius:12px!important;border:1px solid var(--bd)!important;box-shadow:0 8px 36px rgba(0,0,0,.35)!important;font-family:var(--font)!important}
.leaflet-popup-tip{background:var(--bg2)!important}
.pi{width:100%;height:100px;object-fit:cover;border-radius:6px;margin-bottom:6px;opacity:.9}
.pt{font-size:14px;font-weight:700;margin-bottom:2px;color:var(--white)}
.pp{font-size:11px;color:var(--td)}.pm{font-size:10px;color:var(--accent2);margin-top:2px}
.pb{display:inline-block;margin-top:6px;padding:5px 12px;background:linear-gradient(135deg,var(--accent),#6070ee);color:var(--white);border:none;border-radius:20px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
.leaflet-routing-container{display:none!important}

/* Route navigation steps */
.nav-leg{background:var(--card);border:1px solid var(--bd);border-radius:8px;margin-bottom:6px;overflow:hidden}
.nav-leg-head{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}
.nav-leg-head:hover{background:rgba(255,255,255,.03)}
.nav-leg-n{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;color:#fff}
.nav-leg-info{flex:1;min-width:0}
.nav-leg-name{font-size:13px;font-weight:700;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-leg-meta{font-size:10px;color:var(--td);margin-top:1px;display:flex;gap:8px}
.nav-leg-view{font-size:10px;color:var(--warm);font-weight:600}
.nav-walk{padding:4px 10px 6px 44px;border-top:1px solid var(--bd)}
.nav-walk-step{font-size:10px;color:var(--td);padding:2px 0;display:flex;align-items:flex-start;gap:5px;line-height:1.4}
.nav-walk-step .arrow{color:var(--accent);font-weight:700;flex-shrink:0;font-size:12px;width:14px;text-align:center}
.nav-walk-dist{font-size:10px;color:var(--accent2);padding:4px 0 2px 44px;font-weight:600;display:flex;gap:10px}
.nav-total{display:flex;gap:6px;margin:8px 0}
.nav-total .st{flex:1;background:var(--card);border-radius:8px;padding:8px;text-align:center;border:1px solid var(--bd)}
.nav-total .st .v{font-size:22px;font-weight:800;color:var(--warm)}
.nav-total .st .l{font-size:9px;color:var(--td);margin-top:1px;text-transform:uppercase;letter-spacing:.5px;font-weight:600}
.nav-loading{text-align:center;padding:16px;color:var(--td);font-size:12px}
.nav-loading::after{content:'';display:inline-block;width:12px;height:12px;border:2px solid var(--accent);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite;margin-left:6px;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}

/* Route-order marker on map */
.route-mk{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;font-family:Montserrat,sans-serif;box-shadow:0 3px 14px rgba(0,0,0,.4);border:3px solid #fff;color:#fff;position:relative}
.route-mk::after{content:'';position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #fff}

/* Share */
.share-row{display:flex;gap:5px;margin-top:4px}
.share-row .bt{flex:1}
.bt-share{background:linear-gradient(135deg,var(--warm2),var(--warm))!important;color:var(--bg)!important}
.bt-share:hover{box-shadow:0 4px 16px rgba(244,200,122,.25)!important}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(80px);z-index:3000;background:var(--bg2);color:var(--white);padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;font-family:var(--font);border:1px solid var(--accent);box-shadow:0 4px 24px rgba(0,0,0,.4);opacity:0;transition:all .35s ease;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.hidden-input{display:none}

/* Full-screen modal */
.modal-overlay{display:none;position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);overflow-y:auto;padding:30px 20px}
.modal-overlay.open{display:flex;align-items:flex-start;justify-content:center}
.modal{background:var(--bg2);border:1px solid var(--bd);border-radius:16px;width:100%;max-width:640px;overflow:hidden;box-shadow:0 16px 64px rgba(0,0,0,.5);margin:auto;animation:modalIn .25s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.modal-head{position:relative}
.modal-img{width:100%;height:260px;object-fit:cover;display:block}
.modal-no-img{width:100%;height:120px;background:linear-gradient(135deg,var(--bg),var(--bg3));display:flex;align-items:center;justify-content:center;color:var(--td);font-size:13px}
.modal-body{padding:20px 24px 24px}
.modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;background:rgba(15,16,53,.7);backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.15);color:var(--white);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;z-index:1}
.modal-close:hover{background:var(--red);border-color:var(--red)}
.modal-num{font-size:11px;color:var(--td);font-weight:600}
.modal-title{font-size:20px;font-weight:800;color:var(--white);margin:6px 0 4px;line-height:1.3}
.modal-addr{font-size:13px;color:var(--td);margin-bottom:4px}
.modal-metro{font-size:12px;color:var(--accent2);margin-bottom:8px}
.modal-type{display:inline-block;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:700;margin-bottom:12px}
.modal-edit-row{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}
.modal-edit-row .me-label{font-size:11px;color:var(--td);font-weight:600;width:100px;flex-shrink:0;text-transform:uppercase;letter-spacing:.4px}
.modal-edit-row .me-val{flex:1;padding:4px 6px;border:1px solid transparent;border-radius:6px;background:transparent;font-size:13px;font-weight:500;color:var(--white);font-family:inherit;outline:none;transition:all .2s}
.modal-edit-row .me-val:hover{border-color:var(--bd);background:rgba(255,255,255,.03)}
.modal-edit-row .me-val:focus{border-color:var(--accent);background:rgba(123,140,255,.06)}
.modal-edit-row .me-val[readonly]{cursor:default;pointer-events:none}
.modal-desc-edit{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:16px;width:100%;min-height:100px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;cursor:text;transition:all .2s;font-family:inherit;outline:none;resize:vertical}
.modal-desc-edit:hover{border-color:var(--bd);background:rgba(255,255,255,.03)}
.modal-desc-edit:focus{border-color:var(--accent);background:rgba(123,140,255,.06)}
.modal-desc-edit[readonly]{cursor:default;resize:none;pointer-events:none}
.modal-desc-static{font-size:13px;color:var(--text);line-height:1.7;margin-bottom:16px;padding:8px 10px}
.modal-save{display:inline-block;padding:6px 16px;background:var(--green);color:#0a2e24;border:none;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;margin-right:6px;transition:all .2s;opacity:0;pointer-events:none}
.modal-save.visible{opacity:1;pointer-events:auto}
.modal-save:hover{box-shadow:0 4px 12px rgba(92,217,176,.3)}
.modal-btn{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,var(--accent),#6070ee);color:var(--white);border:none;border-radius:20px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .2s}
.modal-edit-hint{font-size:10px;color:var(--td);margin-bottom:10px;font-style:italic}

/* Geolocation button */
.geo-btn{position:relative}
.geo-btn.active{background:var(--green)!important;color:#0a2e24!important;border-color:var(--green)!important}
.geo-btn.active::after{content:'';position:absolute;top:-2px;right:-2px;width:6px;height:6px;background:var(--green);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}

/* User location marker pulse */
.user-location-pulse{border-radius:50%;animation:locPulse 2s infinite}
@keyframes locPulse{0%{box-shadow:0 0 0 0 rgba(66,133,244,.4)}70%{box-shadow:0 0 0 20px rgba(66,133,244,0)}100%{box-shadow:0 0 0 0 rgba(66,133,244,0)}}

/* History tab */
.history-table{width:100%;font-size:11px;border-collapse:collapse}
.history-table th{text-align:left;padding:6px 8px;color:var(--td);text-transform:uppercase;letter-spacing:.5px;font-size:10px;border-bottom:1px solid var(--bd);white-space:nowrap}
.history-table td{padding:5px 8px;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.history-table tr:hover td{background:rgba(255,255,255,.03)}
.history-rollback{background:none;border:1px solid var(--bd);color:var(--td);border-radius:4px;padding:2px 6px;font-size:10px;cursor:pointer;font-family:inherit}
.history-rollback:hover{border-color:var(--warm);color:var(--warm)}
.history-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 0}
.history-pagination button{background:var(--card);border:1px solid var(--bd);color:var(--text);border-radius:6px;padding:4px 10px;font-size:12px;cursor:pointer;font-family:inherit}
.history-pagination button:hover{border-color:var(--accent)}
.history-pagination button:disabled{opacity:.3;cursor:default}
.history-pagination span{font-size:12px;color:var(--td)}
.history-filter{margin-bottom:10px}
.history-filter select{background:var(--card);border:1px solid var(--bd);color:var(--white);border-radius:6px;padding:6px 10px;font-size:12px;font-family:inherit;outline:none;width:100%}
.history-scroll{overflow-x:auto}

/* Admin toolbar visibility */
.admin-toolbar{display:none}
