:root{--ink:#152536;--muted:#657587;--line:#dfe7ec;--paper:#fff;--wash:#f5f8fa;--teal:#0ba8a4;--nav:#102533}*{box-sizing:border-box}body{margin:0;background:#eef1f7;color:var(--ink);font:14px Inter,system-ui,sans-serif;overflow-x:hidden}
/* A menü és a tartalom egy közös, középre igazított keretben ül. Nagy képernyőn
   így nem szakad szét a két szélére, és marad szabad sáv kétoldalt. */
.app-shell{display:flex;align-items:stretch;width:100%;max-width:1560px;margin:0 auto;min-height:100vh;background:var(--wash);box-shadow:0 0 0 1px #e2e7f0,0 18px 60px #10253312}.sidebar{position:sticky;top:0;align-self:flex-start;height:100vh;width:244px;flex:none;background:var(--nav);color:#dbe8ed;padding:24px 14px;display:flex;flex-direction:column}.brand{font-size:20px;font-weight:700;display:flex;align-items:center;gap:8px;padding:0 10px 30px}.brand small{font-weight:500;color:#74dedb}.bolt{display:grid;place-items:center;width:28px;height:28px;background:var(--teal);border-radius:8px;color:#fff}.nav-item{display:flex;align-items:center;gap:13px;padding:12px 14px;margin:4px 0;border-radius:8px;color:#bdd0d7;text-decoration:none}.nav-item.active,.nav-item:hover{background:#1a3b4d;color:#fff}.nav-item.muted{opacity:.5}.nav-group{margin:5px 0}.nav-group-toggle{width:100%;border:0;background:transparent;font:inherit;cursor:pointer;text-align:left}.nav-group-toggle b{margin-left:auto;font-size:13px;transition:transform .16s ease}.nav-group-toggle[aria-expanded="false"] b{transform:rotate(-90deg)}.nav-submenu{display:grid;gap:1px;margin:2px 0 7px 10px;padding-left:8px;border-left:1px solid #325064}.nav-submenu[hidden]{display:none}.nav-submenu .nav-item{padding:9px 11px;font-size:13px}.sidebar-bottom{margin-top:auto;padding:12px;color:#75919d;font-size:12px}main{flex:1;min-width:0;padding:38px 48px}header{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:28px}h1,h2{margin:0;font-family:Georgia,serif;font-weight:500}h1{font-size:34px}.eyebrow{font-size:11px;letter-spacing:.12em;color:var(--teal);font-weight:700;margin:0 0 8px}.primary,.secondary,.address-row button{border:0;border-radius:7px;padding:11px 17px;font-weight:700;cursor:pointer}.primary{background:var(--teal);color:#fff}.secondary{background:#edf2f5;color:#385062}.notice{background:#e7f8f6;border-left:3px solid var(--teal);padding:15px 18px;margin-bottom:22px;color:#31535a}.notice span{color:var(--teal);padding-right:8px}.toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px;min-width:0}.search{background:#fff;border:1px solid var(--line);border-radius:7px;padding:9px 12px;min-width:310px}.search input{border:0;outline:0;width:260px;max-width:calc(100% - 20px);font:inherit}.toolbar select{border:1px solid var(--line);background:#fff;border-radius:7px;padding:10px;color:#415467}.toolbar span{margin-left:auto;color:var(--muted)}.station-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.station-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:19px;min-height:170px}.station-card h3{margin:0 0 6px;font-size:17px}.station-card .type{display:inline-block;background:#ebf6f6;color:#138988;padding:4px 7px;border-radius:4px;font-size:11px;font-weight:700}.station-card p{color:var(--muted);margin:12px 0;line-height:1.5}.station-card footer{border-top:1px solid var(--line);padding-top:12px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;color:#768896;font-size:12px}.empty{background:#fff;border:1px dashed #b8c7d0;padding:45px;text-align:center;color:var(--muted);grid-column:1/-1}dialog{border:0;border-radius:12px;box-shadow:0 20px 70px #10253355;width:min(920px,94vw);padding:0;background:#fff}dialog::backdrop{background:#132a37aa}.modal-header{display:flex;justify-content:space-between;padding:24px 28px 18px;border-bottom:1px solid var(--line)}.icon{border:0;background:transparent;font-size:28px;color:#70808d;cursor:pointer}.form-grid{padding:24px 28px 8px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid label,.coordinates label{display:grid;gap:7px;font-size:12px;font-weight:700;color:#435767}.wide{grid-column:1/-1}input,select,textarea{border:1px solid #cdd9df;border-radius:6px;padding:10px;font:inherit;color:var(--ink);background:#fff;max-width:100%}textarea{min-height:62px;resize:vertical}.address-row{display:flex;min-width:0}.address-row input{border-radius:6px 0 0 6px;flex:1;min-width:0}.address-row button{border-radius:0 6px 6px 0;background:#eaf5f5;color:#087f7d;padding:10px}.map-title{padding:10px 28px;display:flex;gap:10px;align-items:center}.map-title span{font-size:12px;color:var(--muted)}#station-map{height:270px;margin:0 28px}.coordinates{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:18px 28px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 28px 26px;flex-wrap:wrap}.error{min-height:16px;color:#c6292d;margin:0 28px 4px;font-size:12px}#token-dialog{width:min(410px,90vw);padding:26px}#token-dialog h2{margin-bottom:10px}#token-dialog p{color:var(--muted);line-height:1.5}#token-dialog input{width:100%;margin:10px 0 14px}@media(max-width:800px){.sidebar{width:60px;padding:18px 8px}.brand span:not(.bolt),.brand small,.nav-item:not(.active){font-size:0}.nav-item{justify-content:center;padding:12px}.nav-item span{font-size:18px}.nav-group-toggle{justify-content:center}.nav-group-toggle b{display:none}.nav-submenu{margin-left:0;padding-left:0;border-left:0}.nav-submenu .nav-item{padding:10px 5px}main{padding:24px 18px}.form-grid,.coordinates{grid-template-columns:1fr}.wide{grid-column:auto}.toolbar{flex-wrap:wrap}.toolbar .search{min-width:0;flex:1}.toolbar span{margin-left:0}header{align-items:flex-start;flex-wrap:wrap}h1{font-size:28px}}@media(max-width:460px){main{padding:18px 12px}.sidebar{width:52px;padding:12px 5px}.nav-item{padding:10px 5px}.notice{padding:12px}.modal-header,.form-grid,.coordinates,.modal-actions{padding-left:18px;padding-right:18px}.error{margin-left:18px;margin-right:18px}.primary,.secondary{padding:10px 12px}}

/* A bal sáv fix magasságú, a menü viszont már túlnő egy laptop képernyőjén.
   Görgethető nélkül az utolsó menüpontok a képernyő alá kerülnek és elérhetetlenek. */
.sidebar nav{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#325064 transparent}
.sidebar nav::-webkit-scrollbar{width:6px}
.sidebar nav::-webkit-scrollbar-thumb{background:#325064;border-radius:3px}
.sidebar nav::-webkit-scrollbar-track{background:transparent}
