:root{
  --gijos:#234c41;
  --gijos-2:#32675a;
  --mint:#dfece7;
  --mint-2:#eff6f3;
  --ink:#14221d;
  --muted:#6f7d77;
  --line:#dce4e0;
  --paper:#f5f8f7;
  --white:#fff;
  --orange:#f4a71d;
  --red:#c8423a;
  --blue:#3f6f8e;
  --shadow:0 18px 48px rgba(20,34,29,.16);
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--paper)}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.app{height:100%;display:grid;grid-template-rows:auto 1fr;min-height:0}
.header{display:flex;align-items:center;gap:18px;padding:13px 16px;background:#fff;border-bottom:1px solid var(--line);z-index:1000;position:relative}
.brand{display:flex;align-items:center;gap:12px;min-width:250px}
.logo{font-size:30px;font-weight:750;letter-spacing:-2.2px;color:var(--gijos);line-height:1}
.brand-title{font-size:14px;font-weight:800}.brand-sub{font-size:11px;color:var(--muted);margin-top:2px}
.header-stats{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto}.pill{border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:#fff;font-size:11px;color:var(--muted)}.pill b{color:var(--ink)}
.header-actions{display:flex;gap:8px}
.btn{border:0;border-radius:10px;padding:10px 12px;font-weight:750;font-size:12px}.btn.dark{background:var(--gijos);color:#fff}.btn.ghost{background:#eef4f1;color:var(--gijos)}.btn.full{width:100%}.btn.orange{background:var(--orange);color:#352200}.btn.danger{background:#fff0ef;color:#9c2e29;border:1px solid #f1cbc8}
.layout{display:grid;grid-template-columns:340px minmax(0,1fr) 340px;min-height:0}
.sidebar,.details{background:#fff;min-width:0;min-height:0;overflow:hidden}.sidebar{border-right:1px solid var(--line);display:flex;flex-direction:column}.details{border-left:1px solid var(--line);overflow:auto}
.sidebar-top{padding:13px;border-bottom:1px solid var(--line)}
.search{width:100%;height:41px;border:1px solid #cbd6d1;border-radius:11px;background:#fbfcfc;padding:0 12px;outline:none}.search:focus{border-color:var(--gijos-2);box-shadow:0 0 0 3px rgba(50,103,90,.12)}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:9px}.tab{border:0;border-radius:9px;padding:9px 5px;background:#eef3f1;color:#596862;font-size:11px;font-weight:750}.tab.active{background:var(--gijos);color:#fff}
.admin-toolbar{padding:12px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#f4f8f6,#fff)}.admin-toolbar-title{font-size:11px;font-weight:800;color:var(--gijos);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.tool-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:9px 8px;text-align:left;font-size:11px;font-weight:700;color:var(--ink)}.tool-card span{display:inline-block;min-width:22px;color:var(--gijos);font-size:14px}.tool-card.wide{grid-column:1/-1}.tool-card:hover{border-color:#9fb8ad;background:var(--mint-2)}
.data-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.link-btn{border:0;background:transparent;padding:0;color:var(--gijos-2);font-size:10px;font-weight:700;cursor:pointer}.file-label input{display:none}.danger-text{color:var(--red)}
.list-head{display:flex;justify-content:space-between;gap:12px;padding:10px 13px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}
.items{flex:1;overflow:auto;padding:7px 8px 18px}.empty-list{margin:12px;border:1px dashed #c9d5d0;border-radius:12px;padding:18px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.list-item{width:100%;border:0;background:transparent;border-radius:12px;padding:9px 8px;display:grid;grid-template-columns:34px 1fr;gap:8px;text-align:left;color:inherit}.list-item:hover{background:#f3f7f5}.list-item.active{background:var(--mint)}
.icon-badge{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1.5px solid var(--gijos);font-size:11px;font-weight:800;color:var(--gijos)}.icon-badge.container{border-radius:8px;border-color:var(--orange);color:#8a5700}.icon-badge.route{border-radius:8px;border-color:var(--blue);color:var(--blue)}
.item-title{font-size:12px;font-weight:800;line-height:1.25}.item-sub{font-size:10px;color:var(--muted);margin-top:3px;line-height:1.35}
.map-shell{position:relative;min-width:0;min-height:0;background:#dce3e0}.map-shell #map,.map-shell #pdfMap{position:absolute;inset:0}.pdf-map-view{background:#e7ebe9}
.map-topbar{position:absolute;left:13px;top:13px;z-index:700;display:flex;gap:4px;padding:6px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.85);border-radius:12px;box-shadow:0 7px 24px rgba(0,0,0,.13);max-width:calc(100% - 80px);overflow:auto}.map-view{border:0;border-radius:8px;background:transparent;padding:8px 9px;font-size:10px;font-weight:750;color:#596862;white-space:nowrap}.map-view.active{background:var(--gijos);color:#fff}.point-visibility-toggle{border-left:1px solid var(--line);margin-left:3px;padding-left:11px}.point-visibility-toggle.points-hidden{background:#fff0ef;color:#9c2e29}.point-visibility-toggle:disabled{opacity:.45;cursor:not-allowed}
.map-tools{position:absolute;right:13px;top:13px;z-index:700;display:flex;flex-direction:column;gap:7px}.map-tool{width:41px;height:41px;border:1px solid rgba(0,0,0,.08);border-radius:11px;background:rgba(255,255,255,.96);box-shadow:0 6px 20px rgba(0,0,0,.12);color:var(--gijos);font-weight:900}.map-tool.active{background:var(--gijos);color:#fff}
.draw-panel{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:750;max-width:min(760px,calc(100% - 28px));width:max-content;display:flex;align-items:center;gap:16px;padding:11px 12px;background:rgba(20,34,29,.95);color:#fff;border-radius:13px;box-shadow:var(--shadow)}.draw-panel b{font-size:12px}.draw-panel #drawHint{font-size:10px;color:#d8e5e0;margin-top:2px}.draw-actions{display:flex;gap:6px}.small-btn{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.07);color:#fff;border-radius:8px;padding:8px 9px;font-size:10px;font-weight:750}.small-btn.primary{background:var(--orange);color:#352200;border-color:var(--orange)}
.toast{position:absolute;right:16px;bottom:18px;z-index:800;background:#17271f;color:#fff;padding:10px 12px;border-radius:10px;box-shadow:var(--shadow);font-size:11px;opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s ease}.toast.show{opacity:1;transform:none}
.details-empty{padding:42px 24px;text-align:center;color:var(--muted)}.empty-icon{width:54px;height:54px;margin:0 auto 12px;border-radius:50%;background:var(--mint);display:grid;place-items:center;color:var(--gijos);font-size:24px}.details-empty h2{font-size:17px;color:var(--ink);margin:0 0 6px}.details-empty p{font-size:12px;line-height:1.5;margin:0}
.details-block{padding:15px 16px;border-bottom:1px solid var(--line)}.eyebrow{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--gijos-2)}.details-block h2{font-size:18px;line-height:1.2;margin:5px 0 4px}.details-block p{font-size:11px;color:var(--muted);line-height:1.45;margin:0}.detail-grid{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 10px;margin-top:12px;font-size:11px}.detail-grid dt{color:var(--muted);font-weight:650}.detail-grid dd{margin:0;overflow-wrap:anywhere}.detail-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:13px}.note{padding:10px 11px;border-radius:10px;background:#f0f5f3;color:#607069;font-size:10px;line-height:1.45;margin-top:11px}.route-chip{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #edf1ef}.route-chip:last-child{border:0}.route-chip b{font-size:11px}.route-chip span{font-size:10px;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;z-index:5000;background:rgba(11,23,18,.55);display:grid;place-items:center;padding:18px}.modal-card{width:min(520px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:22px;position:relative}.login-card{width:min(430px,100%)}.editor-card{width:min(620px,100%)}.pdf-card{width:min(1100px,100%)}.modal-close{position:absolute;right:14px;top:12px;width:36px;height:36px;border:0;border-radius:10px;background:#eef3f1;color:var(--ink);font-size:22px;line-height:1}.modal-kicker{font-size:10px;font-weight:850;color:var(--gijos-2);text-transform:uppercase;letter-spacing:.08em}.modal-card h2{font-size:21px;margin:5px 38px 7px 0}.modal-copy{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 15px}
.form-grid{display:grid;gap:11px}.form-grid label{display:grid;gap:5px;font-size:10px;color:#5f6d67;font-weight:700}.form-grid input,.form-grid select,.form-grid textarea{width:100%;border:1px solid #cbd6d1;border-radius:10px;background:#fff;padding:10px 11px;color:var(--ink);outline:none;font-size:12px}.form-grid textarea{min-height:84px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--gijos-2);box-shadow:0 0 0 3px rgba(50,103,90,.12)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form-error{border-radius:9px;padding:9px 10px;background:#fff0ef;color:#9d302b;font-size:11px}.form-section{padding-top:4px;border-top:1px solid var(--line);margin-top:3px}.form-section-title{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--gijos-2);margin:6px 0 9px}.form-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:3px}.coords{font-size:10px;color:var(--muted);background:#f5f8f7;padding:8px 9px;border-radius:9px}
.pdf-wrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:#f3f5f4}.pdf-wrap img{display:block;max-width:none;width:1600px;height:auto}
.leaflet-container{font-family:inherit;background:#dce3e0}.map-marker{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--gijos);color:var(--gijos);font-size:9px;font-weight:850;box-shadow:0 3px 10px rgba(0,0,0,.24)}.map-marker.main{background:var(--gijos);color:#fff;border-color:#fff;box-shadow:0 0 0 2px var(--gijos),0 3px 10px rgba(0,0,0,.24)}.map-marker.container{border-radius:7px;background:#fff5dd;border-color:var(--orange);color:#7b4b00}.map-marker.point{border-color:var(--blue);color:var(--blue)}.leaflet-tooltip{font-size:10px;font-weight:700;border:0;box-shadow:0 4px 12px rgba(0,0,0,.12)}
@media(max-width:1180px){.layout{grid-template-columns:300px minmax(0,1fr)}.details{position:absolute;right:12px;top:77px;bottom:12px;width:min(350px,calc(100% - 24px));z-index:1300;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow);background:#fff}.header-stats{display:none}}
@media(max-width:760px){.app{height:auto;min-height:100%}.header{padding:10px 11px;flex-wrap:wrap}.brand{min-width:0}.brand-title{font-size:12px}.brand-sub{font-size:10px}.header-actions{margin-left:auto}.header-actions .btn{padding:8px 9px;font-size:10px}.layout{display:block}.sidebar{height:auto;max-height:390px;border-right:0;border-bottom:1px solid var(--line)}.items{max-height:190px}.map-shell{height:660px}.details{top:70px}.draw-panel{width:calc(100% - 18px);align-items:flex-start;flex-direction:column}.draw-actions{width:100%;overflow:auto}.map-topbar{left:8px;top:8px;max-width:calc(100% - 62px)}.map-tools{right:8px;top:8px}.form-row{grid-template-columns:1fr}.modal-card{padding:18px}.pdf-wrap img{width:1200px}}


/* ===== Mobile / phone support v9 ===== */
.mobile-nav,.mobile-sheet-head{display:none}

@media (max-width:760px){
  html,body{width:100%;height:100%;overflow:hidden;overscroll-behavior:none}
  body{background:#dce3e0}
  .app{height:100dvh;min-height:100dvh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}
  .header{min-height:58px;padding:8px 10px;padding-top:max(8px,env(safe-area-inset-top));gap:8px;flex-wrap:nowrap}
  .brand{gap:8px;min-width:0;flex:1}.logo{font-size:24px;letter-spacing:-1.8px}
  .brand-title{font-size:11px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .brand-sub{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .header-stats{display:flex;margin-left:0;min-width:0}.header-stats .pill:not(#syncPill){display:none}
  #syncPill{display:block;max-width:116px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 8px;font-size:9px}
  .header-actions{margin-left:0;gap:5px}#adminBtn{display:none}
  #openPdfBtn{min-width:44px;min-height:44px;padding:0 10px;font-size:0}#openPdfBtn::after{content:"PDF";font-size:10px}
  .layout{position:relative;min-height:0;height:auto;display:block;overflow:hidden}
  .map-shell{position:absolute;inset:0;height:auto;min-height:0;z-index:1}.map-shell #map{inset:0}
  .sidebar,.details{display:flex;flex-direction:column;position:absolute;inset:0;width:100%;height:100%;max-height:none;min-height:0;background:#fff;z-index:1400;border:0;border-radius:0;box-shadow:none;overflow:hidden;transition:transform .22s ease,visibility .22s ease;visibility:hidden;pointer-events:none}
  .sidebar{transform:translateX(-104%);border-right:0;border-bottom:0}.details{top:0;right:0;bottom:0;left:0;transform:translateX(104%)}
  .sidebar.mobile-open,.details.mobile-open{transform:translateX(0);visibility:visible;pointer-events:auto}.details{overflow:auto}.details.mobile-open{display:block}
  .mobile-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;padding:10px 12px;border-bottom:1px solid var(--line);background:#fff}
  .mobile-sheet-head strong{display:block;font-size:13px}.mobile-sheet-head span{display:block;margin-top:2px;font-size:9px;color:var(--muted)}
  .mobile-sheet-close{width:44px;height:44px;flex:0 0 44px;border:0;border-radius:12px;background:#eef3f1;color:var(--ink);font-size:24px;line-height:1}
  .sidebar-top{padding:10px 12px}.search{height:46px;border-radius:12px;font-size:16px}.tabs{gap:7px;margin-top:8px}.tab{min-height:44px;padding:8px 4px;font-size:11px}
  .admin-toolbar{padding:11px 12px}.tool-grid{grid-template-columns:1fr 1fr;gap:8px}.tool-card{min-height:50px;padding:10px;font-size:11px}.tool-card.wide{grid-column:1/-1}
  .data-actions{gap:12px 16px;margin-top:12px}.link-btn{min-height:32px;font-size:11px}
  .list-head{padding:9px 12px}.items{flex:1;max-height:none;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:6px 8px calc(18px + env(safe-area-inset-bottom))}
  .list-item{min-height:58px;padding:10px 8px;grid-template-columns:38px 1fr;gap:9px}.icon-badge{width:34px;height:34px}.item-title{font-size:13px}.item-sub{font-size:10px}
  .map-topbar{left:8px;right:58px;top:8px;max-width:none;width:auto;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;padding:5px;gap:3px}.map-topbar::-webkit-scrollbar{display:none}
  .map-view{min-height:40px;padding:8px 10px;font-size:10px}.map-tools{right:8px;top:8px}.map-tool{width:44px;height:44px;border-radius:12px}
  .leaflet-top.leaflet-left{top:54px;left:2px}.leaflet-control-zoom a{width:40px!important;height:40px!important;line-height:40px!important;font-size:20px!important}
  .leaflet-control-attribution{font-size:8px!important;max-width:70%;white-space:normal}.leaflet-control-attribution a{font-size:8px!important}
  .map-marker{width:30px;height:30px;font-size:10px;border-width:2px}
  .draw-panel{left:8px;right:8px;bottom:8px;transform:none;width:auto;max-width:none;padding:10px;gap:9px;border-radius:14px}
  .draw-panel b{font-size:12px}.draw-panel #drawHint{font-size:10px;line-height:1.35}.draw-actions{display:grid;grid-template-columns:1fr 1fr 1fr;width:100%;overflow:visible;gap:6px}
  .small-btn{min-height:44px;padding:8px 6px;font-size:10px}
  .toast{left:10px;right:10px;bottom:10px;width:auto;text-align:center;font-size:11px;padding:11px 12px}
  .details-empty{padding:34px 20px calc(34px + env(safe-area-inset-bottom))}.details-block{padding:14px 14px}.details-block h2{font-size:19px}.details-block p{font-size:12px}
  .detail-grid{grid-template-columns:104px minmax(0,1fr);gap:9px 10px;font-size:11px}.detail-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .detail-actions .btn{display:flex;align-items:center;justify-content:center;min-height:44px;width:100%;padding:9px 8px;text-align:center}.route-chip{padding:11px 0}.route-chip .small-btn{min-width:74px}
  .mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);z-index:2000;background:#fff;border-top:1px solid var(--line);padding:5px 6px max(5px,env(safe-area-inset-bottom));box-shadow:0 -4px 18px rgba(20,34,29,.08)}
  .mobile-nav-btn{min-width:0;min-height:52px;border:0;border-radius:11px;background:transparent;color:#6a7872;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:4px 2px;font-weight:750}
  .mobile-nav-btn.active{color:var(--gijos);background:var(--mint-2)}.mobile-nav-icon{min-width:24px;height:22px;display:grid;place-items:center;font-size:18px;font-weight:900;line-height:1}.mobile-nav-label{font-size:9px;line-height:1.1}
  .modal-backdrop{align-items:end;padding:0;padding-top:max(12px,env(safe-area-inset-top))}.modal-card{width:100%;max-height:92dvh;border-radius:20px 20px 0 0;padding:18px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -18px 55px rgba(0,0,0,.24)}
  .login-card,.editor-card,.pdf-card{width:100%}.modal-close{width:44px;height:44px;right:10px;top:9px}.modal-card h2{font-size:20px;margin-right:50px}.modal-copy{font-size:12px}
  .form-grid{gap:12px}.form-grid label{font-size:11px}.form-grid input,.form-grid select,.form-grid textarea{min-height:46px;padding:11px 12px;font-size:16px}.form-grid textarea{min-height:96px}
  .form-row{grid-template-columns:1fr;gap:12px}.form-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.form-actions .btn{min-height:46px}.btn{min-height:44px}
  .pdf-wrap{max-height:66dvh;overflow:auto;-webkit-overflow-scrolling:touch}.pdf-wrap img{width:1100px}
  @media (prefers-reduced-motion:reduce){.sidebar,.details{transition:none}}
}
@media (max-width:390px){
  .header{padding-left:8px;padding-right:8px}.logo{font-size:21px}.brand-title{font-size:10px}#syncPill{max-width:94px;padding:5px 6px}#openPdfBtn{padding:0 8px}.mobile-nav-label{font-size:8.5px}.detail-actions{grid-template-columns:1fr}
}


/* ===== Point visibility + integrated PDF view v10 ===== */
#pdfMap .leaflet-control-container{font-family:inherit}
#pdfMap .leaflet-image-layer{background:#fff}
@media(max-width:760px){
  .point-visibility-toggle{border-left:0;margin-left:0;padding-left:10px}
  #pdfMap{inset:0}
}
