:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07111e;--bg2:#0b1828;--panel:#0d1c2d;--panel2:#102238;--panel3:#132940;--line:#99c6e71f;--line-strong:#8fcef640;--text:#edf6ff;--muted:#8ba1b6;--subtle:#607b95;--accent:#65d8f5;--accent2:#738aff;--accent-soft:#64d8f521;--shadow:0 20px 60px #00000038;--grid:#5497ba17;font-family:Inter,SF Pro Display,PingFang SC,Microsoft YaHei,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#edf4f9;--bg2:#f5f9fc;--panel:#fff;--panel2:#f3f8fb;--panel3:#e8f2f8;--line:#1a486a1f;--line-strong:#1a5d8b33;--text:#10283d;--muted:#5e778b;--subtle:#86a0b3;--accent:#037fae;--accent2:#586ad6;--accent-soft:#037fae1a;--shadow:0 20px 50px #315f801a;--grid:#3681ad17}@media (prefers-color-scheme:light){:root:not([data-theme]){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#edf4f9;--bg2:#f5f9fc;--panel:#fff;--panel2:#f3f8fb;--panel3:#e8f2f8;--line:#1a486a1f;--line-strong:#1a5d8b33;--text:#10283d;--muted:#5e778b;--subtle:#86a0b3;--accent:#037fae;--accent2:#586ad6;--accent-soft:#037fae1a;--shadow:0 20px 50px #315f801a;--grid:#3681ad17}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.045em}h1{font-size:38px}h2{font-size:25px}h3{font-size:18px}p{line-height:1.65}.muted{color:var(--muted)}.section-kicker,.eyebrow{color:var(--accent);letter-spacing:.19em;align-items:center;gap:7px;font-size:10px;font-weight:800;display:inline-flex}.pulse-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 4px var(--accent-soft), 0 0 15px var(--accent);border-radius:50%;display:inline-block}.brand-mark{color:#07131f;background:linear-gradient(145deg,#6fe6f5,#6a8cff);border-radius:11px;place-items:center;width:38px;height:38px;display:grid;box-shadow:0 5px 25px #3ea7dc42}.loading-screen{letter-spacing:.2em;justify-content:center;align-items:center;gap:16px;min-height:100vh;font-size:24px;font-weight:800;display:flex}.loading-screen span:last-child{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:400}.loading-orbit{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.auth-screen{background:radial-gradient(circle at 10% 80%, #2a65a12b, transparent 34%), radial-gradient(circle at 80% 12%, #354e9d29, transparent 28%), var(--bg);min-height:100vh;padding:32px max(5vw,24px);position:relative;overflow:hidden}.auth-screen:before{content:"";background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);pointer-events:none;background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 78%);mask-image:linear-gradient(90deg,#000,#0000 78%)}.auth-ambient{border:1px solid var(--line);pointer-events:none;border-radius:50%;position:absolute}.auth-ambient-one{width:520px;height:520px;bottom:-220px;left:-170px}.auth-ambient-two{width:280px;height:280px;top:-170px;right:8%}.auth-brand{letter-spacing:.12em;align-items:center;gap:11px;font-size:19px;font-weight:900;display:flex;position:relative}.auth-brand small,.sidebar-brand small{letter-spacing:.18em;color:var(--subtle);margin-top:1px;font-size:9px;font-weight:700;display:block}.auth-layout{grid-template-columns:1.15fr .85fr;align-items:center;gap:6vw;max-width:1240px;min-height:calc(100vh - 140px);margin:auto;display:grid;position:relative}.auth-story{padding-right:30px}.auth-story h1{letter-spacing:-.075em;margin:26px 0;font-size:clamp(44px,4.4vw,66px);line-height:1.16}.auth-story h1 em{color:#0000;background:linear-gradient(90deg,#72def5,#8499ff);-webkit-background-clip:text;background-clip:text;font-style:normal}.auth-story p{max-width:475px;color:var(--muted);font-size:16px}.auth-story-line{color:var(--subtle);letter-spacing:.08em;gap:30px;margin-top:70px;font-size:10px;display:flex}.auth-card{border:1px solid var(--line-strong);background:linear-gradient(150deg, #6fbfe50e, transparent 36%), var(--panel);width:min(100%,430px);box-shadow:var(--shadow);border-radius:22px;justify-self:end;padding:34px;position:relative}.auth-card-top{justify-content:space-between;align-items:center;margin-bottom:30px;display:flex}.auth-icon{border:1px solid var(--line-strong);width:46px;height:46px;color:var(--accent);background:var(--accent-soft);border-radius:13px;place-items:center;display:grid}.auth-tag{letter-spacing:.14em;color:var(--subtle);font-size:10px}.auth-card h2{margin-bottom:8px;font-size:29px}.auth-card .muted{margin-bottom:28px;font-size:13px}.auth-card .muted strong{color:var(--text)}.auth-card form{gap:18px;display:grid}.auth-card label,.admin-form label,.standalone-label{color:var(--muted);gap:9px;font-size:12px;font-weight:600;display:grid}.auth-card input,.admin-form input,.admin-form textarea,.admin-form select,.standalone-label select,.search-box input{border:1px solid var(--line-strong);background:var(--bg2);width:100%;color:var(--text);border-radius:9px;outline:none;padding:13px 14px;transition:border .2s,box-shadow .2s}.auth-card input:focus,.admin-form input:focus,.admin-form textarea:focus,.admin-form select:focus,.standalone-label select:focus,.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.auth-card input::placeholder,.admin-form input::placeholder,.admin-form textarea::placeholder,.search-box input::placeholder{color:var(--subtle)}.primary-btn{color:#07111d;background:linear-gradient(100deg,#56d1e9,#7190f1);border:0;border-radius:9px;justify-content:center;align-items:center;gap:12px;width:100%;padding:14px 18px;font-weight:800;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 8px 25px #38a0dd2b}.primary-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 30px #38a0dd45}.text-link{color:var(--accent);background:0 0;border:0;align-items:center;gap:5px;margin-top:19px;padding:0;font-size:12px;display:inline-flex}.auth-card-bottom{color:var(--subtle);border-top:1px solid var(--line);align-items:center;gap:8px;margin-top:27px;padding-top:20px;font-size:11px;display:flex}.auth-foot{color:var(--subtle);letter-spacing:.12em;justify-content:space-between;font-size:10px;display:flex;position:relative}.form-error,.form-info{border-radius:8px;margin-top:12px;padding:10px 12px;font-size:12px}.form-error{color:#f48da0;background:#ea546b1c}.form-info{background:var(--accent-soft);color:var(--accent)}.micro-copy{color:var(--subtle);margin:0;font-size:11px}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);background:var(--bg2);z-index:20;flex-direction:column;flex:0 0 232px;width:232px;height:100vh;min-height:100vh;padding:25px 15px 18px;display:flex;position:sticky;top:0}.sidebar-brand{letter-spacing:.1em;align-items:center;gap:10px;padding:0 9px 35px;font-size:19px;font-weight:900;display:flex}.side-label{color:var(--subtle);letter-spacing:.18em;margin:13px 0 9px;padding:0 15px;font-size:9px;font-weight:800}.sidebar nav{gap:4px;display:grid}.side-link{color:var(--muted);text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:13px;width:100%;padding:12px 14px;font-size:13px;transition:all .2s;display:flex}.side-link:hover,.side-link.sub-active{color:var(--text);background:var(--accent-soft)}.side-link.active{color:var(--accent);background:linear-gradient(90deg, var(--accent-soft), transparent);border-color:var(--line);font-weight:700}.sidebar-spacer{flex:1}.sidebar-user{border-top:1px solid var(--line);align-items:center;gap:10px;min-width:0;margin-top:18px;padding:18px 7px 0;display:flex}.avatar,.top-avatar{color:#fff;background:linear-gradient(140deg,#267891,#545aa8);border-radius:11px;flex:none;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.sidebar-user strong,.sidebar-user small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-user strong{font-size:12px}.sidebar-user small{color:var(--subtle);max-width:140px;margin-top:3px;font-size:10px}.main-area{flex:1;min-width:0}.topbar{border-bottom:1px solid var(--line);background:var(--bg2);justify-content:space-between;align-items:center;height:72px;padding:0 3.3vw;display:flex}.breadcrumb{color:var(--subtle);align-items:center;gap:12px;font-size:12px;display:flex}.breadcrumb strong{color:var(--text);font-weight:600}.topbar-actions{align-items:center;gap:18px;display:flex}.live-indicator{color:var(--subtle);letter-spacing:.1em;align-items:center;gap:8px;font-size:10px;display:flex}.live-indicator i{background:#53d6bd;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px #53d6bd}.icon-button,.mobile-menu{border:1px solid var(--line);background:var(--panel);width:34px;height:34px;color:var(--muted);border-radius:9px;place-items:center;display:grid}.icon-button:hover{color:var(--accent)}.top-avatar{width:30px;height:30px;font-size:12px}.mobile-menu{display:none}.dashboard-page,.admin-page,.settings-page{max-width:1800px;margin:auto;padding:clamp(24px,2.6vh,40px) clamp(24px,3vw,64px) 70px}.dashboard-page{max-width:none}.overview-head{justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px;display:flex}.overview-head h1{margin:7px 0 4px;font-size:clamp(26px,2.5vw,36px)}.overview-head p{color:var(--muted);margin:0;font-size:12px}.overview-head p span{color:var(--accent);padding:0 5px}.next-trip-alert{border:1px solid var(--line-strong);text-align:left;width:min(440px,47%);min-height:83px;color:var(--text);background:linear-gradient(110deg, var(--accent-soft), var(--panel));box-shadow:var(--shadow);border-radius:13px;align-items:center;gap:14px;padding:14px 17px;display:flex}.next-trip-alert:hover{border-color:var(--accent)}.alert-icon{width:38px;height:38px;color:var(--accent);background:var(--panel);border-radius:10px;flex:none;place-items:center;display:grid}.alert-copy{flex:1;gap:3px;min-width:0;display:grid}.alert-copy small{color:var(--muted);font-size:10px}.alert-copy em{color:var(--accent);margin-left:7px;font-style:normal}.alert-copy strong,.alert-copy>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alert-copy strong{font-size:14px}.alert-copy>span{color:var(--subtle);font-size:10px}.next-trip-alert>svg{color:var(--accent);flex:none}.view-switch{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.view-switch>span{align-items:center;gap:8px;font-weight:700;display:flex}.view-switch>div,.map-controls{border:1px solid var(--line);background:var(--panel);border-radius:9px;align-items:center;gap:2px;padding:3px;display:flex}.view-switch button,.map-controls button{color:var(--muted);background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:8px 12px;font-size:11px;display:flex}.view-switch button.active,.map-controls button.active{background:var(--panel3);color:var(--accent);font-weight:700}.plan-filters{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;font-size:11px;display:flex}.plan-filters label{align-items:center;gap:7px;display:flex}.plan-filters input,.plan-filters select,.plan-filters button{border:1px solid var(--line);background:var(--panel);min-height:34px;color:var(--text);font:inherit;border-radius:8px;padding:5px 9px}.plan-filters button{cursor:pointer}.plan-filters>span{margin-left:auto}.map-loading-panel{border:1px solid var(--line);min-height:420px;color:var(--muted);background:var(--panel);border-radius:13px;place-items:center;display:grid}.map-layout{grid-template-columns:minmax(0,1fr) clamp(250px,16vw,340px);gap:clamp(14px,1vw,20px);min-height:min(560px,70vh);display:grid}.map-stage,.map-rail,.content-panel,.admin-card,.settings-card{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:13px}.map-stage{overflow:hidden}.map-heading,.panel-heading{justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 25px 18px;display:flex}.map-heading h2,.panel-heading h2{margin:8px 0 2px;font-size:22px}.map-heading p,.panel-heading p{color:var(--subtle);margin:0;font-size:11px}.subtle-counter{color:var(--subtle);font-size:14px;font-weight:400}.map-canvas{background:var(--bg2);height:clamp(480px,62vh,880px);position:relative;overflow:hidden}.map-canvas>.map-surface.maplibregl-map{width:100%;height:100%;position:absolute;inset:0}.map-layout.map-fullscreen{z-index:90;background:var(--bg);min-height:0;padding:0;display:block;position:fixed;inset:0}.map-fullscreen .map-stage{height:100%;box-shadow:none;border:0;border-radius:0;flex-direction:column;display:flex}.map-fullscreen .map-heading{align-items:center;padding:14px clamp(18px,3vw,40px)}.map-fullscreen .map-canvas{flex:1;height:auto;min-height:0}.map-fullscreen .map-rail{display:none}body.map-fullscreen-lock{overflow:hidden}.map-loading,.map-error{z-index:1;pointer-events:none;color:var(--muted);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.map-error{color:var(--text);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;padding:10px 14px;display:block;inset:auto 20px 20px}.atlas-map-marker{border:1px solid var(--line-strong);color:var(--text);background:var(--panel);white-space:nowrap;border-radius:22px;align-items:center;gap:5px;padding:5px 8px 5px 6px;font-size:11px;display:flex;box-shadow:0 4px 18px #021f3352}.atlas-map-marker:hover,.atlas-map-marker.selected{border-color:#38c4e4;box-shadow:0 0 0 5px #38c4e438,0 3px 16px #021f3340}.atlas-map-dot{border:2px solid var(--panel);background:var(--accent);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 3px #05a8cf38}.atlas-map-label{text-overflow:ellipsis;max-width:120px;font-weight:700;overflow:hidden}.atlas-map-marker strong{min-width:17px;color:var(--bg);background:var(--accent);text-align:center;border-radius:10px;padding:2px 4px;font-size:10px;line-height:1.1}.map-surface .maplibregl-ctrl-group{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow)}.map-surface .maplibregl-ctrl-group button{background-color:var(--panel)}.map-surface .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:invert()}:root[data-theme=light] .map-surface .maplibregl-ctrl-group button .maplibregl-ctrl-icon{filter:none}.map-surface .maplibregl-ctrl-attrib{color:var(--text);background:var(--panel)}.map-surface .maplibregl-ctrl-scale{color:var(--text);border-color:var(--text);background:var(--panel)}.map-corner{z-index:1;color:var(--text);letter-spacing:.13em;background:var(--panel);box-shadow:var(--shadow);pointer-events:none;border-radius:8px;align-items:center;gap:8px;padding:8px 11px;font-size:9px;display:flex;position:absolute}.map-corner.top-left{top:12px;left:12px}.map-popover{box-sizing:border-box;border:1px solid var(--line-strong);background:var(--panel);width:100%;box-shadow:var(--shadow);z-index:3;border-radius:12px;padding:19px;position:relative}.atlas-map-popup .maplibregl-popup-content{box-shadow:none;background:0 0;border-radius:12px;padding:0}.atlas-map-popup.maplibregl-popup-anchor-top .maplibregl-popup-tip,.atlas-map-popup.maplibregl-popup-anchor-top-left .maplibregl-popup-tip,.atlas-map-popup.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--panel)}.atlas-map-popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip,.atlas-map-popup.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,.atlas-map-popup.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--panel)}.atlas-map-popup.maplibregl-popup-anchor-left .maplibregl-popup-tip{border-right-color:var(--panel)}.atlas-map-popup.maplibregl-popup-anchor-right .maplibregl-popup-tip{border-left-color:var(--panel)}.popover-close{color:var(--muted);background:0 0;border:0;font-size:20px;position:absolute;top:8px;right:10px}.popover-icon{color:var(--accent);margin-bottom:13px}.map-popover h3{margin:7px 0;font-size:21px}.map-popover p{color:var(--muted);font-size:12px}.map-popover-plans{border-top:1px solid var(--line);max-height:210px;overflow:auto}.map-popover-plans button{border:0;border-bottom:1px solid var(--line);text-align:left;width:100%;color:var(--text);background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:10px 2px;display:flex}.map-popover-plans button:hover{color:var(--accent)}.map-popover-plans strong,.map-popover-plans small{display:block}.map-popover-plans strong{font-size:12px}.map-popover-plans small{color:var(--subtle);margin-top:3px;font-size:10px}.map-rail{flex-direction:column;padding:21px 17px;display:flex}.rail-heading{padding:0 6px 11px}.rail-heading h3{margin:8px 0 0;font-size:18px}.rail-plan{border:0;border-bottom:1px solid var(--line);width:100%;color:var(--text);text-align:left;background:0 0;grid-template-columns:25px 1fr 16px;align-items:start;gap:7px;padding:17px 4px;display:grid}.rail-plan:hover{background:var(--accent-soft)}.rail-plan-index{color:var(--accent);padding-top:2px;font-size:10px}.rail-plan strong{font-size:12px;line-height:1.4;display:block}.rail-plan small{color:var(--subtle);align-items:center;gap:3px;margin-top:7px;font-size:10px;display:flex}.rail-plan>svg{color:var(--subtle)}.rail-empty{color:var(--muted);padding:24px 7px;font-size:12px}.rail-bottom{border-top:1px solid var(--line);color:var(--subtle);align-items:center;gap:9px;margin-top:auto;padding:19px 6px 0;font-size:10px;display:flex}.content-panel{padding-bottom:30px}.calendar-panel{padding:0 26px 30px}.calendar-panel .panel-heading{padding:25px 0}.calendar-nav{align-items:center;gap:14px;display:flex}.calendar-nav button{border:1px solid var(--line);width:29px;height:29px;color:var(--muted);background:var(--panel2);border-radius:7px;place-items:center;display:grid}.calendar-nav strong{text-align:center;min-width:125px}.calendar-grid{border-left:1px solid var(--line);border-top:1px solid var(--line);grid-template-columns:repeat(7,1fr);display:grid}.calendar-weekday{text-align:center;color:var(--subtle);letter-spacing:.1em;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px;font-size:10px}.calendar-day{text-align:left;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);height:95px;color:var(--text);background:0 0;flex-direction:column;gap:4px;padding:10px;display:flex;overflow:hidden}.calendar-day:hover,.calendar-day.selected{background:var(--accent-soft)}.calendar-day.outside{opacity:.36}.calendar-day.today>span{background:var(--accent);color:var(--bg);border-radius:5px;place-items:center;width:23px;height:23px;display:grid}.calendar-day>span{font-size:12px;font-weight:700}.calendar-day small{white-space:nowrap;text-overflow:ellipsis;border-left:2px solid var(--accent);background:var(--accent-soft);width:100%;color:var(--accent);border-radius:2px;padding:3px 5px;font-size:9px;display:block;overflow:hidden}.calendar-day em{color:var(--subtle);font-size:9px;font-style:normal}.calendar-agenda{padding:24px 0 0}.calendar-agenda h3{margin:6px 0 16px}.agenda-item{border:1px solid var(--line);background:var(--panel2);width:100%;color:var(--text);text-align:left;border-radius:9px;align-items:center;gap:19px;margin-bottom:8px;padding:13px;display:flex}.agenda-item:hover{border-color:var(--accent)}.agenda-date{color:var(--accent);font-size:19px;font-weight:800}.agenda-item span:nth-child(2){flex:1}.agenda-item strong,.agenda-item small{display:block}.agenda-item small{color:var(--subtle);margin-top:4px;font-size:10px}.empty-state{color:var(--muted);padding:25px 0;font-size:12px}.list-panel{padding:0 25px 30px}.list-panel .panel-heading{padding:25px 0}.search-box{border:1px solid var(--line);width:270px;color:var(--subtle);background:var(--bg2);border-radius:9px;align-items:center;gap:8px;padding-left:12px;display:flex}.search-box input{background:0 0;border:0;padding:11px 5px;box-shadow:none!important}.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.plan-card{text-align:left;border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:12px;padding:0;transition:transform .2s,border .2s;overflow:hidden}.plan-card:hover{border-color:var(--accent);transform:translateY(-3px)}.plan-card-art{color:#dffaff;background:radial-gradient(circle at 80% 30%,#65def140,#0000 30%),linear-gradient(130deg,#142d45,#1c4363 52%,#192642);height:150px;padding:18px;position:relative;overflow:hidden}.plan-card-art:after{content:"";border:1px solid #96def64d;border-radius:50%;width:270px;height:270px;position:absolute;bottom:-100px;right:-25px}.plan-card-art span{letter-spacing:.16em;opacity:.7;font-size:9px}.plan-card-art svg{color:#8be8f7;opacity:.65;position:absolute;top:40px;right:25px}.plan-card-art b{letter-spacing:-.04em;font-size:24px;position:absolute;bottom:14px;left:18px}.plan-card-body{padding:18px}.plan-card-body small{color:var(--accent);font-size:10px}.plan-card-body h3{margin:11px 0 7px;font-size:17px}.plan-card-body p{color:var(--muted);min-height:35px;font-size:11px}.plan-card-body>span{color:var(--accent);align-items:center;gap:5px;margin-top:17px;font-size:11px;font-weight:700;display:flex}.viewer{background:var(--bg);flex-direction:column;height:100vh;display:flex}.viewer-bar{background:var(--panel);border-bottom:1px solid var(--line);flex:0 0 68px;align-items:center;gap:26px;height:68px;padding:0 26px;display:flex}.viewer-back{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.viewer-bar>div{flex-direction:column;flex:1;gap:3px;display:flex}.viewer-title{font-weight:700}.viewer-bar small{color:var(--subtle);font-size:10px}.viewer-badge{letter-spacing:.14em;color:var(--accent);font-size:9px}.viewer-edit,.viewer-editor-actions button{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:700;display:inline-flex}.viewer-edit:hover,.viewer-editor-actions button:hover{border-color:var(--accent);color:var(--accent)}.viewer-edit:disabled,.viewer-editor-actions button:disabled{cursor:wait;opacity:.55}.viewer-bar>.viewer-editor-actions{flex-direction:row;flex:none;align-items:center;gap:8px}.viewer-editor-actions .save{background:var(--accent);border-color:var(--accent);color:#fff}.viewer-editor-actions .save:hover{color:#fff}.viewer-editor-error{color:#dc5964;max-width:320px;font-size:10px;line-height:1.35}.viewer iframe{background:#fff;border:0;flex:1;width:100%}.viewer-empty{color:var(--muted);flex:1;place-items:center;display:grid}.admin-head{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.admin-head h1{margin:10px 0 4px;font-size:32px}.admin-head p{color:var(--muted);margin:0;font-size:12px}.admin-shield{color:var(--accent);border:1px solid var(--line-strong);background:var(--accent-soft);letter-spacing:.1em;border-radius:9px;align-items:center;gap:10px;padding:10px 13px;font-size:10px;display:flex}.admin-tabs{border-bottom:1px solid var(--line);gap:5px;margin-bottom:18px;display:flex;overflow-x:auto}.admin-tabs button{white-space:nowrap;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 17px;font-size:12px}.admin-tabs button.active{color:var(--accent);border-color:var(--accent);font-weight:700}.admin-two-col{grid-template-columns:1fr 1fr;gap:16px;display:grid}.sharing-grid{margin-top:20px}.sharing-grid .admin-card h3{margin:0 0 8px;font-size:17px}.sharing-grid .check-row input{flex:none}.fixed-access{cursor:default}.fixed-access>svg{color:var(--subtle);flex:none}.text-button{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:5px;font-size:11px}.admin-card{min-width:0;padding:22px}.card-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-heading h2{margin:7px 0 0;font-size:20px}.card-heading>svg{color:var(--accent)}.card-desc{color:var(--muted);margin:14px 0 20px;font-size:12px}.count-pill,.status-pill{border:1px solid var(--line);color:var(--subtle);background:var(--panel2);white-space:nowrap;border-radius:99px;justify-content:center;align-items:center;padding:5px 8px;font-size:10px;display:inline-flex}.status-pill.used{color:#4fc4ac;background:#2eba991a}.status-pill.pending{color:#e3b064;background:#e3b0641a}.status-pill.revoked{color:#e58492;background:#e584921a}.simple-list{margin-top:18px}.simple-row{border-top:1px solid var(--line);align-items:center;gap:10px;min-width:0;padding:13px 0;display:flex}.simple-row>span:nth-child(2){flex:1;min-width:0}.simple-row strong,.simple-row small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.simple-row strong{font-size:12px}.simple-row small{color:var(--subtle);margin-top:4px;font-size:10px}.person-avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;font-weight:800;display:grid}.ghost-icon{color:var(--accent);background:0 0;border:0;padding:6px;font-size:11px}.admin-empty{color:var(--subtle);padding:25px 0;font-size:12px}.admin-form{gap:17px;margin-top:22px;display:grid}.admin-form textarea{resize:vertical;min-height:78px}.admin-form .primary-btn{margin-top:4px}.form-row{grid-template-columns:1fr 1fr;gap:13px;display:grid}.invite-result{border:1px solid var(--line-strong);background:var(--accent-soft);border-radius:10px;margin-top:25px;padding:15px}.invite-result strong{color:var(--accent);font-size:12px}.invite-result p{word-break:break-all;margin:8px 0;font-size:11px}.invite-result button,.small-action{border:1px solid var(--line-strong);background:var(--panel2);color:var(--accent);border-radius:7px;align-items:center;gap:5px;padding:8px 10px;font-size:11px;display:inline-flex}.inline-alert{border-radius:8px;align-items:center;gap:7px;margin-bottom:16px;padding:11px 14px;font-size:12px;display:flex}.inline-alert.error{color:#f18fa1;background:#e05e701a}.inline-alert.success{color:#4fc4ac;background:#2eba991a}.standalone-label{margin-top:20px}.check-row{border-top:1px solid var(--line);cursor:pointer;align-items:center;gap:10px;padding:12px 0;display:flex}.check-row>span:nth-child(2){flex:1}.check-row strong,.check-row small{display:block}.check-row strong{font-size:12px}.check-row small{color:var(--subtle);margin-top:4px;font-size:10px}.check-row input,.person-chips input{accent-color:var(--accent)}.decision-options{grid-template-columns:repeat(3,1fr);gap:7px;margin-top:20px;display:grid}.decision-options button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;gap:5px;padding:11px 6px;font-size:11px;display:flex}.decision-options button.selected{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.admin-plans{grid-template-columns:300px minmax(0,1fr);gap:16px;display:grid}.plan-list-card{align-self:start}.plan-admin-row{text-align:left;border:0;border-top:1px solid var(--line);width:100%;color:var(--text);background:0 0;align-items:center;gap:9px;padding:13px 0;display:flex}.plan-admin-row.selected{background:var(--accent-soft)}.plan-admin-icon{background:var(--accent-soft);width:35px;height:35px;color:var(--accent);border-radius:9px;place-items:center;display:grid}.plan-admin-row>span:nth-child(2){flex:1;min-width:0}.plan-admin-row strong,.plan-admin-row small{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.plan-admin-row strong{font-size:12px}.plan-admin-row small{color:var(--subtle);margin-top:4px;font-size:10px}.city-picks{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.city-picks span{color:var(--subtle);margin-right:3px;font-size:10px}.city-picks button{border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:6px;padding:5px 8px;font-size:10px}.city-picks button:hover{color:var(--accent);border-color:var(--accent)}.form-section>strong{color:var(--muted);font-size:12px}.person-chips{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.person-chips label{border:1px solid var(--line);background:var(--panel2);cursor:pointer;border-radius:7px;align-items:center;gap:4px;padding:8px 9px;font-size:11px;display:flex}.person-chips label.selected{color:var(--accent);border-color:var(--accent)}.publish-control{border:1px solid var(--line-strong);background:linear-gradient(135deg, var(--panel2), #52cde809);border-radius:12px;padding:16px}.publish-control-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.publish-control-head strong{font-size:12px}.publish-control-head p{color:var(--subtle);margin:5px 0 0;font-size:10px}.publish-options{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.publish-options>button{border:1px solid var(--line);background:var(--panel);min-width:0;color:var(--text);text-align:left;cursor:pointer;border-radius:9px;padding:13px 14px;display:block}.publish-options>button.selected{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px #52cde814}.publish-options>button:disabled{cursor:not-allowed;opacity:.52}.publish-options strong,.publish-options small{white-space:normal;writing-mode:horizontal-tb;display:block}.publish-options strong{color:inherit;font-size:12px}.publish-options small{color:var(--subtle);margin-top:5px;font-size:10px}.pending-change,.draft-content-warning{border-radius:7px;margin:11px 0 0;padding:9px 11px;font-size:10px}.pending-change{color:var(--accent);background:var(--accent-soft)}.draft-content-warning{color:#e3b064;background:#e3b06417}.upload-zone{border:1px solid var(--line-strong);background:linear-gradient(145deg, #52cde80e, var(--panel2));border-radius:12px;gap:14px;margin-top:25px;padding:18px;display:grid}.upload-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;display:grid}.upload-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent);border-radius:10px;place-items:center;display:grid}.upload-heading strong{font-size:13px;display:block}.upload-heading p{color:var(--subtle);margin:4px 0 0;font-size:10px}.content-state{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:7px 9px;font-size:10px;display:inline-flex}.content-state.ready{color:#4fc4ac;background:#2eba991c}.content-state.empty{color:#e3b064;background:#e3b0641a}.upload-steps{border-top:1px solid var(--line);color:var(--subtle);align-items:center;gap:18px;padding-top:13px;font-size:10px;display:flex}.upload-steps span{align-items:center;gap:6px;display:inline-flex}.upload-steps b{border:1px solid var(--line);border-radius:50%;place-items:center;width:20px;height:20px;font-size:9px;display:grid}.upload-steps .active,.upload-steps .done{color:var(--accent)}.upload-steps .active b,.upload-steps .done b{border-color:var(--accent);background:var(--accent-soft)}.file-picker{border:1px dashed var(--line-strong);background:var(--panel);border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:13px;padding:15px;display:grid}.file-picker.selected{border-style:solid;border-color:var(--accent)}.file-picker>input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.file-picker>label{border:1px solid var(--accent);color:var(--accent);background:var(--accent-soft);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px 13px;font-size:11px;font-weight:700;display:inline-flex}.file-picker>span,.file-picker strong,.file-picker small{min-width:0;display:block}.file-picker strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.file-picker small{color:var(--subtle);margin-top:4px;font-size:9px}.script-review{border:1px solid var(--line);background:var(--panel);cursor:pointer;border-radius:9px;align-items:center;gap:10px;padding:11px 13px;display:flex}.script-review.checked{background:#2eba990f;border-color:#4fc4ac66}.script-review span,.script-review strong,.script-review small{display:block}.script-review strong{font-size:10px}.script-review small{color:var(--subtle);margin-top:3px;font-size:9px}.upload-actions{align-items:stretch;gap:10px;display:flex}.upload-primary{color:#071523;background:linear-gradient(100deg,#50d5e7,#718ff0);border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:10px 15px;font-size:11px;font-weight:750;display:inline-flex}.upload-primary:disabled{cursor:not-allowed;opacity:.45}.upload-help{color:var(--subtle);margin:-4px 0 0;font-size:9px}.upload-result{border-radius:8px;align-items:flex-start;gap:8px;padding:11px 12px;font-size:10px;display:flex}.upload-result svg{flex:none}.upload-result.success{color:#4fc4ac;background:#2eba991a}.upload-result.error{color:#f18fa1;background:#e05e701a}.toast-error{z-index:100;background:var(--panel);color:#f18fa1;box-shadow:var(--shadow);cursor:pointer;border:1px solid #f0788c4d;border-radius:8px;align-items:center;gap:15px;padding:11px 15px;display:flex;position:fixed;bottom:22px;right:22px}.settings-page{max-width:950px;margin:0}.settings-page h2{margin:10px 0 3px;font-size:30px}.settings-page>.muted{margin-bottom:28px;font-size:12px}.settings-card{justify-content:space-between;align-items:flex-start;gap:25px;margin-bottom:15px;padding:24px;display:flex}.settings-card h3{margin-bottom:5px}.settings-card p{color:var(--muted);margin:0;font-size:11px}.theme-options{gap:7px;display:flex}.theme-options button{border:1px solid var(--line);background:var(--panel2);min-width:100px;color:var(--muted);border-radius:9px;align-items:center;gap:6px;padding:11px;font-size:11px;display:flex}.theme-options button.selected{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.account-info{color:var(--muted);flex-direction:column;gap:8px;font-size:11px;display:flex}.account-info span:first-child{color:var(--text);align-items:center;gap:6px;display:flex}@media (width<=1150px){.map-layout{grid-template-columns:1fr}.map-rail{min-height:160px}.rail-bottom{margin-top:20px}.plan-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=850px){.sidebar{box-shadow:var(--shadow);transition:transform .25s;position:fixed;left:0;transform:translate(-100%)}.sidebar.show{transform:translate(0)}.mobile-menu{display:grid}.topbar{padding:0 20px}.dashboard-page,.admin-page,.settings-page{padding:22px 18px 60px}.auth-layout{grid-template-columns:1fr}.auth-story{display:none}.auth-card{justify-self:center;margin:30px 0}.admin-two-col,.admin-plans{grid-template-columns:1fr}.plan-list-card{max-height:250px;overflow:auto}}@media (width<=600px){.auth-screen{padding:20px}.auth-foot{font-size:8px}.auth-layout{min-height:calc(100vh - 100px)}.auth-card{padding:26px}.topbar{height:60px}.live-indicator{display:none}.overview-head{flex-direction:column;align-items:stretch;gap:14px}.next-trip-alert{width:100%}.map-heading{flex-direction:column;gap:12px}.map-controls{justify-content:space-between;align-self:stretch}.map-heading,.panel-heading{padding:19px 15px}.map-heading p,.panel-heading p{max-width:220px}.map-canvas{height:430px}.atlas-map-marker{gap:4px;min-height:32px;padding:5px 6px;font-size:11px}.atlas-map-label{max-width:72px}.map-corner.top-left,.map-corner.bottom-left{left:12px}.calendar-panel,.list-panel{padding:0 12px 25px}.calendar-panel .panel-heading,.list-panel .panel-heading{flex-direction:column}.calendar-day{height:70px;padding:5px}.calendar-day small{font-size:7px}.calendar-nav{justify-content:space-between;width:100%}.plan-grid{grid-template-columns:1fr}.search-box{width:100%}.form-row{grid-template-columns:1fr}.settings-card{flex-direction:column}.theme-options{flex-wrap:wrap;width:100%}.viewer-bar{gap:10px;padding:0 12px}.viewer-bar small,.viewer-badge{display:none}.viewer-back{gap:0;font-size:0}.viewer-back svg{width:18px}.decision-options{grid-template-columns:1fr}.admin-shield{display:none}.publish-control-head,.upload-heading{align-items:flex-start}.publish-control-head{flex-direction:column}.publish-options{grid-template-columns:1fr}.upload-heading{grid-template-columns:auto minmax(0,1fr)}.content-state{grid-column:1/-1;justify-self:start}.upload-steps{flex-direction:column;align-items:flex-start;gap:8px}.file-picker{grid-template-columns:1fr}.file-picker>label{width:100%}.upload-actions{flex-direction:column}}@media (width>=1700px){.plan-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.next-trip-alert{width:min(520px,38%)}.overview-head h1{font-size:clamp(30px,2.2vw,42px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
