:root{color-scheme:dark;--shell: #06151a;--shell-2: #09252d;--panel: rgba(19, 37, 44, .88);--panel-strong: rgba(27, 48, 57, .96);--line: rgba(118, 151, 159, .24);--line-dark: rgba(118, 151, 159, .24);--text: #e8f4f4;--muted: #aabec2;--muted-light: #86a2a8;--accent: #17d5e5;--accent-strong: #69aefb;--ok: #57dc6c;--warn: #ffc247;--danger: #ff5e63;--shadow: 0 18px 60px rgba(0, 0, 0, .32);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;letter-spacing:0}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:rgba(23,213,229,.55) rgba(4,15,19,.72)}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:#040f13b8;border-radius:999px}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#17d5e5b8,#69aefb9e);border:2px solid rgba(4,15,19,.72);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#4be5efe6,#85c0ffd1)}body{margin:0;min-width:320px;min-height:100vh;background:#071a20;color:var(--text);overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 12%,rgba(23,213,229,.1),transparent 34%),linear-gradient(135deg,#06151a,#09242c 52%,#0b1a20)}.login-panel{position:relative;z-index:2;width:min(460px,100%);display:grid;gap:14px}.aurelka-world{position:fixed;z-index:4;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.login-shell.public-map-open .aurelka-world{display:none}.aurelka-controls{display:flex;flex:0 0 auto;gap:5px}.aurelka-controls button{display:grid;width:29px;height:29px;place-items:center;border:1px solid #35545c;border-radius:9px;color:#849fa5;background:#0c252c;cursor:pointer;transition:.16s ease}.aurelka-controls button:hover,.aurelka-controls button:focus-visible{border-color:#5ed9e3;color:#dffbfc;outline:none;transform:translateY(-1px)}.aurelka-controls button.active{border-color:#69e87cb8;color:#78ed8a;background:#1b492da8}.login-language-tools{display:flex;min-width:0;align-items:center;gap:6px}.login-language-tools .language-select{min-width:0;flex:1 1 auto}.aurelka-world.motion-off .aurelka-mascot:not(.is-placed){opacity:1;animation:none;transform:translate3d(calc(100vw - 132px),calc(100vh - 116px),0)}.aurelka-world.motion-off .aurelka-message-route:not(.is-placed){opacity:1;animation:none;transform:translate3d(calc(100vw - 132px),calc(100vh - 116px),0)}.aurelka-world.motion-off .aurelka-message-route:not(.is-placed) .aurelka-bubble-column{right:58px;left:auto}.aurelka-world.motion-off .aurelka-mascot *,.aurelka-world.motion-off .aurelka-mascot.is-placed:not(.is-dragging) .aurelka-cat-art{animation-play-state:paused}.aurelka-world.composer-open .aurelka-mascot,.aurelka-world.composer-open .aurelka-message-route{animation-play-state:paused}.aurelka-mascot{position:absolute;top:0;left:0;width:92px;height:78px;opacity:0;transform-origin:50% 80%;filter:drop-shadow(0 8px 8px rgba(0,0,0,.45));will-change:transform,opacity;animation:aurelka-adventure 26s cubic-bezier(.45,0,.55,1) infinite;cursor:grab;pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.aurelka-mascot:hover{filter:drop-shadow(0 8px 8px rgba(0,0,0,.45)) drop-shadow(0 0 8px rgba(23,213,229,.42))}.aurelka-mascot:focus-visible{outline:2px solid #62e6ef;outline-offset:7px;border-radius:50%}.aurelka-mascot.is-placed{opacity:1;animation:none;transform:translate3d(var(--aurelka-x),var(--aurelka-y),0)}.aurelka-mascot.is-placed:not(.is-dragging) .aurelka-cat-art{animation:aurelka-idle 2.8s ease-in-out infinite}.aurelka-mascot.is-dragging{cursor:grabbing;transform:translate3d(var(--aurelka-x),var(--aurelka-y),0)}.aurelka-bulb-route{position:absolute;z-index:9;top:-54px;left:50%;width:32px;height:35px;opacity:0;pointer-events:none;transform:translate(-50%);visibility:hidden;animation:aurelka-bulb-route 26s linear infinite}.aurelka-mascot.is-placed:not(.is-dragging) .aurelka-bulb-route,.aurelka-world.motion-off .aurelka-bulb-route{opacity:1;visibility:visible;animation:none}.aurelka-mascot.is-dragging .aurelka-bulb-route{opacity:0;visibility:hidden}.aurelka-notification-bulb{--bulb-color: #ffe77b;--bulb-glow: rgba(255, 228, 112, .88);display:grid;width:100%;height:100%;place-items:center;border:1px solid color-mix(in srgb,var(--bulb-color) 72%,white);border-radius:50% 50% 44% 44%;padding:0;color:var(--bulb-color);background:#07161beb;box-shadow:0 6px 14px #0000006b,0 0 13px var(--bulb-glow);cursor:pointer;pointer-events:auto;transition:color .22s ease,border-color .22s ease,box-shadow .22s ease}.aurelka-notification-bulb>span{position:relative;display:block;width:15px;height:18px;border-radius:52% 52% 42% 42%;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.95) 0 11%,transparent 13%),linear-gradient(145deg,color-mix(in srgb,var(--bulb-color) 72%,white),var(--bulb-color));box-shadow:0 0 10px var(--bulb-glow);font-size:0}.aurelka-notification-bulb>span:before{position:absolute;bottom:-6px;left:3px;width:9px;height:7px;border-radius:1px 1px 4px 4px;background:repeating-linear-gradient(to bottom,#cbd5d8 0,#cbd5d8 2px,#66777d 2px,#66777d 3px);content:""}.aurelka-notification-bulb>span:after{position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border:2px solid var(--bulb-color);border-radius:50%;content:"";opacity:.22}.aurelka-notification-bulb.tone-warning{--bulb-color: #ff9f2f;--bulb-glow: rgba(255, 145, 36, .92)}.aurelka-notification-bulb.tone-danger{--bulb-color: #ff4054;--bulb-glow: rgba(255, 45, 67, .98)}.aurelka-notification-bulb:hover,.aurelka-notification-bulb:focus-visible{outline:none;box-shadow:0 6px 14px #0000006b,0 0 22px var(--bulb-glow);transform:translateY(-2px) scale(1.06)}.aurelka-notification-bulb.has-alert{animation:aurelka-bulb-alert .72s ease-in-out infinite}.aurelka-world.motion-off .aurelka-notification-bulb.has-alert,.aurelka-world.motion-off .aurelka-bubble-close{animation-play-state:running}.aurelka-cat-art{position:relative;z-index:2;width:100%;height:100%;overflow:visible;transform-origin:66% 43%;transition:transform .28s cubic-bezier(.2,.9,.3,1.2)}.aurelka-facing-layer{transform-box:fill-box;transform-origin:center;animation:aurelka-facing 26s linear infinite}.aurelka-mascot.is-placed .aurelka-facing-layer,.aurelka-mascot.is-dragging .aurelka-facing-layer{animation:none;transform:scaleX(1)}.aurelka-mascot.is-dragging .aurelka-cat-art{transform:rotate(76deg) translate(1px,3px);transition-duration:.16s}.aurelka-body,.aurelka-head,.aurelka-ear,.aurelka-back-leg,.aurelka-front-leg{fill:url(#aurelka-fur);stroke:#85aeb9;stroke-width:1.5;stroke-linejoin:round}.aurelka-ear-inner{fill:#783f63;opacity:.75}.aurelka-eye{fill:url(#aurelka-eye-healthy);filter:drop-shadow(0 0 4px rgba(100,237,122,.88));transform-box:fill-box;transform-origin:center;transition:fill .24s ease,filter .24s ease}.aurelka-eye.tone-checking,.aurelka-eye.tone-recovering,.aurelka-eye.tone-limited{fill:url(#aurelka-eye-checking);filter:drop-shadow(0 0 5px rgba(255,174,41,.95));animation:aurelka-eye-checking .9s ease-in-out infinite alternate}.aurelka-eye.tone-down{fill:url(#aurelka-eye-down);filter:drop-shadow(0 0 6px rgba(255,48,64,.98));animation:aurelka-eye-down .48s ease-in-out infinite alternate}.aurelka-pupil{fill:#061009}.aurelka-eye-spark{fill:#fff}.aurelka-cheek{fill:#ff7ea5;opacity:.32}.aurelka-fur-shine{fill:#5c7480;opacity:.18}.aurelka-bristles,.aurelka-angry-brow{display:none;fill:none;stroke:#ff6b73;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.aurelka-mascot.mood-outage{filter:drop-shadow(0 8px 8px rgba(0,0,0,.5)) drop-shadow(0 0 8px rgba(255,65,75,.6))}.aurelka-mascot.mood-outage .aurelka-bristles,.aurelka-mascot.mood-outage .aurelka-angry-brow{display:block}.aurelka-mascot.mood-outage .aurelka-body,.aurelka-mascot.mood-outage .aurelka-head,.aurelka-mascot.mood-outage .aurelka-ear{stroke:#ff6871}.aurelka-mascot.mood-outage .aurelka-head{transform-box:fill-box;transform-origin:center;animation:aurelka-angry-head .36s ease-in-out infinite alternate}.aurelka-mascot.mood-outage .aurelka-tail{stroke-width:18;animation:aurelka-angry-tail .32s ease-in-out infinite alternate}.aurelka-mascot.mood-happy .aurelka-eye-spark{animation:aurelka-happy-spark 1.4s ease-in-out infinite alternate}.aurelka-head-tuft,.aurelka-scruff{fill:none;stroke:#9ab8c0;stroke-width:1.8;stroke-linecap:round}.aurelka-nose,.aurelka-bell{fill:#ffc247}.aurelka-bell{filter:drop-shadow(0 0 3px rgba(255,194,71,.72))}.aurelka-bell-shine{fill:none;stroke:#fff1bd;stroke-width:1.2;stroke-linecap:round}.aurelka-mouth,.aurelka-whiskers{fill:none;stroke:#b8d0d4;stroke-width:1.5;stroke-linecap:round}.aurelka-collar{fill:none;stroke:#17d5e5;stroke-width:2.5}.aurelka-paw{fill:#141a20;stroke:#85aeb9;stroke-width:1.2}.aurelka-tail{fill:none;stroke:#05070a;stroke-width:12;stroke-linecap:round;filter:drop-shadow(0 0 1px #a1c0c7) drop-shadow(0 2px 2px rgba(0,0,0,.45));transform-box:fill-box;transform-origin:0 100%;animation:aurelka-tail-sway 1.15s ease-in-out infinite alternate}.aurelka-front-leg,.aurelka-back-leg{transform-box:fill-box;transform-origin:50% 0}.aurelka-front-leg{animation:aurelka-step .42s ease-in-out infinite alternate}.aurelka-back-leg{animation:aurelka-step .42s ease-in-out infinite alternate-reverse}.aurelka-mascot.is-dragging .aurelka-front-leg{animation:aurelka-dangle .68s ease-in-out infinite alternate}.aurelka-mascot.is-dragging .aurelka-back-leg{animation:aurelka-dangle .74s ease-in-out infinite alternate-reverse}.aurelka-mascot.is-dragging .aurelka-tail{animation:aurelka-tail-dangle .9s ease-in-out infinite alternate}.aurelka-shadow{position:absolute;z-index:1;left:16px;bottom:-3px;width:49px;height:9px;border-radius:50%;background:#0000006b;filter:blur(3px);animation:aurelka-shadow-jump 26s linear infinite}.aurelka-name-tag,.aurelka-speech{position:absolute;z-index:3;left:50%;padding:3px 7px;border:1px solid rgba(23,213,229,.48);border-radius:999px;color:#e8f4f4;background:#051217eb;box-shadow:0 5px 16px #0000004d;font-size:9px;font-weight:800;white-space:nowrap;transform:translate(-50%)}.aurelka-name-tag{top:-17px;color:#72e986;opacity:.92}.aurelka-speech{top:-43px;opacity:0;animation:aurelka-speech 26s ease-in-out infinite}.aurelka-speech.aurelka-cta{width:max-content;max-width:175px;border-radius:12px 12px 12px 4px;padding:6px 9px;text-align:center;white-space:normal}.aurelka-message-route{position:absolute;z-index:7;top:0;left:0;width:92px;height:78px;opacity:0;pointer-events:none;will-change:transform,opacity;animation:aurelka-message-route 26s linear infinite}.aurelka-message-route.is-placed{opacity:1;animation:none;transform:translate3d(var(--aurelka-x),var(--aurelka-y),0)}.aurelka-message-route.is-dragging{opacity:0}.aurelka-message-route.bubbles-hidden{display:none}.aurelka-message-route.bubble-left .aurelka-bubble-column{right:58px;left:auto}.aurelka-message-route .aurelka-speech{position:relative;top:auto;left:auto;opacity:1;animation:none;transform:none}.aurelka-bubble-column{position:absolute;z-index:20;left:66px;bottom:61px;display:grid;width:min(300px,calc(100vw - 28px));gap:10px;justify-items:start}.aurelka-bubble-close{position:absolute;z-index:24;top:-9px;right:-9px;display:grid;width:23px;height:23px;place-items:center;border:1px solid #ff9aa4;border-radius:50%;padding:0 0 2px;color:#fff;background:#d9253b;box-shadow:0 5px 12px #0000006b,0 0 12px #ff2f45c7;cursor:pointer;font:900 16px/1 sans-serif;pointer-events:auto;animation:aurelka-close-pulse 1.25s ease-in-out infinite}.aurelka-bubble-close:hover,.aurelka-bubble-close:focus-visible{outline:none;background:#ff354d;transform:scale(1.1)}.aurelka-network-cloud{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;max-width:280px;min-height:54px;padding:13px 25px 10px;border:2px solid rgba(113,195,203,.62);border-radius:42% 42% 48% 48%/52% 52% 43% 43%;color:#e9fcfd;background:#133b43;box-shadow:0 9px 24px #00000061,0 0 0 3px #133b4357;font-size:11px;line-height:1.3;text-align:center;overflow-wrap:anywhere;isolation:isolate;animation:aurelka-cloud-breathe 1.8s ease-in-out infinite}.aurelka-network-cloud:before,.aurelka-network-cloud:after{position:absolute;z-index:-1;content:"";background:inherit;filter:drop-shadow(0 0 1px rgba(113,195,203,.9))}.aurelka-network-cloud:before{top:-14px;left:17px;width:30px;height:26px;clip-path:polygon(4% 100%,18% 2%,100% 78%)}.aurelka-network-cloud:after{top:-14px;right:17px;width:30px;height:26px;clip-path:polygon(0 78%,82% 2%,96% 100%)}.aurelka-network-cloud>span{flex:0 0 auto;margin-right:6px;font-weight:900}.aurelka-network-cloud>strong{min-width:0;max-width:220px}.aurelka-network-cloud.happy{border-color:#66eb7fb8;color:#dffff0;background:#174831;box-shadow:0 9px 24px #00000061,0 0 0 3px #17483157,0 0 18px #59e7773d}.aurelka-network-cloud.limited{border-color:#ffb347d1;color:#fff2d6;background:#5a3b16;box-shadow:0 9px 24px #00000061,0 0 0 3px #5a3b1657,0 0 18px #ff9f2f61}.aurelka-network-cloud.outage{border-width:2px;border-color:#ff646d;color:#fff0f1;background:#6e1e28;box-shadow:0 10px 28px #1f00048c,0 0 0 3px #6e1e2861,0 0 22px #ff414b8c;font-size:12px;animation:aurelka-cloud-alarm .72s ease-in-out infinite alternate}.aurelka-network-cloud.outage>span{color:#ffcccf;letter-spacing:.08em}.aurelka-message-bubble{position:relative;z-index:7;display:grid;gap:7px;width:100%;padding:10px 11px;border:1px solid rgba(106,230,239,.58);border-radius:14px 14px 14px 4px;color:#eafafb;background:#071b21f7;box-shadow:0 12px 34px #00000073,0 0 18px #17d5e524;font-size:11px;line-height:1.4;animation:aurelka-bubble-in .42s cubic-bezier(.16,1,.3,1);pointer-events:auto}.aurelka-message-bubble h3{margin:0;color:#b9f6bf;font-size:10px;letter-spacing:.02em}.aurelka-message-list{display:grid;gap:7px;max-height:205px;margin:0;padding:0 4px 0 0;overflow-y:auto;list-style:none;scrollbar-color:#3cae75 rgba(7,27,33,.65);scrollbar-width:thin}.aurelka-message-list::-webkit-scrollbar{width:6px}.aurelka-message-list::-webkit-scrollbar-thumb{border-radius:999px;background:#3cae75}.aurelka-message-list li{display:grid;gap:2px;padding:6px 7px;border:1px solid rgba(96,158,166,.28);border-radius:8px;background:#0b2a31b8}.aurelka-message-list strong{color:#7aef8a;font-size:10px}.aurelka-message-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.aurelka-message-meta time{flex:0 0 auto;color:#82aeb3;font-size:8px;white-space:nowrap}.aurelka-message-list span{overflow-wrap:anywhere}.aurelka-compose-toggle{display:flex;width:100%;min-height:34px;align-items:center;justify-content:flex-start;gap:7px;border:1px solid rgba(107,218,228,.52);border-radius:10px;padding:7px 10px;color:#bcecef;background:#082228f5;box-shadow:0 7px 20px #0000004d;cursor:pointer;font-size:10px;font-weight:800;pointer-events:auto;transition:.16s ease}.aurelka-compose-toggle:hover,.aurelka-compose-toggle:focus-visible,.aurelka-compose-toggle.open{border-color:#67e0e8;color:#efffff;outline:none;background:#123d45}.aurelka-compose-toggle svg{transition:transform .16s ease}.aurelka-compose-toggle.open svg{transform:rotate(45deg)}.aurelka-note-composer{position:relative;z-index:8;display:grid;gap:9px;width:100%;padding:14px;border:1px solid rgba(106,230,239,.65);border-radius:15px 15px 15px 4px;color:#e9f7f8;background:#05171dfb;box-shadow:0 16px 42px #0000008c,0 0 22px #17d5e529;cursor:default;animation:aurelka-bubble-in .36s cubic-bezier(.16,1,.3,1);pointer-events:auto}.aurelka-note-composer>strong{color:#79ed89;font-size:12px}.aurelka-note-composer label{display:grid;gap:4px;color:#b8d8db;font-size:10px;font-weight:700}.aurelka-note-composer input,.aurelka-note-composer textarea{width:100%;border:1px solid #36525a;border-radius:8px;padding:8px 9px;color:#eefafa;background:#08191e;font:inherit;resize:vertical}.aurelka-note-composer input:focus,.aurelka-note-composer textarea:focus{outline:2px solid rgba(23,213,229,.42);border-color:#17d5e5}.aurelka-note-composer small{color:#86aeb4;font-size:9px}.aurelka-note-composer>div{display:flex;justify-content:flex-end;gap:7px}.aurelka-note-composer button{border:1px solid #3a5961;border-radius:8px;padding:7px 9px;color:#d9f0f2;background:#102b32;cursor:pointer;font-size:10px;font-weight:800}.aurelka-note-composer button[type=submit]{border-color:#58b96a;color:#07130a;background:#73e687}.aurelka-note-composer button:disabled{cursor:wait;opacity:.65}.aurelka-note-error{color:#ff9a9a;font-size:10px}.aurelka-mascot.is-dragging .aurelka-name-tag,.aurelka-mascot.is-dragging .aurelka-speech{opacity:0;animation:none}@keyframes aurelka-adventure{0%{opacity:0;transform:translate3d(-110px,calc(100vh - 110px),0) rotate(0) scaleX(1)}3%{opacity:1}14%{opacity:1;transform:translate3d(calc(50vw - 330px),calc(100vh - 110px),0) rotate(0) scaleX(1)}19%{transform:translate3d(calc(50vw - 290px),calc(100vh - 195px),0) rotate(-24deg) scaleX(1)}24%{transform:translate3d(calc(50vw - 285px),calc(100vh - 265px),0) rotate(-88deg) scaleX(1)}35%{transform:translate3d(calc(50vw - 285px),43vh,0) rotate(-90deg) scaleX(1)}43%{transform:translate3d(calc(50vw - 285px),19vh,0) rotate(-72deg) scaleX(1)}48%{transform:translate3d(calc(50vw - 230px),11vh,0) rotate(0) scaleX(1)}57%{transform:translate3d(calc(50vw + 145px),11vh,0) rotate(0) scaleX(1)}62%{transform:translate3d(calc(50vw + 220px),24vh,0) rotate(46deg) scaleX(1)}67%{transform:translate3d(calc(50vw + 250px),calc(100vh - 110px),0) rotate(155deg) scaleX(1)}70%{transform:translate3d(calc(50vw + 220px),calc(100vh - 172px),0) rotate(192deg) scaleX(1)}73%{transform:translate3d(calc(50vw + 195px),calc(100vh - 110px),0) rotate(0) scaleX(1)}88%{opacity:1;transform:translate3d(8vw,calc(100vh - 110px),0) rotate(0) scaleX(1)}96%{opacity:0;transform:translate3d(-120px,calc(100vh - 110px),0) rotate(0) scaleX(1)}to{opacity:0;transform:translate3d(-120px,calc(100vh - 110px),0) rotate(0) scaleX(1)}}@keyframes aurelka-facing{0%,72.99%{transform:scaleX(1)}73%,99.99%{transform:scaleX(-1)}to{transform:scaleX(1)}}@keyframes aurelka-tail-sway{0%{transform:rotate(-12deg)}to{transform:rotate(15deg)}}@keyframes aurelka-step{0%{transform:rotate(-10deg)}to{transform:rotate(12deg)}}@keyframes aurelka-dangle{0%{transform:rotate(-18deg)}to{transform:rotate(26deg)}}@keyframes aurelka-tail-dangle{0%{transform:rotate(42deg)}to{transform:rotate(57deg)}}@keyframes aurelka-angry-head{0%{transform:rotate(-4deg) translateY(0)}to{transform:rotate(4deg) translateY(-1px)}}@keyframes aurelka-angry-tail{0%{transform:rotate(-30deg) scaleY(1.08)}to{transform:rotate(32deg) scaleY(1.2)}}@keyframes aurelka-happy-spark{0%{opacity:.65;transform:scale(.75)}to{opacity:1;transform:scale(1.35)}}@keyframes aurelka-eye-checking{0%{opacity:.72;transform:scale(.94)}to{opacity:1;transform:scale(1.08)}}@keyframes aurelka-eye-down{0%{opacity:.78;filter:drop-shadow(0 0 3px rgba(255,48,64,.72))}to{opacity:1;filter:drop-shadow(0 0 8px rgba(255,48,64,1))}}@keyframes aurelka-bulb-alert{0%,to{opacity:.72;transform:rotate(-6deg) scale(.94);box-shadow:0 4px 10px #0000006b,0 0 7px var(--bulb-glow)}48%{opacity:1;transform:rotate(6deg) scale(1.16);box-shadow:0 7px 16px #0000006b,0 0 25px var(--bulb-glow)}}@keyframes aurelka-bulb-route{0%,3%,14%,47%,58%,72%,90%,to{opacity:0;visibility:hidden}4%,13%,48%,57%,73%,88%{opacity:1;visibility:visible}}@keyframes aurelka-close-pulse{0%,to{box-shadow:0 5px 12px #0000006b,0 0 8px #ff2f4580}50%{box-shadow:0 5px 12px #0000006b,0 0 18px #ff2f45fa}}@keyframes aurelka-cloud-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.015)}}@keyframes aurelka-cloud-alarm{0%{transform:translate(-1px) scale(1)}to{transform:translate(2px) scale(1.025)}}@keyframes aurelka-idle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-3px) rotate(-1.5deg)}}@keyframes aurelka-shadow-jump{0%,14%,67%,73%,to{opacity:.55;transform:scale(1)}24%,62%{opacity:.12;transform:scale(.55)}48%,57%{opacity:0}}@keyframes aurelka-speech{0%,3%,20%,45%,66%,to{opacity:0;transform:translate(-50%,5px) scale(.82)}6%,17%,49%,62%{opacity:1;transform:translate(-50%) scale(1)}19%,65%{opacity:0;transform:translate(-50%,-5px) scale(.92)}}@keyframes aurelka-message-route{0%{opacity:0;transform:translate3d(-110px,calc(100vh - 110px),0)}4%{opacity:1}13%{opacity:1;transform:translate3d(calc(50vw - 330px),calc(100vh - 110px),0)}14%,47%{opacity:0;transform:translate3d(calc(50vw - 330px),calc(100vh - 110px),0)}48%{opacity:1;transform:translate3d(calc(50vw - 230px),11vh,0)}57%{opacity:1;transform:translate3d(calc(50vw + 145px),11vh,0)}58%,72%{opacity:0;transform:translate3d(calc(50vw + 145px),11vh,0)}73%{opacity:1;transform:translate3d(calc(50vw + 195px),calc(100vh - 110px),0)}88%{opacity:1;transform:translate3d(8vw,calc(100vh - 110px),0)}90%,to{opacity:0;transform:translate3d(-120px,calc(100vh - 110px),0)}}@keyframes aurelka-bubble-in{0%{opacity:0;transform:translate(-8px,8px) scale(.86)}to{opacity:1;transform:translate(0) scale(1)}}@media(max-width:620px){.aurelka-mascot{width:76px;height:66px}.aurelka-message-bubble,.aurelka-bubble-column{width:min(270px,calc(100vw - 24px))}.login-language-tools{width:100%}}.login-brand{padding:0 0 12px}.login-brand>div{min-width:0;flex:1 1 auto}.login-brand span{color:#a9bdc2}.home-poster-trigger{display:grid;width:48px;height:48px;flex:0 0 48px;margin-left:auto;place-items:center;border:1px solid rgba(93,225,111,.66);border-radius:11px;color:#73ef86;background:linear-gradient(145deg,#124128d1,#071f1df5);box-shadow:inset 0 0 16px #53f06817,0 0 16px #36e35114;transition:.16s ease}.home-poster-trigger:hover,.home-poster-trigger:focus-visible{border-color:#86fa96;color:#a5ffae;outline:none;box-shadow:inset 0 0 18px #53f06826,0 0 20px #36e3512e;transform:translateY(-1px)}.home-poster-modal-backdrop{position:fixed;z-index:1000;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:22px;background:#010a0dd1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.home-poster-modal{width:min(1120px,100%);max-height:calc(100vh - 44px);overflow:hidden;border:1px solid rgba(96,160,171,.44);border-radius:18px;background:radial-gradient(circle at 92% 5%,rgba(87,220,108,.09),transparent 28%),linear-gradient(145deg,#10272efc,#05181efe);box-shadow:0 28px 90px #0000009e,0 0 38px #17d5e514}.home-poster-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px 18px;border-bottom:1px solid rgba(109,157,166,.25)}.home-poster-modal-header h2{margin:5px 0 6px;font-size:clamp(21px,3vw,28px)}.home-poster-modal-header p{max-width:720px;margin:0;color:var(--muted);line-height:1.55}.home-poster-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#71ea84;font-size:12px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.home-poster-close{display:grid;width:38px;height:38px;flex:0 0 38px;place-items:center;border:1px solid rgba(118,151,159,.32);border-radius:10px;color:var(--muted);background:#102a31e0}.home-poster-close:hover,.home-poster-close:focus-visible{border-color:#17d5e5b8;color:#eafcfd;outline:none}.home-poster-modal-content{display:grid;grid-template-columns:minmax(310px,370px) minmax(0,1fr);gap:22px;max-height:calc(100vh - 166px);padding:22px 24px 24px;overflow:auto}.home-poster-controls{display:flex;min-width:0;flex-direction:column;gap:15px}.home-poster-control-label{display:grid;gap:8px;color:#e9f6f6;font-size:13px;font-weight:800}.home-poster-control-label>span:first-child{display:flex;align-items:center;gap:7px}.home-poster-control-label input{width:100%;min-width:0;min-height:44px;border:1px solid rgba(118,151,159,.42);border-radius:9px;padding:9px 11px;color:var(--text);background:#04151aeb;outline:none}.home-poster-control-label input:focus{border-color:#4cd3e2e6;box-shadow:0 0 0 3px #17d5e51a}.home-poster-control-label input[aria-invalid=true]{border-color:#ff5e63b8}.home-poster-control-label small{color:var(--muted);font-size:11px;font-weight:550;line-height:1.45}.home-poster-language-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border:1px solid rgba(118,151,159,.27);border-radius:10px;background:#05151ac2}.home-poster-language-toggle button{min-height:37px;border:1px solid transparent;border-radius:7px;color:var(--muted);background:transparent;font-weight:800}.home-poster-language-toggle button.active{border-color:#5be66e7a;color:#9cf5a8;background:#1e55309e}.home-poster-detected,.home-poster-encoded-address{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(118,151,159,.25);border-radius:10px;padding:11px 12px;background:#061b21b8}.home-poster-detected>span,.home-poster-encoded-address{min-width:0}.home-poster-detected strong,.home-poster-detected small,.home-poster-encoded-address span,.home-poster-encoded-address strong{display:block}.home-poster-detected strong,.home-poster-encoded-address span{margin-bottom:3px;color:var(--muted);font-size:11px}.home-poster-detected small,.home-poster-encoded-address strong{overflow-wrap:anywhere;color:#e8f6f6;font-size:12px}.home-poster-detected button{display:inline-flex;min-height:34px;flex:0 0 auto;align-items:center;gap:6px;border:1px solid rgba(105,174,251,.38);border-radius:8px;color:#dfefff;background:#234a689e;font-size:11px;font-weight:800}.home-poster-detected button:disabled{opacity:.48;cursor:default}.home-poster-encoded-address{display:block;border-color:#57dc6c47}.home-poster-privacy{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 11px;border-left:3px solid #57dc6c;color:#bcd0d3;background:#163d2857;font-size:11px;line-height:1.5}.home-poster-privacy svg{flex:0 0 auto;color:#72ea84}.home-poster-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto}.home-poster-actions .action{width:100%;min-height:43px}.home-poster-preview{position:relative;display:grid;min-width:0;place-items:center;align-content:start;gap:9px;border:1px solid rgba(52,210,224,.3);border-radius:14px;padding:13px;background:radial-gradient(circle at 50% 20%,rgba(31,115,118,.18),transparent 46%),#020f13cc}.home-poster-preview-label{justify-self:start;color:#9cb5ba;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.home-poster-preview canvas{display:block;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 238px);border-radius:10px;box-shadow:0 18px 48px #00000075}.home-poster-rendering{position:absolute;top:43px;right:13px;bottom:13px;left:13px;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:10px;color:#e9fafa;background:#031216b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-weight:800}.home-poster-preview .notice{width:100%}.home-poster-print-frame{position:fixed;z-index:-1;right:0;bottom:0;width:1px;height:1px;border:0;opacity:0;pointer-events:none}@media(max-width:860px){.home-poster-modal-backdrop{padding:10px}.home-poster-modal{max-height:calc(100vh - 20px);overflow:auto}.home-poster-modal-header{padding:18px 18px 15px}.home-poster-modal-content{grid-template-columns:1fr;max-height:none;padding:17px 18px 20px;overflow:visible}.home-poster-preview canvas{max-height:none}}@media(max-width:520px){.home-poster-trigger{width:43px;height:43px;flex-basis:43px}.home-poster-actions{grid-template-columns:1fr}.home-poster-detected{align-items:flex-start;flex-direction:column}}.login-panel .action{width:100%}.login-shell.public-map-open{place-items:start center;align-content:start;gap:18px;overflow-y:auto}.login-public-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);gap:10px;align-items:stretch}.login-public-tools .language-select{min-height:40px}.public-map-preview{width:min(1500px,100%);min-width:0}.public-map-loading{display:flex;align-items:center;justify-content:center;gap:10px;min-height:120px}.public-status-loading{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:12px}.login-status-disclosure{position:relative;border:1px solid var(--line);border-radius:10px;background:#04141a9e;overflow:hidden}.login-failover-notice{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;border:1px solid rgba(255,86,103,.58);border-radius:10px;color:#ffd9dd;background:#68131f47;font-size:.84rem;line-height:1.42}.login-failover-notice.partial{border-color:#ffb3479e;color:#ffe6b8;background:#70440d47}.login-failover-notice svg{flex:0 0 auto;margin-top:.08rem}.dashboard-failover-notice{display:flex;align-items:flex-start;gap:.8rem;margin-bottom:1rem;padding:.9rem 1rem;border:1px solid rgba(255,86,103,.58);border-radius:12px;color:#ffd9dd;background:#68131f47}.dashboard-failover-notice.partial{border-color:#ffb3479e;color:#ffe6b8;background:#70440d47}.dashboard-failover-notice div{display:grid;gap:.28rem}.dashboard-failover-notice small{color:var(--muted);line-height:1.4}.login-status-disclosure.attention{animation:connection-status-pulse 2.4s ease-in-out infinite}.login-status-trigger{width:100%;min-height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 13px;border:0;background:linear-gradient(135deg,rgba(var(--mode-accent-rgb),.13),#04141a59);color:var(--text);text-align:left;cursor:pointer}.login-status-trigger:hover{background:linear-gradient(135deg,rgba(var(--mode-accent-rgb),.22),#04141a80)}.login-status-indicator{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:var(--mode-accent);background:rgba(var(--mode-accent-rgb),.12)}.login-status-indicator i{width:11px;height:11px;border-radius:50%;background:var(--muted);box-shadow:0 0 0 5px #a0b4bc1a}.login-status-disclosure.online .login-status-indicator i{background:var(--ok);box-shadow:0 0 0 5px #57dc6c1f,0 0 15px #57dc6ca6}.login-status-disclosure.stale .login-status-indicator i,.login-status-disclosure.limited .login-status-indicator i{background:var(--warn);box-shadow:0 0 0 5px #ffbe401f,0 0 15px #ffbe408c}.login-status-disclosure.offline .login-status-indicator i{background:var(--danger);box-shadow:0 0 0 5px #ff5c5c1f,0 0 15px #ff5c5c8c}.login-status-copy{min-width:0;display:grid;gap:4px}.login-status-copy strong{font-size:13px}.login-status-copy small{color:var(--muted);font-size:10px;overflow-wrap:anywhere}.login-status-action{display:flex;align-items:center;gap:6px;color:var(--mode-accent);font-size:10px;font-weight:800;white-space:nowrap}.login-status-action svg{transition:transform .18s ease}.login-status-disclosure.open .login-status-action svg{transform:rotate(180deg)}.login-status-content{display:grid;gap:10px;padding:10px;border-top:1px solid var(--line);animation:connection-details-open .18s ease-out}@keyframes connection-status-pulse{0%,to{border-color:rgba(var(--mode-accent-rgb),.35);box-shadow:0 0 rgba(var(--mode-accent-rgb),.05)}50%{border-color:rgba(var(--mode-accent-rgb),.88);box-shadow:0 0 0 4px rgba(var(--mode-accent-rgb),.1),0 0 22px rgba(var(--mode-accent-rgb),.2)}}@keyframes connection-details-open{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.login-status-disclosure.attention,.login-status-content{animation:none}.aurelka-world{display:none}}.public-status-board{width:min(1500px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) minmax(0,1.15fr);gap:12px;margin-bottom:14px}.public-status-board.compact{grid-template-columns:1fr;margin:2px 0}.public-stale-warning{grid-column:1 / -1;display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(255,190,64,.5);border-radius:9px;color:#ffd27a;background:#ffb0201a;font-size:12px;line-height:1.45}.public-stale-warning svg{flex:0 0 auto}.public-status-card{min-width:0;padding:15px;display:grid;gap:10px}.public-status-board.compact .public-status-card{padding:12px}.public-status-heading{display:flex;align-items:center;gap:8px;color:var(--mode-accent)}.public-status-heading h2{margin:0;font-size:15px}.public-status-card>strong{font-size:15px;overflow-wrap:anywhere}.public-status-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}.public-status-meta{display:grid;gap:5px;color:var(--muted);font-size:11px}.public-status-meta b{color:var(--text)}.public-wan-lines{display:grid;gap:7px}.public-wan-lines span{color:var(--muted);font-size:12px}.public-wan-lines i{display:inline-block;width:8px;height:8px;margin-right:4px;border-radius:50%;background:var(--danger);box-shadow:0 0 9px #ff5c5c66}.public-wan-lines .ok i{background:var(--ok);box-shadow:0 0 9px #57dc6c66}.public-wan-lines .limited i{background:var(--warn);box-shadow:0 0 9px #ffbe407a}.public-wan-lines .limited{color:#ffe1a3}.public-wan-lines b{color:var(--text)}.public-event-list{display:grid;gap:8px;max-height:420px;padding-right:5px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.public-status-board.compact .public-event-list{max-height:min(360px,42vh)}.event-storage-note{display:flex;align-items:center;gap:7px;margin:0;color:var(--ok)!important;font-size:11px!important;line-height:1.45}.event-storage-note svg{flex:0 0 auto}.public-event{padding:9px 10px;border:1px solid var(--line);border-left:3px solid var(--muted);border-radius:7px;background:#03101570}.public-event.error{border-left-color:var(--danger)}.public-event.success{border-left-color:var(--ok)}.public-event.info{border-left-color:var(--mode-accent)}.public-event.warning{margin-top:0;border-color:var(--line);border-left:3px solid var(--warn);background:#031015b8;color:var(--text)}.test-event-drawer{margin-top:9px;border:1px solid var(--line);border-radius:8px;background:#03101570;overflow:hidden}.test-event-drawer>summary{min-height:42px;padding:8px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;color:var(--text);list-style:none}.test-event-drawer>summary::-webkit-details-marker{display:none}.test-event-drawer>summary span{display:grid;gap:2px}.test-event-drawer>summary small{color:var(--muted);font-weight:400}.test-event-drawer>summary b{min-width:27px;padding:3px 7px;border:1px solid rgba(255,194,71,.4);border-radius:999px;color:var(--warn);text-align:center}.test-event-drawer[open]>summary{border-bottom:1px solid var(--line)}.test-event-list{margin:0;padding:9px;max-height:300px}.public-event>div{display:flex;justify-content:space-between;gap:8px;font-size:11px}.public-event>div span,.public-event small{color:var(--muted)}.public-event p{margin:5px 0 2px;color:var(--text)}.public-event small,.public-event em{display:block;font-size:10px;line-height:1.4}.public-event em{margin-top:4px;color:var(--warn);font-style:normal}.public-history-toggle{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line);border-radius:6px;background:#05191fa6;color:var(--text)}.event-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.event-context-grid>div{min-width:0;padding:11px;border:1px solid var(--line);border-radius:7px;background:#03101573}.event-context-grid span,.event-context-grid strong{display:block}.event-context-grid span{color:var(--muted);font-size:10px}.event-context-grid strong{margin-top:4px;overflow-wrap:anywhere;font-size:12px}.event-routing-description{margin:12px 0;padding:11px 13px;border-left:3px solid var(--mode-accent);background:rgba(var(--mode-accent-rgb),.07);color:var(--muted);font-size:12px;line-height:1.55}.event-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.event-result-count{align-self:center;color:var(--muted);font-size:12px}.event-log-panel>.public-event-list{max-height:min(560px,60vh);margin-top:12px;padding-right:6px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.login-vpn-access{padding:13px}.login-vpn-access>summary,.public-report-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.login-vpn-access>summary::-webkit-details-marker,.public-report-disclosure>summary::-webkit-details-marker{display:none}.login-vpn-access>summary>svg,.public-report-disclosure>summary>svg{flex:0 0 auto;color:var(--muted);transition:transform .16s ease}.login-vpn-access[open]>summary>svg,.public-report-disclosure[open]>summary>svg{transform:rotate(180deg)}.login-vpn-access-body,.public-report-disclosure-body{display:grid;gap:10px;margin-top:12px}.login-vpn-access-body>p,.login-vpn-access-body>small{margin:0;color:var(--muted);font-size:11px;line-height:1.5}.public-report-disclosure{display:block}.public-report-disclosure>summary{min-height:24px}.ovpn-server-routing-settings{display:grid;gap:12px;padding:12px;border:1px solid rgba(75,212,255,.18);border-radius:10px;background:#04181f59}.public-vpn-links{display:grid;grid-template-columns:1fr;gap:8px}.public-vpn-links .action{width:100%;min-height:36px;text-decoration:none}.public-vpn-profile-list{display:grid;gap:9px}.public-vpn-profile-card{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-left:3px solid var(--mode-accent);border-radius:10px;background:#04181f80}.public-vpn-profile-card>span,.public-vpn-profile-card>small{color:var(--muted);font-size:11px;line-height:1.45}.public-vpn-profile-card .action{width:100%}.public-vpn-profile-card .vpn-credentials-ready{color:var(--success)}.public-vpn-tailscale{display:grid;gap:8px;padding-top:8px;border-top:1px solid rgba(75,212,255,.2)}.vpn-tailscale-panel{border-color:#34d39959}.vpn-tailscale-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.vpn-tailscale-status-grid>span{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 9px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:10px;background:#05161d73}.vpn-tailscale-status-grid>span svg{grid-row:1 / 3;color:var(--cyan)}.vpn-tailscale-status-grid>span b,.vpn-tailscale-status-grid>span small{overflow-wrap:anywhere}.vpn-tailscale-status-grid>span.ok{border-color:#34d39973}.vpn-tailscale-status-grid>span.ok svg{color:var(--green)}.vpn-tailscale-status-grid>span.warn{border-color:#fbbf2473}.vpn-tailscale-status-grid>span.warn svg{color:var(--amber)}.vpn-tailscale-steps{margin:12px 0 16px;padding-left:24px;color:var(--muted)}.vpn-tailscale-steps li+li{margin-top:5px}.vpn-tailscale-exit-node>span{display:grid;gap:2px}.vpn-tailscale-exit-node small{color:var(--muted);font-weight:400}@media(max-width:760px){.vpn-tailscale-status-grid{grid-template-columns:1fr}}.vpn-ddns-panel{border-color:#31d2bc59}.vpn-ddns-runtime{align-self:end;display:grid;gap:.45rem;min-height:2.8rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:10px;background:#04181f6b;color:var(--muted);font-size:.86rem}.vpn-ddns-runtime b{color:var(--text)}.public-vpn-unavailable{color:var(--warn);font-size:11px;line-height:1.45}.login-vpn-access>small.vpn-credentials-ready{color:var(--success)}.password-reset-disclosure{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#06161b52}.password-reset-disclosure summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.password-reset-disclosure summary::-webkit-details-marker{display:none}.password-reset-disclosure summary>span{display:inline-flex;align-items:center;gap:8px}.password-reset-disclosure summary>svg{flex:0 0 auto;transition:transform .18s ease}.password-reset-disclosure[open] summary>svg{transform:rotate(180deg)}.password-reset-disclosure[open] summary{color:var(--text);border-bottom:1px solid var(--line)}.password-reset-content{display:grid;gap:10px;padding:11px 12px 12px}.password-reset-content ol{display:grid;gap:5px;margin:0;padding-left:19px;color:var(--muted);font-size:11px;line-height:1.5}.vpn-stable-ip-note{display:flex;align-items:flex-start;gap:8px;padding:9px 10px;border:1px solid color-mix(in srgb,var(--warn) 52%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--warn) 9%,transparent);color:var(--text);font-size:11px;line-height:1.5}.vpn-stable-ip-note svg{flex:0 0 auto;margin-top:1px;color:var(--warn)}.vpn-stable-ip-note>div{display:grid;gap:5px}.vpn-stable-ip-note span{color:var(--warn);font-weight:700}.vpn-stable-ip-note small{color:var(--accent-strong);font-size:inherit;line-height:inherit}.public-event-list,.event-log-panel>.public-event-list,.code-block,pre,textarea{scrollbar-width:thin;scrollbar-color:rgba(var(--mode-accent-rgb),.72) rgba(4,19,25,.7)}.public-event-list::-webkit-scrollbar,.code-block::-webkit-scrollbar,pre::-webkit-scrollbar,textarea::-webkit-scrollbar{width:8px;height:8px}.public-event-list::-webkit-scrollbar-track,.code-block::-webkit-scrollbar-track,pre::-webkit-scrollbar-track,textarea::-webkit-scrollbar-track{border-radius:999px;background:#041319b3}.public-event-list::-webkit-scrollbar-thumb,.code-block::-webkit-scrollbar-thumb,pre::-webkit-scrollbar-thumb,textarea::-webkit-scrollbar-thumb{border:2px solid rgba(4,19,25,.7);border-radius:999px;background:rgba(var(--mode-accent-rgb),.72)}.sidebar{background:linear-gradient(180deg,var(--shell),var(--shell-2));color:#edf7f5;padding:22px 18px;display:flex;flex-direction:column;gap:22px;border-right:1px solid #2a4146}.brand{display:flex;align-items:center;gap:12px;padding:8px 6px 18px;border-bottom:1px solid var(--line-dark)}.brand strong,.brand span{display:block}.brand strong{font-size:17px;line-height:1.2}.brand span{color:var(--muted-light);font-size:12px;margin-top:3px}.sidebar nav{display:grid;gap:6px}.sidebar nav button{width:100%;min-height:42px;border:1px solid transparent;border-radius:8px;background:transparent;color:#d8e7e4;display:flex;align-items:center;gap:10px;padding:0 12px;text-align:left;font-size:14px}.sidebar nav button:hover,.sidebar nav button.active{background:#ffffff14;border-color:#456168;color:#fff}.sidebar-note{margin-top:auto;color:var(--muted-light);font-size:12px;line-height:1.45;display:grid;grid-template-columns:18px 1fr;gap:8px;padding:12px;border:1px solid var(--line-dark);border-radius:8px}.main{min-width:0;padding:22px;overflow-x:hidden}.topbar{min-height:76px;display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:18px}.topbar h1{margin:0;font-size:25px;line-height:1.15}.topbar p{margin:7px 0 0;color:var(--muted);font-size:14px}.topbar-actions,.button-row,.switch-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.button-row.tight{gap:6px}.language-select{height:38px;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--panel-strong)}.language-select select{border:0;background:transparent;color:var(--text);outline:none;font-size:13px}.status-pill{min-height:32px;display:inline-flex;align-items:center;padding:0 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:700;background:var(--panel-strong);color:var(--muted)}.status-pill.connected{color:var(--ok);border-color:#bce2c7;background:#eefbf2}.status-pill.offline{color:var(--danger);border-color:#f2c2bd;background:#fff3f1}.notice{padding:11px 14px;border:1px solid #bce2c7;background:#eefbf2;color:var(--ok);border-radius:8px;margin-bottom:16px;font-size:14px}.notice.error{border-color:#f2c2bd;background:#fff3f1;color:var(--danger)}.panel-grid{display:grid;gap:16px}.panel-grid.two{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:start}.panel-grid.two+.panel-grid.two{margin-top:16px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px;min-width:0}.panel.wide{min-width:0}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}.panel-heading.compact{align-items:center;margin-bottom:12px}.panel-heading h2{margin:0;font-size:18px;line-height:1.2}.panel-heading p,.body-copy,.empty{margin:7px 0 0;color:var(--muted);line-height:1.5;font-size:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.form-grid.single{grid-template-columns:1fr}.field{display:grid;gap:6px;color:var(--muted);font-size:13px;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid #c8d3d0;border-radius:8px;background:var(--panel-strong);color:var(--text);padding:10px 11px;outline:none;font-size:14px;line-height:1.35}.field textarea{min-height:92px;resize:vertical;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0d948829}.field small{font-size:12px;color:var(--muted);font-weight:500}.action{min-height:38px;border:1px solid transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 13px;font-size:13px;font-weight:800;white-space:nowrap}.action.primary{background:var(--accent);color:#fff}.action.primary:hover{background:var(--accent-strong)}.action.secondary{background:var(--panel-strong);color:var(--text);border-color:var(--line)}.action.danger{background:#fff5f4;color:var(--danger);border-color:#f0c3bd}.action:disabled{opacity:.62;cursor:not-allowed}.toggle{min-height:38px;border:1px solid var(--line);border-radius:999px;padding:0 13px 0 6px;display:inline-flex;align-items:center;gap:8px;background:var(--panel-strong);color:var(--muted);font-weight:800;font-size:13px}.toggle span{width:26px;height:26px;border-radius:999px;background:#cbd5d3;position:relative}.toggle span:after{content:"";position:absolute;width:10px;height:10px;border-radius:999px;background:#fff;top:8px;left:8px}.toggle.is-on{color:var(--accent-strong);border-color:#9bd8d0;background:#eefbf9}.toggle.is-on span{background:var(--accent)}.toggle:disabled{opacity:.55;cursor:not-allowed}.check-row{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:14px;font-weight:700;margin:10px 0 14px}.check-row input{width:17px;height:17px}.checklist{margin:0;padding-left:18px;display:grid;gap:10px;color:var(--text);line-height:1.45;font-size:14px}.info-block,.warning,.storage-note{margin-top:14px;border-radius:8px;border:1px solid #c8d3d0;background:var(--panel-strong);padding:12px;color:var(--text);line-height:1.45;font-size:13px}.info-block.muted{color:var(--muted)}.info-block.warn{border-color:#ffc24773;background:#8652002e;color:#ffd884}.warning{border-color:#f1d39a;background:#fff8ea;color:#81540f}.dashboard{display:grid;gap:16px}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card{min-height:112px;border-radius:8px;border:1px solid var(--line);background:var(--panel-strong);padding:14px;display:grid;gap:8px;align-content:start;box-shadow:var(--shadow)}.metric-card svg{color:var(--accent)}.metric-card span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase}.metric-card strong{font-size:18px;line-height:1.25;word-break:break-word}.memory-line{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:14px}.meter{height:10px;border-radius:999px;background:#d7e0de;overflow:hidden;margin-bottom:12px}.meter span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),#22c55e)}.code-block{margin:0;max-height:420px;overflow:auto;border:1px solid #c7d3d0;background:#101b1d;color:#d7f8ef;border-radius:8px;padding:12px;line-height:1.45;font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word}.code-block.compact{max-height:210px}.table{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel-strong)}.table-head,.table-row{display:grid;grid-template-columns:1.4fr .8fr .8fr .5fr;gap:8px;padding:10px 12px;font-size:13px}.table-head{background:#e9efed;color:var(--muted);font-weight:800}.table-row+.table-row{border-top:1px solid var(--line)}.capability-list{display:grid;gap:8px}.capability-list div{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px;font-size:13px}.ok{color:var(--ok)}.warn{color:var(--warn)}h3{margin:20px 0 10px;font-size:14px;line-height:1.2;color:var(--text)}.preset-list{display:grid;gap:9px}.preset-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid var(--line);border-radius:8px;padding:12px;background:var(--panel-strong)}.preset-row strong,.preset-row span{display:block}.preset-row span{color:var(--muted);font-size:12px;margin-top:3px}.preset-row.active{border-color:#57dc6c94;background:linear-gradient(135deg,#57dc6c24,#17d5e514);box-shadow:0 0 0 1px #57dc6c29,0 0 26px #57dc6c1f;animation:activeWanPulse 2.8s ease-in-out infinite}.preset-row.active strong{color:#b8ffd0}.smartwan-layout{align-items:start}.smartwan-side-stack{display:grid;gap:16px;min-width:0}.smartwan-preset-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.smartwan-routes-panel .code-block{max-height:360px}.smartwan-diagnostics-panel{grid-column:1 / -1}.smartwan-diagnostic-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.smartwan-diagnostic-summary>div{min-width:0;border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f1357;display:grid;grid-template-columns:24px minmax(0,1fr);gap:3px 8px;align-items:center;padding:12px}.smartwan-diagnostic-summary>div.ok{border-color:#57dc6c57;background:#57dc6c14}.smartwan-diagnostic-summary>div.warn{border-color:#ffc24766;background:#63420929}.smartwan-diagnostic-summary>div>svg{grid-row:1 / 4;color:currentColor}.smartwan-diagnostic-summary span,.smartwan-diagnostic-summary small{color:var(--muted);font-size:11px}.diagnostic-summary-label{min-width:0;display:flex;align-items:center;gap:6px}.diagnostic-summary-label .context-help summary{width:20px;height:20px}.diagnostic-summary-label .context-help summary svg{width:13px;height:13px}.smartwan-diagnostic-summary>div:nth-child(n+3) .context-help-popover{right:0;left:auto}.smartwan-diagnostic-summary strong{color:var(--text);font-size:14px}.smartwan-diagnostic-grid,.wan-probe-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.smartwan-diagnostic-card,.wan-probe-status-card{min-width:0;border:1px solid var(--line);border-radius:8px;background:#040f1347;padding:14px}.smartwan-diagnostic-card h3{margin-top:0}.smartwan-diagnostic-card dl,.wan-probe-status-card dl{display:grid;gap:7px;margin:0}.smartwan-diagnostic-card dl div,.wan-probe-status-card dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(137,169,177,.14);padding-bottom:7px;font-size:12px}.smartwan-diagnostic-card dt,.wan-probe-status-card dt{color:var(--muted)}.smartwan-diagnostic-card dd,.wan-probe-status-card dd{margin:0;color:var(--text);text-align:right;overflow-wrap:anywhere}.diagnostic-targets{display:grid;gap:6px;margin-top:12px}.diagnostic-targets span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.diagnostic-targets code{border:1px solid rgba(23,213,229,.16);border-radius:6px;background:#020b0e99;padding:9px;color:#bfefff;white-space:pre-wrap;overflow-wrap:anywhere}.diagnostic-decision{border:1px solid rgba(23,213,229,.2);border-radius:7px;background:#17d5e512;display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;padding:11px;color:var(--accent)}.diagnostic-decision strong{color:var(--text);font-size:13px;line-height:1.45}.wan-probe-status-grid{margin-top:12px}.wan-probe-status-card.ok{border-color:#57dc6c61}.wan-probe-status-card.warn{border-color:#ff5b6666}.wan-probe-status-card.muted{border-color:#ffc24757}.wan-probe-status-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.wan-probe-status-head>div{display:grid;gap:3px}.wan-probe-status-head span{color:var(--muted);font-size:11px}.wan-probe-status-head strong{color:var(--text);font-size:15px}.wan-probe-status-head .probe-result{border:1px solid currentColor;border-radius:999px;padding:5px 8px;color:inherit;font-weight:800;text-align:center}.probe-quorum{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:center;border-radius:7px;background:#040f137a;margin-bottom:10px;padding:10px}.probe-quorum span,.probe-quorum small{color:var(--muted);font-size:11px}.probe-quorum strong{grid-row:1 / 3;grid-column:2;color:var(--text);font-size:18px}@media(max-width:1200px){.smartwan-diagnostic-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.smartwan-diagnostic-summary,.smartwan-diagnostic-grid,.wan-probe-status-grid{grid-template-columns:minmax(0,1fr)}.wan-probe-status-head{display:grid}.wan-probe-status-head .probe-result{justify-self:start}}.active-preset-banner,.orchestration-status{border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f1357;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:12px;margin:12px 0}.orchestration-status{grid-template-columns:28px minmax(0,1fr) auto}.active-preset-banner.active,.orchestration-status.ok{border-color:#57dc6c6b;background:#57dc6c1a;box-shadow:0 0 18px #57dc6c14}.orchestration-status.warn{border-color:#ffc2476b;background:#6342092e}.orchestration-status.muted{opacity:.86}.active-preset-banner svg,.orchestration-status svg{color:var(--accent)}.active-preset-banner.active svg,.orchestration-status.ok svg{color:var(--ok)}.active-preset-banner>div{min-width:0;display:grid;gap:4px}.orchestration-status.warn svg{color:var(--warn)}.active-preset-banner span,.orchestration-status span{color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.active-preset-banner strong,.orchestration-status strong{display:block;min-width:0;color:#f2fbfb;font-size:14px;overflow-wrap:anywhere}.active-preset-banner small{display:block;color:#c2d3d7;font-size:11px;line-height:1.35}.orchestration-status p{margin:3px 0 0;color:#a9bdc2;font-size:12px;line-height:1.4}.orchestration-status>span{min-height:30px;border:1px solid rgba(23,213,229,.22);border-radius:999px;display:inline-flex;align-items:center;padding:0 10px;background:#17d5e514;color:#bfefff}.title-with-help,.section-title,.field-label{display:flex;align-items:center;gap:8px;min-width:0}.title-with-help h1,.title-with-help h2,.section-title h3{margin:0}.section-title{margin:18px 0 10px}.section-title h3{font-size:14px}.field-label{justify-content:space-between}.context-help{position:relative;display:inline-flex;flex:0 0 auto;z-index:20}.context-help[open]{z-index:1000;isolation:isolate}.context-help summary{width:26px;height:26px;border:1px solid rgba(var(--mode-accent-rgb),.42);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--mode-accent);background:rgba(var(--mode-accent-rgb),.08);cursor:pointer;list-style:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}.context-help summary::-webkit-details-marker{display:none}.context-help summary:hover,.context-help[open] summary{border-color:var(--mode-accent);background:rgba(var(--mode-accent-rgb),.16);transform:translateY(-1px)}.context-help-popover{position:absolute;top:32px;left:0;width:min(360px,calc(100vw - 48px));border:1px solid rgba(var(--mode-accent-rgb),.46);border-radius:8px;padding:12px;background:#071a21;color:var(--text);box-shadow:0 16px 40px #0000007a;text-align:left;font-size:12px;line-height:1.5;z-index:1001;opacity:1;isolation:isolate}.field .context-help-popover{left:auto;right:0}.context-help-popover strong{display:block;margin-bottom:5px;color:#f0fbfb;font-size:13px}.context-help-popover p{margin:0;color:#b9cbd0;font-weight:500}.conflict-notice{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;margin:10px 0 14px;border:1px solid rgba(255,194,71,.46);border-radius:8px;padding:11px 12px;background:#67410533;color:#ffe09a}.conflict-notice svg{margin-top:1px;color:var(--warn)}.conflict-notice strong{display:block;margin-bottom:3px;color:#fff0c6;font-size:12px}.conflict-notice p{margin:3px 0 0;color:#e6cf9b;font-size:12px;line-height:1.45}.fingerprint{margin-top:10px;font-size:13px;color:var(--accent-strong);font-weight:800}.host-key-list{display:grid;gap:12px;margin-top:14px}.host-key{display:grid;gap:7px}.host-key strong{font-size:13px;color:var(--accent-strong)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{grid-template-columns:255px minmax(0,1fr);background:radial-gradient(circle at 15% 10%,rgba(22,213,229,.08),transparent 30%),linear-gradient(135deg,#06151a,#09242c 52%,#0b1a20)}.sidebar{padding:16px 12px 10px;gap:14px;background:linear-gradient(180deg,#081c23fa,#051318fa),#07161b;border-right:1px solid rgba(120,160,170,.28)}.brand{padding:5px 6px 14px;gap:12px;border-bottom:0}.brand svg{color:#52c7ff;filter:drop-shadow(0 0 10px rgba(82,199,255,.35))}.brand strong{font-size:22px;letter-spacing:0}.device-line{min-height:34px;display:flex;align-items:center;gap:10px;padding:0 16px;color:#c4d6da;font-size:15px}.device-line svg{color:#9fb9bf}.sidebar nav{gap:5px}.sidebar nav button{min-height:44px;border-radius:7px;padding:0 13px;color:#e8f4f4;font-weight:700}.sidebar nav button svg{padding:4px;width:26px;height:26px;border-radius:7px;background:#ffffff1a;color:#d8eff4}.sidebar nav button:hover,.sidebar nav button.active{background:linear-gradient(90deg,#00abbb99,#00647680);border-color:#1cd5e53d;box-shadow:inset 4px 0 #17d5e5}.sidebar-connection,.sidebar-note{margin-top:0;border:1px solid rgba(122,157,166,.22);background:#0f252dbf;border-radius:8px;padding:14px;color:#d9ebee}.sidebar-connection+.sidebar-note{margin-top:0}.sidebar-connection div{display:flex;justify-content:space-between;margin-bottom:10px;font-size:13px}.sidebar-connection p{margin:0 0 7px;color:#a9bdc2;font-size:13px}.sidebar-connection button{width:100%;min-height:34px;margin-top:6px;border-radius:7px;border:1px solid rgba(154,181,188,.32);background:#ffffff0a;color:#f2fbfb;font-weight:800}.sidebar-version{margin:4px 0 0;color:#91a7ad;font-size:12px}.main{padding:0 20px 18px}.topbar{min-height:54px;margin:0 -20px 12px;padding:0 8px 0 20px;border-bottom:1px solid rgba(122,157,166,.22);background:#07171dc7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.router-status-strip{display:flex;align-items:center;gap:14px;min-width:0;white-space:nowrap;overflow:hidden}.router-status-strip strong,.router-status-strip em{min-height:30px;display:inline-flex;align-items:center;gap:8px;color:#dcebed;font-style:normal;font-size:13px}.router-status-strip em{padding-left:14px;border-left:1px solid rgba(122,157,166,.28);color:#d5e5e8}.router-status-strip strong span{color:var(--ok)}.status-dot{width:12px;height:12px;border-radius:999px;background:#7f9499}.status-dot.online{background:var(--ok);box-shadow:0 0 16px #57dc6c9e}.status-dot.offline{background:var(--danger)}.topbar-actions{flex-wrap:nowrap}.language-select,.icon-button,.action.secondary{border-color:#8eabb347;background:#1b3039eb;color:#ecf8f8}.language-select select{color:#ecf8f8}.language-select option{background:#122832}.icon-button{width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center}.notice{background:#0f5c3d47;border-color:#57dc6c61;color:#b8ffd0}.notice.error{background:#621c1e6b;border-color:#ff5e636b;color:#ffd0d2}.page-title{margin:0 0 9px;font-size:22px;line-height:1.2}.panel,.metric-card{background:linear-gradient(145deg,#1a3039e6,#0d1f26f0),#122832;border:1px solid rgba(137,169,177,.24);box-shadow:var(--shadow)}.panel-heading h2{color:#f3fbfb}.panel-heading p,.body-copy,.empty,.field,.field small{color:#a9bdc2}.field input,.field select,.field textarea{background:#040f1385;border-color:#8babb352;color:#f3fbfb}.field input::placeholder,.field textarea::placeholder{color:#789198}.action.primary{background:linear-gradient(180deg,#79bbff,#63a7f6);color:#071820}.action.secondary{color:#eaf8f8}.router-panel-link{text-decoration:none}.router-panel-link.disabled{opacity:.5;pointer-events:none}.action.danger{background:#762429b8;color:#ff9ea2;border-color:#ff5e638c}.dashboard-reference{gap:14px}.status-card-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.status-card{min-height:104px;border:1px solid rgba(137,169,177,.26);border-radius:8px;background:linear-gradient(145deg,#1a3039e0,#0d1f26eb);padding:14px;display:grid;grid-template-columns:46px 1fr;align-items:center;gap:14px}.status-card svg{color:var(--ok);width:34px;height:34px}.status-card.info svg,.status-card.info strong{color:#55c8ff}.status-card.warn svg,.status-card.warn strong{color:var(--warn)}.status-card.muted svg,.status-card.muted strong{color:#9ab0b6}.status-card span{color:#c5d8dc;font-size:12px;font-weight:800}.status-card strong{display:block;margin:4px 0 6px;color:var(--ok);font-size:18px;line-height:1.1}.status-card p{margin:0;color:#a9bdc2;font-size:12px;line-height:1.4}.dashboard-main-grid{display:grid;grid-template-columns:1.02fr 1.08fr;gap:14px}.compatibility-banner{border:1px solid rgba(23,213,229,.26);border-radius:8px;background:linear-gradient(135deg,#17d5e51a,#0f252dc7);overflow:hidden}.compatibility-toggle{width:100%;min-height:44px;border:0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:transparent;color:#eefcff;text-align:left;font:inherit;font-size:16px;font-weight:900;cursor:pointer}.compatibility-toggle:hover,.compatibility-toggle:focus-visible{background:#17d5e514}.compatibility-toggle-hint{display:inline-flex;align-items:center;gap:7px;color:#9ed0ff;font-size:11px;letter-spacing:.04em;white-space:nowrap}.compatibility-toggle svg{transition:transform .16s ease}.compatibility-banner.is-expanded .compatibility-toggle svg{transform:rotate(180deg)}.compatibility-content{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:0 14px 14px}.compatibility-content[hidden]{display:none}.compatibility-banner p{margin:0;color:#bdd2d6;font-size:13px;line-height:1.45}.compatibility-banner .panel-purpose-note{margin-top:8px;color:#d8f7ff}.compatibility-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.compatibility-links a{flex:0 0 auto;min-height:34px;border:1px solid rgba(105,174,251,.36);border-radius:7px;display:inline-flex;align-items:center;padding:0 11px;color:#9ed0ff;text-decoration:none;font-size:12px;font-weight:900;white-space:nowrap;background:#69aefb14}@media(max-width:1200px){.compatibility-content{grid-template-columns:1fr}.compatibility-links{justify-content:flex-start}}.dashboard-reference .panel{padding:15px}.ring-grid{display:grid;grid-template-columns:1.05fr .9fr 1.05fr .9fr;align-items:center;gap:14px}.ring-metric>span{display:block;margin-bottom:10px;color:#dcebed;font-weight:800;font-size:14px}.ring{width:108px;height:108px;border-radius:50%;margin:0 auto;display:grid;place-items:center;position:relative;background:conic-gradient(var(--ring-color) var(--percent),rgba(105,128,135,.26) 0)}.ring:after{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border-radius:50%;background:#122832;box-shadow:inset 0 0 20px #0000004d}.ring.green{--ring-color: #57dc6c}.ring.blue{--ring-color: #69aefb}.ring strong,.ring small{position:relative;z-index:1;display:block;text-align:center}.ring strong{font-size:20px}.ring small{max-width:82px;color:#cfe1e5;font-size:11px}.memory-stats{display:grid;gap:8px;color:#d7e7ea;font-size:13px}.memory-stats p{margin:0;display:flex;justify-content:space-between;gap:12px}.memory-stats span{color:#a9bdc2}.mini-meter{height:8px;border-radius:999px;background:#758d934d;overflow:hidden}.mini-meter span{display:block;height:100%;background:#69aefb}.system-strip{margin-top:14px;padding-top:12px;border-top:1px solid rgba(137,169,177,.2);display:grid;grid-template-columns:repeat(4,1fr);gap:14px;color:#a9bdc2}.system-strip strong{display:block;margin-top:4px;color:#f2fbfb;font-size:15px}.badge-warn{min-height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;border:1px solid rgba(255,194,71,.45);color:var(--warn);background:#ffc2471f;font-size:12px;font-weight:800}.badge-ok{min-height:24px;display:inline-flex;align-items:center;padding:0 10px;border-radius:999px;border:1px solid rgba(87,220,108,.45);color:#b8ffd0;background:#57dc6c1f;font-size:12px;font-weight:800}.alert-row{min-height:50px;border:1px solid rgba(255,178,27,.5);background:#8652002e;color:#ffd884;border-radius:8px;padding:10px 12px;display:grid;grid-template-columns:22px 1fr auto;gap:12px;align-items:center;font-size:13px}.alert-row button,.public-key-box button{min-height:34px;border:1px solid rgba(255,207,122,.28);border-radius:7px;background:#ffffff0f;color:#ffe2a3;font-weight:800}.security-checks{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:14px 0}.security-checks div{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:9px}.security-checks p{margin:0;color:#d3e4e7;font-size:13px}.check-ok,.check-warn{width:16px;height:16px;border-radius:999px;display:inline-grid;place-items:center;font-size:11px;font-weight:900}.check-ok{background:var(--ok);color:#06200d}.check-warn{color:var(--warn)}.dashboard-lower-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:stretch}.dashboard-lower-grid .panel{min-height:620px;height:auto;overflow:visible}.dashboard-lower-grid .log-health-panel{min-height:620px}.dashboard-lower-grid .code-block.compact{max-height:none}.quick-actions{display:grid;align-content:start;gap:8px}.quick-actions .action{justify-content:flex-start;min-height:38px;width:100%}.dashboard-code-panel{display:grid;align-content:stretch;gap:10px;min-height:0}.log-health-panel{grid-template-rows:auto auto minmax(250px,1fr) auto;min-height:0}.log-health-panel .code-block.compact{height:100%;min-height:250px;max-height:none}.route-health-panel{grid-template-rows:auto auto auto minmax(260px,1fr) auto;min-height:0}.route-health-panel .code-block.compact{height:100%;min-height:260px;max-height:none}.dashboard-code-panel.is-expanded{height:auto;min-height:0;overflow:visible;align-content:start;grid-template-rows:auto auto auto auto}.dashboard-code-panel.is-expanded .code-block.compact{height:auto;min-height:0;max-height:none;overflow:visible;white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere}.log-health-panel.is-expanded{grid-template-rows:auto auto auto auto}.route-health-panel.is-expanded{grid-template-rows:auto auto auto auto auto}.panel-expand-bar{min-height:34px;width:100%;border:1px solid rgba(23,213,229,.26);border-radius:7px;background:linear-gradient(90deg,#17d5e51a,#69aefb1f);color:#bfefff;font-size:12px;font-weight:950;letter-spacing:.04em;align-self:stretch;display:grid;place-items:center;margin-top:2px}.panel-expand-bar:hover{border-color:#17d5e57a;background:linear-gradient(90deg,#17d5e529,#69aefb33)}.dashboard-code-panel .panel-heading{margin-bottom:0}.dashboard-code-panel .panel-heading p,.quick-actions .panel-heading p{margin:4px 0 0;color:#9fb6bc;font-size:12px;line-height:1.35}.insight-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.log-health-panel .insight-card:first-child{grid-column:1 / -1;align-items:start}.log-health-panel .insight-card:first-child strong{grid-column:1 / -1;white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:normal;overflow-wrap:anywhere;max-width:100%}.log-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,.2fr);gap:8px;margin-bottom:12px}.log-summary-grid .insight-card:first-child strong{white-space:normal;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}.insight-card{min-height:58px;border:1px solid rgba(137,169,177,.18);border-radius:8px;background:#05121894;display:grid;grid-template-columns:28px minmax(0,1fr);gap:9px;align-items:center;padding:10px}.insight-card svg{color:#9ed0ff;width:20px;height:20px}.insight-card span,.insight-card strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;grid-column:2}.insight-card span{color:#8ea8ae;font-size:10px;font-weight:900;text-transform:uppercase}.insight-card strong{color:#eafafa;font-size:12px;line-height:1.25;white-space:nowrap}.insight-card.ok svg,.insight-card.ok strong{color:var(--ok)}.insight-card.warn{border-color:#ffc24752;background:#63420929}.insight-card.warn svg,.insight-card.warn strong{color:var(--warn)}.route-story{min-height:58px;border:1px solid rgba(23,213,229,.18);border-radius:8px;background:#05151b52;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:stretch;padding:9px}.route-story>svg{display:none}.route-node{min-width:0;display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:start;align-content:center}.route-node svg{color:#9ed0ff;width:20px;height:20px}.route-node span,.route-node strong{display:block;grid-column:2;min-width:0;overflow:visible;text-overflow:clip;word-break:normal}.route-node span{color:#a9bdc2;font-size:11px;font-weight:800}.route-node strong{color:#f2fbfb;font-size:14px;white-space:normal;overflow:visible;overflow-wrap:anywhere;min-width:0}.route-node.wan svg,.route-node.wan strong{color:#57dc6c}.quick-action-card{width:100%;min-height:58px;border:1px solid rgba(137,169,177,.24);border-radius:8px;background:#112730c2;color:#effafa;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:9px 11px;text-align:left}.quick-action-card:hover{border-color:#69aefb75;box-shadow:0 0 14px #69aefb1a}.quick-action-card svg{color:#9ed0ff}.quick-action-card strong,.quick-action-card small{display:block;overflow:hidden;text-overflow:ellipsis}.quick-action-card strong{color:#f3fbfb;font-size:13px}.quick-action-card small{margin-top:2px;color:#9fb6bc;font-size:11px;line-height:1.3}.quick-action-card.accent{border-color:#69aefb6b;background:#265f916b}.quick-action-card.accent svg,.quick-action-card.accent strong{color:#bfe1ff}.quick-action-card.danger{border-color:#ff5e638c;background:#762429a3}.quick-action-card.danger svg,.quick-action-card.danger strong{color:#ffb2b6}.quick-action-card:disabled{opacity:.62;cursor:not-allowed}.wanq-panel{display:grid;gap:14px}.wanq-context,.wanq-detail-strip{display:flex;flex-wrap:wrap;gap:8px}.wanq-context span,.wanq-detail-strip span{min-height:30px;border:1px solid rgba(23,213,229,.2);border-radius:999px;background:#17d5e512;display:inline-flex;align-items:center;gap:6px;padding:0 10px;color:#9fb6bc;font-size:12px;font-weight:800}.wanq-context strong,.wanq-detail-strip strong{color:#f2fbfb}.wanq-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.wanq-warning,.wanq-route-card,.wanq-combined{border:1px solid rgba(255,194,71,.28);border-radius:8px;background:#63420921;display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:center;padding:12px}.wanq-warning p,.wanq-route-card p,.wanq-combined p{margin:0;color:#cbdce0;line-height:1.45}.wanq-results,.wanq-meaning,.wanq-history{display:grid;gap:10px}.wanq-scenario{border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f1352;display:grid;gap:10px;padding:12px}.wanq-live-panel,.wanq-speed-dashboard{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:stretch;margin:12px 0}.wanq-live-panel{grid-template-columns:minmax(160px,.8fr) repeat(3,minmax(150px,1fr));border:1px solid rgba(23,213,229,.24);border-radius:8px;background:linear-gradient(135deg,#17d5e514,#69aefb14),#040f135c;padding:12px}.traffic-wave{min-height:160px;border:1px solid rgba(23,213,229,.22);border-radius:8px;background:#040f1357;display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden}.traffic-wave span{width:8px;height:42px;border-radius:999px;background:linear-gradient(180deg,#62f7ff,#69aefb);box-shadow:0 0 18px #17d5e566;animation:trafficPulse 1s ease-in-out infinite}.traffic-wave span:nth-child(2){animation-delay:.14s}.traffic-wave span:nth-child(3){animation-delay:.28s}.traffic-wave span:nth-child(4){animation-delay:.42s}.wanq-gauge{min-height:160px;border:1px solid rgba(137,169,177,.2);border-radius:8px;background:radial-gradient(circle at 50% 42%,rgba(23,213,229,.1),transparent 55%),#040f136b;padding:10px;display:grid;justify-items:center;align-content:center;gap:6px;overflow:hidden}.wanq-gauge-face{width:132px;aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center;background:radial-gradient(circle at 50% 58%,#071820 0 42%,transparent 43%),conic-gradient(from 222deg,var(--accent) var(--gauge-angle),rgba(80,105,114,.42) 0 264deg,transparent 0)}.wanq-gauge-face:after{content:"";position:absolute;top:15px;right:15px;bottom:15px;left:15px;border-radius:50%;background:radial-gradient(circle,#06151bf0,#091c23e0);border:1px solid rgba(137,169,177,.16)}.wanq-gauge.upload .wanq-gauge-face{background:radial-gradient(circle at 50% 58%,#071820 0 42%,transparent 43%),conic-gradient(from 222deg,#9ed0ff var(--gauge-angle),rgba(80,105,114,.42) 0 264deg,transparent 0)}.wanq-gauge.latency .wanq-gauge-face{background:radial-gradient(circle at 50% 58%,#071820 0 42%,transparent 43%),conic-gradient(from 222deg,var(--warn) var(--gauge-angle),rgba(80,105,114,.42) 0 264deg,transparent 0)}.wanq-gauge.loss .wanq-gauge-face{background:radial-gradient(circle at 50% 58%,#071820 0 42%,transparent 43%),conic-gradient(from 222deg,var(--danger) var(--gauge-angle),rgba(80,105,114,.42) 0 264deg,transparent 0)}.wanq-gauge .needle{position:absolute;z-index:3;width:4px;height:48px;border-radius:999px;background:linear-gradient(180deg,#fff,#8acbff);transform-origin:50% 92%;transform:rotate(var(--needle-angle)) translateY(-14px);filter:drop-shadow(0 0 10px rgba(105,174,251,.45))}.wanq-gauge.is-measuring .needle{animation:gaugeSweep 1.4s ease-in-out infinite}.wanq-gauge .hub{position:absolute;z-index:4;width:15px;height:15px;border-radius:50%;background:#eaf8f8;box-shadow:0 0 16px #17d5e573}.wanq-gauge .tick{position:absolute;z-index:3;color:#c9d8dc;font-size:10px;font-weight:900}.wanq-gauge .t0{left:19px;bottom:33px}.wanq-gauge .t25{left:28px;top:36px}.wanq-gauge .t50{top:21px}.wanq-gauge .t75{right:25px;top:43px}.wanq-gauge-value{display:flex;align-items:baseline;gap:5px}.wanq-gauge-value strong{color:#f2fbfb;font-size:24px;line-height:1}.wanq-gauge-value span,.wanq-gauge p{color:#9fb6bc;font-size:12px;font-weight:800;margin:0}@keyframes gaugeSweep{0%{transform:rotate(-126deg) translateY(-14px)}50%{transform:rotate(82deg) translateY(-14px)}to{transform:rotate(-126deg) translateY(-14px)}}@keyframes trafficPulse{0%,to{transform:scaleY(.45);opacity:.55}50%{transform:scaleY(1.55);opacity:1}}.wanq-scenario-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.wanq-scenario-head strong,.wanq-results h3,.wanq-meaning h3,.wanq-history h3{color:#f2fbfb}.wanq-scenario-head p{margin:3px 0 0;color:#9fb6bc}.confidence{border:1px solid rgba(137,169,177,.24);border-radius:999px;padding:5px 10px;color:#cfe1e5;font-size:11px;font-weight:900;text-transform:uppercase}.confidence.medium,.confidence.high{border-color:#57dc6c59;color:#b8ffd0}.confidence.low{border-color:#ffc24761;color:#ffd884}.wanq-route-card{border-color:#69aefb3d;background:#1230416b}.wanq-route-card span,.wanq-metric span{color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.wanq-route-card strong{display:block;color:#dff7ff;font-size:13px;margin:2px 0}.wanq-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.wanq-metric{min-height:108px;border:1px solid rgba(137,169,177,.18);border-radius:8px;background:#0512188a;display:grid;grid-template-columns:24px minmax(0,1fr);gap:8px;align-content:start;padding:10px}.wanq-metric svg{color:#9ed0ff;margin-top:2px}.wanq-metric strong{display:block;margin-top:3px;color:#f2fbfb;font-size:16px}.wanq-metric p{margin:5px 0 0;color:#9fb6bc;font-size:11px;line-height:1.35}.wanq-metric.ok strong,.wanq-metric.ok svg{color:var(--ok)}.wanq-metric.warn strong,.wanq-metric.warn svg{color:var(--warn)}.wanq-combined{grid-template-columns:repeat(2,minmax(0,1fr))}.wanq-combined div{border:1px solid rgba(137,169,177,.2);border-radius:8px;background:#040f1352;padding:10px}.wanq-combined span{color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.wanq-combined strong{display:block;margin-top:4px;color:#b8ffd0;font-size:18px}.wanq-combined p{grid-column:1 / -1}.wanq-meaning>div,.wanq-history-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.wanq-meaning p,.wanq-history-item{border:1px solid rgba(137,169,177,.18);border-radius:8px;background:#040f134d;margin:0;padding:10px;color:#a9bdc2;line-height:1.45}.wanq-meaning strong,.wanq-history-item strong{color:#f2fbfb}.wanq-history-item span,.wanq-history-item p{display:block;margin:4px 0 0;color:#91aab0;font-size:12px}.code-block{background:#020d11bd;border-color:#73919947;color:#d8fbef}.ssh-dashboard-panel{display:grid;grid-template-columns:.78fr 1.22fr;gap:20px;align-items:center;min-height:126px}.ssh-key-intro{display:grid;grid-template-columns:48px 1fr;gap:14px;align-items:start}.ssh-key-intro svg{color:#e6eef0}.ssh-key-intro h2,.ssh-key-intro p{margin:0 0 8px}.ssh-key-intro p{color:#c0d2d6;font-size:13px;line-height:1.5}.public-key-box{position:relative;display:grid;gap:8px}.public-key-box>span{color:#c8dadd;font-weight:800;font-size:13px}.public-key-box button{position:absolute;top:36px;right:12px;width:38px;padding:0;display:inline-flex;align-items:center;justify-content:center}.key-note{min-height:32px;border:1px solid rgba(23,213,229,.35);border-radius:7px;background:#17d5e51a;color:#80def0;display:flex;align-items:center;padding:0 12px;font-size:13px}.routing-builder{border:1px solid rgba(23,213,229,.24);border-radius:8px;background:#05151b6b;padding:14px;margin:4px 0 18px}.dualwan-page{display:grid;gap:14px;container-type:inline-size}.dualwan-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px}.dualwan-hero h2,.dualwan-hero p{margin:0}.dualwan-hero p{margin-top:6px;color:#bdd2d6;font-size:13px;line-height:1.45}.dualwan-summary{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px;min-width:min(680px,100%)}.dualwan-summary span{min-height:54px;border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f135c;display:grid;align-content:center;gap:3px;padding:8px 10px;color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.dualwan-summary strong{color:#f2fbfb;font-size:15px;text-transform:none}@container (max-width: 1050px){.dualwan-hero{grid-template-columns:1fr;align-items:stretch}.dualwan-summary{min-width:0;width:100%;grid-template-columns:repeat(4,minmax(120px,1fr))}}@container (max-width: 620px){.dualwan-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (max-width: 360px){.dualwan-summary{grid-template-columns:1fr}}.dualwan-builder{margin-top:10px}.dualwan-controls{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(150px,.7fr) auto}.dualwan-rule-table{border:1px solid rgba(137,169,177,.22);border-radius:8px;overflow:hidden;background:#040f1347}.dualwan-rule-head,.dualwan-rule-row{display:grid;grid-template-columns:minmax(170px,1fr) minmax(170px,1fr) minmax(150px,.72fr) 48px;gap:0;align-items:center}.dualwan-rule-head{min-height:38px;background:#ffffff0f;color:#cfe1e5;font-size:12px;font-weight:900}.dualwan-rule-head span,.dualwan-rule-row input,.dualwan-rule-row select{border:0;border-right:1px solid rgba(137,169,177,.18)}.dualwan-rule-head span{padding:0 10px}.dualwan-rule-row{min-height:46px;border-top:1px solid rgba(137,169,177,.14)}.dualwan-rule-row input,.dualwan-rule-row select{width:100%;height:46px;border-radius:0;background:#040f132e;color:#f3fbfb;padding:0 10px;outline:0}.dualwan-rule-row input:focus,.dualwan-rule-row select:focus{box-shadow:inset 0 0 0 2px #17d5e547}.dualwan-rule-row button{width:100%;height:46px;border:0;background:#ff5e6314;color:#ffb2b6;display:inline-flex;align-items:center;justify-content:center}.dualwan-preset-list{margin-top:14px}.builder-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.builder-head h3{margin:0 0 5px;font-size:15px}.builder-head p{margin:0;color:#a9bdc2;font-size:13px;line-height:1.45}.priority-flow{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-bottom:12px}.priority-flow span{min-height:34px;border:1px solid rgba(137,169,177,.24);border-radius:8px;background:#1b3039b8;display:inline-flex;align-items:center;gap:8px;padding:0 10px;color:#cfe1e5;font-size:12px;font-weight:800}.priority-flow strong{color:#80def0}.priority-flow svg{align-self:center;color:#6f8991}.builder-controls{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(180px,1.2fr) minmax(145px,.8fr) auto;gap:8px;margin-bottom:12px}.builder-controls input,.builder-controls select{min-height:38px;border:1px solid rgba(139,171,179,.32);border-radius:8px;background:#040f1385;color:#f3fbfb;padding:0 10px}.rule-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.rule-column{min-height:128px;border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#091c2399;padding:10px}.rule-column.cyan{border-color:#17d5e547}.rule-column.blue{border-color:#69aefb47}.rule-column.green{border-color:#57dc6c3d}.rule-column-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.rule-column-head span{min-width:42px;min-height:24px;border-radius:999px;display:inline-grid;place-items:center;background:#ffffff14;color:#80def0;font-size:12px;font-weight:900}.rule-column-head strong{color:#f2fbfb;font-size:13px}.rule-block{min-height:46px;border:1px solid rgba(137,169,177,.2);border-radius:8px;background:#040f137a;padding:8px;display:grid;grid-template-columns:minmax(0,1fr) 28px;gap:8px;align-items:center;margin-bottom:7px}.rule-block strong,.rule-block span{display:block;overflow:hidden;text-overflow:ellipsis}.rule-block strong{color:#f3fbfb;font-size:12px}.rule-block span{margin-top:3px;color:#9ed0ff;font-size:11px;font-weight:800}.rule-block button{width:28px;height:28px;border:1px solid rgba(137,169,177,.2);border-radius:7px;background:#ffffff0d;color:#d5e8ec;display:inline-flex;align-items:center;justify-content:center}.template-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.template-strip>span{min-height:32px;display:inline-flex;align-items:center;color:#a9bdc2;font-size:12px;font-weight:900}.template-strip button{min-height:32px;border:1px solid rgba(105,174,251,.28);border-radius:999px;background:#69aefb14;color:#bcdcff;display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:850}.route-visualizer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.route-stage{min-height:62px;border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f1347;display:grid;grid-template-columns:30px minmax(0,1fr) 30px;gap:10px;align-items:center;padding:10px}.route-stage svg{color:#9ed0ff;width:20px;height:20px}.route-stage strong,.route-stage span{display:block;overflow:hidden;text-overflow:ellipsis}.route-stage strong{color:#eefafa;font-size:12px;white-space:nowrap}.route-stage span{margin-top:3px;color:#91aab0;font-size:11px;white-space:nowrap}.route-stage em{width:30px;height:30px;border-radius:999px;background:#ffffff12;color:#f3fbfb;display:inline-grid;place-items:center;font-style:normal;font-size:12px;font-weight:900}.route-stage.cyan{border-color:#17d5e547}.route-stage.blue{border-color:#69aefb4d}.route-stage.green{border-color:#57dc6c47}.dashboard-code-panel .route-visualizer{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-code-panel .route-stage{min-height:58px}.wan-overview-panel{margin-top:14px}.wan-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wan-card{border:1px solid rgba(137,169,177,.24);border-radius:8px;background:linear-gradient(145deg,#112b34d1,#06151bdb);padding:12px;min-width:0}.wan-card.active{border-color:#57dc6c8c;box-shadow:0 0 0 1px #57dc6c2e,0 0 26px #57dc6c1f;animation:activeWanPulse 2.8s ease-in-out infinite}.wan-card.warn{border-color:#ffc24780}.wan-card.offline{border-color:#ff5e6375;opacity:.9}.wan-limited-detail{display:flex;align-items:flex-start;gap:7px;margin:-2px 0 10px;color:#ffe1a3;font-size:11px;line-height:1.4}.wan-limited-detail svg{flex:0 0 auto;margin-top:1px}.wan-card-head{display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:10px;align-items:center;margin-bottom:12px}.wan-card-head strong,.wan-card-head p{display:block;margin:0;overflow:hidden;text-overflow:ellipsis}.wan-card-head strong{color:#f3fbfb;font-size:16px}.wan-card-head p{margin-top:3px;color:#a9bdc2;font-size:12px}.wan-card-head em{min-height:26px;border:1px solid rgba(87,220,108,.38);border-radius:999px;display:inline-flex;align-items:center;padding:0 9px;color:#b8ffd0;background:#57dc6c1f;font-style:normal;font-size:11px;font-weight:900}.wan-health-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}.wan-health-row span{min-height:34px;border:1px solid rgba(137,169,177,.18);border-radius:8px;background:#040f135c;display:flex;align-items:center;gap:6px;padding:6px 8px;color:#a9bdc2;font-size:11px;font-weight:800;min-width:0}.wan-health-row span strong{color:#f2fbfb;white-space:nowrap}.wan-health-row .ok,.wan-health-row .ok svg{color:var(--ok)}.wan-health-row .warn,.wan-health-row .warn svg{color:var(--warn)}.wan-health-row .bad,.wan-health-row .bad svg{color:var(--danger)}.wan-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:10px}.wan-metrics span{min-height:42px;border:1px solid rgba(137,169,177,.18);border-radius:8px;background:#040f135c;padding:7px 9px;color:#9fb6bc;font-size:11px;font-weight:800}.wan-metrics strong{display:block;margin-top:3px;color:#eefafa;font-size:12px;overflow:hidden;text-overflow:ellipsis}.wan-metrics small{display:block;margin-top:2px;color:#6f8991;font-size:10px;line-height:1.2;overflow:hidden;text-overflow:ellipsis}.wan-hints{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.wan-hints span{min-height:30px;border:1px solid rgba(23,213,229,.22);border-radius:999px;background:#17d5e514;display:inline-flex;align-items:center;padding:0 10px;color:#b9dce3;font-size:12px;font-weight:800}.authority-unlock,.flash-policy-box,.flash-status-card,.domain-policy-box,.routing-guidance{border:1px solid rgba(137,169,177,.22);border-radius:8px;background:#040f1361;display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px;margin:10px 0 14px}.flash-policy-box,.flash-status-card,.domain-policy-box,.routing-guidance{grid-template-columns:28px minmax(0,1fr)}.authority-unlock.ok,.flash-status-card.ok,.domain-policy-box.ok,.routing-guidance.ok{border-color:#57dc6c52;background:#1d5c3324}.authority-unlock.warn,.flash-status-card.warn,.domain-policy-box.warn,.routing-guidance.warn{border-color:#ffc2475c;background:#63420929}.authority-unlock strong,.flash-policy-box strong,.flash-status-card strong,.domain-policy-box strong,.routing-guidance strong{display:block;color:#f2fbfb;font-size:13px}.authority-unlock p,.flash-policy-box p,.flash-status-card p,.domain-policy-box p,.routing-guidance p{margin:3px 0 0;color:#a9bdc2;font-size:12px;line-height:1.45}.authority-unlock button,.routing-flow-node button,.owner-guide-card button,.routing-tool-actions button{min-height:32px;border:1px solid rgba(105,174,251,.34);border-radius:7px;background:#69aefb1a;color:#bfe1ff;padding:0 10px;font-size:12px;font-weight:850}.authority-unlock button:disabled{opacity:.5;cursor:not-allowed}.domain-policy-box.muted{border-color:#89a9b12e;background:#040f1347}.capability-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}.capability-pills span{min-height:26px;border:1px solid rgba(137,169,177,.18);border-radius:999px;display:inline-flex;align-items:center;padding:0 9px;color:#a9bdc2;background:#040f1361;font-size:11px;font-weight:850}.capability-pills span.ok{border-color:#57dc6c57;color:#b8ffd0}.capability-pills span.warn{border-color:#ffc2475c;color:#ffd884}.backup-action-grid,.restore-grid,.owner-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}.restore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.restore-grid .check-row,.backup-file-summary{border:1px solid rgba(137,169,177,.2);border-radius:8px;background:#040f1357;padding:10px;margin:0}.restore-grid .check-row span,.backup-file-summary div{display:grid;gap:3px}.restore-grid small,.backup-file-summary span{color:#91aab0;font-size:12px;line-height:1.35}.backup-file-summary{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;margin:10px 0 14px}.backup-steps{margin:0;padding-left:20px;color:#dcebed;display:grid;gap:9px;font-size:13px;line-height:1.45}.routing-map-panel,.routing-owner-panel{overflow:hidden}.routing-stack-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;gap:10px;margin-bottom:12px;align-items:stretch}.routing-stack-summary>div,.routing-lane,.owner-guide-card{border:1px solid rgba(137,169,177,.2);border-radius:8px;background:#040f1357;padding:10px}.routing-stack-summary span,.routing-lane span{display:block;color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.routing-stack-summary strong,.routing-lane strong{display:block;margin-top:3px;color:#f2fbfb;font-size:14px;white-space:normal}.logic-pill{border:1px solid rgba(137,169,177,.22);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-width:190px;min-height:52px;padding:8px 18px;color:#cfe1e5;font-size:12px;font-weight:900;line-height:1.2;text-align:center;white-space:normal}.logic-pill.active{border-color:#57dc6c66;color:#b8ffd0;background:#57dc6c1a}.logic-pill.inactive{border-color:#ffc24766;color:#ffd884;background:#63420924}.routing-water-map{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}.routing-flow-node{min-height:122px;border:1px solid rgba(137,169,177,.22);border-radius:8px;background:linear-gradient(145deg,#112b34c7,#06151bd1);display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-content:start;padding:12px}.routing-flow-node svg{color:#9ed0ff}.routing-flow-node span,.routing-flow-node strong,.routing-flow-node p{display:block;min-width:0}.routing-flow-node span{color:#91aab0;font-size:11px;font-weight:900;text-transform:uppercase}.routing-flow-node strong{margin-top:4px;color:#f2fbfb;font-size:15px}.routing-flow-node p{margin:5px 0 0;color:#a9bdc2;font-size:12px;line-height:1.35}.routing-flow-node button{grid-column:1 / -1;justify-self:start;margin-top:6px}.routing-flow-node.green{border-color:#57dc6c47}.routing-flow-node.cyan{border-color:#17d5e547}.routing-flow-node.blue{border-color:#69aefb47}.routing-flow-node.muted{opacity:.78}.routing-lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.routing-lane p{margin:5px 0 0;color:#9fb6bc;font-size:12px;line-height:1.35}.owner-guide-card{display:grid;gap:8px}.owner-guide-card.active{border-color:#57dc6c61;box-shadow:inset 0 0 0 1px #57dc6c14}.owner-guide-card.warn{border-color:#ffc24761}.owner-guide-card strong{color:#f2fbfb}.owner-guide-card p{margin:0;color:#a9bdc2;font-size:12px;line-height:1.4}.routing-tool-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}@keyframes activeWanPulse{0%,to{box-shadow:0 0 0 1px #57dc6c2e,0 0 18px #57dc6c1a}50%{box-shadow:0 0 0 1px #57dc6c59,0 0 34px #57dc6c38}}@media(max-width:900px){.app-shell{grid-template-columns:1fr}.sidebar{position:static}.sidebar nav{display:flex;overflow-x:auto;padding-bottom:6px}.sidebar nav button{min-width:138px}.sidebar-connection,.sidebar-note,.sidebar-version{display:none}.main{padding:0 14px 18px}.topbar{margin:0 -14px 14px;padding:10px 14px;align-items:stretch;flex-direction:column}.router-status-strip{overflow-x:auto;padding-bottom:4px}.topbar-actions{width:100%;display:grid;grid-template-columns:1fr auto auto}.status-card-grid,.dashboard-main-grid,.dashboard-lower-grid,.dualwan-hero,.dualwan-summary,.wan-overview-grid,.routing-water-map,.routing-lanes,.routing-stack-summary,.smartwan-preset-grid,.wanq-live-panel,.wanq-speed-dashboard,.backup-action-grid,.restore-grid,.owner-guide-grid,.insight-strip,.route-visualizer,.ssh-dashboard-panel,.compatibility-content,.rule-columns,.panel-grid.two,.form-grid,.stat-grid{grid-template-columns:1fr}.status-card{grid-template-columns:42px 1fr}.ring-grid{grid-template-columns:1fr 1fr}.security-checks,.route-story,.wan-health-row{grid-template-columns:1fr}.route-story>svg{display:none}.builder-controls,.dualwan-controls,.dualwan-rule-head,.dualwan-rule-row{grid-template-columns:1fr}.dualwan-rule-head{display:none}.dualwan-rule-row{border:1px solid rgba(137,169,177,.18);border-radius:8px;overflow:hidden;margin-bottom:8px}}@media(max-width:520px){.brand strong{font-size:21px}.ring-grid{grid-template-columns:1fr}.alert-row{grid-template-columns:22px 1fr}.alert-row button{grid-column:1 / -1}}.service-routing-manager{container-name:routing-manager;container-type:inline-size;display:grid;min-width:0;gap:14px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.service-routing-heading,.service-preset-heading,.routing-subpanel-heading,.routing-ai-provider-bar,.routing-draft-footer{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:14px}.service-routing-heading h3{margin:3px 0 5px;font-size:1.2rem}.service-routing-heading p,.service-preset-heading span,.routing-policy-composer-title span,.routing-ai-provider-bar span,.routing-draft-footer span{display:block;color:var(--muted);font-size:.82rem;line-height:1.45}.routing-capacity{display:grid;min-width:92px;justify-items:center;padding:9px 14px;border:1px solid rgba(23,213,229,.34);border-radius:12px;background:#061a209e}.routing-capacity strong{color:var(--accent);font-size:1.08rem}.routing-capacity span{color:var(--muted);font-size:.72rem}.routing-policy-composer{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:10px;padding:14px;border:1px solid rgba(23,213,229,.35);border-radius:14px;background:linear-gradient(135deg,rgba(23,213,229,.08),transparent 50%),#05181ebd}.routing-policy-composer-title{display:flex;grid-column:1 / -1;align-items:center;gap:10px}.routing-policy-composer-title>div,.service-preset-heading>div,.routing-subpanel-heading>div{display:flex;min-width:0;flex-direction:column;row-gap:5px}.routing-policy-composer-title svg{color:var(--accent)}.routing-policy-composer label,.routing-generator-grid label,.routing-ai-config label{display:grid;min-width:0;gap:6px;color:var(--muted);font-size:.78rem;font-weight:700}.routing-policy-composer label>span{min-height:1.2em;white-space:normal;word-break:normal;overflow-wrap:normal}.routing-policy-composer input,.routing-policy-composer select,.routing-generator-grid input,.routing-generator-grid select,.routing-generator-grid textarea,.routing-ai-config input,.routing-ai-config select,.routing-group-toolbar input,.routing-group-toolbar select,.routing-bulk-toolbar select,.routing-group-summary select,.routing-generator-panel>textarea,.generated-prompt textarea{min-width:0;max-width:100%;width:100%;border:1px solid #36545d;border-radius:9px;padding:9px 10px;color:var(--text);background:#091d23}.routing-composer-arrow{display:none}.primary-mini-button,.service-preset-heading button,.routing-preset-actions button,.routing-subpanel-heading button,.routing-ai-provider-bar button,.routing-action,.routing-group-toolbar button,.routing-bulk-toolbar button,.routing-group-menu button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:7px;border:1px solid #3b5d66;border-radius:9px;padding:7px 11px;color:var(--text);background:#132d35e6;font-size:.8rem;font-weight:750}.primary-mini-button,.routing-action.primary{border-color:#69aefbb8;background:linear-gradient(135deg,#2b75b8,#4f83bf);color:#06151a}.routing-policy-composer>.primary-mini-button{min-width:0;width:100%;white-space:normal}.routing-action.danger,.routing-group-menu .danger,.routing-bulk-toolbar .danger{border-color:#ff5e6373;color:#ffb2b5;background:#64181d52}.routing-collapsible,.routing-generator-panel{overflow:hidden;border:1px solid var(--line);border-radius:13px;background:#071a2094}.routing-collapsible>summary{cursor:pointer;list-style:none;padding:13px 14px}.routing-collapsible>summary::-webkit-details-marker{display:none}.routing-collapsible[open]>summary{border-bottom:1px solid var(--line)}.routing-collapsible[open]>summary>svg{transform:rotate(180deg)}.routing-collapsible-body{padding:12px}.routing-preset-actions{justify-content:flex-end;margin-bottom:10px}.service-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:9px}.service-preset-card{display:grid;min-width:0;min-height:132px;align-content:start;gap:5px;border:1px solid #2c4a53;border-radius:11px;padding:11px;text-align:left;color:var(--text);background:#0a2128db}.service-preset-card:hover{border-color:#17d5e59e;transform:translateY(-1px)}.service-preset-card>span:first-child{color:var(--accent);font-size:.66rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.service-preset-card small,.service-preset-card em{color:var(--muted);font-size:.72rem;font-style:normal;overflow-wrap:anywhere}.service-preset-card.verified{border-color:#57dc6c6b;background:#18422d52}.service-preset-card .preset-risk-note{color:var(--warn)}.preset-direct-action{display:inline-flex;align-items:center;gap:5px;margin-top:auto;color:var(--ok);font-size:.72rem;font-weight:800}.google-location-policy{display:grid;gap:12px;margin-top:12px;padding:13px;border:1px solid rgba(105,174,251,.3);border-radius:12px;background:linear-gradient(135deg,rgba(105,174,251,.09),transparent 48%),#061920cc}.google-location-policy.active{border-color:#57dc6c7a;box-shadow:inset 0 0 0 1px #57dc6c14}.google-location-policy-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.google-location-policy-heading>svg{color:#69aefb}.google-location-policy-heading>div{display:grid;gap:4px}.google-location-policy-heading strong{color:var(--text)}.google-location-policy-heading span,.google-location-note,.google-location-results small{color:var(--muted);font-size:.76rem;line-height:1.45}.google-location-toggle{display:inline-flex;align-items:center;gap:7px;color:var(--text);font-size:.78rem;font-weight:800}.google-location-policy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.google-location-policy-grid label{display:grid;min-width:0;gap:6px;color:var(--muted);font-size:.76rem;font-weight:750}.google-location-policy-grid input,.google-location-policy-grid select{width:100%;min-width:0;border:1px solid #36545d;border-radius:9px;padding:9px 10px;color:var(--text);background:#091d23}.google-location-key-field{grid-column:span 2}.google-location-source-picker{grid-column:span 2;min-width:0;margin:0;padding:9px 10px 10px;border:1px solid #36545d;border-radius:9px;background:#091d23}.google-location-source-picker legend{padding:0 5px;color:var(--muted);font-size:.76rem;font-weight:750}.google-location-source-picker>small{display:block;margin-bottom:7px;color:var(--muted);font-size:.72rem}.google-location-source-picker>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:150px;overflow:auto}.google-location-policy-grid .google-location-source-picker label{min-height:34px;padding:6px 8px;display:flex;align-items:center;grid-template-columns:none;gap:7px;border:1px solid var(--line);border-radius:7px;background:#041318b3;color:var(--text);font-weight:650;cursor:pointer}.google-location-policy-grid .google-location-source-picker input{width:auto;min-width:auto;margin:0;padding:0;accent-color:var(--mode-accent)}.google-location-source-picker .google-location-manual-source{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;max-height:none;margin-top:8px;overflow:visible}.google-location-source-picker .google-location-manual-source input{width:100%;min-width:0;padding:8px 9px;border:1px solid var(--line);border-radius:7px;background:var(--input);color:var(--text)}.google-location-source-picker .google-location-manual-source button{min-height:34px;white-space:nowrap}.google-location-note{display:flex;align-items:flex-start;gap:7px;margin:0;padding:9px 10px;border-left:3px solid var(--warn);background:#ffc24712}.google-location-priority-note{display:flex;align-items:flex-start;gap:7px;margin:0;padding:9px 10px;border-left:3px solid var(--ok);background:#57dc6c0f;color:var(--muted);font-size:.76rem;line-height:1.45}.google-location-runtime-note{display:flex;align-items:flex-start;gap:7px;margin:0;padding:9px 10px;border-left:3px solid var(--accent-strong);background:#69aefb0f;color:var(--muted);font-size:.76rem;line-height:1.45}.google-location-runtime-note svg{flex:0 0 auto;color:var(--accent-strong)}.google-location-priority-note svg{flex:0 0 auto;color:var(--ok)}.google-location-note svg{flex:0 0 auto;color:var(--warn)}.google-location-instructions{border:1px solid rgba(105,174,251,.24);border-radius:9px;background:#071d24a6;overflow:hidden}.google-location-instructions summary{cursor:pointer;padding:9px 11px;color:#9dcafd;font-size:.78rem;font-weight:850}.google-location-instructions ol{display:grid;gap:5px;margin:0;padding:2px 28px 8px 34px;color:var(--muted);font-size:.75rem;line-height:1.45}.google-location-instructions a{color:#80def0;font-weight:800}.google-location-instructions p{margin:0 10px 10px;padding:8px 9px;border-radius:7px;background:#57dc6c14;color:#a9efb4;font-size:.74rem;line-height:1.45}.google-location-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.google-location-results>div{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#05161bb8}.google-location-results>div.ok{border-color:#57dc6c59}.google-location-results>div.warn{border-color:#ff5e6361}.google-location-results span{color:var(--muted);font-size:.7rem}.google-location-results strong{color:var(--text);font-size:.84rem}.google-location-save-status{align-self:center;color:var(--ok);font-size:.76rem;font-weight:800}.google-location-report{display:grid;gap:9px;padding:11px;border:1px solid rgba(255,194,71,.38);border-left:3px solid var(--warn);border-radius:10px;background:#ffc2470f}.google-location-report-heading,.google-location-report-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.google-location-report-heading>svg{flex:0 0 auto;color:var(--warn)}.google-location-report-heading>div,.google-location-report-row>div:first-child{display:grid;gap:3px;min-width:0}.google-location-report p,.google-location-report>small{margin:0;color:var(--muted);font-size:.74rem;line-height:1.45}.google-location-report-row{padding:9px 10px;border:1px solid rgba(255,94,99,.28);border-radius:9px;background:#05161bb8}.google-location-report-row span,.google-location-report-row small{color:var(--muted);font-size:.72rem}.google-location-report-row .button-row{flex:0 0 auto}.google-location-report-row a.routing-action{text-decoration:none}@media(max-width:760px){.google-location-report-heading,.google-location-report-row{display:grid}.google-location-report-row .button-row,.google-location-report-row .button-row>*{width:100%}}.routing-generator-panel{display:grid;gap:12px;padding:13px}.routing-subpanel-heading>div{display:flex;align-items:center;gap:8px}.routing-subpanel-heading svg,.routing-ai-provider-bar svg{color:var(--accent)}.routing-generator-grid,.routing-ai-config{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.routing-wide-field,.routing-ai-security-note,.routing-ai-config .button-row{grid-column:1 / -1}.routing-checkbox-row,.routing-generator-panel .button-row{display:flex;flex-wrap:wrap;align-items:center;gap:9px}.routing-checkbox-row label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.78rem}.routing-ai-provider-bar{padding:10px 11px;border:1px solid #2f5059;border-radius:10px;background:#081e24d6}.routing-ai-config{padding:12px;border:1px solid rgba(105,174,251,.28);border-radius:11px;background:#0f263485}.field-hint,.routing-ai-security-note{color:#8fc4cd;font-size:.72rem;font-weight:500;line-height:1.45}.routing-ai-security-note{padding:9px 10px;border-left:3px solid var(--accent);background:#17d5e50f}.generated-prompt{display:grid;gap:9px}.routing-validation-report{display:grid;gap:7px;padding:11px;border:1px solid var(--line);border-radius:10px}.routing-validation-report.ok{border-color:#57dc6c70}.routing-validation-report.error{border-color:#ff5e6370}.routing-empty-ai-result{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:12px;padding:10px;border:1px solid rgba(255,194,71,.4);border-radius:9px;background:#533d0d2e}.routing-empty-ai-result>div{display:grid;min-width:0;gap:4px}.routing-empty-ai-result span{color:var(--muted);font-size:.76rem;line-height:1.45}.routing-validation-rules{display:grid;max-height:280px;gap:6px;overflow:auto}.routing-validation-rules>div{display:grid;grid-template-columns:minmax(130px,.7fr) auto minmax(180px,1fr);gap:8px;align-items:center;padding:7px 8px;border-radius:8px;background:#05161bb8}.routing-group-toolbar,.routing-bulk-toolbar{display:flex;flex-wrap:wrap;min-width:0;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#071b219e}.routing-search,.routing-filter{display:flex;min-width:180px;flex:1 1 220px;align-items:center;gap:6px}.routing-bulk-toolbar>label,.routing-bulk-toolbar>span{color:var(--muted);font-size:.78rem}.routing-bulk-feedback{display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid rgba(87,220,108,.4);border-radius:10px;color:var(--ok);background:#18422d47;font-size:.78rem;line-height:1.4}.routing-bulk-feedback svg{flex:0 0 auto}.routing-bulk-toolbar select{flex:1 1 180px}.routing-group-list{display:grid;gap:9px}.routing-group-card{overflow:visible;border:1px solid #2d4b54;border-left-width:4px;border-radius:11px;background:#081c22c7}.routing-group-card.synced{border-left-color:var(--ok)}.routing-group-card.pending,.routing-group-card.partial{border-left-color:var(--warn)}.routing-group-card.draft{border-left-color:var(--accent-strong)}.routing-group-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 10px}.routing-group-toggle{display:grid;grid-template-columns:minmax(160px,1fr) minmax(280px,auto) auto;width:100%;min-width:0;align-items:center;gap:12px;border:0;color:var(--text);text-align:left;background:transparent}.routing-group-toggle>div:first-child{display:grid;gap:2px}.routing-group-toggle span,.routing-group-toggle small{color:var(--muted);font-size:.72rem}.routing-group-meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:7px}.routing-source-badge{max-width:250px;overflow:hidden;border:1px solid rgba(23,213,229,.3);border-radius:999px;padding:3px 7px;color:#a9edf1!important;background:#17d5e514;text-overflow:ellipsis;white-space:nowrap}.sync-badge{border-radius:999px;padding:3px 7px;color:var(--warn);background:#ffc2471f}.sync-badge.synced{color:var(--ok);background:#57dc6c1f}.routing-group-menu{position:relative}.routing-group-menu>summary{cursor:pointer;list-style:none;border:1px solid #36545d;border-radius:8px;padding:5px 8px}.routing-group-menu>div{position:absolute;z-index:12;top:calc(100% + 5px);right:0;display:grid;min-width:210px;gap:6px;padding:8px;border:1px solid #40616a;border-radius:10px;background:#0b232a;box-shadow:var(--shadow)}.routing-group-body{display:grid;gap:10px;padding:0 10px 10px}.routing-group-summary{display:grid;grid-template-columns:repeat(2,minmax(190px,1fr)) auto auto;align-items:end;gap:8px;padding:10px;border-radius:9px;background:#0f2a31ad}.routing-group-summary label{display:grid;gap:5px;color:var(--muted);font-size:.73rem}.routing-mixed-section-info{display:grid;grid-column:1 / span 2;gap:4px;min-width:0}.routing-mixed-section-info span{color:var(--muted);font-size:.74rem;line-height:1.4}.routing-source-subgroups{display:grid;gap:12px}.routing-source-subgroup{display:grid;min-width:0;gap:9px;border:1px solid #31525b;border-radius:11px;padding:10px;background:#071b219e}.routing-source-subgroup-head{display:grid;grid-template-columns:minmax(180px,1fr) minmax(190px,1fr) minmax(170px,.8fr);align-items:end;gap:10px}.routing-source-subgroup-head>div,.routing-source-subgroup-head label{display:grid;min-width:0;gap:5px}.routing-source-subgroup-head>div span,.routing-source-subgroup-head label>span{color:var(--muted);font-size:.7rem}.routing-source-subgroup-head select{min-width:0;width:100%;border:1px solid #36545d;border-radius:9px;padding:9px 10px;color:var(--text);background:#091d23}.routing-group-rule-table{max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:9px}.routing-group-rule-head,.routing-group-rule-row{display:grid;grid-template-columns:minmax(190px,1.2fr) minmax(150px,.8fr) minmax(105px,.55fr) 42px;min-width:560px;align-items:center;gap:8px;padding:8px 9px}.routing-group-rule-head{position:sticky;z-index:2;top:0;color:var(--muted);background:#102d35;font-size:.7rem;font-weight:800;text-transform:uppercase}.routing-group-rule-row{border-top:1px solid var(--line);font-size:.76rem}.routing-group-rule-row code{overflow-wrap:anywhere}.routing-rule-destination-input,.routing-rule-wan-select{width:100%;min-width:0;border:1px solid #36545d;border-radius:8px;padding:8px 9px;color:var(--text);background:#091d23;font:inherit}.routing-rule-destination-input:focus,.routing-rule-wan-select:focus{border-color:var(--cyan);outline:2px solid rgba(35,207,220,.14)}.routing-group-rule-row button{display:grid;place-items:center;border:0;color:#ff9da1;background:transparent}.routing-draft-footer{position:sticky;z-index:5;bottom:10px;padding:10px 12px;border:1px solid rgba(255,194,71,.54);border-radius:11px;background:#1f1e12f7;box-shadow:0 10px 35px #00000057}.routing-draft-footer>svg{flex:0 0 auto;color:var(--warn)}.routing-draft-footer>div{min-width:0;flex:1 1 auto}.manual-routing-editor{margin-top:14px;border:1px solid var(--line);border-radius:11px}.manual-routing-editor>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;cursor:pointer;list-style:none;padding:12px}.manual-routing-editor>summary::-webkit-details-marker{display:none}.manual-routing-editor>summary>div{display:flex!important;min-width:0;flex-direction:column;row-gap:7px}.manual-routing-editor>summary strong,.manual-routing-editor>summary span{display:block;min-width:0;line-height:1.4}.manual-routing-editor>summary span{margin:0;color:var(--muted);font-size:.8rem;font-weight:400}.manual-routing-editor>summary strong{margin:0}.manual-routing-editor>summary::marker{content:""}.manual-routing-editor>summary>svg{transition:transform .16s ease}.manual-routing-editor[open]>summary>svg{transform:rotate(180deg)}@container routing-manager (max-width: 820px){.routing-policy-composer{grid-template-columns:repeat(2,minmax(0,1fr))}.routing-generator-grid,.routing-ai-config,.routing-group-summary,.google-location-policy-grid,.google-location-results{grid-template-columns:minmax(0,1fr)}.google-location-key-field,.google-location-source-picker{grid-column:auto}.google-location-source-picker>div{grid-template-columns:minmax(0,1fr)}.google-location-source-picker .google-location-manual-source{grid-template-columns:minmax(0,1fr)}.routing-ai-security-note,.routing-ai-config .button-row,.routing-wide-field{grid-column:auto}.routing-validation-rules>div{grid-template-columns:minmax(0,1fr)}.routing-group-toggle{grid-template-columns:minmax(0,1fr) auto}.routing-group-meta{grid-column:1 / -1;grid-row:2;justify-content:flex-start}.routing-source-subgroup-head{grid-template-columns:minmax(0,1fr);align-items:stretch}.routing-mixed-section-info{grid-column:auto}}@container routing-manager (max-width: 540px){.routing-policy-composer{grid-template-columns:minmax(0,1fr)}.service-routing-heading,.service-preset-heading,.routing-subpanel-heading,.routing-ai-provider-bar,.routing-draft-footer{align-items:stretch;flex-direction:column}.service-preset-grid{grid-template-columns:minmax(0,1fr)}.google-location-policy-heading{grid-template-columns:auto minmax(0,1fr)}.google-location-toggle{grid-column:1 / -1}.google-location-policy .button-row{align-items:stretch;flex-direction:column}.google-location-policy .button-row button{width:100%;min-height:44px}.routing-capacity{justify-self:start}.routing-policy-composer,.routing-collapsible-body,.routing-generator-panel{padding:10px}.routing-policy-composer>.primary-mini-button,.routing-preset-actions button,.routing-subpanel-heading button,.routing-ai-provider-bar button,.routing-draft-footer button{width:100%;min-height:44px}.routing-empty-ai-result{align-items:stretch;flex-direction:column}.routing-empty-ai-result button{width:100%;min-height:44px}.routing-group-toolbar,.routing-bulk-toolbar{align-items:stretch;flex-direction:column}.routing-search,.routing-filter,.routing-bulk-toolbar select,.routing-group-toolbar button,.routing-bulk-toolbar button{width:100%;min-width:0;flex-basis:auto}.routing-group-header{grid-template-columns:auto minmax(0,1fr)}.routing-group-menu{grid-column:2;justify-self:end}.routing-source-badge{max-width:180px}.routing-source-subgroup{padding:8px}.routing-group-rule-table{max-height:420px}.routing-group-rule-head{display:none}.routing-group-rule-row{grid-template-columns:minmax(0,1fr) auto;min-width:0;gap:10px;padding:11px}.routing-group-rule-row>[data-label]{display:grid;grid-column:1;gap:3px}.routing-group-rule-row>[data-label]:before{content:attr(data-label);color:var(--muted);font-family:inherit;font-size:.64rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.routing-group-rule-row>button{grid-column:2;grid-row:1 / span 3;align-self:center;min-width:40px;min-height:40px}}.setup-wizard-panel,.setup-wizard-hidden{grid-column:1 / -1;margin-bottom:18px;overflow:hidden}.setup-wizard-panel>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:18px;list-style:none;cursor:pointer}.setup-wizard-panel>summary::-webkit-details-marker{display:none}.setup-wizard-panel>summary h2,.setup-wizard-panel>summary p{margin:0}.setup-wizard-panel>summary p{margin-top:4px;color:var(--muted);line-height:1.45}.setup-wizard-summary-icon{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(23,213,229,.38);border-radius:12px;background:#17d5e514;color:var(--accent)}.setup-ready-badge{padding:7px 10px;border:1px solid rgba(255,194,71,.36);border-radius:999px;background:#ffc24714;color:var(--warn);font-size:.75rem;font-weight:850;white-space:nowrap}.setup-ready-badge.ok{border-color:#57dc6c61;background:#57dc6c14;color:var(--ok)}.setup-summary-chevron{color:var(--muted);transition:transform .16s ease}.setup-wizard-panel[open] .setup-summary-chevron{transform:rotate(180deg)}.setup-wizard-body{display:grid;gap:15px;padding:0 18px 18px;border-top:1px solid var(--line)}.setup-wizard-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:15px}.setup-step-list{display:flex;flex-wrap:wrap;gap:7px}.setup-step-pill,.setup-hide-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#041318ad;color:var(--muted);font-weight:750}.setup-wizard-body button,.setup-wizard-hidden button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border:1px solid rgba(118,151,159,.34);border-radius:9px;background:linear-gradient(180deg,#1c343df5,#0f242cf5);color:#e8f4f4;box-shadow:inset 0 1px #ffffff09;font-weight:800;transition:border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}.setup-wizard-body button:hover:not(:disabled),.setup-wizard-hidden button:hover:not(:disabled){border-color:#17d5e59e;background:linear-gradient(180deg,#1c4952fa,#0f3039fa);color:#fff;box-shadow:inset 0 1px #ffffff0f,0 0 0 2px #17d5e514}.setup-wizard-body button:active:not(:disabled),.setup-wizard-hidden button:active:not(:disabled){transform:translateY(1px)}.setup-wizard-body button:focus-visible,.setup-wizard-hidden button:focus-visible{outline:2px solid rgba(23,213,229,.9);outline-offset:2px}.setup-wizard-body button.primary{border-color:#69aefbc2;background:linear-gradient(180deg,#79bbff,#5796e2);color:#071820;box-shadow:inset 0 1px #ffffff47,0 6px 18px #2a74c32e}.setup-wizard-body button.primary:hover:not(:disabled){border-color:#87c8fff5;background:linear-gradient(180deg,#8cc7ff,#65a9f5);color:#04151c}.setup-wizard-body button:disabled,.setup-wizard-hidden button:disabled{cursor:not-allowed;border-color:#76979f2e;background:#081b21bd;color:#aabec26e;box-shadow:none;opacity:1}.setup-wizard-body button.primary:disabled{border-color:#69aefb30;background:#2b52734d;color:#b8d5ea61}.setup-step-pill>span{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#76979f24}.setup-step-pill.active{border-color:#17d5e580;background:linear-gradient(180deg,#0e3d46f5,#07262ef5);color:var(--text);box-shadow:inset 0 -2px #17d5e573}.setup-step-pill.active>span,.setup-step-pill.done>span{background:var(--accent);color:#042028}.setup-step-content{display:grid;gap:14px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:12px;background:#04131885}.setup-detection-grid,.setup-question-grid,.setup-wizard-docs>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.setup-detection-grid>div,.setup-wizard-docs article{display:grid;gap:4px;min-width:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:#071d24ad}.setup-detection-grid span,.setup-wizard-docs p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.45}.setup-explanation{display:flex;align-items:flex-start;gap:10px;padding:12px;border-left:3px solid var(--ok);background:#57dc6c0f}.setup-explanation svg{flex:0 0 auto;color:var(--ok)}.setup-explanation p,.setup-step-note{margin:4px 0 0;color:var(--muted);line-height:1.5}.setup-name-field,.setup-question-grid label,.setup-apply-box label,.setup-saved-profile label{display:grid;gap:6px;min-width:0;color:var(--muted);font-size:.78rem;font-weight:750}.setup-name-field input,.setup-question-grid input,.setup-question-grid select,.setup-question-grid textarea,.setup-apply-box input,.setup-saved-profile input{width:100%;min-width:0;padding:10px;border:1px solid var(--line);border-radius:8px;background:#021015e0;color:var(--text)}.setup-question-grid .setup-wide{grid-column:1 / -1}.setup-question-grid .setup-check{display:flex;align-items:center;gap:8px;min-height:42px}.setup-question-grid .setup-check input{width:auto}.setup-review-header,.setup-apply-box,.setup-wizard-nav,.setup-saved-profile>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.setup-review-header>div{display:grid;gap:3px}.setup-review-header span{color:var(--muted);font-size:.78rem}.setup-change-list{display:grid;gap:6px;max-height:260px;overflow:auto}.setup-change-list>div{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:8px}.setup-change-list span{min-width:0;overflow-wrap:anywhere;color:var(--muted)}.setup-apply-box{align-items:end;padding:12px;border:1px solid rgba(255,194,71,.34);border-radius:10px;background:#ffc2470f}.setup-apply-box label{flex:1}.setup-saved-profile,.setup-wizard-docs{border:1px solid var(--line);border-radius:10px;background:#071d248c}.setup-saved-profile summary,.setup-wizard-docs summary{padding:11px 12px;cursor:pointer;font-weight:850}.setup-saved-profile>div,.setup-wizard-docs>div{padding:0 12px 12px}.setup-wizard-docs article:last-child:nth-child(odd){grid-column:1 / -1}.setup-wizard-nav{min-height:42px;padding-top:2px}.setup-wizard-nav button{min-width:106px}.setup-wizard-hidden{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px}.setup-wizard-hidden>div{display:grid;gap:2px}.setup-wizard-hidden span{color:var(--muted);font-size:.78rem}@media(max-width:760px){.setup-wizard-panel>summary{grid-template-columns:auto minmax(0,1fr) auto}.setup-ready-badge{grid-column:1 / -1;justify-self:start}.setup-wizard-toolbar,.setup-review-header,.setup-apply-box,.setup-saved-profile>div{align-items:stretch;flex-direction:column}.setup-detection-grid,.setup-question-grid,.setup-wizard-docs>div{grid-template-columns:minmax(0,1fr)}.setup-wizard-docs article:last-child:nth-child(odd),.setup-question-grid .setup-wide{grid-column:auto}.setup-change-list>div{grid-template-columns:minmax(0,1fr)}.setup-change-list svg{transform:rotate(90deg)}.setup-wizard-hidden{grid-template-columns:auto minmax(0,1fr)}.setup-wizard-hidden button{grid-column:1 / -1}}@media(max-width:900px){.service-routing-manager{min-width:0}.manual-routing-editor>summary{padding:11px}}.app-shell{--mode-accent: #17d5e5;--mode-accent-rgb: 23, 213, 229}.app-shell.ui-mode-safe{--mode-accent: #57dc6c;--mode-accent-rgb: 87, 220, 108}.app-shell.ui-mode-basic{--mode-accent: #17d5e5;--mode-accent-rgb: 23, 213, 229}.app-shell.ui-mode-advanced{--mode-accent: #69aefb;--mode-accent-rgb: 105, 174, 251}.app-shell.ui-mode-expert{--mode-accent: #ffbf47;--mode-accent-rgb: 255, 191, 71}.sidebar nav button.active{box-shadow:inset 4px 0 0 var(--mode-accent),0 0 18px rgba(var(--mode-accent-rgb),.08)}.sidebar-mode{display:grid;gap:4px;padding:11px 13px;border:1px solid rgba(var(--mode-accent-rgb),.34);border-radius:8px;background:rgba(var(--mode-accent-rgb),.07)}.sidebar-mode span,.sidebar-mode small{color:var(--muted);font-size:11px;line-height:1.35}.sidebar-mode strong{color:var(--mode-accent);font-size:13px}.mode-select{min-height:40px;display:inline-flex;align-items:center;gap:6px;padding:0 8px;border:1px solid rgba(var(--mode-accent-rgb),.36);border-radius:8px;background:rgba(var(--mode-accent-rgb),.09);color:var(--mode-accent)}.mode-select select{min-width:118px;border:0;padding:0;background:transparent;color:var(--text)}.mode-select option{color:var(--text);background:#122832}.icon-button.is-active{color:var(--mode-accent);border-color:rgba(var(--mode-accent-rgb),.55);box-shadow:0 0 16px rgba(var(--mode-accent-rgb),.14)}.network-map-page{display:grid;gap:12px}.network-map-header{display:flex;align-items:center;justify-content:space-between;gap:24px}.network-map-header h1,.vpn-hero h1{margin:3px 0 6px;font-size:24px}.network-map-header p,.vpn-hero p{max-width:860px;margin:0;color:var(--muted);line-height:1.5}.eyebrow{color:var(--mode-accent);font-size:11px;font-weight:900;text-transform:uppercase}.network-map-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;color:var(--muted);font-size:11px}.network-map-legend span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.network-map-legend i{width:8px;height:8px;border-radius:50%;background:#789097}.network-map-legend .ok i{background:var(--ok);box-shadow:0 0 10px #57dc6cb3}.network-map-legend .warn i{background:var(--warn)}.network-map-canvas{min-height:720px;position:relative;overflow:hidden;padding:30px;border:1px solid rgba(94,164,181,.28);border-radius:8px;background:linear-gradient(rgba(18,67,78,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(18,67,78,.11) 1px,transparent 1px),#030a0e;background-size:32px 32px;box-shadow:inset 0 0 90px #000000a3,0 16px 60px #00000040}.network-map-canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(25,157,184,.04),transparent 25%,transparent 75%,rgba(11,83,101,.07))}.network-flow-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.flow-path{fill:none;stroke:url(#flowCyan);stroke-width:5;stroke-linecap:round;filter:url(#flowGlow);opacity:.32}.flow-path.running{opacity:.9;stroke-dasharray:4 15;animation:networkFlow 1.25s linear infinite}.flow-path.stopped{stroke:#ff5e637a;stroke-dasharray:4 9}@keyframes networkFlow{to{stroke-dashoffset:-38}}.network-map-layer{position:relative;z-index:2;display:grid;gap:12px}.map-sources{grid-template-columns:repeat(2,minmax(0,340px));justify-content:space-between}.map-sources .network-node{min-height:100px}.map-core{width:min(760px,82%);margin:78px auto 0;grid-template-columns:repeat(2,minmax(0,1fr))}.network-map-router{position:relative;z-index:3;width:min(330px,80%);min-height:78px;margin:20px auto 0;display:flex;align-items:center;justify-content:center;gap:14px;border:1px solid rgba(var(--mode-accent-rgb),.72);border-radius:8px;background:linear-gradient(145deg,#13414df5,#051319fa);box-shadow:0 0 32px rgba(var(--mode-accent-rgb),.22),inset 0 0 22px rgba(var(--mode-accent-rgb),.07)}.network-map-router>span{color:var(--mode-accent)}.network-map-router small,.network-map-router strong,.network-map-router em{display:block;font-style:normal}.network-map-router small,.network-map-router em{color:var(--muted);font-size:11px}.network-map-router strong{margin:3px 0;font-size:17px}.map-services{margin-top:64px;grid-template-columns:repeat(4,minmax(0,1fr))}.map-clients{width:min(1120px,94%);margin:56px auto 0;grid-template-columns:repeat(3,minmax(0,1fr))}.network-node{min-width:0;min-height:78px;position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:10px;padding:10px 12px;border:1px solid rgba(23,213,229,.34);border-radius:8px;background:linear-gradient(145deg,#0e2a33f7,#051015fa);color:var(--text);text-align:left;box-shadow:0 8px 25px #00000040,inset 0 0 20px #17d5e509;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}.network-node:hover{transform:translateY(-2px);border-color:#17d5e5b8;box-shadow:0 0 26px #17d5e52b}.network-node.read-only{cursor:default}.network-node.read-only:hover{transform:none;border-color:#17d5e557;box-shadow:0 8px 25px #00000040,inset 0 0 20px #17d5e509}.network-node.read-only .network-node-open{opacity:.58}.network-node.blue{border-color:#69aefb6b}.network-node.green{border-color:#57dc6c6b}.network-node.amber{border-color:#ffbf4770}.network-node.is-offline{border-color:#ff5e6380;opacity:.72}.network-node-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid currentColor;border-radius:8px;color:#50dce7;background:#17d5e514;box-shadow:inset 0 0 18px #17d5e514}.network-node.blue .network-node-icon{color:#86bdff}.network-node.green .network-node-icon{color:#72e786}.network-node.amber .network-node-icon{color:#ffca5f}.network-node.is-offline .network-node-icon{color:#ff777b}.network-node-copy{min-width:0}.network-node-copy strong,.network-node-copy small,.network-node-copy em,.network-node-detail{display:block;max-width:100%;overflow-wrap:anywhere;white-space:normal}.network-node-copy strong{font-size:13px}.network-node-copy small,.network-node-copy em,.network-node-detail{margin-top:3px;color:var(--muted);font-size:10px;font-style:normal;line-height:1.35}.network-node-detail{color:#a7dce6}.network-node-open{color:var(--muted)}.network-client-strip{position:relative;z-index:3;display:flex;gap:7px;margin-top:14px;overflow-x:auto;padding:8px 0 2px}.network-client-strip span{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:27px;padding:0 9px;border:1px solid rgba(105,174,251,.25);border-radius:999px;color:var(--muted);font-size:10px}.network-client-strip i{width:6px;height:6px;border-radius:50%;background:var(--ok)}.network-client-strip b{color:var(--text)}.network-client-strip span.is-viewer{border-color:#ffbf4794;background:#ffbf4714}.network-client-strip span em{color:var(--warn);font-size:9px;font-style:normal;text-transform:uppercase}.vpn-page{display:grid;gap:12px}.vpn-disclosure{overflow:hidden;padding:0}.vpn-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;padding:15px 18px;cursor:pointer;list-style:none;transition:background .16s ease,border-color .16s ease}.vpn-disclosure>summary::-webkit-details-marker{display:none}.vpn-disclosure>summary:hover{background:rgba(var(--mode-accent-rgb),.055)}.vpn-disclosure>summary>div{min-width:0}.vpn-disclosure>summary h2{margin:0;font-size:17px;line-height:1.25}.vpn-disclosure>summary p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}.vpn-disclosure-icons{display:inline-flex;align-items:center;flex:0 0 auto;gap:10px;color:var(--muted)}.vpn-disclosure-icons>svg:first-child{color:var(--mode-accent)}.vpn-disclosure-chevron{transition:transform .18s ease}.vpn-disclosure[open]>summary{border-bottom:1px solid var(--line);background:rgba(var(--mode-accent-rgb),.035)}.vpn-disclosure[open] .vpn-disclosure-chevron{transform:rotate(180deg)}.vpn-disclosure-body{min-width:0;padding:16px 18px 18px}.vpn-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(430px,.7fr);gap:20px;align-items:center}.vpn-state-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:8px}.vpn-state-grid>span{min-width:0;min-height:76px;display:grid;grid-template-columns:22px minmax(0,1fr);align-content:center;gap:2px 7px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#03101585}.vpn-state-grid svg{grid-row:1 / span 2;color:var(--muted)}.vpn-state-grid b,.vpn-state-grid small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vpn-state-grid small{color:var(--muted);font-size:10px}.vpn-state-grid .ok{border-color:#57dc6c5e}.vpn-state-grid .ok svg{color:var(--ok)}.vpn-state-grid .warn{border-color:#ffbf4766}.vpn-profile-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.vpn-profile-grid button{min-height:124px;display:grid;grid-template-rows:23px auto 1fr;align-content:start;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#04121894;color:var(--text);text-align:left}.vpn-profile-grid button:hover,.vpn-profile-grid button.active{border-color:rgba(var(--mode-accent-rgb),.64);background:rgba(var(--mode-accent-rgb),.08);box-shadow:inset 0 0 22px rgba(var(--mode-accent-rgb),.06)}.vpn-profile-grid button:disabled{opacity:.48;cursor:not-allowed;border-color:var(--line);box-shadow:none}.vpn-profile-grid svg{color:var(--mode-accent)}.vpn-profile-grid strong{font-size:13px;line-height:1.25}.vpn-profile-grid small{color:var(--muted);font-size:11px;line-height:1.4}.vpn-settings .switch-row{margin-bottom:14px}.vpn-advanced,.vpn-diagnostics{margin-top:12px}.ovpn-editor-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px}.ovpn-editor-toolbar>span{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.ovpn-file-button{cursor:pointer}.ovpn-file-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.ovpn-editor-fields{align-items:start}.ovpn-editor-switches{margin:14px 0 0}.password-field{display:grid;grid-template-columns:minmax(0,1fr) 38px}.password-field input{border-radius:6px 0 0 6px}.password-field button{border:1px solid var(--line);border-left:0;border-radius:0 6px 6px 0;background:#081b22bf;color:var(--muted)}.password-field button:hover{color:var(--text)}.ovpn-editor-source{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.ovpn-editor-source textarea{min-height:280px;resize:vertical;font-family:Cascadia Code,SFMono-Regular,Consolas,monospace;font-size:11px;line-height:1.5}.ovpn-editor-source textarea[readonly]{background:#030f14d1}.ovpn-editor .vpn-disclosure-body>.button-row{align-items:end;margin-top:14px}.ovpn-editor .vpn-disclosure-body>.button-row .field{flex:1 1 280px;margin:0}.warning.compact{margin:12px 0;display:flex;align-items:center;gap:9px}@media(prefers-reduced-motion:reduce){.flow-path.running{animation:none}}@media(max-width:1150px){.map-services,.vpn-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vpn-hero{grid-template-columns:1fr}}@media(max-width:760px){.vpn-disclosure>summary{align-items:flex-start;padding:13px 14px}.vpn-disclosure>summary p{font-size:12px}.vpn-disclosure-body{padding:14px}.network-map-header{align-items:flex-start;flex-direction:column}.ovpn-editor-source{grid-template-columns:1fr}.ovpn-editor-toolbar{align-items:flex-start;flex-direction:column}.network-map-legend{justify-content:flex-start}.network-map-canvas{min-height:0;padding:14px}.network-flow-svg{display:none}.map-sources,.map-core,.map-services,.map-clients,.vpn-profile-grid,.vpn-state-grid{width:100%;margin:12px 0 0;grid-template-columns:1fr}.network-map-router{width:100%;margin-top:12px}.mode-select select{min-width:0;width:92px}}@media(max-width:1150px){.public-status-board{grid-template-columns:1fr 1fr}.public-status-card.events{grid-column:1 / -1}.event-context-grid,.event-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.public-status-board,.event-context-grid,.event-filter-grid{grid-template-columns:1fr}.public-status-card.events{grid-column:auto}.public-event>div{align-items:flex-start;flex-direction:column}}@media(max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:10;padding:14px}.sidebar nav{display:flex;overflow-x:auto;padding-bottom:4px}.sidebar nav button{width:auto;min-width:138px}.sidebar-note{display:none}.panel-grid.two,.stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px){.main{padding:14px}.topbar{align-items:flex-start;flex-direction:column}.topbar-actions,.panel-grid.two,.stat-grid,.routing-water-map,.routing-lanes,.routing-stack-summary,.smartwan-preset-grid,.wanq-live-panel,.wanq-speed-dashboard,.backup-action-grid,.restore-grid,.owner-guide-grid,.form-grid{grid-template-columns:1fr;width:100%}.panel-grid.two,.stat-grid,.form-grid{display:grid}.topbar-actions .action,.language-select{width:100%}.preset-row{align-items:flex-start;flex-direction:column}.button-row.tight{width:100%}}@media(max-width:900px){.sidebar{position:static}.status-card-grid,.dashboard-main-grid,.dashboard-lower-grid,.ssh-dashboard-panel,.compatibility-content,.panel-grid.two,.form-grid,.stat-grid{grid-template-columns:1fr}}@media(max-width:520px){.main{padding:0 14px 18px}.topbar{margin:0 -14px 14px;padding:10px 14px;max-width:calc(100vw + 28px);overflow-x:hidden}.topbar-actions{display:grid;grid-template-columns:44px 44px minmax(0,1fr);align-items:center;min-width:0;max-width:100%;width:100%}.topbar .router-panel-link{display:none}.topbar .icon-button{display:inline-flex}.topbar .action:not(.router-panel-link){width:44px;min-width:44px;padding:0;font-size:0;display:inline-flex}.topbar .action:not(.router-panel-link) svg{margin:0}.topbar .icon-button{width:44px}.router-status-strip{min-width:0;max-width:100%;width:100%;overflow-x:auto}.language-select{min-width:0;width:100%}.sidebar,.sidebar nav{max-width:100%;overflow-x:auto}.compatibility-links{justify-content:flex-start}.ring-grid{grid-template-columns:1fr}}.dmz-page{display:grid;gap:16px}.dmz-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}.dmz-hero>div{min-width:0}.dmz-layout{align-items:start}.dmz-mode-explainer{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin:16px 0;padding:14px;border:1px solid var(--line);border-left-width:4px;border-radius:10px;background:#071d2280}.dmz-mode-explainer.ok{border-left-color:var(--green)}.dmz-mode-explainer.warn{border-left-color:var(--amber)}.dmz-mode-explainer p{margin:4px 0 0}.dmz-security-warning{display:flex;align-items:flex-start;gap:10px}.dmz-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.dmz-status-grid>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#06191e94}.dmz-status-grid span{color:var(--muted);font-size:.78rem}.dmz-status-grid strong{color:var(--text)}.panel,.panel>*,.preset-row,.preset-row>*,.orchestration-status>*,.topbar,.topbar-actions,.router-status-strip,.owner-guide-card>*{min-width:0}.panel p,.panel strong,.panel small,.panel span,.preset-row strong,.preset-row span,.notice,.conflict-notice{overflow-wrap:anywhere}.preset-row{flex-wrap:wrap}.preset-row>div:first-child{flex:1 1 190px}.preset-row .button-row{flex:0 1 auto;justify-content:flex-end}.action,.toggle{max-width:100%;white-space:normal;line-height:1.25;text-align:center}.toggle{justify-content:flex-start}select,input,textarea{min-width:0;max-width:100%}@media(max-width:1450px){.topbar{min-height:0;padding-top:8px;padding-bottom:8px;flex-wrap:wrap}.router-status-strip,.topbar-actions{flex:1 1 100%;width:100%}.router-status-strip{overflow-x:auto}.topbar-actions{flex-wrap:wrap;justify-content:flex-start}.status-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-main-grid,.smartwan-layout,.smartwan-side-stack{grid-template-columns:minmax(0,1fr)}}@media(max-width:1100px){.sidebar-connection,.sidebar-note,.sidebar-version{display:none}.orchestration-status{grid-template-columns:28px minmax(0,1fr)}.orchestration-status>span{grid-column:1 / -1;justify-self:start}.status-card-grid,.dashboard-lower-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:760px){.panel{padding:14px}.panel-heading,.builder-head,.network-map-header{align-items:flex-start}.panel-heading>div,.builder-head>div{min-width:0}.button-row,.switch-row{align-items:stretch}.button-row:not(.tight)>.action{flex:1 1 180px}.button-row.tight>.action{flex:1 1 130px}.preset-row,.preset-row .button-row,.smartwan-side-stack{width:100%}.preset-row .button-row{justify-content:stretch}.context-help-popover{position:fixed;top:84px;right:14px!important;left:14px!important;width:auto;max-height:min(60vh,420px);overflow-y:auto;z-index:100}.vpn-profile-grid button{min-height:0}.login-public-tools{grid-template-columns:minmax(0,1fr)}.dmz-hero{align-items:flex-start}.dmz-status-grid{grid-template-columns:minmax(0,1fr)}}@media(max-width:520px){.topbar-actions{display:flex;flex-wrap:wrap;align-items:center}.topbar-actions .mode-select,.topbar-actions .language-select{flex:1 1 145px;width:auto}.topbar-actions .icon-button,.topbar-actions .action:not(.router-panel-link){flex:0 0 44px}.section-title,.title-with-help{align-items:flex-start}.orchestration-status{padding:10px}.orchestration-status>span{width:100%;border-radius:8px}}.demo-controller{position:fixed;z-index:10000;left:14px;bottom:14px;width:min(340px,calc(100vw - 28px));color:#e8f5f7;filter:drop-shadow(0 18px 40px rgba(0,0,0,.42))}.demo-controller details{border:1px solid #2a5260;border-radius:12px;background:#081f25f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden}.demo-controller summary{min-height:52px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;list-style:none}.demo-controller summary::-webkit-details-marker{display:none}.demo-controller summary>span:nth-child(2){display:grid;gap:1px}.demo-controller summary strong{font-size:13px}.demo-controller summary small{color:#8eb3bd;font-size:11px}.demo-controller-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid #d89d2b;border-radius:999px;padding:5px 8px;color:#ffd777;background:#d89d2b1f;font-size:11px;font-weight:900;letter-spacing:.08em}.demo-controller-body{display:grid;grid-template-columns:1fr;align-items:center;gap:12px;padding:9px 12px 12px;border-top:1px solid rgba(66,111,124,.45)}.demo-controller-body p{display:flex;align-items:center;gap:7px;margin:0;color:#9fd8c1;white-space:nowrap;font-size:12px;font-weight:800}.phase-checking .demo-controller-body p,.phase-recovering .demo-controller-body p{color:#ffd36a}.phase-outage .demo-controller-body p{color:#ff858d}.demo-controller-body>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.demo-controller button{border:1px solid #386a78;border-radius:8px;padding:7px 9px;color:#eefcff;background:#143d48;font:inherit;font-size:11px;font-weight:800;cursor:pointer;line-height:1.2}.demo-controller button:hover,.demo-controller button:focus-visible{border-color:#64b9d0;background:#1a4d5a;outline:none}.demo-controller button.secondary{background:#102d35;color:#a8c9d1}@media(max-width:780px){.demo-controller-body{grid-template-columns:1fr}}@media(max-width:520px){.demo-controller{left:8px;bottom:8px;width:calc(100vw - 16px)}.demo-controller summary{min-height:46px}.demo-controller-body{max-height:38vh;overflow:auto}.demo-controller button{flex:1 1 46%}}
