.ui-dialog-overlay{z-index:var(--z-modal);background:color-mix(in srgb, var(--bg) 82%, transparent);position:fixed;inset:0}.ui-dialog-content{z-index:var(--z-modal);max-width:96vw;max-height:94vh;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-dialog-content:focus{outline:none}.ui-modal-card{border:1px solid var(--line);background:var(--bg);width:min(720px,92vw);max-height:88vh;box-shadow:0 30px 100px var(--bg);padding:20px;overflow:auto}.ui-modal-card>header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ui-modal-card>header h2{align-items:center;gap:10px;font-size:20px;display:flex}.ui-modal-card>header h2 svg{width:20px}.ui-modal-card>header button{color:var(--text);background:0 0;border:0}.ui-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--rad-sm);font-family:var(--font-display);letter-spacing:.01em;text-transform:none;cursor:pointer;border:1px solid #0000;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.ui-btn:active{transform:scale(.98)}.ui-btn:disabled{opacity:.5;cursor:not-allowed}.ui-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.ui-btn--ghost{border-color:var(--line);color:var(--text);background:0 0}.ui-btn--ghost:hover:not(:disabled){background:color-mix(in srgb, var(--route) 8%, transparent);border-color:var(--line-soft)}.ui-btn--tool{background:var(--panel-raised);border-color:var(--line-soft);color:var(--text);padding:var(--space-2)}.ui-btn--tool:hover:not(:disabled){background:color-mix(in srgb, var(--route) 8%, transparent)}.ui-btn--icon{color:var(--muted);padding:var(--space-1);background:0 0}.ui-btn--icon:hover:not(:disabled){color:var(--text)}.ui-dialog-close-corner{border:1px solid var(--line);background:var(--panel-raised);place-items:center;width:38px;height:38px;transition:border-color .15s,background .15s,color .15s;display:grid;position:absolute;top:14px;right:14px}.ui-dialog-close-corner:hover:not(:disabled){border-color:var(--amber);background:var(--panel);color:var(--amber)}.ui-field{gap:var(--space-1);flex-direction:column;display:flex}.ui-field>span{font-size:var(--fs-xs);letter-spacing:.01em;text-transform:none;color:var(--muted)}.ui-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--line);border-radius:var(--rad-sm);font-size:var(--fs-xs);text-transform:none;letter-spacing:.01em;font-weight:600;display:inline-flex}.ui-dialog-overlay{background:var(--overlay)}.ui-dialog-content{font-family:var(--font-ui);color:var(--text);border-radius:var(--rad-lg)}.ui-modal-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--rad-lg);box-shadow:var(--elev-lg);padding:26px}.ui-modal-card>header{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:18px}.ui-modal-card>header h2{letter-spacing:-.02em;font-size:21px;font-weight:600}.ui-modal-card>header h2 svg{color:var(--accent-readable)}.ui-modal-card>header button{color:var(--muted);border-radius:var(--rad-md)}.ui-btn{font-family:var(--font-ui);letter-spacing:0;text-transform:none;border-radius:var(--rad-md);min-height:38px;padding:9px 13px;font-size:12px;font-weight:500}.ui-btn--primary{background:var(--accent);color:var(--accent-text)}.ui-btn--ghost{border-color:var(--line);background:0 0}.ui-btn--ghost:hover:not(:disabled),.ui-btn--tool:hover:not(:disabled){background:var(--panel-raised)}.ui-btn--tool{background:var(--panel-raised);border-color:var(--line)}.ui-field>span,.ui-badge{text-transform:none;letter-spacing:0;font-size:11px;font-weight:500}.ui-badge{border-radius:var(--rad-sm);white-space:nowrap;padding:4px 8px}.ui-badge--warning{background:var(--warning-soft);color:var(--warning);border-color:#0000}.ui-badge--success{background:var(--lime-soft);color:var(--route);border-color:#0000}.ui-dialog-content :is(input,textarea,select){font-family:var(--font-ui);border-radius:var(--rad-md);background-color:var(--bg);color:var(--text);border-color:var(--line);font-size:12px}.ui-dialog-content button{font-family:var(--font-ui);letter-spacing:0;font-weight:500}.ui-dialog-close-corner{border-radius:var(--rad-md);color:var(--muted)}.ui-dialog-close-corner:hover:not(:disabled){background:var(--panel-raised);color:var(--accent-readable);border-color:var(--accent)}@media (width<=900px){.ui-modal-card{width:calc(100vw - 24px);max-height:90dvh;padding:20px}.ui-modal-card>header h2{font-size:18px}.ui-dialog-content{max-width:calc(100vw - 20px);max-height:94dvh;overflow:auto}.ui-dialog-content table{font-size:11px}.ui-modal-card>header{margin-bottom:16px;padding-bottom:15px}}.ui-field-label{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.ui-required-mark{vertical-align:middle;border:1px solid var(--line);border-radius:var(--rad-sm);background:var(--panel-raised);color:var(--muted);font-family:var(--font-ui);letter-spacing:0;text-transform:none;white-space:nowrap;flex:none;align-items:center;margin-inline-start:6px;padding:2px 5px;font-size:9px;font-weight:500;line-height:1.2;display:inline-flex}.ui-field-label>.ui-required-mark{margin-inline-start:0}.notification-viewport{z-index:var(--z-toast);pointer-events:none;flex-direction:column;align-items:flex-end;gap:.6rem;width:min(27rem,100vw - 2rem);display:flex;position:fixed;bottom:max(1rem,2vh);right:max(1rem,2vw)}.notification{border:1px solid var(--line);border-left:1px solid var(--notification-accent,var(--lime));border-radius:var(--rad-md);background:color-mix(in srgb, var(--panel-raised) 96%, black);width:100%;box-shadow:var(--elev-lg);color:var(--text);pointer-events:auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.75rem;padding:.85rem .8rem .85rem 1rem;animation:.18s ease-out notification-in;display:grid}.notification-success{--notification-accent:var(--lime)}.notification-error{--notification-accent:var(--danger)}.notification-warning{--notification-accent:var(--amber)}.notification-info{--notification-accent:var(--ct)}.notification>svg{width:1.25rem;height:1.25rem;color:var(--notification-accent);margin-top:.1rem}.notification-copy{gap:.2rem;min-width:0;display:grid}.notification-copy strong{color:var(--notification-accent);font-family:var(--font-ui);font-size:var(--fs-xs);letter-spacing:.01em;text-transform:none;font-weight:600}.notification-copy span{overflow-wrap:anywhere;font-family:var(--font-ui);font-size:var(--fs-sm);line-height:1.35}.notification-dismiss{width:1.75rem;height:1.75rem;color:var(--muted);background:0 0;border:0;place-items:center;margin:-.2rem -.2rem 0 0;display:grid}.notification-dismiss:hover{color:var(--text)}.notification-dismiss svg{width:1rem;height:1rem}@keyframes notification-in{0%{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.notification{animation:none}}@media (width<=600px){.notification-viewport{align-items:stretch;width:calc(100vw - 2rem);bottom:1rem;right:1rem}}.onboarding-dialog{width:min(560px,92vw)}.onboarding-chapters{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.onboarding-chapters button{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--rad-full);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;background:0 0;display:inline-flex}.onboarding-chapters button[aria-pressed=true]{border-color:var(--accent);color:var(--text)}.onboarding-chapters span{color:var(--muted);font-variant-numeric:tabular-nums}.onboarding-figure{margin-bottom:var(--space-4)}.onboarding-meta{margin:0 0 var(--space-1);color:var(--muted);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase}.onboarding-title{margin:0 0 var(--space-2);font-size:var(--fs-lg)}.onboarding-body{color:var(--muted);font-size:var(--fs-sm);margin:0;line-height:1.55}.onboarding-dots{gap:var(--space-2);margin:var(--space-4) 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.onboarding-dot{border:1px solid var(--line);border-radius:var(--rad-full);cursor:pointer;background:0 0;width:10px;height:10px;padding:0;display:block}.onboarding-dot.is-done{border-color:var(--route);background:var(--route)}.onboarding-dot.is-skipped{border-color:var(--muted);background:var(--line)}.onboarding-dot[aria-current=step]{outline:2px solid var(--accent);outline-offset:2px}.onboarding-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.onboarding-actions-spacer{flex:1}@media (width<=520px){.ob-ill{padding:var(--space-3)}.ob-bar{gap:var(--space-1)}.ob-bar>b,.ob-bar>.ob-chip:nth-of-type(3){display:none}.onboarding-actions>:first-child{order:1;width:100%}.onboarding-actions-spacer{display:none}}.ob-ill{height:168px;padding:var(--space-4);border:1px solid var(--line-soft);border-radius:var(--rad-lg);background:radial-gradient(circle at 20% 0%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 60%), var(--panel);color:var(--text);font-size:var(--fs-xs);place-items:center;display:grid;position:relative;overflow:hidden}.ob-ill svg{flex:none;width:14px;height:14px}.ob-stack{align-items:flex-start;gap:var(--space-3);flex-direction:column;width:100%;display:flex}.ob-row{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ob-stack>.ob-row,.ob-panel .ob-row{width:100%}.ob-grow{flex:1}.ob-accent{color:var(--accent)}.ob-arrow{color:var(--muted);font-size:var(--fs-md)}.ob-chip{align-items:center;gap:var(--space-1);border:1px solid var(--line);border-radius:var(--rad-sm);background:var(--panel-raised);white-space:nowrap;padding:3px 8px;display:inline-flex}.ob-chip.is-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.ob-chip.is-accent{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-readable)}.ob-chip.is-route{border-color:var(--route);background:var(--lime-soft);color:var(--route)}.ob-chip.is-warning{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}.ob-chip.is-muted{color:var(--muted)}.ob-select{border:1px solid var(--line);border-radius:var(--rad-sm);background:var(--bg);flex-direction:column;gap:2px;min-width:82px;padding:4px 8px;display:inline-flex}.ob-select small{color:var(--muted);font-size:9px}.ob-select>span{justify-content:space-between;align-items:center;gap:var(--space-1);display:flex}.ob-input{align-items:center;gap:var(--space-1);border:1px solid var(--line);border-radius:var(--rad-sm);background:var(--bg);min-width:110px;color:var(--muted);flex:1;padding:5px 8px;display:inline-flex}.ob-input.is-disabled{opacity:.5;flex:none;width:70%}.ob-segment{border:1px solid var(--line);border-radius:var(--rad-sm);display:inline-flex;overflow:hidden}.ob-segment>span{align-items:center;gap:var(--space-1);color:var(--muted);padding:4px 10px;display:inline-flex}.ob-segment>span.is-on{background:var(--accent-soft);color:var(--text)}.ob-segment.is-small>span{padding:3px 7px}.ob-tabs{gap:var(--space-1);display:flex}.ob-tabs>span{border:1px solid var(--line-soft);border-radius:var(--rad-sm);flex-direction:column;align-items:center;min-width:44px;padding:5px 6px;font-weight:600;display:flex}.ob-tabs small{color:var(--muted);font-size:8px;font-weight:400}.ob-tabs>span.is-on{border-color:var(--accent);background:var(--accent-soft)}.ob-bar{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border:1px solid var(--line-soft);border-radius:var(--rad-md);background:var(--bg);display:flex;overflow:hidden}.ob-avatar{border-radius:var(--rad-full);background:var(--panel-raised);align-items:center;gap:2px;padding:3px;display:inline-flex}.ob-lines{border-radius:var(--rad-sm);background:repeating-linear-gradient(to bottom, var(--line-soft) 0 6px, transparent 6px 16px);opacity:.6;width:100%;height:52px}.ob-panel{align-items:flex-start;gap:var(--space-2);min-width:180px;padding:var(--space-2) var(--space-3);border:1px solid var(--line-soft);border-radius:var(--rad-md);background:var(--bg);flex-direction:column;display:flex}.ob-panel.is-wide{width:100%}.ob-panel>small{align-items:center;gap:var(--space-1);color:var(--muted);letter-spacing:.06em;font-size:9px;display:inline-flex}.ob-card{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--rad-md);background:var(--panel-raised);display:inline-flex}.ob-card>span{flex-direction:column;display:flex}.ob-card small{color:var(--muted)}.ob-frames{gap:var(--space-1);border-radius:var(--rad-sm);display:inline-flex}.ob-frames>span{border:1px solid var(--line);border-radius:var(--rad-sm);background:linear-gradient(135deg, var(--panel-raised), var(--bg));width:52px;height:40px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.ob-frames small{font-size:8px}.ob-icon-btn{border:1px solid var(--line);border-radius:var(--rad-sm);background:var(--panel-raised);place-items:center;width:26px;height:26px;display:inline-grid}.ob-team{align-items:center;gap:var(--space-2);border:1px solid var(--line-soft);border-radius:var(--rad-md);padding:5px 9px;display:inline-flex}.ob-dot{border-radius:var(--rad-full);background:var(--muted);width:6px;height:6px}.ob-dot.is-on{background:var(--route)}.ob-toast{padding:var(--space-2) var(--space-3);border-left:3px solid var(--route);border-radius:var(--rad-sm);background:var(--panel-raised);letter-spacing:.04em;font-weight:600}.ob-ill:has(.ob-radar){padding:0}.ob-radar{position:absolute;inset:0}.ob-radar img{object-fit:cover;opacity:.55;width:100%;height:100%}.ob-ill .ob-radar>svg{width:100%;height:100%;position:absolute;inset:0}.ob-route,.ob-arrow-line{fill:none;stroke:var(--route);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.ob-arrow-line{stroke:var(--accent)}.ob-route.is-covered{stroke-dasharray:6 5;opacity:.55}.ob-glyph{stroke-width:4.5px}.ob-arc{fill:none;stroke:var(--warning);stroke-width:2px;stroke-dasharray:5 4}.ob-area{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-dasharray:4 3}.ob-node{fill:var(--bg);stroke:var(--route);stroke-width:2px}.ob-node.is-hl{fill:var(--accent);stroke:var(--text)}.ob-node-label{fill:var(--text);text-anchor:middle;font-size:8px;font-weight:700}.ob-smoke{fill:color-mix(in srgb, var(--muted) 45%, transparent);stroke:var(--text);stroke-width:1.5px}.ob-map-text{fill:var(--text);font-size:9px;font-weight:600}.ob-callout{fill:var(--text);font-family:var(--font-callout);font-size:10px}.ob-callout.is-hl{fill:var(--accent-readable)}.ob-rail{top:50%;left:var(--space-2);gap:var(--space-1);padding:var(--space-1);border:1px solid var(--line);border-radius:var(--rad-md);background:var(--panel);flex-direction:column;display:flex;position:absolute;transform:translateY(-50%)}.ob-rail>svg{border-radius:var(--rad-sm);width:22px;height:22px;padding:3px}.ob-corner{bottom:var(--space-2);right:var(--space-2);gap:var(--space-1);display:flex;position:absolute}.ob-corner.is-top{top:var(--space-2);border-radius:var(--rad-sm);background:var(--panel);padding:3px;bottom:auto}.ob-hl{box-shadow:0 0 0 2px var(--accent);animation:1.8s ease-in-out infinite ob-pulse}svg.ob-hl{box-shadow:none;outline:2px solid var(--accent);animation:none}.ob-node.is-hl,.ob-smoke.is-hl{animation:1.8s ease-in-out infinite ob-blink}@keyframes ob-pulse{50%{box-shadow:0 0 0 2px var(--accent), 0 0 0 6px color-mix(in srgb, var(--accent) 25%, transparent)}}@keyframes ob-blink{50%{opacity:.6}}@media (prefers-reduced-motion:reduce){.ob-hl,.ob-node.is-hl,.ob-smoke.is-hl{animation:none}}.app-shell{background:var(--bg);width:100%;min-width:0;height:100%;font-family:var(--font-ui);grid-template-columns:minmax(0,1fr);font-size:13px;line-height:1.5;display:grid}.app-brand-link{height:100%;color:var(--text);flex:none;align-items:center;text-decoration:none;display:flex}.app-brand{letter-spacing:-.025em;white-space:nowrap;align-items:center;gap:9px;font-size:17px;font-weight:700;display:inline-flex}.app-brand>svg{width:24px;height:24px;color:var(--accent)}.app-brand>span>span{font-size:12px;font-weight:500}.app-avatar{border:1px solid var(--line);border-radius:var(--rad-lg);background:var(--panel-raised);place-items:center;width:34px;height:34px;display:inline-grid}.app-avatar svg{width:17px;height:17px}.app-shell-content{flex-direction:column;min-width:0;min-height:0;display:flex}.app-header{border-bottom:1px solid var(--line-soft);flex:none;justify-content:space-between;align-items:center;gap:20px;height:72px;min-height:72px;padding:0 34px;display:flex;position:relative}.app-header>nav{flex:1;gap:28px;min-width:0;height:100%;display:flex}.app-header>nav>a{color:var(--muted);white-space:nowrap;align-items:center;font-size:11px;font-weight:600;text-decoration:none;display:flex;position:relative}.app-header>nav svg{display:none}.app-header>nav .selected{color:var(--text)}.app-header>nav .selected:after{content:"";background:var(--accent);height:2px;position:absolute;bottom:0;left:0;right:0}.app-account{align-items:center;gap:15px;font-size:11px;display:flex}.app-account a{color:var(--accent-readable);text-decoration:none}.app-account-team{border:1px solid var(--line-soft);border-radius:var(--rad-md);min-height:36px;color:var(--muted);background:0 0;align-items:center;gap:8px;padding:7px 10px;font-size:11px;display:flex}.app-account-team:hover:not(:disabled){border-color:var(--line);background:var(--panel-raised);color:var(--text)}.app-online-dot{border-radius:var(--rad-full);background:var(--muted);flex:none;width:6px;height:6px}.app-online-dot.is-online{background:var(--route)}.app-online-count{min-width:1ch;color:var(--text);font-variant-numeric:tabular-nums;font-size:10px}.app-account-team svg{width:17px}.app-account-help{border:1px solid var(--line-soft);border-radius:var(--rad-md);width:36px;height:36px;color:var(--muted);background:0 0;place-items:center;padding:0;display:grid}.app-account-help:hover{border-color:var(--line);background:var(--panel-raised);color:var(--text)}.app-account-help svg{width:17px}.app-role{border:1px solid var(--line);border-radius:var(--rad-md);text-transform:uppercase;color:var(--muted);padding:4px 9px;font-size:10px}.app-account-toggle{color:var(--muted);background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.app-account-toggle>svg{width:14px}.app-page{flex:1;min-width:0;min-height:0;overflow:hidden}.app-menu-toggle,.app-mobile-navigation{display:none}.app-menu{z-index:var(--z-overlay);background:var(--panel-raised);border:1px solid var(--line);border-radius:var(--rad-lg);width:min(310px,100vw - 32px);box-shadow:var(--elev-lg);padding:22px;position:absolute;top:calc(100% - 8px);right:24px}.app-menu>small{color:var(--muted);overflow-wrap:anywhere;padding-right:20px;display:block}.app-menu nav{flex-direction:column;gap:7px;margin-top:14px;display:flex}.app-menu nav>a,.app-menu nav>button{color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:10px 8px;font-size:12px;text-decoration:none;display:flex}.app-menu nav svg{width:17px;height:17px}.app-menu nav .selected{color:var(--accent-readable)}.app-menu-dismiss{color:var(--muted);background:0 0;border:0;position:absolute;top:9px;right:9px}.app-menu-dismiss svg{width:17px}@media (width>=901px) and (width<=1279px){.app-header{padding-inline:24px}.app-header>nav{gap:18px}}@media (width<=900px){.app-shell{flex-direction:column;display:flex}.app-header>nav{display:none}.app-account{gap:0;margin-left:auto;display:flex}.app-account-toggle,.app-account-help,.app-account>.app-role,.app-account>a,.app-account-team-label{display:none}.app-account-team{gap:6px;min-height:44px;padding:8px}.app-shell-content{height:100%}.app-header{gap:12px;height:64px;min-height:64px;padding:0 18px}.app-menu-toggle{width:40px;height:40px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;display:flex}.app-menu-toggle svg{width:21px}.app-page{overscroll-behavior-y:contain;overflow:auto}.app-mobile-navigation{background:var(--panel);border-top:1px solid var(--line);min-height:64px;padding-bottom:env(safe-area-inset-bottom);flex:none;justify-content:space-around;align-items:center;display:flex}.app-mobile-navigation>a{min-height:44px;color:var(--muted);align-items:center;gap:7px;padding:8px 10px;font-size:10px;text-decoration:none;display:flex}.app-mobile-navigation svg{width:17px;height:17px}.app-mobile-navigation .selected{color:var(--accent-readable)}.app-mobile-navigation a[href=\/editor] span{font-size:0}.app-mobile-navigation a[href=\/editor] span:after{content:"Editor";font-size:10px}.app-mobile-navigation a[href=\/granaten] span{font-size:0}.app-mobile-navigation a[href=\/granaten] span:after{content:"Granaten";font-size:10px}}.app-page-state{min-height:100%;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:40px;font-size:14px;line-height:1.8;display:flex}.app-page-state>svg{width:38px;height:38px;color:var(--accent-readable)}.app-page-state p{max-width:480px;margin:0}.app-shell--header-hidden .app-header{display:none}
