:root{--bg:#0c0c0c;--panel:#151515;--panel2:#1c1c1c;--ink:#f4f2ef;--muted:#9e9b97;--line:#353230;--red:#ee1b24;--green:#2fbb75;--display:'Barlow Condensed',Impact,sans-serif;--body:Inter,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;font:16px/1.5 var(--body);background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea,select{font:inherit}.login-body{min-height:100vh;background:radial-gradient(circle at 15% 50%,#2a080a,transparent 40%),#090909}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr}.login-brand{position:relative;overflow:hidden;display:grid;place-items:center}.login-brand>img{position:absolute;width:80%;max-width:700px;opacity:.55;filter:contrast(1.1)}.login-brand>div{position:relative;text-align:center}.login-brand p,.kicker{color:var(--red);font-weight:800;letter-spacing:.18em;font-size:.75rem;margin:0}.login-brand h1{font:800 clamp(4rem,10vw,9rem)/.8 var(--display);letter-spacing:.03em;margin:.3rem}.login-brand b,.admin-brand b{color:var(--red)}.login-card{background:#101010;padding:clamp(2rem,7vw,7rem);display:flex;flex-direction:column;justify-content:center;border-left:1px solid var(--line)}.login-card h2{font:800 3rem/1 var(--display);text-transform:uppercase;margin:.4rem 0}.login-card>p:not(.kicker){color:var(--muted);margin:0 0 2rem}.login-card form,.form-stack,.narrow-form{display:grid;gap:1.1rem}.login-card label,.form-stack label,.narrow-form label,.settings-form label,.user-form label{display:grid;gap:.4rem;font-weight:700;font-size:.9rem}.login-card input,input,textarea,select{background:#0e0e0e;color:#fff;border:1px solid #45413f;padding:.78rem .85rem;min-height:46px;width:100%;border-radius:2px}.login-card input:focus,input:focus,textarea:focus,select:focus{outline:2px solid var(--red);outline-offset:1px}.login-card small,.help{color:var(--muted);font-weight:400}.primary,.secondary,.danger{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border:1px solid;cursor:pointer;padding:.65rem 1rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}.primary{color:#fff;background:var(--red);border-color:var(--red)}.primary:hover{background:#ff353d}.secondary{background:transparent;border-color:#5a5552;color:#fff}.danger{background:transparent;color:#ff6f73;border-color:#7d282b}.back{display:inline-block;color:var(--muted);margin-top:1.5rem}.alert{padding:1rem;border:1px solid;margin-bottom:1.25rem}.alert.success{background:#0d2d20;border-color:#286c50}.alert.error{background:#2d0d0d;border-color:#7b2c2c}
.admin-top{position:fixed;inset:0 0 auto 0;height:68px;background:#0b0b0b;border-bottom:1px solid var(--line);z-index:30;display:flex;align-items:center;padding:0 1.25rem}.admin-brand{font:700 1.3rem var(--display);letter-spacing:.08em;display:flex;align-items:center;gap:.7rem}.admin-brand img{border-radius:50%;object-fit:cover}.admin-account{margin-left:auto;display:flex;align-items:center;gap:1.4rem}.admin-account span{font-size:.85rem;font-weight:700;text-align:right}.admin-account small{display:block;color:var(--muted);font-weight:400}.admin-account>a{border:1px solid var(--line);padding:.4rem .75rem;font-size:.8rem}.admin-menu{display:none;background:none;color:#fff;border:0;font-size:1.4rem;margin-right:.6rem}.admin-sidebar{position:fixed;left:0;top:68px;bottom:0;width:238px;background:#111;border-right:1px solid var(--line);padding:1.5rem 1rem;display:flex;flex-direction:column;z-index:20}.admin-sidebar nav{display:grid;gap:.3rem}.admin-sidebar nav a{display:flex;gap:.8rem;align-items:center;color:#b6b2ae;padding:.7rem .8rem;border-left:2px solid transparent;font-size:.9rem}.admin-sidebar nav a span{width:20px;text-align:center}.admin-sidebar nav a:hover,.admin-sidebar nav a.active{background:#1c1b1a;color:#fff;border-left-color:var(--red)}.view-site{margin-top:auto;border:1px solid var(--line);padding:.75rem;text-align:center;font-size:.85rem}.admin-main{margin:68px 0 0 238px;padding:3rem clamp(1.25rem,4vw,4rem);min-height:calc(100vh - 68px)}.admin-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2.5rem}.admin-heading h1{font:800 clamp(2.6rem,5vw,4.5rem)/.9 var(--display);text-transform:uppercase;margin:.45rem 0}.admin-heading p:not(.kicker){margin:0;color:var(--muted)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:2rem}.stat{background:var(--panel);border-top:3px solid var(--red);padding:1.5rem}.stat strong{font:800 3rem/1 var(--display);display:block}.stat span{color:var(--muted)}.admin-card{background:var(--panel);border:1px solid var(--line);padding:1.5rem}.admin-card h2{font:800 1.8rem/1 var(--display);text-transform:uppercase;margin:0 0 1.2rem}.quick h2{margin-bottom:1.5rem}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.quick-grid a{border:1px solid var(--line);padding:1.25rem;display:grid;color:var(--red);font-size:1.8rem}.quick-grid strong{font-size:.95rem;color:#fff;margin-top:.8rem}.quick-grid span{font-size:.8rem;color:var(--muted)}.quick-grid a:hover{border-color:var(--red);background:#1d1515}
.table-wrap{overflow:auto;border:1px solid var(--line);background:var(--panel)}table{border-collapse:collapse;width:100%;min-width:780px}th,td{text-align:left;padding:1rem;border-bottom:1px solid var(--line);vertical-align:middle}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);background:#101010}td{font-size:.9rem}td strong,td small{display:block}td small{color:var(--muted);margin-top:.2rem}.thumb{width:58px;height:70px;object-fit:cover}.pill{display:inline-flex;border:1px solid;padding:.25rem .55rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em}.pill.live{color:#77dda8;border-color:#2e7954}.pill.draft{color:#c0b8b1;border-color:#5b5652}.table-action{background:none;border:0;color:#fff;padding:0;border-bottom:1px solid var(--red);cursor:pointer}.empty-admin{padding:2rem;color:var(--muted);text-align:center}.inline{display:inline}
.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1.5rem;align-items:start}.wide-editor{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr)}.editor-grid aside{position:sticky;top:92px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-row.three{grid-template-columns:repeat(3,1fr)}textarea{resize:vertical}.file-field{border:1px dashed #5b5753;padding:1rem}.file-field input{border:0;padding:.5rem 0;background:transparent}.poster-preview{width:100%;max-height:370px;object-fit:contain;background:#0c0c0c}.switch{display:flex!important;grid-template-columns:auto 1fr;align-items:center}.switch input{width:20px;height:20px;min-height:auto}.section-title{display:flex;justify-content:space-between;align-items:start;gap:1rem}.section-title h2{margin-bottom:.35rem}.section-title p{margin:0;color:var(--muted)}#stops-list{display:grid;gap:.7rem}.stop-row{display:grid;grid-template-columns:36px minmax(160px,1fr) 130px 130px 36px;gap:.6rem;align-items:end;background:#101010;padding:.7rem}.stop-row label{font-size:.75rem}.stop-number{width:32px;height:32px;background:var(--red);border-radius:50%;display:grid;place-items:center;font-weight:800;margin-bottom:7px}.icon-button{width:36px;height:46px;background:transparent;border:1px solid var(--line);color:#fff;font-size:1.2rem;cursor:pointer}.map-preview-card p{color:var(--muted);font-size:.85rem}.map-preview-card #admin-map{height:420px;background:#222;margin:1rem 0;z-index:1}.full{width:100%;margin-top:.7rem}.album-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.album-admin{background:var(--panel);border:1px solid var(--line);display:grid;grid-template-columns:180px 1fr}.album-admin>img{width:100%;height:100%;min-height:220px;object-fit:cover}.album-admin>div{padding:1.2rem}.album-admin small{color:var(--muted)}.album-admin h2{font:800 2rem/1 var(--display);text-transform:uppercase;margin:.4rem 0 1rem}.album-admin .secondary{display:flex;margin-top:1.2rem}.media-manager{margin-top:1.5rem}.upload-strip{display:grid;grid-template-columns:1fr 1fr auto 1fr auto;gap:.75rem;align-items:end;background:#101010;padding:1rem;margin:1rem 0 1.5rem}.upload-strip label{font-size:.8rem;font-weight:700}.upload-strip>span{padding-bottom:.75rem;color:var(--muted)}.media-admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.8rem}.media-admin-grid article{border:1px solid var(--line);background:#101010}.media-admin-grid img,.video-placeholder{height:140px;width:100%;object-fit:cover}.video-placeholder{display:grid;place-items:center;color:var(--red);font-weight:800}.media-admin-grid article>div:last-child{padding:.75rem}.media-admin-grid strong,.media-admin-grid small,.media-admin-grid a{display:block}.media-admin-grid small{color:var(--muted)}.media-admin-grid a{margin-top:.5rem;color:#fff;text-decoration:underline;text-decoration-color:var(--red)}.narrow-form{max-width:620px}.user-form{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:1rem;align-items:end;margin-bottom:2rem}.settings-form{display:grid;gap:1.2rem;max-width:960px}.settings-form>.primary{justify-self:start}.message-list{display:grid;gap:1rem}.message-list article header{display:flex;justify-content:space-between;gap:2rem;border-bottom:1px solid var(--line);padding-bottom:1rem}.message-list article header strong,.message-list article header a{display:block}.message-list article header a{color:var(--red);font-size:.85rem}.message-list time{color:var(--muted);font-size:.8rem}.message-list article>p{white-space:normal;color:#d0ccc8}
@media(max-width:1100px){.stat-grid,.quick-grid{grid-template-columns:repeat(2,1fr)}.editor-grid,.wide-editor{grid-template-columns:1fr}.editor-grid aside{position:static}.stop-row{grid-template-columns:36px 1fr 110px 110px 36px}.user-form{grid-template-columns:1fr 1fr}.album-admin-grid{grid-template-columns:1fr}.media-admin-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:270px}.login-brand>img{width:75%}.login-card{border-left:0;border-top:1px solid var(--line);padding:2rem 1.25rem}.admin-menu{display:block}.admin-sidebar{transform:translateX(-100%);transition:.2s}.admin-sidebar.open{transform:translateX(0)}.admin-main{margin-left:0;padding:2rem 1rem}.admin-account span{display:none}.admin-heading{align-items:flex-start;flex-direction:column}.stat-grid,.quick-grid,.form-row,.form-row.three,.album-admin-grid{grid-template-columns:1fr}.stop-row{grid-template-columns:32px 1fr 36px}.stop-row label:nth-of-type(2),.stop-row label:nth-of-type(3){grid-column:2;display:grid}.stop-row .remove-stop{grid-column:3;grid-row:1}.upload-strip{grid-template-columns:1fr}.upload-strip>span{padding:0}.media-admin-grid{grid-template-columns:1fr 1fr}.user-form{grid-template-columns:1fr}.admin-top{padding-inline:.75rem}.admin-brand span{font-size:1rem}.admin-account{gap:.5rem}.album-admin{grid-template-columns:120px 1fr}.map-preview-card #admin-map{height:340px}}
.stop-row{grid-template-columns:36px minmax(0,1fr) auto 36px;align-items:end}.stop-row .stop-name{grid-column:2}.stop-row .find-stop{grid-column:3;white-space:nowrap}.stop-row .remove-stop{grid-column:4}.stop-results{grid-column:2/5;display:grid;gap:.45rem;color:var(--muted);font-size:.82rem}.stop-result{width:100%;border:1px solid var(--line);background:#181818;color:#fff;text-align:left;padding:.7rem;cursor:pointer;line-height:1.35}.stop-result:hover,.stop-result:focus{border-color:var(--red);outline:none}.place-selected{color:#77dda8;font-weight:700}.search-credit{color:#777}.stop-coordinates{grid-column:2/5;color:var(--muted);font-size:.78rem}.stop-coordinates summary{cursor:pointer;padding:.35rem 0}.stop-coordinates>div{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.5rem}.stop-coordinates label{display:grid!important;grid-column:auto!important}.find-stop:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.stop-row{grid-template-columns:32px minmax(0,1fr) 36px;align-items:end}.stop-row .stop-name{grid-column:2;grid-row:1}.stop-row .find-stop{grid-column:2;grid-row:2;width:100%;margin-top:.2rem}.stop-row .remove-stop{grid-column:3;grid-row:1}.stop-results,.stop-coordinates{grid-column:2/4}.stop-coordinates>div{grid-template-columns:1fr}.section-title{align-items:stretch;flex-direction:column}.section-title .secondary{width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
