:root{font-family:Inter,Segoe UI,sans-serif;color:#dce6e8;background:#0c1319;font-synthesis:none;font-weight:400;--muted:#85959f;--line:#233039;--accent:#a6ddc4}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}button{cursor:pointer;border:1px solid #31404a;background:#18232c;color:#dce6e8;padding:10px 16px;border-radius:6px;transition:background .15s}button:hover{background:#24343e}button:disabled{opacity:.5;cursor:not-allowed}a{color:var(--accent);text-decoration:none}input,select{width:100%;background:#0e171e;color:#dfebef;border:1px solid #2b3b45;border-radius:5px;padding:11px 12px;min-width:0}input:focus,select:focus{border-color:var(--accent)}input::placeholder{color:#71828e}p{color:var(--muted);line-height:1.65}h1,h2,h3{font-weight:500;letter-spacing:-.035em}h2{font-size:20px}h3{font-size:17px}.muted{color:#8faaa5}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:600;letter-spacing:-.8px}.brand small{display:block;font-size:8px;letter-spacing:3px;font-weight:400;margin-top:5px;color:#94a5ab}.brand-mark{width:36px;height:42px;display:grid;place-items:center;font-family:Georgia,serif;font-size:30px;color:#b6e0ce;border:1px solid #6c9b8e;clip-path:polygon(50% 0,100% 20%,100% 80%,50% 100%,0 80%,0 20%)}.workspace{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:#101920;border-right:1px solid var(--line);padding:32px 23px;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:3}.section-label{font-size:10px;color:#637680;letter-spacing:2px;margin:54px 12px 16px}.sidebar nav{display:grid;gap:7px}.nav{background:none;border:0;display:flex;gap:15px;align-items:center;padding:13px 15px;color:#94a4af;text-align:left}.nav span{font-size:22px;width:24px}.nav.active{color:#b6e3d0;background:#20332f;box-shadow:inset 2px 0 #a3dbbc}.sidebar-foot{margin-top:auto;padding:20px 9px 0}.version{font-size:10px;color:#a1b6b4;letter-spacing:2px}.sidebar-foot p{font-size:12px}.text-button{border:0;background:none;padding:0;font-size:12px;color:#99aaa9}.workspace main{margin-left:232px;width:calc(100% - 232px)}.topbar{height:77px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 38px;font-size:12px;color:#8d9ea6}.dot{display:inline-block;width:7px;height:7px;background:#8fd5b8;border-radius:50%;margin-right:7px}.dot.offline{background:#df956a}.dot.amber{background:#ddad63;margin-left:16px}.separator{color:#40525e;margin:0 18px}.profile{display:flex;align-items:center;gap:10px;color:#c9d4da}.avatar{display:grid;place-items:center;width:30px;height:30px;background:#30433f;color:#c6e1d2;border-radius:50%}.content{padding:32px 38px;max-width:1800px;margin:auto}.eyebrow{font-size:10px;letter-spacing:2.8px;color:#a8c5b7}.heading-row{display:flex;align-items:center;justify-content:space-between;gap:30px}.page-heading h1{font-size:34px;margin:10px 0 8px}.page-heading p{font-size:13px;margin:0 0 24px}.heading-row .field{width:145px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:17px;flex:1;font-size:12px;color:#b4c1c9}.map-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin-bottom:23px;overflow:auto}.map-tabs button{border:0;background:none;white-space:nowrap;border-radius:0;padding:13px 17px;color:#8a9da7;font-size:13px}.map-tabs .selected{color:#bce9d3;border-bottom:2px solid #b3e2c9}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:25px}.stats>div{border:1px solid var(--line);border-radius:7px;padding:18px 21px;background:#111c24}.stats span{font-size:9px;letter-spacing:1.5px;color:#8298a5;display:block;margin-bottom:13px}.stats strong{font-size:31px;font-weight:400;letter-spacing:-1px}.stats .text-stat{font-size:16px;letter-spacing:0}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.map-panel{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:radial-gradient(#26333b 1px,transparent 1px);background-size:24px 24px;display:flex;flex-direction:column;min-height:540px}.map-toolbar{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:15px;background:#111b23;border-bottom:1px solid var(--line)}.map-toolbar input:not([type=checkbox]){max-width:230px;font-size:12px;background:#0c151c}.checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:#91a5b0}.checkbox input{width:auto;accent-color:#a4d9c0}.empty{flex:1;min-height:410px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:25px}.empty p{font-size:13px}.empty h2{margin:14px 0 0;font-size:23px}.empty-symbol{font-size:70px;color:#83b8a6;margin-bottom:20px;opacity:.65}.map-footer{display:flex;justify-content:space-between;padding:14px 17px;color:#7d949f;background:#111b23;border-top:1px solid var(--line);font-size:10px}.detail-panel{border:1px solid var(--line);border-radius:8px;background:#111c24;padding:21px}.detail-panel h2{font-size:15px;margin:0}.detail-panel>p{font-size:12px;margin:10px 0 22px}.badge{font-size:8px;letter-spacing:1px;color:#c6b68b;border:1px solid #5d5037;padding:4px 5px;margin-left:6px;vertical-align:middle}.form-row{display:flex;gap:12px}.form-row>*{min-width:0}.primary{background:#b4ddc3;color:#142b26;border-color:#b4ddc3;font-weight:600}.primary:hover{background:#c5efd5}.full{width:100%}.hint{font-size:11px!important;color:#6f8792!important;margin-top:15px!important}.graph-wrap{position:relative;flex:1;min-height:440px}.graph{position:absolute;inset:0}.zoom{position:absolute;bottom:14px;left:14px;display:flex;gap:4px}.zoom button{padding:6px 12px}.portal-detail{border-top:1px solid var(--line);margin-top:20px;padding-top:10px}.portal-detail p{font-size:12px}.timer{font-family:monospace;color:#bce5c9;font-size:26px}.notes,.card{background:#111c24;border:1px solid var(--line);border-radius:8px;padding:24px;margin-bottom:20px}.notes{margin-top:22px}.notes h2,.card h2{margin:0 0 14px}.card p,.notes p{font-size:13px}.inline-form{display:flex;gap:10px;margin-top:15px}.inline-form input{flex:1}.inline-form button{white-space:nowrap}.banner{background:#213b35;border-bottom:1px solid #3b6357;color:#c7e3d7;padding:16px 25px;font-size:13px;overflow-wrap:anywhere}.banner.error{background:#472f2d;border-color:#74453e;color:#f1c2b5}.banner button{margin-left:15px;padding:5px 12px}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.group-grid button{margin:4px;font-size:12px}.member{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:13px}.danger{color:#edb6a5}.route-options{display:flex;gap:20px;flex-wrap:wrap;margin:0 0 22px}.route-result{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.route-result li{padding:10px;font-size:13px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}td,th{padding:14px;border-bottom:1px solid var(--line)}th{color:#8298a5;font-weight:400}.public-header{height:100px;display:flex;justify-content:space-between;align-items:center;max-width:1250px;margin:auto;padding:0 40px;border-bottom:1px solid var(--line)}.public-header nav{display:flex;align-items:center;gap:32px;font-size:13px}.public-header a{color:#adbdc4}.landing main{max-width:1250px;margin:auto}.hero{position:relative;padding:95px 40px 75px;overflow:hidden;min-height:590px}.hero h1{font-size:clamp(38px,4.5vw,62px);line-height:1.17;letter-spacing:-2.6px;margin:24px 0;position:relative;z-index:1}.hero h1 em{font-family:Georgia,serif;color:#b1d8c3;font-weight:400}.hero p{font-size:16px;position:relative;z-index:1}.hero-actions{display:flex;align-items:center;gap:28px;margin-top:34px;position:relative;z-index:1}.hero-actions button{padding:15px 22px}.hero-actions span{margin-left:28px}.secondary{color:#c0cccd;font-size:13px}.hero-meta{display:flex;gap:25px;margin-top:47px;color:#839b9c;font-size:11px}.orbital{position:absolute;right:-140px;top:40px;width:550px;height:550px;display:grid;place-items:center;background:radial-gradient(ellipse,#233a35 0,transparent 67%);opacity:.6;transform:rotate(-20deg);pointer-events:none}.orbital div{border:1px solid #355149;position:absolute;width:75%;height:75%;border-radius:50%}.orbital div:nth-child(2){width:50%;height:50%;border-style:dashed}.orbital div:nth-child(3){width:26%;height:26%;border-radius:4px;transform:rotate(45deg);border-color:#99c6b0}.orbital span{font-size:11px;letter-spacing:6px;color:#87ab9e}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:0 40px}.feature-grid article{padding:30px 25px;border-right:1px solid var(--line)}.feature-grid article:first-child{padding-left:0}.feature-grid article:last-child{border:0}.feature-grid h2{font-size:20px;max-width:240px;line-height:1.4}.feature-grid p{font-size:13px}.release-section{padding:50px 40px;max-width:820px}.release-section p{font-size:14px}footer{padding:35px 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:40px}footer p{font-size:11px;max-width:500px}.modal-backdrop{position:fixed;inset:0;background:#02070bcc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;display:grid;place-items:center;padding:20px;overflow:auto}.modal{position:relative;padding:35px;background:#14202a;border:1px solid #334c52;border-radius:12px;width:440px;max-width:100%}.modal h2{margin-top:30px}.modal>p{font-size:13px}.close{position:absolute;right:14px;top:12px;background:none;border:0;font-size:23px}.auth-links{display:flex;justify-content:space-between;margin-top:20px}.auth-links button{padding:0;background:none;border:0;color:#a9c6bb;font-size:12px}.form-error{color:#f4b6a6!important}.loading{display:grid;place-content:center;min-height:100vh}.desktop-settings{margin-bottom:30px}@media(min-width:1600px){.map-panel{min-height:650px}.map-layout{grid-template-columns:minmax(0,1fr) 330px}}@media(max-width:1100px){.sidebar{width:190px;padding:25px 14px}.workspace main{margin-left:190px;width:calc(100% - 190px)}.content{padding:25px 22px}.topbar{padding:0 22px}.stats{grid-template-columns:repeat(2,1fr)}.map-layout{grid-template-columns:1fr}.detail-panel{max-width:none}.detail-panel form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.detail-panel .form-row{align-items:start}.map-panel{min-height:470px}.orbital{opacity:.3}}@media(max-width:650px){.workspace{display:block}.sidebar{position:sticky;top:0;width:100%;height:auto;padding:12px 15px;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:17px}.sidebar .brand small{display:none}.sidebar .brand-mark{height:30px;width:26px;font-size:22px}.section-label,.sidebar-foot{display:none}.sidebar nav{display:flex;justify-content:space-between;margin-top:12px;gap:0}.nav{font-size:11px;display:block;padding:8px}.nav span{display:none}.workspace main{margin:0;width:100%}.topbar{height:55px;padding:0 18px;font-size:10px}.topbar .separator{margin:0 7px}.content{padding:22px 16px}.page-heading h1{font-size:28px}.heading-row{gap:12px}.heading-row .field{width:105px;flex:none}.page-heading p{font-size:11px}.stats{gap:10px}.stats>div{padding:14px}.stats .text-stat{font-size:13px}.stats span{font-size:8px}.detail-panel form{display:block}.form-row{flex-wrap:wrap}.form-row .field{min-width:100px}.inline-form{flex-wrap:wrap}.inline-form input{min-width:160px}.map-toolbar{padding:10px}.map-toolbar input:not([type=checkbox]){max-width:160px}.map-footer{font-size:8px}.map-tabs button{padding:12px;font-size:11px}.public-header{height:78px;padding:0 20px}.public-header nav a{display:none}.public-header .brand{font-size:19px}.hero{padding:65px 22px 45px;min-height:auto}.hero h1{font-size:39px;letter-spacing:-1.7px}.hero p{font-size:14px}.hero-meta{gap:15px;flex-wrap:wrap}.hero-actions{gap:18px}.hero-actions button{font-size:12px}.hero-actions span{margin-left:8px}.feature-grid{grid-template-columns:1fr;margin:0 22px}.feature-grid article{border-right:0;border-bottom:1px solid var(--line);padding:25px 0}.feature-grid h2{max-width:none}.release-section{padding:35px 22px}footer{padding:25px 22px;flex-direction:column;gap:5px}.modal{padding:28px}.modal .brand{font-size:19px}.orbital{right:-290px}.desktop-only{display:none}.card{padding:20px}.route-options{gap:12px}.banner{padding:14px 18px}.profile{max-width:125px;overflow:hidden}}.portal-management{padding-bottom:22px;margin-bottom:22px;border-bottom:1px solid var(--line)}.portal-management>.field{margin-top:16px;margin-bottom:0}.portal-management .portal-detail{margin-top:14px}.portal-management .danger{border-color:#76524c;background:#35282b}.portal-management .danger:hover{background:#493137}.portal-context-menu{position:fixed;z-index:20;width:300px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);overflow:auto;padding:6px;border:1px solid #49615d;border-radius:8px;background:#14212a;box-shadow:0 12px 40px #0009}.context-title{padding:10px 12px;color:#dce6e8;font-size:13px;overflow-wrap:anywhere}.portal-context-menu .context-delete{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;text-align:left;background:none;border:0;color:#edb6a5}.context-delete span{font-size:12px;color:#c0cfce;overflow-wrap:anywhere}.context-delete strong{font-weight:500}.portal-context-menu .context-delete:hover,.portal-context-menu .context-delete:focus{background:#472f2d}.portal-context-menu p{padding:0 12px;font-size:12px}.map-filters{padding:14px 16px;background:#111b23;border-bottom:1px solid var(--line)}.filter-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px}.filter-controls .field{margin:0;min-width:180px}.filter-controls .tier-filter{flex:0 0 105px;min-width:105px}.filter-controls select{font-size:12px}.filter-controls button{font-size:12px;min-height:39px}.map-filters p{font-size:11px;margin:10px 0 0;line-height:1.5}.map-filters .filter-summary{color:#c4d9d2}.filter-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}.map-filters .filter-explanation{color:#8298a5}.review-flag{color:#e6ac64!important}.timer-editor{margin:14px 0;padding:12px;border:1px solid #42545e;border-radius:6px}.timer-editor fieldset{border:0;padding:0;margin:0;min-width:0}.timer-editor p{font-size:12px}.timer-fields{display:flex;gap:8px}.timer-fields .field{min-width:0}.timer-fields input{padding:10px 8px}.timer-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.timer-actions button{font-size:12px;padding:10px}.portal-detail>.full{margin-top:10px}.map-layout{align-items:start}
