*{box-sizing:border-box}html{overflow-x:hidden}body{font-family:system-ui,sans-serif;margin:0;padding:1rem;max-width:100%;width:100%;overflow-x:hidden;min-width:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}header h1{margin:0 0 1rem;font-size:1.25rem}section{margin-bottom:1.5rem}section h2{margin:0 0 .5rem;font-size:1rem;font-weight:600}.hint{margin:0 0 .75rem;color:#555;font-size:.9rem}.transport-options{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.5rem}.transport-options button{padding:.4rem .75rem;cursor:pointer}.transport-option.disabled{color:#888;font-size:.9rem}.unsupported{color:#c00;font-size:.9rem}#btn-disconnect{margin-top:.5rem;padding:.4rem .75rem;cursor:pointer}.btn-warning{padding:.4rem .75rem;cursor:pointer;background:#c00;color:#fff;border:1px solid #a00;border-radius:4px}.btn-warning:hover{background:#a00}.btn-secondary{padding:.4rem .75rem;cursor:pointer;margin-bottom:.5rem}.status{margin:0;padding:.25rem 0;font-family:ui-monospace,monospace;font-size:.9rem}.status-idle{color:#666}.status-connecting{color:#07a}.status-connected{color:#080}.status-disconnecting{color:#a70}.status-disconnected{color:#666}.status-error{color:#c00}.tabs{display:flex;gap:0;margin:0 0 .5rem;border-bottom:2px solid #ddd;padding:0}.tab{padding:.6rem 1rem;font-size:.95rem;font-weight:500;color:#555;background:transparent;border:none;border-bottom:3px solid transparent;margin-bottom:-2px;cursor:pointer}.tab:hover{color:#333}.tab--active{color:#06c;border-bottom-color:#06c}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.1em;height:1.1em;padding:0 .25em;margin-left:.35rem;font-size:.7rem;font-weight:600;color:#fff;background:#c00;border-radius:999px;vertical-align:middle}.disconnected-placeholder{display:flex;align-items:flex-start;justify-content:center;min-height:0;padding:2rem 1.5rem 4rem;text-align:center;overflow-y:auto}.disconnected-placeholder-inner{max-width:28rem;width:100%}@media(min-width:768px){.disconnected-placeholder-inner{max-width:56rem}}.disconnected-placeholder-title{margin:0 0 .75rem;font-size:2rem;font-weight:800;letter-spacing:.02em;color:#1a1a2e}@media(min-width:600px){.disconnected-placeholder-title{font-size:2.5rem}}.disconnected-placeholder-subtitle{margin:0 0 2.5rem;font-size:1.1rem;font-weight:500;color:#555;letter-spacing:.01em}.disconnected-placeholder-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem;text-align:left}.disconnected-card{display:flex;flex-direction:column;padding:1.75rem;border:1px solid #e0e0e0;border-radius:16px;background:linear-gradient(165deg,#fff,#f8f9fc);box-shadow:0 4px 24px #0000000f,0 0 0 1px #00000005;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.disconnected-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #00000014,0 0 0 1px #0777771f;border-color:#07777740}.disconnected-card-icon{display:flex;align-items:center;justify-content:center;align-self:center;width:3.5rem;height:3.5rem;margin-bottom:1rem;border-radius:12px;background:linear-gradient(135deg,#0777771f,#0777770d);color:#077;box-shadow:inset 0 1px #fffc}.disconnected-card-icon svg{width:1.75rem;height:1.75rem}.disconnected-card-title{margin:0 0 .5rem;font-size:1.2rem;font-weight:700;color:#1a1a2e;letter-spacing:.02em;text-align:center}.disconnected-card-desc{margin:0 0 1rem;font-size:.925rem;line-height:1.5;color:#555;flex:1}.disconnected-card-links{margin:0 0 1rem;font-size:.85rem}.disconnected-card-links a{color:#077;text-decoration:none;font-weight:500}.disconnected-card-links a:hover{text-decoration:underline;color:#055}.disconnected-card-btn{margin-top:auto;padding:.85rem 1.25rem;font-size:1rem;font-weight:600;width:100%;min-height:52px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:transform .15s ease,box-shadow .15s ease}.disconnected-card-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0000001a}@media(max-width:767px){.disconnected-placeholder-cards{grid-template-columns:1fr;gap:.5rem;margin-bottom:1rem}.disconnected-card{padding:.6rem .75rem;border-radius:10px;flex-direction:row;align-items:center;gap:.6rem}.disconnected-card:hover{transform:none}.disconnected-card-icon{width:2.25rem;height:2.25rem;margin-bottom:0;border-radius:8px;flex-shrink:0}.disconnected-card-icon svg{width:1.1rem;height:1.1rem}.disconnected-card-title{font-size:.9rem;margin:0;text-align:left;flex:1;min-width:0}.disconnected-card-desc,.disconnected-card-links{display:none}.disconnected-card-btn{padding:.45rem .65rem;font-size:.8rem;min-height:36px;width:auto;flex-shrink:0;border-radius:8px}.disconnected-card-btn:hover:not(:disabled){transform:none}}.disconnected-placeholder-unsupported{margin:.75rem 0 0;padding:.75rem 1rem;background:#ffebee;border:1px solid rgba(198,40,40,.35);border-radius:10px;font-size:.9rem;color:#333}.disconnected-placeholder-status{margin:1.25rem 0 0;font-size:.95rem;font-weight:500;color:#077}.disconnected-pitch{margin-top:3rem;width:100%;padding:2.25rem 2rem;border-radius:20px;border:1px solid #e0e0e0;background:linear-gradient(180deg,#f8f9fc,#f0f2f7);box-shadow:0 4px 24px #0000000d,inset 0 1px #ffffffe6;text-align:left;box-sizing:border-box}.disconnected-pitch-visual{display:flex;align-items:center;justify-content:center;gap:.75rem 1.25rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:1rem 1.25rem;border-radius:12px;background:#e8f4f8;border:1px solid #c5e0e8}.disconnected-pitch-visual-icons{display:flex;align-items:center;gap:1rem}.disconnected-pitch-visual-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#0077771f;color:#077}.disconnected-pitch-visual-icon .transport-icon-svg{width:20px;height:20px}.disconnected-pitch-visual-label{font-size:.85rem;font-weight:600;letter-spacing:.04em;color:#555;text-transform:uppercase}.disconnected-pitch-title{margin:0 0 1rem;font-size:1.35rem;font-weight:700;color:#1a1a2e;letter-spacing:.02em;display:flex;align-items:center;gap:.5rem}.disconnected-pitch-title-icon{display:inline-flex;flex-shrink:0}.disconnected-pitch-intro{margin:0 0 1rem;font-size:.98rem;line-height:1.6;color:#555}.disconnected-pitch-tablist.tabs{margin-top:0;margin-bottom:1.25rem}.disconnected-pitch-panel{margin:0}.disconnected-pitch-visual--repeater{background:#faf6ef;border-color:#e6d4b8}.disconnected-pitch-visual-icon--relay{width:44px;height:44px}.disconnected-pitch-visual-icon--relay .transport-icon-svg{width:26px;height:26px}.disconnected-pitch-inset-card{margin:1.25rem 0 0;display:flex;justify-content:center}.disconnected-pitch-inset-card .disconnected-card{max-width:22rem;width:100%;margin:0}.disconnected-section-icon--check{color:#0a7d0a}.disconnected-section-icon--x{color:#c62828}.disconnected-pitch-lead{margin:0 0 1.25rem;font-size:1.05rem;line-height:1.6;color:#444}.disconnected-pitch-list{margin:0 0 1.25rem;padding-left:0;list-style:none;font-size:.95rem;line-height:1.65;color:#444}.disconnected-pitch-list li{margin-bottom:.65rem}.disconnected-pitch-list li:last-child{margin-bottom:0}.disconnected-pitch-list strong{color:#1a1a2e}.disconnected-pitch-list-item{display:flex;align-items:flex-start;gap:.65rem}.disconnected-pitch-bullet{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.5rem;height:1.5rem;margin-top:.15rem;border-radius:6px;background:#0777771a;color:#077}.disconnected-pitch-bullet-icon{width:1rem;height:1rem}.disconnected-pitch-bullet-text{flex:1;min-width:0}.disconnected-pitch-power{margin:0 0 1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5;color:#444;background:#e8f4f8;border-left:3px solid #077;border-radius:0 8px 8px 0}.disconnected-pitch-cta{margin:0;padding-top:.5rem;font-size:1rem;font-weight:500;color:#333}.disconnected-pitch-cta a{color:#077;text-decoration:none;font-weight:600}.disconnected-pitch-cta a:hover{text-decoration:underline;color:#055}.disconnected-pitch-privacy-details{margin:1.25rem 0 0;border:1px solid #e0e0e0;border-radius:10px;background:#f8f9fc;overflow:hidden}.disconnected-pitch-privacy-summary{padding:.65rem 1rem;font-size:.95rem;font-weight:600;color:#1a1a2e;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.disconnected-pitch-privacy-summary::-webkit-details-marker{display:none}.disconnected-pitch-privacy-summary:before{content:"▶ ";font-size:.7em;opacity:.7}.disconnected-pitch-privacy-details[open] .disconnected-pitch-privacy-summary:before{content:"▼ "}.disconnected-pitch-privacy-body{padding:0 1rem 1rem;font-size:.9rem;line-height:1.55;color:#444}.disconnected-pitch-privacy-body p{margin:0 0 .75rem}.disconnected-pitch-privacy-body p:last-child{margin-bottom:0}.disconnected-pitch-privacy-legal-link{background:none;border:none;padding:0;font:inherit;color:#077;cursor:pointer;text-decoration:underline}.disconnected-pitch-privacy-legal-link:hover{color:#055}.disconnected-not{margin-top:3rem;width:100%;padding:2rem;border-radius:20px;border:1px solid #e0e0e0;background:linear-gradient(180deg,#f5f7fa,#eef1f5);box-shadow:0 4px 24px #0000000a,inset 0 1px #ffffffe6;text-align:left;box-sizing:border-box}.disconnected-not-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:#1a1a2e;letter-spacing:.02em;display:flex;align-items:center;gap:.5rem}.disconnected-not-title-icon{display:inline-flex;flex-shrink:0}.disconnected-not-lead{margin:0 0 .75rem;font-size:1rem;line-height:1.55;color:#333}.disconnected-not-why{margin:0;font-size:.95rem;line-height:1.6;color:#555}.app-footer-wrap{flex-shrink:0}.app-footer{margin-top:.5rem;padding:.5rem 0;border-top:1px solid #e0e0e0;font-size:.75rem;color:#666;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.app-footer-left{flex:1;min-width:0;text-align:left}.app-footer-right{flex-shrink:0;text-align:right}.app-footer .footer-link{display:inline-flex;align-items:center;color:#666;text-decoration:none;background:none;border:none;padding:0;font:inherit;cursor:pointer}.app-footer .footer-icon{width:1em;height:1em;vertical-align:-.2em;margin-right:.25em;flex-shrink:0}.about-content{white-space:normal}.about-content p{margin:0 0 .75rem}.about-content p:last-child{margin-bottom:0}.about-content .about-link{color:#077;text-decoration:none;font-weight:500}.about-content .about-link:hover{text-decoration:underline;color:#055}.about-content h3{margin:0 0 .5rem;font-size:1rem}.about-content ul{margin:0 0 .75rem;padding-left:1.25rem}.about-content li{margin-bottom:.35rem}.about-content code{font-size:.9em;background:#00000014;padding:.1em .3em;border-radius:2px}.app-footer .footer-link:hover{color:#077}.app-badge--alpha{cursor:pointer;background:none;font:inherit}.footer-sep{margin:0 .25rem;opacity:.6}.legal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:.75rem}.legal-modal{background:#fff;border:1px solid #e0e0e0;border-radius:10px;box-shadow:0 10px 30px #0003;max-width:36rem;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.legal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid #e0e0e0;flex-shrink:0;background:#f5f5f5}.legal-header h2{margin:0;font-size:.9rem;color:#1a1a2e}.legal-header button{background:none;border:none;color:#333;font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.legal-header button:hover{color:#077}.legal-content{padding:.75rem;overflow:auto;font-size:.85rem;color:#444;white-space:pre-wrap;margin:0;flex:1;min-height:0}.tab-panel{display:none;margin-bottom:1.5rem}.tab-panel--active{display:block}.map-section .map-fallback{margin:0 0 .5rem;font-size:.9rem}.repeater-section .repeater-login-banner{margin:.5rem 0 1rem;padding:.6rem .75rem;background:#fff8e6;border:1px solid #e6c654;border-radius:6px;font-size:.95rem}.repeater-section .repeater-login-banner--success{background:#e8f5e9;border-color:#81c784;color:#2e7d32}.repeater-section .repeater-login-banner--error{background:#ffebee;border-color:#e57373;color:#c62828}.repeater-section--locked .repeater-settings-only{display:none}.repeater-section .repeater-subtabs{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;padding:.35rem;border:1px solid #e0e0e0;border-radius:8px;background:#f5f5f5}.repeater-section .repeater-subtab{border:1px solid transparent;background:transparent;color:#555;border-radius:6px;padding:.4rem .85rem;font-size:.9rem;cursor:pointer}.repeater-section .repeater-subtab:hover{color:#111;background:#0000000a}.repeater-section .repeater-subtab.repeater-subtab--active{color:#0d47a1;border-color:#90caf9;background:#e3f2fd;font-weight:600}.repeater-section .repeater-subpanel{display:none}.repeater-section .repeater-subpanel.repeater-subpanel--active{display:block}.repeater-section .repeater-block{margin-bottom:1.25rem;padding:.75rem;background:#fafafa;border:1px solid #e8e8e8;border-radius:6px}.repeater-section .repeater-block h4{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:#333}.repeater-section .repeater-output-block .repeater-output-header{display:flex;align-items:center;gap:.5rem;margin:0 0 .5rem}.repeater-section .repeater-output-block.repeater-output-block--collapsed .repeater-output-header{margin-bottom:0}.repeater-section .repeater-output-block .repeater-output-header h4{margin:0}.repeater-section .repeater-output-block .repeater-output-toggle{padding:.2rem .4rem;font-size:.85rem;background:#eee;border:1px solid #ccc;border-radius:4px;cursor:pointer}.repeater-section .repeater-output-block.repeater-output-block--collapsed .repeater-output-body{display:none}.repeater-section .repeater-block .settings-row{margin:.35rem 0;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.repeater-section .repeater-block .settings-row label{margin-right:.25rem}.repeater-section .repeater-block input[type=text],.repeater-section .repeater-block input[type=number],.repeater-section .repeater-block input[type=password],.repeater-section .repeater-block select{padding:.35rem .5rem;border:1px solid #ccc;border-radius:4px}.repeater-section .repeater-log-wrap{margin:.5rem 0;border:1px solid #ccc;border-radius:4px;padding:.5rem;background:#f8f8f8;max-height:300px;overflow:auto}.repeater-section .repeater-log{margin:0;font-family:ui-monospace,monospace;font-size:.85rem;white-space:pre-wrap;word-break:break-all}.repeater-section .repeater-input-row{display:flex;gap:.5rem;margin-top:.5rem;align-items:center}.repeater-section .repeater-input-row input{flex:1;padding:.4rem .5rem}.repeater-inline-cog{border:1px solid #d0d0d0;background:#fff;border-radius:4px;padding:0 .35rem;margin-left:.35rem;cursor:pointer}.repeater-inline-cog:hover{background:#f3f3f3}.settings-form .settings-block{margin-bottom:1.25rem}.settings-form .settings-block h4{margin:0 0 .5rem;font-size:.95rem;font-weight:600}.settings-form .settings-row{margin:.35rem 0;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.settings-form .settings-row label{min-width:10rem}.settings-form .settings-row input[type=number],.settings-form .settings-row input[type=text],.settings-form .settings-row select,.settings-form .settings-row button{width:10rem;padding:.3rem .4rem}.settings-form .settings-row .settings-ota-select{width:min(36rem,92vw);min-width:22rem}.settings-form .settings-ota-panel{border:1px solid var(--obs-border);border-radius:10px;background:var(--obs-bg-soft);padding:.9rem 1rem;min-width:0}.settings-form .settings-ota-header{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.settings-form .settings-ota-header h4{margin:0}.settings-form .settings-ota-pill{display:inline-flex;align-items:center;padding:.18rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600;color:var(--obs-text);border:1px solid rgba(40,215,255,.35);background:#28d7ff1f}.settings-form .settings-ota-kpis{margin-top:.35rem}.settings-form .settings-ota-grid{margin-top:.3rem}.settings-form .settings-ota-url-row{align-items:flex-start}.settings-form .settings-ota-url{display:inline-block;max-width:min(52rem,92vw);white-space:pre-wrap;word-break:break-all;background:#08111cb3;border:1px solid var(--obs-border);border-radius:6px;padding:.45rem .55rem}.settings-form .settings-ota-actions{margin-top:.65rem;margin-bottom:.25rem}.settings-form .settings-ota-disclaimer{border-radius:6px;padding:.55rem .7rem;margin:.55rem 0 .65rem;background:#f3b23f24;border:1px solid rgba(243,178,63,.35);border-left:3px solid var(--obs-amber, #d97706);max-width:min(52rem,96vw)}.settings-form .settings-ota-disclaimer-title{display:block;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#b45309;margin:0 0 .35rem}.settings-form .settings-ota-disclaimer-body{margin:0;font-size:.88rem;line-height:1.45;color:#1a1a1a}.settings-form .settings-ota-disclaimer-body strong{font-weight:600}.settings-form .settings-ota-box{margin-top:.7rem;border:1px solid var(--obs-border);border-radius:8px;background:#08111c80;padding:.55rem .65rem .65rem;min-width:0}.settings-form .settings-ota-box h4{margin:0 0 .45rem}.settings-form .settings-ota-release-notes{margin:0;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.settings-form .settings-ota-log-wrap{max-height:min(50vh,28rem);overflow:auto;margin:0;border-radius:6px;border:1px solid var(--obs-border);background:#0003}.settings-form .settings-ota-log-pre{margin:0;padding:.45rem .55rem;max-width:100%;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.settings-form .settings-row--stacked{margin-top:-.15rem}.settings-form .settings-subhint{color:#555;font-size:.85rem;margin-left:10rem}.settings-form .settings-actions{margin-top:1rem;display:flex;gap:.5rem;flex-wrap:wrap}.settings-form .settings-actions button{padding:.5rem 1rem;cursor:pointer}.settings-form .settings-errors{margin-top:.75rem;padding:.5rem .65rem;border:1px solid #e7b4b4;border-radius:6px;background:#fff3f3}.settings-form .settings-errors p{margin:.2rem 0;color:#9a1f1f;font-size:.88rem}.map-iframe-wrap{width:100%;min-height:400px;margin:.5rem 0;border:1px solid #ddd;border-radius:4px;overflow:hidden}.map-iframe{width:100%;height:480px;border:none;display:block}.contact-letsmesh-link{font-size:.85rem;margin-left:.5rem}.rxlog-table a{color:#06c}.rxlog-table a:hover{text-decoration:underline}.contacts-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.5rem 0}.contacts-search-row{margin:0 0 .5rem}.contacts-search-input{width:100%;max-width:28rem;box-sizing:border-box;padding:.45rem .5rem;font-size:.9rem;border:1px solid #ccc;border-radius:6px}.contacts-filter-label{font-weight:500}.contacts-filter-btn{padding:.25rem .5rem;font-size:.9rem;border:1px solid #ccc;background:#f5f5f5;border-radius:4px;cursor:pointer}.contacts-filter-btn:hover{background:#eee}.contacts-filter-btn--active{background:#ddd;border-color:#999}.contacts-section .contacts-list,.chats-section .chats-list{margin:0;padding-left:1.25rem;list-style:disc}.contacts-list li,.chats-list li{margin-bottom:.35rem}.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding:.4rem 0;border-bottom:1px solid #eee;list-style:none;margin-left:0;padding-left:0}.contact-row--chat{cursor:pointer}.contact-row--chat:hover{background:#f5f9ff}.contact-row--repeater{cursor:default}.contact-badge{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.contact-badge--repeater{background:#e8e8e8;color:#555}.contact-options-wrap{position:relative;margin-left:auto}.contact-options-btn{padding:.2rem .5rem;font-size:1.1rem;line-height:1;background:transparent;border:none;cursor:pointer;color:#666;border-radius:4px}.contact-options-btn:hover{background:#eee;color:#333}.contact-options-menu{position:absolute;right:0;top:100%;margin-top:2px;min-width:10rem;background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:10;padding:.25rem 0;display:flex;flex-direction:column}.contact-options-menu button{display:block;width:100%;padding:.4rem .75rem;text-align:left;border:none;background:none;cursor:pointer;font-size:.9rem}.contact-options-menu button:hover{background:#f0f0f0}.contact-name{font-weight:500}.contact-fav-star{color:#b8860b;margin-right:.15em}.contact-prefix{font-size:.8rem;color:#555;margin-left:.25rem}.chats-list li{padding:.4rem 0;border-bottom:1px solid #eee}.chats-dms-heading{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid #ddd}.chat-channel{font-weight:600;color:#067;margin-right:.35rem}.chat-time{font-size:.8rem;color:#666;font-weight:400}.chat-message{word-break:break-word}.chats-send-heading{margin-top:1.5rem;padding-top:.75rem;border-top:1px solid #ddd}.chats-send-forms{display:flex;flex-wrap:wrap;gap:1.5rem;margin-top:.5rem}.chats-send-form{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.chats-send-form label{font-size:.9rem;font-weight:500}.chats-send-form select{min-width:10rem;padding:.35rem .5rem}.chats-send-form input[type=text]{min-width:12rem;padding:.35rem .5rem}.chats-send-form button{padding:.4rem .75rem;cursor:pointer}.chats-two-pane{display:flex;gap:0;min-height:360px;border:1px solid #ddd;border-radius:6px;overflow:hidden}@media(max-width:767px){.chats-two-pane{min-height:0;flex:1;flex-direction:column}.chats-two-pane:not(.chats-mobile-conversation) .chats-main{display:none!important}.chats-two-pane.chats-mobile-conversation .chats-sidebar{display:none!important}.chats-two-pane .chats-sidebar{width:100%;min-width:0;flex:1;min-height:0}.chats-two-pane.chats-mobile-conversation .chats-main{flex:1;min-height:0;display:flex!important}.chats-two-pane.chats-mobile-conversation .chats-conversation{flex:1;min-height:0}.chats-back{min-width:44px;min-height:44px;padding:.5rem .75rem;font-size:1.25rem}}.chats-sidebar{width:260px;min-width:260px;border-right:1px solid #ddd;background:#f8f8f8;display:flex;flex-direction:column}.chats-sidebar-title{margin:0;padding:.6rem .75rem;font-size:.95rem;font-weight:600;background:#eee;border-bottom:1px solid #ddd}.chats-sidebar-hint{margin:0;padding:.4rem .75rem;font-size:.85rem;border-bottom:1px solid #eee}.chats-sidebar-hint a{color:#06c}.chats-sidebar-hint a:hover{text-decoration:underline}.chats-sidebar-search{padding:.4rem .75rem;border-bottom:1px solid #eee}.chats-sidebar-search-input{width:100%;box-sizing:border-box;padding:.45rem .5rem;font-size:.9rem;border:1px solid #ccc;border-radius:6px}.chats-conversation-list{margin:0;padding:0;list-style:none;overflow-y:auto;flex:1}.chats-conv-item{display:flex;flex-direction:column;padding:.6rem 2rem .6rem .75rem;border-bottom:1px solid #eee;cursor:pointer;background:#f8f8f8;transition:background .1s;position:relative}.chats-conv-item:hover{background:#eee}.chats-conv-item--selected{background:#e0e8f0}.chats-conv-item:focus{outline:2px solid #067;outline-offset:-2px}.chats-conv-item--unread .chats-conv-name{font-weight:700}.chats-conv-unread-badge{position:absolute;top:.5rem;right:.6rem;display:inline-flex;align-items:center;justify-content:center;min-width:1.25em;height:1.25em;padding:0 .35em;font-size:.7rem;font-weight:700;color:#fff;background:#c00;border-radius:999px;flex-shrink:0}.chats-conv-name{font-weight:600;font-size:.9rem}.chats-conv-preview{font-size:.8rem;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.15rem}.chats-conv-empty{padding:1rem .75rem;color:#666;font-size:.9rem}.chats-main{flex:1;display:flex;flex-direction:column;min-width:0;background:#fff}.chats-placeholder{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;color:#666}.chats-conversation{display:flex;flex-direction:column;height:100%;position:relative;min-height:320px}.chats-conv-header{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid #ddd;background:#f5f5f5}.chats-back{padding:.35rem .5rem;font-size:1rem;cursor:pointer;border:1px solid #ccc;border-radius:4px;background:#fff}.chats-back:hover{background:#eee}.chats-conv-title{margin:0;font-size:1rem;font-weight:600}.chats-messages{flex:1;overflow-y:auto;padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.chats-jump-to-present{position:absolute;bottom:3.5rem;right:1rem;padding:.4rem .75rem;font-size:.85rem;font-weight:500;color:#333;background:#fff;border:1px solid #ccc;border-radius:18px;box-shadow:0 2px 8px #00000026;cursor:pointer;z-index:10}.chats-jump-to-present:hover{background:#f5f5f5;border-color:#999}.chats-jump-to-present:focus{outline:2px solid #067;outline-offset:2px}.chats-no-messages{margin:auto;color:#888;font-size:.9rem}.chat-bubble{position:relative;max-width:85%;padding:1.5rem .75rem .5rem;border-radius:12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem}.chat-bubble-menu-btn{position:absolute;top:.2rem;right:.35rem;padding:.15rem .35rem;font-size:.85rem;line-height:1;background:transparent;border:none;color:#666;cursor:pointer;border-radius:4px}.chat-bubble-menu-btn:hover{background:#00000014;color:#333}.chat-bubble-meta{font-size:.65rem;color:#888;width:100%;margin-top:.15rem}.chat-bubble-menu{z-index:100;min-width:10rem;padding:.35rem 0;background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:0 4px 12px #00000026}.chat-bubble-menu-item{display:block;width:100%;padding:.4rem .75rem;text-align:left;font-size:.85rem;background:none;border:none;cursor:pointer;color:#333;text-decoration:none}.chat-bubble-menu-item:hover{background:#f0f0f0}.chat-bubble-menu-link{color:#067}.chat-bubble--received{align-self:flex-start;background:#e8e8e8;border-bottom-left-radius:4px}.chat-bubble--sent{align-self:flex-end;background:#dcf8c6;border-bottom-right-radius:4px;margin-left:auto}.chat-bubble--sent .chat-bubble-meta{color:#4a6b42}.chat-bubble--traceable{cursor:pointer}.chat-bubble--traceable:hover{filter:brightness(.97)}.message-trace-dialog{max-width:22rem}.message-trace-dl{margin:0;padding:0}.message-trace-row{display:grid;grid-template-columns:7.5rem 1fr;gap:.35rem .75rem;font-size:.85rem;margin-bottom:.5rem;align-items:baseline}.message-trace-row dt{margin:0;color:#666;font-weight:500}.message-trace-row dd{margin:0;word-break:break-word;font-family:ui-monospace,monospace;font-size:.8rem}.message-trace-hash{margin:.5rem 0 0;font-size:.85rem}.message-trace-footer{margin-top:.75rem}.chat-bubble-sender{font-weight:600;font-size:.8rem;color:#067;width:100%}.chat-bubble-text{word-break:break-word}.chat-bubble-time{font-size:.7rem;color:#666;margin-left:auto}.chats-input-row{display:flex;gap:.5rem;padding:.5rem .75rem;border-top:1px solid #ddd;background:#f5f5f5}.chats-input-row input{flex:1;padding:.5rem .75rem;border:1px solid #ccc;border-radius:20px;font-size:.95rem}.chats-input-row button{padding:.5rem 1rem;cursor:pointer;border-radius:20px;border:1px solid #067;background:#067;color:#fff;font-weight:500}.chats-input-row button:hover{background:#056}.chats-outgoing-delivery-hint{margin:0;padding:.35rem .75rem .15rem;font-size:.68rem;color:#666;line-height:1.35;border-top:1px solid #eaeaea;background:#fafafa}.chats-disconnected-hint{padding:.5rem .75rem;margin:0;border-top:1px solid #ddd;background:#fff8e0;font-size:.9rem;color:#666}.chats-send-status{margin:.25rem .75rem 0;padding:.25rem 0;font-size:.85rem}.chats-send-status--sending{color:#666}.chats-send-status--sent{color:#067}.chats-send-status--confirmed{color:#080}.chats-send-status--error{color:#c00}.room-settings{border-top:1px solid #ddd;padding:0;background:#fafafa}.room-settings-toggle{width:100%;display:flex;flex-direction:column;align-items:stretch;gap:.25rem;padding:.5rem .75rem;margin:0;border:none;border-bottom:1px solid #e5e5e5;background:#f0f0f0;cursor:pointer;font:inherit;text-align:left;color:inherit;box-sizing:border-box}.room-settings-toggle:hover{background:#eaeaea}.room-settings-toggle-inner{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%}.room-settings-toggle-title{font-weight:600;font-size:.95rem}.room-settings-toggle-meta{font-size:.85rem;line-height:1.35}.room-settings-chevron{flex-shrink:0;font-size:.65rem;opacity:.75;transition:transform .15s ease}.room-settings--collapsed .room-settings-chevron{transform:rotate(-90deg)}.room-settings-expandable{padding:.5rem .75rem .75rem}.room-settings-expandable[hidden]{display:none!important}.room-settings-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0}.room-settings-row input,.room-settings-row select{padding:.4rem .5rem;border:1px solid #ccc;border-radius:6px}.room-acl-list{margin:.4rem 0 0;padding-left:1.25rem}.rxlog-table-wrap{margin-top:.5rem;border:1px solid #ddd;border-radius:4px;width:100%}.rxlog-table{width:100%;border-collapse:collapse;font-size:.8rem}.rxlog-table th,.rxlog-table td{padding:.35rem .5rem;text-align:left;border-bottom:1px solid #eee}.rxlog-table th{background:#f5f5f5;font-weight:600}.rxlog-table code{font-size:.75rem}.rxlog-table .rxlog-message{max-width:24rem;word-break:break-word}.raw-log-options{margin:0 0 .5rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.raw-log-options .hint{margin:0;font-size:.85rem}.log-section pre{margin:0;padding:.75rem;background:#f5f5f5;border:1px solid #ddd;border-radius:4px;font-size:.8rem;font-family:ui-monospace,monospace;white-space:pre-wrap;word-break:break-all;max-height:20rem;overflow-y:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow-y:auto;-webkit-overflow-scrolling:touch}.modal-dialog{background:#fff;padding:1.25rem;border-radius:8px;box-shadow:0 4px 20px #0003;max-width:90vw;max-height:min(85vh,85dvh);overflow-y:auto;margin:auto;flex-shrink:0}.modal-dialog--wide{max-width:32rem}@media(max-width:767px){.modal-overlay{align-items:flex-start;padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}.modal-dialog{max-height:min(88vh,88dvh);width:100%;padding:.75rem 1rem;margin:.5rem 0 2rem}.modal-dialog h2{font-size:1rem}.modal-dialog .hint,.wifi-http-modal-body{font-size:.875rem}.modal-actions{flex-wrap:wrap;margin-top:.5rem}.modal-actions button{min-height:44px}}.modal-dialog h2{margin:0 0 .5rem;font-size:1.1rem}.modal-dialog .hint{margin:0 0 1rem}.wifi-http-modal-body p{margin:.4em 0}.wifi-http-modal-body p:first-child{margin-top:0}.wifi-https-details summary{margin-bottom:.25rem}.wifi-https-steps code{font-size:.85em;background:#0000000f;padding:.1em .35em;border-radius:3px}.wifi-https-steps a{color:#077}.wifi-previous-row .wifi-previous-label{flex-shrink:0;margin-right:.5rem}.wifi-previous-list{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.wifi-previous-btn{font-size:.8rem;padding:.2rem .5rem;background:#0000000f;border:1px solid #ccc;border-radius:4px;cursor:pointer;font-family:inherit}.wifi-previous-btn:hover{background:#0000001a;border-color:#999}.wifi-auto-connect-row{margin:.5rem 0 0}.wifi-auto-connect-label{display:flex;align-items:center;gap:.35rem;font-size:.9rem;cursor:pointer}.modal-sections{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.modal-section{display:flex;align-items:center;gap:.5rem;cursor:pointer}.modal-section--disabled{color:#888;cursor:default}.modal-section--disabled input{cursor:default}.modal-merge{margin:0 0 1rem;padding:.5rem 0}.modal-merge label{margin-right:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end}.modal-actions button{padding:.4rem .75rem;cursor:pointer}.modal-overlay .add-contact-dialog{max-width:28rem}.modal-overlay .modal-header-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.modal-overlay .modal-header-row h2{margin:0}.modal-overlay .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid #ccc;border-radius:6px;background:#f5f5f5;color:#333;font-size:1.25rem;line-height:1;cursor:pointer;flex-shrink:0}.modal-overlay .icon-btn:hover:not(:disabled){background:#e8f4fc;border-color:#0a9;color:#077}.modal-overlay .icon-btn:disabled{opacity:.5;cursor:not-allowed}.modal-overlay .add-contact-info{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .6rem;margin-bottom:.75rem;background:#f0f4f8;border-radius:8px;border:1px solid #ccc}.modal-overlay .add-contact-info-icon{flex-shrink:0}.modal-overlay .add-contact-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.modal-overlay .add-contact-actions-row .btn-secondary{padding:.4rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer;border:1px solid #ccc;background:#f5f5f5}.modal-overlay .add-contact-actions-row .btn-secondary:hover{background:#eee}.modal-overlay .qr-scanner-dialog{max-width:min(90vw,320px)}.modal-overlay .qr-scanner-video-wrap{position:relative;width:100%;aspect-ratio:1;background:#000;border-radius:8px;overflow:hidden;margin:.5rem 0}.modal-overlay .qr-scanner-video-wrap video{width:100%;height:100%;object-fit:cover}.contact-details-overlay{display:flex;align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto}.contact-details-dialog{width:100%;max-width:28rem;max-height:90vh;overflow-y:auto}.contact-details-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.contact-details-back{padding:.35rem .5rem;font-size:1.2rem;background:none;border:none;cursor:pointer;color:#06c}.contact-details-header h2{margin:0;font-size:1.1rem}.contact-details-body{display:flex;flex-direction:column;gap:1rem}.contact-details-name{font-size:1.25rem;font-weight:600}.contact-details-id{font-size:.9rem;color:#555}.contact-details-id code{font-size:.85rem}.contact-details-actions{display:flex;flex-wrap:wrap;gap:.5rem}.contact-details-action-btn{padding:.4rem .6rem;font-size:.85rem;background:#f0f0f0;border:1px solid #ddd;border-radius:6px;cursor:pointer}.contact-details-action-btn:hover{background:#e5e5e5}.contact-details-fields{margin:0;display:grid;gap:.5rem}.contact-details-row{display:grid;grid-template-columns:8rem 1fr;gap:.5rem;align-items:baseline;padding:.35rem 0;border-bottom:1px solid #f0f0f0}.contact-details-row dt{margin:0;font-weight:500;color:#555;font-size:.9rem}.contact-details-row dd{margin:0;font-size:.9rem}.contact-details-row .contact-details-key{word-break:break-all;font-size:.8rem}.contact-details-copy{margin-left:.35rem;padding:.2rem .4rem;font-size:.8rem;cursor:pointer;background:#eee;border:none;border-radius:4px}.contact-details-copy:hover{background:#ddd}.contact-details-section{margin-top:.5rem}.contact-details-telemetry .telemetry-chart-wrap{margin-top:.35rem}.contact-details-telemetry .telemetry-chart{display:block;max-width:100%;height:auto;border-radius:4px;background:#00000008}.noise-floor-chart-wrap{margin-top:.35rem}.noise-floor-chart{display:block;max-width:100%;height:auto;border-radius:4px;background:#00000008}.contact-details-section h3{margin:0 0 .35rem;font-size:.95rem;color:#555}.contact-details-section p{margin:.25rem 0;font-size:.9rem}.contact-details-muted{color:#777;font-size:.85rem}.contact-details-actions-bottom{margin-top:1rem;padding-top:1rem;border-top:1px solid #eee}.contact-details-letsmesh-btn{display:inline-block;padding:.5rem .75rem;background:#06c;color:#fff;text-decoration:none;border-radius:6px;font-size:.95rem}.contact-details-letsmesh-btn:hover{background:#0052a3;color:#fff}.contact-details-actions-bottom button{margin-left:.5rem;padding:.5rem .75rem;cursor:pointer;background:#f0f0f0;border:1px solid #ccc;border-radius:6px}.preset-picker-overlay{align-items:flex-start;padding:.75rem}.preset-picker-dialog{width:100%;max-width:30rem;padding:0;overflow:hidden}.preset-picker-header{display:flex;align-items:center;gap:.5rem;padding:.75rem .9rem;border-bottom:1px solid #eee}.preset-picker-close{border:none;background:none;font-size:1.1rem;color:#06c;cursor:pointer}.preset-picker-header h2{margin:0;font-size:1.05rem}.preset-picker-hint{margin:0;padding:.45rem .9rem;color:#fff;background:#2b8de4;font-size:.82rem}.preset-picker-search-wrap{margin:0;padding:.65rem .9rem;border-bottom:1px solid #eee}.preset-picker-search-wrap input{width:100%;padding:.45rem .55rem;border:1px solid #ccc;border-radius:4px}.preset-picker-list{max-height:min(64vh,32rem);overflow-y:auto}.preset-picker-group{border-top:1px solid #ececec}.preset-picker-group:first-child{border-top:none}.preset-picker-group-title{position:sticky;top:0;z-index:1;margin:0;padding:.45rem .9rem;font-size:.75rem;letter-spacing:.03em;text-transform:uppercase;color:#4b5563;background:#f7f7f7;border-bottom:1px solid #ececec}.preset-picker-item{display:flex;flex-direction:column;width:100%;border:none;border-bottom:1px solid #f0f0f0;background:#fff;cursor:pointer;text-align:left;padding:.75rem .9rem;gap:.2rem}.preset-picker-item:hover{background:#f8fbff}.preset-picker-item--active{background:#eef6ff}.preset-picker-item-title{font-size:1rem;color:#222}.preset-picker-item-details{font-size:.86rem;color:#666}.preset-picker-empty{margin:0;padding:.9rem;color:#666;font-size:.9rem}.settings-map-canvas{width:100%;height:320px;border-top:1px solid #eee;border-bottom:1px solid #eee}.settings-map-coords{margin:0;padding:.6rem .9rem 0;font-size:.9rem}.advanced-subtabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding:.2rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.advanced-subtab{border:1px solid transparent;background:transparent;color:#64748b;border-radius:6px;padding:.4rem .75rem;font:inherit;cursor:pointer}.advanced-subtab:hover{color:#0f172a}.advanced-subtab.advanced-subtab--active{color:#fff;border-color:#0ea5e9;background:linear-gradient(180deg,#0ea5e9,#0284c7)}.advanced-subpanel{display:none}.advanced-subpanel.advanced-subpanel--active{display:block}.advanced-cli-section .cli-docs-wrap{margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:6px;background:#f8fafc;overflow:hidden}.advanced-cli-section .cli-docs-title{margin:0;padding:0;font-size:.875rem;font-weight:600;border-bottom:1px solid #e2e8f0}.advanced-cli-section .cli-docs-toggle{display:block;width:100%;padding:.5rem .75rem;text-align:left;font:inherit;font-weight:600;color:#0f172a;background:none;border:none;cursor:pointer}.advanced-cli-section .cli-docs-body{padding:0 .75rem .75rem}.advanced-cli-section .cli-docs-preview,.advanced-cli-section .cli-docs-content{margin:0 0 .5rem;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.8rem;line-height:1.35;white-space:pre-wrap;word-break:break-word;color:#475569}.advanced-cli-section .cli-docs-content{max-height:14rem;overflow:auto;padding:.5rem 0}.advanced-cli-section .cli-docs-expand-btn{font-size:.8rem;padding:.25rem .5rem;color:#0284c7;background:none;border:1px solid #e2e8f0;border-radius:4px;cursor:pointer}.advanced-cli-section .cli-output-wrap{margin-bottom:.75rem}.advanced-cli-section .cli-output{font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.875rem;line-height:1.4;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem;max-height:40vh;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:0 0 .75rem;color:#0f172a}.advanced-cli-section .cli-input-wrap{display:flex;align-items:center;gap:.5rem}.advanced-cli-section .cli-prompt{color:#0284c7;font-family:ui-monospace,monospace;font-weight:600}.advanced-cli-section #cli-input{flex:1;min-width:0;padding:.4rem .6rem;font-family:ui-monospace,monospace;font-size:.9rem;background:#fff;border:1px solid #e2e8f0;border-radius:4px;color:#0f172a}.advanced-section h2{margin:0 0 .5rem}.advanced-live-dashboard{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem;margin-bottom:1.25rem}.advanced-live-title{display:flex;align-items:center;gap:.5rem}.advanced-live-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#0ea5e9;background:#0ea5e91f;padding:.15rem .4rem;border-radius:4px;animation:advanced-pulse 2s ease-in-out infinite}@keyframes advanced-pulse{0%,to{opacity:1}50%{opacity:.7}}.advanced-live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:.75rem}.advanced-live-card{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem 1rem;box-shadow:0 1px 2px #0000000a;transition:box-shadow .2s ease}.advanced-live-card:hover{box-shadow:0 2px 8px #0000000f}.advanced-live-card-wide{grid-column:span 2}@media(max-width:640px){.advanced-live-card-wide{grid-column:span 1}}.advanced-live-card h4{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:#475569}.advanced-live-meta{margin:.35rem 0 0;font-size:.75rem;color:#64748b}.advanced-activity-strip{display:flex;gap:2px;align-items:flex-end;height:2rem}.advanced-activity-block{flex:1;min-width:4px;height:100%;border-radius:2px;background:color-mix(in srgb,#3b82f6 calc(var(--intensity, 0) * 1%),transparent 80%);transition:background .25s ease}.advanced-live-sparkline-wrap{min-height:44px;display:flex;align-items:center}.advanced-live-sparkline-wrap .advanced-sparkline{color:#0ea5e9}.advanced-mini-bars{display:flex;align-items:flex-end;gap:3px;height:2.5rem}.advanced-mini-bars-rx .advanced-mini-bar-fill{background:linear-gradient(180deg,#10b981,#059669)}.advanced-mini-bar{flex:1;min-width:4px;height:100%;display:flex;align-items:flex-end}.advanced-mini-bar-fill{width:100%;height:calc(var(--pct, 0) * 1%);min-height:2px;background:linear-gradient(180deg,#3b82f6,#2563eb);border-radius:2px 2px 0 0;transition:height .3s ease}.advanced-donut{display:flex;flex-direction:row;width:100%;max-width:140px;height:1.5rem;border-radius:6px;overflow:hidden;margin:.5rem 0 0;box-shadow:inset 0 1px 2px #0000000f}.advanced-donut-segment{width:calc(var(--pct, 0) * 1%);min-width:0;height:100%;transition:width .3s ease}.advanced-donut-ok{background:linear-gradient(180deg,#22c55e,#16a34a)}.advanced-donut-fail{background:linear-gradient(180deg,#ef4444,#dc2626)}.advanced-donut-timeout{background:linear-gradient(180deg,#f59e0b,#d97706)}.advanced-section-heading{display:flex;align-items:center;gap:.5rem}.advanced-section-heading h2{margin:0 0 .5rem}.advanced-help-btn{flex-shrink:0;width:1.5rem;height:1.5rem;padding:0;border:1px solid #999;border-radius:50%;background:#f0f0f0;color:#333;font-size:.9rem;cursor:pointer;line-height:1}.advanced-help-btn:hover{background:#e0e0e0;border-color:#666}.advanced-help-panel{margin:.5rem 0 1rem;padding:.75rem 1rem;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;font-size:.9rem}.advanced-help-panel p{margin:.4rem 0}.advanced-help-panel p:first-child{margin-top:0}.advanced-help-panel code{background:#e9ecef;padding:.1em .35em;border-radius:3px}.advanced-timeline-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin:.5rem 0 1rem}.advanced-timeline-actions .advanced-filter-btn{padding:.35rem .75rem;font-size:.9rem}.advanced-timeline-export{display:flex;gap:.5rem;margin-left:auto}.advanced-timeline-table-wrap{margin-top:.5rem;border:1px solid #ddd;border-radius:4px;overflow-x:auto}.advanced-timeline-table{width:100%;border-collapse:collapse;font-size:.8rem}.advanced-timeline-table th,.advanced-timeline-table td{padding:.35rem .5rem;text-align:left;border-bottom:1px solid #eee}.advanced-timeline-table th{background:#f5f5f5;font-weight:600}.advanced-stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.75rem;margin:1rem 0}.advanced-stats-card{padding:.75rem;border:1px solid #ddd;border-radius:4px;background:#fafafa}.advanced-stats-card h4{margin:0 0 .35rem;font-size:.85rem;font-weight:600;color:#555}.advanced-stats-card .value{font-size:1.25rem;font-weight:600}.advanced-tools-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;margin-top:.75rem}.advanced-tool-card{padding:1rem;border-radius:4px}.advanced-tool-card h4{margin:0 0 .35rem;font-size:1rem;font-weight:600}.advanced-tool-desc{margin:.35rem 0 .75rem;font-size:.9rem;color:#555}.advanced-tool-card .tools-coord{width:5rem;margin-right:.25rem}.advanced-bar-chart{margin:.75rem 0 1.25rem}.advanced-bar-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.9rem}.advanced-bar-label{flex:0 0 12rem;min-width:0;overflow:hidden;text-overflow:ellipsis}.advanced-bar-wrap{flex:1 1 8rem;min-width:4rem;height:1.25rem;background:#eee;border-radius:3px;overflow:hidden}.advanced-bar-fill{display:block;height:100%;background:linear-gradient(90deg,#4a9eff,#2d7dd2);border-radius:2px;min-width:2px;transition:width .2s ease}.advanced-bar-value{flex:0 0 auto;font-weight:600;color:#333}.advanced-repeater-signal-table{margin:.5rem 0 1rem}.advanced-repeater-signal-table .advanced-repeater-sparkline{padding:.25rem 0;vertical-align:middle}.advanced-repeater-signal-table .advanced-repeater-sparkline svg.advanced-sparkline{display:block;color:#2d7dd2}.advanced-repeater-signal-table .advanced-repeater-sparkline td{vertical-align:middle}.advanced-batch-list{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin:.5rem 0 1rem}.advanced-batch-row{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;cursor:pointer}.advanced-batch-results{margin-top:1rem}.advanced-batch-results h4{margin:0 0 .5rem;font-size:.95rem}.advanced-runbook-list{list-style:none;margin:.5rem 0 1rem;padding:0}.advanced-runbook-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.5rem;padding:.35rem 0;border-bottom:1px solid #eee}.advanced-runbook-name{font-weight:600}.advanced-runbook-steps{font-size:.9rem;color:#555}.advanced-runbook-running{margin-top:1rem;padding:.5rem;background:#f5f5f5;border-radius:4px}.advanced-runbook-history{list-style:none;margin:.5rem 0 0;padding:0;font-size:.9rem;color:#555}.app-toast{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%) translateY(calc(100% + 1rem));z-index:10001;max-width:min(420px,calc(100vw - 2rem));padding:.75rem 1.25rem;border-radius:8px;border:1px solid #15803d;background:#ecfdf3;color:#14532d;font-size:.95rem;font-weight:500;line-height:1.35;text-align:center;box-shadow:0 4px 24px #00000024;opacity:0;pointer-events:none;transition:opacity .28s ease,transform .28s ease}.app-toast.app-toast--visible{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.app-toast.app-toast--error{border-color:#b91c1c;background:#fef2f2;color:#991b1b}:root{--obs-bg: #0b0f14;--obs-bg-soft: #111823;--obs-surface: #151f2d;--obs-surface-2: #1a2637;--obs-border: #243247;--obs-text: #e7edf7;--obs-text-dim: #98a9c1;--obs-cyan: #28d7ff;--obs-cyan-soft: #1fb8da;--obs-green: #2fd08f;--obs-amber: #f3b23f;--obs-red: #ef5b5b;--obs-purple: #9c7cff;--obs-shadow: 0 10px 30px rgba(0, 0, 0, .25)}.observer-shell{color:var(--obs-text);background:radial-gradient(1200px 600px at 80% -20%,rgba(40,215,255,.12),transparent 60%),radial-gradient(900px 500px at 10% -30%,rgba(156,124,255,.08),transparent 60%),var(--obs-bg);height:100vh;min-height:100vh;min-width:0;padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;display:flex;flex-direction:column;box-sizing:border-box;overflow:hidden}.observer-shell #app{flex:1 1 0;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.observer-shell #app .app-menubar-wrap{flex-shrink:0;--fg: var(--obs-text);--fg-dim: var(--obs-text-dim);--border: var(--obs-border);--accent: var(--obs-cyan);--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--font-sm: .875rem;--font-base: 1rem;--radius: 4px}.observer-shell #app .app-menubar-wrap .menubar-wrap{align-items:center;min-height:2.5rem;border-bottom:1px solid var(--obs-border);margin-bottom:.5rem;padding-bottom:.25rem}@media(min-width:600px){.observer-shell #app .app-menubar-wrap .menubar-wrap{min-height:2.75rem}}.observer-shell #app .menubar-brand-app{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--obs-text)}.observer-shell #app .menubar-brand-app .app-badge{display:inline-flex;align-items:center;margin-left:.35em;font-size:.55em;font-weight:700;letter-spacing:.08em;color:var(--obs-amber);padding:.2em .45em;border:1px solid var(--obs-amber);border-radius:4px;line-height:1}.observer-shell #app .app-badge--alpha{cursor:pointer;background:none;font:inherit}.observer-shell #app .app-badge--alpha:hover{color:var(--obs-cyan);border-color:var(--obs-cyan)}.observer-shell #app .app-footer .footer-icon{width:1em;height:1em;vertical-align:-.2em;margin-right:.25em;display:inline-block}@media(min-width:600px){.observer-shell #app .menubar-brand-app{font-size:.95rem}}.observer-shell #app .menubar-status .observer-topbar-status-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}.observer-shell #app .menubar-status .observer-topbar-status-value{font-weight:600;color:var(--obs-text)}.observer-shell #app .menubar-status .observer-topbar-status-divider{width:1px;height:.875em;margin:0 .25rem;background:var(--obs-border);flex-shrink:0;opacity:.7}.observer-shell #app .menubar-status .observer-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.observer-shell #app .menubar-title-o{display:inline;transition:text-shadow .15s ease,color .15s ease}.observer-shell #app #menubar-rx-indicator.menubar-rxtx-flash{color:var(--obs-green);text-shadow:0 0 8px var(--obs-green),0 0 16px rgba(47,208,143,.7),0 0 24px rgba(47,208,143,.4)}.observer-shell #app #menubar-tx-indicator.menubar-rxtx-flash{color:var(--obs-red);text-shadow:0 0 8px var(--obs-red),0 0 16px rgba(239,91,91,.7),0 0 24px rgba(239,91,91,.4)}.observer-shell #app .menubar-power-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:0;background:none;color:var(--obs-text);cursor:pointer;transition:color .2s ease;flex-shrink:0}.observer-shell #app .menubar-power-btn:hover{color:var(--obs-red)}.observer-shell #app .menubar-power-btn .topbar-power-icon,.observer-shell #app .menubar-power-btn svg{display:block;width:20px;height:20px}.observer-shell #app .menubar-wifi-btn{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;margin-right:4px;border:none;border-radius:0;background:none;color:var(--obs-text);font-size:12px;cursor:pointer;transition:color .2s ease;flex-shrink:0}.observer-shell #app .menubar-wifi-btn:hover{color:var(--obs-accent)}.observer-shell #app .app-content-row{flex:1 1 0;min-height:0;display:flex;flex-direction:row;overflow:hidden}.observer-shell #app .app-main{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.observer-shell #app .app-map-host{width:380px;min-width:380px;flex-shrink:0;display:none;flex-direction:column;overflow:hidden;background:var(--obs-surface);border-left:1px solid var(--obs-border)}.observer-shell #app .app-map-host:not([hidden]){display:flex!important}.observer-shell #app .app-map-host .advanced-map-iframe{flex:1 1 0;min-height:0;width:100%;border:none}.observer-shell #app .app-footer-wrap{flex-shrink:0}.observer-shell #app .app-footer{margin-top:.5rem;padding:.5rem 0;border-top:1px solid var(--obs-border);font-size:.75rem;color:var(--obs-text-dim);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.observer-shell #app .app-footer-left{flex:1;min-width:0;text-align:left}.observer-shell #app .app-footer-right{flex-shrink:0;text-align:right}.observer-shell #app .app-footer .footer-link--about{color:var(--obs-text-dim)}.observer-shell #app .about-content{white-space:normal}.observer-shell #app .about-content p{margin:0 0 .75rem}.observer-shell #app .about-content p:last-child{margin-bottom:0}.observer-shell #app .about-content .about-link{color:var(--obs-cyan);text-decoration:none;font-weight:500}.observer-shell #app .about-content .about-link:hover{text-decoration:underline;color:var(--obs-cyan-soft)}.observer-shell #app .app-footer .footer-link{display:inline-flex;align-items:center;color:var(--obs-text-dim);text-decoration:none;background:none;border:none;padding:0;font:inherit;cursor:pointer}.observer-shell #app .app-footer .footer-link:hover{color:var(--obs-cyan)}.observer-shell #app .app-footer .footer-link--current-page{cursor:default;color:var(--obs-cyan-soft);font-weight:600}.observer-shell #app .footer-sep{margin:0 .25rem;opacity:.6}.observer-shell #app .legal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:.75rem}.observer-shell #app .legal-modal{background:var(--obs-surface);border:1px solid var(--obs-border);border-radius:10px;box-shadow:var(--obs-shadow);max-width:36rem;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.observer-shell #app .legal-header{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-bottom:1px solid var(--obs-border);flex-shrink:0;background:var(--obs-surface-2)}.observer-shell #app .legal-header h2{margin:0;font-size:.9rem;color:var(--obs-text)}.observer-shell #app .legal-header button{background:none;border:none;color:var(--obs-text);font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.observer-shell #app .legal-header button:hover{color:var(--obs-cyan)}.observer-shell #app .legal-content{padding:.75rem;overflow:auto;font-size:.85rem;color:var(--obs-text-dim);white-space:pre-wrap;margin:0;flex:1;min-height:0}@media(max-width:900px){.observer-shell #app .app-content-row{flex-direction:column}.observer-shell #app .app-map-host{width:100%;min-width:0;min-height:280px;max-height:45vh;border-left:none;border-top:1px solid var(--obs-border)}.observer-shell #app .app-map-host .advanced-map-iframe{min-height:260px}}.observer-shell #app .app-main>header,.observer-shell #app .app-main>.observer-kpi-grid,.observer-shell #app .app-main>.disconnected-placeholder{display:flex;align-items:flex-start;justify-content:center;min-height:0;padding:2rem 1.5rem 4rem;text-align:center;overflow-y:auto}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-inner{max-width:28rem;width:100%}@media(min-width:768px){.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-inner{max-width:56rem}}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-title{margin:0 0 .75rem;font-size:2rem;font-weight:800;letter-spacing:.02em;color:var(--obs-text);text-shadow:0 0 40px rgba(40,215,255,.15)}@media(min-width:600px){.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-title{font-size:2.5rem}}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-title .app-badge{display:inline-block;margin-left:.4em;font-size:.4em;font-weight:700;letter-spacing:.12em;color:var(--obs-bg);background:linear-gradient(135deg,var(--obs-amber),#e09b2a);padding:.25em .55em;border:none;border-radius:4px;vertical-align:middle;box-shadow:0 2px 8px #f3b23f59}.observer-shell #app .disconnected-placeholder-title .app-badge--alpha{cursor:pointer}.observer-shell #app .disconnected-placeholder-title .app-badge--alpha:hover{filter:brightness(1.1)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-subtitle{margin:0 0 2.5rem;font-size:1.1rem;font-weight:500;color:var(--obs-text-dim);letter-spacing:.01em}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.5rem;margin-bottom:2rem;text-align:left}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card{display:flex;flex-direction:column;padding:1.75rem;border:1px solid var(--obs-border);border-radius:16px;background:linear-gradient(165deg,var(--obs-surface) 0%,var(--obs-surface-2) 100%);box-shadow:0 4px 24px #0003,0 0 0 1px #28d7ff08;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card:hover{transform:translateY(-2px);box-shadow:0 12px 32px #00000040,0 0 0 1px #28d7ff14;border-color:#28d7ff33}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-icon{display:flex;align-items:center;justify-content:center;align-self:center;width:3.5rem;height:3.5rem;margin-bottom:1rem;border-radius:12px;background:linear-gradient(135deg,#28d7ff2e,#28d7ff14);color:var(--obs-cyan);box-shadow:inset 0 1px #ffffff0f}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-icon svg{width:1.75rem;height:1.75rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-title{margin:0 0 .5rem;font-size:1.2rem;font-weight:700;color:var(--obs-text);letter-spacing:.02em;text-align:center}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-desc{margin:0 0 1rem;font-size:.925rem;line-height:1.5;color:var(--obs-text-dim);flex:1}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-links{margin:0 0 1rem;font-size:.85rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-links a{color:var(--obs-cyan);text-decoration:none;font-weight:500}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-links a:hover{text-decoration:underline;color:var(--obs-cyan-soft)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-btn{margin-top:auto;padding:.85rem 1.25rem;font-size:1rem;font-weight:600;width:100%;min-height:52px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:transform .15s ease,box-shadow .15s ease}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 20px #0003}@media(max-width:767px){.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-cards{grid-template-columns:1fr;gap:.5rem;margin-bottom:1rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card{padding:.6rem .75rem;border-radius:10px;flex-direction:row;align-items:center;gap:.6rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card:hover{transform:none}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-icon{width:2.25rem;height:2.25rem;margin-bottom:0;border-radius:8px;flex-shrink:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-icon svg{width:1.1rem;height:1.1rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-title{font-size:.9rem;margin:0;text-align:left;flex:1;min-width:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-desc,.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-links{display:none}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-btn{padding:.45rem .65rem;font-size:.8rem;min-height:36px;width:auto;flex-shrink:0;border-radius:8px}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-card-btn:hover:not(:disabled){transform:none}}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-unsupported{margin:.75rem 0 0;padding:.75rem 1rem;background:#ef5b5b1f;border:1px solid rgba(239,91,91,.35);border-radius:10px;font-size:.9rem;color:var(--obs-text)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-placeholder-status{margin:1.25rem 0 0;font-size:.95rem;font-weight:500;color:var(--obs-cyan)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch{margin-top:3rem;width:100%;padding:2.25rem 2rem;border-radius:20px;border:1px solid var(--obs-border);background:linear-gradient(180deg,#1a263799,#111823cc);box-shadow:0 4px 24px #00000026,inset 0 1px #ffffff08;text-align:left;box-sizing:border-box}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual{display:flex;align-items:center;justify-content:center;gap:.75rem 1.25rem;flex-wrap:wrap;margin-bottom:1.5rem;padding:1rem 1.25rem;border-radius:12px;background:#00142366;border:1px solid var(--obs-border)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-icons{display:flex;align-items:center;gap:1rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#0096b426;color:var(--obs-cyan)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-icon .transport-icon-svg{width:20px;height:20px}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-label{font-size:.85rem;font-weight:600;letter-spacing:.04em;color:var(--obs-text-dim);text-transform:uppercase}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-title{margin:0 0 1rem;font-size:1.35rem;font-weight:700;color:var(--obs-text);letter-spacing:.02em;display:flex;align-items:center;gap:.5rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-title-icon{display:inline-flex;flex-shrink:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-intro{margin:0 0 1rem;font-size:.98rem;line-height:1.6;color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-tablist.tabs{margin-top:0;margin-bottom:1.25rem;border-bottom-color:var(--obs-border)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-tablist .tab{color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-tablist .tab:hover{color:var(--obs-text)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-tablist .tab.tab--active{color:var(--obs-cyan);border-bottom-color:var(--obs-cyan)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual--repeater{background:#b48c3c1f;border-color:#c8a05059}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-icon--relay{width:44px;height:44px;background:#c8a05033;color:#e8c56e}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-visual-icon--relay .transport-icon-svg{width:26px;height:26px}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-inset-card{margin:1.25rem 0 0;display:flex;justify-content:center}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-inset-card .disconnected-card{max-width:22rem;width:100%;margin:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-section-icon--check{color:#2ecc71}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-section-icon--x{color:#e74c3c}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-lead{margin:0 0 1.25rem;font-size:1.05rem;line-height:1.6;color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-list{margin:0 0 1.25rem;padding-left:0;list-style:none;font-size:.95rem;line-height:1.65;color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-list li{margin-bottom:.65rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-list li:last-child{margin-bottom:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-list strong{color:var(--obs-text)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-list-item{display:flex;align-items:flex-start;gap:.65rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-bullet{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.5rem;height:1.5rem;margin-top:.15rem;border-radius:6px;background:#28d7ff1f;color:var(--obs-cyan)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-bullet-icon{width:1rem;height:1rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-bullet-text{flex:1;min-width:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-power{margin:0 0 1rem;padding:.75rem 1rem;font-size:.9rem;line-height:1.5;color:var(--obs-text-dim);background:#0096b414;border-left:3px solid var(--obs-cyan);border-radius:0 8px 8px 0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-cta{margin:0;padding-top:.5rem;font-size:1rem;font-weight:500;color:var(--obs-text)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-cta a{color:var(--obs-cyan);text-decoration:none;font-weight:600}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-cta a:hover{text-decoration:underline;color:var(--obs-cyan-soft)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-details{margin:1.25rem 0 0;border:1px solid var(--obs-border);border-radius:10px;background:#141e2d99;overflow:hidden}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-summary{padding:.65rem 1rem;font-size:.95rem;font-weight:600;color:var(--obs-text);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-summary::-webkit-details-marker{display:none}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-summary:before{content:"▶ ";font-size:.7em;opacity:.7}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-details[open] .disconnected-pitch-privacy-summary:before{content:"▼ "}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-body{padding:0 1rem 1rem;font-size:.9rem;line-height:1.55;color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-body p{margin:0 0 .75rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-body p:last-child{margin-bottom:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-legal-link{background:none;border:none;padding:0;font:inherit;color:var(--obs-cyan);cursor:pointer;text-decoration:underline}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-pitch-privacy-legal-link:hover{color:var(--obs-cyan-soft)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-not{margin-top:3rem;width:100%;padding:2rem;border-radius:20px;border:1px solid var(--obs-border);background:linear-gradient(180deg,#141e2db3,#0f1620d9);box-shadow:0 4px 24px #00000026,inset 0 1px #ffffff05;text-align:left;box-sizing:border-box}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-not-title{margin:0 0 .75rem;font-size:1.25rem;font-weight:700;color:var(--obs-text);letter-spacing:.02em;display:flex;align-items:center;gap:.5rem}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-not-title-icon{display:inline-flex;flex-shrink:0}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-not-lead{margin:0 0 .75rem;font-size:1rem;line-height:1.55;color:var(--obs-text-dim)}.observer-shell #app .app-main>.disconnected-placeholder .disconnected-not-why{margin:0;font-size:.95rem;line-height:1.6;color:var(--obs-text-dim)}.observer-shell #app .app-main>.transport.observer-panel,.observer-shell #app .app-main>nav.observer-tabs{flex-shrink:0}.observer-shell #app .app-main>.tab-panel{flex:1 1 0;min-height:0;overflow:hidden}.observer-shell #app .app-main>.tab-panel.tab-panel--active{display:flex;flex-direction:column}.observer-shell #app .app-main>.tab-panel.tab-panel--active[data-tab=settings],.observer-shell #app .app-main>.tab-panel.tab-panel--active[data-tab=repeater]{overflow:auto;-webkit-overflow-scrolling:touch}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subtabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding:.2rem;border:1px solid var(--obs-border);border-radius:8px;background:var(--obs-bg-soft)}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subtab{border:1px solid transparent;background:transparent;color:var(--obs-text-dim);border-radius:6px;padding:.4rem .75rem;font-size:.8rem;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subtab:hover{color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subtab.repeater-subtab--active{color:#001018;border-color:#28d7ff59;background:linear-gradient(180deg,var(--obs-cyan),var(--obs-cyan-soft))}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subpanel{display:none}.observer-shell #app .app-main>.tab-panel[data-tab=repeater] .repeater-subpanel.repeater-subpanel--active{display:block}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subtabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding:.2rem;border:1px solid var(--obs-border);border-radius:8px;background:var(--obs-bg-soft)}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subtab{border:1px solid transparent;background:transparent;color:var(--obs-text-dim);border-radius:6px;padding:.4rem .75rem;font-size:.8rem;display:inline-flex;align-items:center;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subtab:hover{color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subtab.settings-subtab--active{color:#001018;border-color:#28d7ff59;background:linear-gradient(180deg,var(--obs-cyan),var(--obs-cyan-soft))}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subpanel{display:none}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .settings-subpanel.settings-subpanel--active{display:block}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subtabs{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:1rem;padding:.2rem;border:1px solid var(--obs-border);border-radius:8px;background:var(--obs-bg-soft)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subtab{border:1px solid transparent;background:transparent;color:var(--obs-text-dim);border-radius:6px;padding:.4rem .75rem;font:inherit;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subtab:hover{color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subtab.advanced-subtab--active{color:#001018;border-color:#28d7ff59;background:linear-gradient(180deg,var(--obs-cyan),var(--obs-cyan-soft))}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subpanel{display:none}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-subpanel.advanced-subpanel--active{display:block}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-wrap{margin-bottom:1rem;border:1px solid var(--obs-border);border-radius:6px;background:var(--obs-bg-soft);overflow:hidden}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-title{margin:0;padding:0;font-size:.875rem;font-weight:600;border-bottom:1px solid var(--obs-border)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-toggle{display:block;width:100%;padding:.5rem .75rem;text-align:left;font:inherit;font-weight:600;color:var(--obs-text);background:none;border:none;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-body{padding:0 .75rem .75rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-preview,.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-content{margin:0 0 .5rem;font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.8rem;line-height:1.35;white-space:pre-wrap;word-break:break-word;color:var(--obs-text-dim)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-content{max-height:14rem;overflow:auto;padding:.5rem 0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-docs-expand-btn{font-size:.8rem;padding:.25rem .5rem;color:var(--obs-cyan);background:none;border:1px solid var(--obs-border);border-radius:4px;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-output-wrap{margin-bottom:.75rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-output{font-family:ui-monospace,Cascadia Code,Source Code Pro,Menlo,monospace;font-size:.875rem;line-height:1.4;background:var(--obs-bg);border:1px solid var(--obs-border);border-radius:6px;padding:.75rem;max-height:40vh;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:0 0 .75rem;color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-input-wrap{display:flex;align-items:center;gap:.5rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section .cli-prompt{color:var(--obs-cyan);font-family:ui-monospace,monospace;font-weight:600}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-cli-section #cli-input{flex:1;min-width:0;padding:.4rem .6rem;font-family:ui-monospace,monospace;font-size:.9rem;background:var(--obs-bg);border:1px solid var(--obs-border);border-radius:4px;color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .device-status-grid{display:flex;flex-direction:column;gap:.5rem}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .device-status-row{margin:0;padding:.35rem 0;border-bottom:1px solid var(--obs-border)}.observer-shell #app .app-main>.tab-panel[data-tab=settings] .device-status-row:last-child{border-bottom:none}.observer-shell #app .app-main>.tab-panel.tab-panel--active[data-tab=advanced]{overflow:hidden;display:flex;flex-direction:column;min-height:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-tab-content{flex:1 1 0;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem 0;display:flex;flex-direction:column;gap:2rem;isolation:isolate}.observer-shell #app .advanced-tab-actions{flex-shrink:0;margin-bottom:.25rem}.observer-shell #app .advert-dropdown-wrap{position:relative;display:inline-block}.observer-shell #app .advert-menu{position:absolute;top:100%;left:0;margin-top:.25rem;min-width:10rem;padding:.25rem 0;background:var(--obs-bg-elevated, #1a1a1a);border:1px solid var(--obs-border, #333);border-radius:6px;box-shadow:0 4px 12px #0000004d;z-index:50}.observer-shell #app .advert-menu-item{display:block;width:100%;padding:.4rem .75rem;text-align:left;border:none;background:none;color:var(--obs-text);font:inherit;cursor:pointer}.observer-shell #app .advert-menu-item:hover{background:var(--obs-bg-hover, rgba(255,255,255,.08))}.observer-shell #app .advert-trigger.btn-secondary{margin:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section{flex-shrink:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-top-grid{flex-shrink:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-top-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:900px){.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-top-grid{grid-template-columns:1fr minmax(320px,400px)}}@media(min-width:600px){.observer-shell{padding:1rem}}.observer-topbar{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:1rem;min-height:2.5rem;padding:0 .5rem;margin-bottom:.5rem;flex-shrink:0}@media(min-width:600px){.observer-topbar{min-height:2.75rem;padding:0 .75rem;gap:1.25rem}}.observer-topbar-brand{display:flex;align-items:center;flex-shrink:0}.observer-topbar-title{margin:0;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--obs-text);line-height:1;display:flex;align-items:center}.observer-topbar-title .app-badge{display:inline-flex;align-items:center;margin-left:.35em;font-size:.55em;font-weight:700;letter-spacing:.08em;color:var(--obs-amber);padding:.2em .45em;border:1px solid var(--obs-amber);border-radius:4px;line-height:1}@media(min-width:600px){.observer-topbar-title{font-size:.95rem}}.observer-topbar-status{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:0;gap:0 .5rem}.observer-topbar-status-item{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1}.observer-topbar-status-value{font-weight:600;color:var(--obs-text)}.observer-topbar-status-divider{width:1px;height:.875em;margin:0 .25rem;background:var(--obs-border);flex-shrink:0;opacity:.7}.observer-topbar-status .observer-status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;margin:0}.observer-tabs{display:inline-flex;gap:.25rem;padding:.25rem;border:1px solid var(--obs-border);border-radius:999px;background:var(--obs-bg-soft);overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin-bottom:.5rem;scrollbar-width:none;-ms-overflow-style:none}.observer-tabs::-webkit-scrollbar{display:none}@media(min-width:600px){.observer-tabs{gap:.35rem;padding:.3rem;margin-bottom:0}}@media(min-width:600px){.observer-tabs{overflow-x:visible}}.observer-tab{border:1px solid transparent;background:transparent;color:var(--obs-text-dim);border-radius:999px;padding:.35rem .65rem;font-size:.78rem;cursor:pointer;min-height:44px;min-width:44px;flex-shrink:0}.observer-tab:hover{color:var(--obs-text)}.observer-tab--active{color:#001018;border-color:#28d7ff66;background:linear-gradient(180deg,var(--obs-cyan),var(--obs-cyan-soft));box-shadow:0 0 0 1px #28d7ff26,0 0 20px #28d7ff40}.observer-tab--disabled,.observer-tab:disabled{opacity:.5;cursor:not-allowed}.observer-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-bottom:.5rem}@media(min-width:600px){.observer-kpi-grid{gap:.65rem;margin-bottom:.9rem;grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}}.observer-kpi-bar{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .5rem;padding:.35rem .5rem;font-size:.75rem;border-radius:6px;border:1px solid var(--obs-border);background:#0003}.observer-kpi-item{display:inline-flex;align-items:center;gap:.2rem}.observer-kpi-item-label{color:var(--obs-text-dim);text-transform:uppercase;letter-spacing:.04em;font-size:.65rem}.observer-kpi-item-value{font-weight:600;font-variant-numeric:tabular-nums;color:var(--obs-text)}.observer-kpi-sep{color:var(--obs-text-dim);opacity:.6;font-weight:400;-webkit-user-select:none;user-select:none}.observer-kpi-card,.observer-panel{border:1px solid var(--obs-border);background:linear-gradient(180deg,var(--obs-surface),var(--obs-surface-2));border-radius:10px;box-shadow:var(--obs-shadow)}.observer-kpi-card{padding:.4rem .5rem}@media(min-width:600px){.observer-kpi-card{padding:.7rem .8rem}}.observer-kpi-card h3{margin:0 0 .15rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.06em;color:var(--obs-text-dim)}@media(min-width:600px){.observer-kpi-card h3{margin:0 0 .35rem;font-size:.72rem}}.observer-kpi-value{margin:0;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}@media(min-width:600px){.observer-kpi-value{font-size:1.35rem}}.observer-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.75rem}.observer-panel{grid-column:span 6;padding:.5rem;min-height:0}@media(min-width:600px){.observer-panel{padding:.8rem;min-height:220px}}.observer-panel--wide{grid-column:span 12}.observer-panel-title{margin:0;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--obs-text)}@media(min-width:600px){.observer-panel-title{font-size:.83rem}}.observer-panel-subtitle{margin:.15rem 0 .4rem;font-size:.7rem;color:var(--obs-text-dim)}@media(min-width:600px){.observer-panel-subtitle{margin:.2rem 0 .6rem;font-size:.74rem}}.observer-chart{height:160px;border:1px dashed rgba(40,215,255,.3);border-radius:8px;background:#070d168c}.observer-legend{display:flex;flex-wrap:wrap;gap:.45rem .7rem;margin-top:.55rem;color:var(--obs-text-dim);font-size:.73rem}.observer-status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:.3rem}.observer-status-dot--ok{background:var(--obs-green)}.observer-status-dot--warn{background:var(--obs-amber)}.observer-status-dot--err{background:var(--obs-red)}.observer-status-dot--info{background:var(--obs-cyan)}.observer-table{width:100%;border-collapse:collapse;font-size:.78rem}.observer-table th,.observer-table td{padding:.38rem .45rem;border-bottom:1px solid rgba(152,169,193,.15);text-align:left}.observer-table th{position:sticky;top:0;background:#121c2af2;text-transform:uppercase;letter-spacing:.05em;font-size:.67rem;color:var(--obs-text-dim)}.observer-table tr:hover td{background:#28d7ff0f}.observer-badge{display:inline-flex;align-items:center;gap:.25rem;border-radius:999px;font-size:.68rem;padding:.16rem .45rem;border:1px solid transparent}.observer-badge--ok{color:#d9fff0;border-color:#2fd08f59;background:#2fd08f26}.observer-badge--warn{color:#fff2d8;border-color:#f3b23f59;background:#f3b23f26}.observer-badge--err{color:#ffe2e2;border-color:#ef5b5b59;background:#ef5b5b26}.observer-badge--info{color:#d4f4ff;border-color:#28d7ff59;background:#28d7ff26}.observer-shell .rxlog-toolbar{display:flex;flex-wrap:nowrap;align-items:center;gap:.4rem .75rem;margin-bottom:.35rem}.observer-shell .rxlog-toolbar-filters{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;min-width:0;flex:1}.observer-shell .rxlog-toolbar-filters .rxlog-toolbar-label{flex-shrink:0}.observer-shell .rxlog-toolbar-filters .rxlog-toolbar-label:last-child input{min-width:8rem;width:100%;max-width:16rem}.observer-shell .rxlog-toolbar-label{display:inline-flex;align-items:center;gap:.25rem;color:var(--obs-text-dim);font-size:.85rem}.observer-shell .rxlog-toolbar-label select,.observer-shell .rxlog-toolbar-label input[type=text]{min-width:9rem;min-height:1.75rem;padding:.25rem .4rem;font-size:.85rem}.observer-shell .rxlog-toolbar-actions{margin-left:auto;flex-shrink:0}.observer-shell .rxlog-toolbar-actions button{padding:.25rem .5rem;font-size:.85rem}.observer-shell #app .app-main>.tab-panel[data-tab=log] .observer-grid{flex:1;min-height:0;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.observer-shell #app .app-main>.tab-panel[data-tab=log] .rxlog-section,.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section{display:flex;flex-direction:column;min-height:0!important;overflow:hidden;flex:1 1 0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel--collapsed{flex:0 0 auto;min-height:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel--collapsed .log-panel-body{display:none}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-header{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-header-actions{margin-left:auto;margin-right:0;flex-shrink:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-header-actions button{padding:.25rem .5rem;font-size:.85rem}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-toggle{padding:.2rem .4rem;font-size:.85rem;background:var(--obs-surface-2);border:1px solid var(--obs-border);color:var(--obs-text);border-radius:4px;cursor:pointer}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-toggle:hover{background:var(--obs-border)}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-panel-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.observer-shell #app .app-main>.tab-panel[data-tab=log] .rxlog-section .log-panel-body{gap:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .rxlog-table-wrap{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .log-panel-body{container-type:inline-size;container-name:raw-log-body}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options{display:flex;flex-wrap:nowrap;align-items:center;gap:.5rem;margin-bottom:.35rem;font-size:.85rem;white-space:nowrap;min-width:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options label{white-space:nowrap;flex-shrink:0}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options-hint{color:var(--obs-text-dim);margin:0;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden;text-overflow:ellipsis}@container raw-log-body (max-width: 420px){.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options{font-size:.8rem}}@container raw-log-body (max-width: 360px){.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options{font-size:.75rem}}@container raw-log-body (max-width: 300px){.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-options{font-size:.7rem}}.observer-shell #app .app-main>.tab-panel[data-tab=log] .log-section .raw-log-wrap{flex:1;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch}.observer-shell .rxlog-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.observer-shell .rxlog-table.observer-table{table-layout:auto}.observer-shell .rxlog-table.observer-table th,.observer-shell .rxlog-table.observer-table td{word-break:break-word;white-space:normal;max-width:20rem}.observer-shell .rxlog-table.observer-table .rxlog-message{max-width:16rem}.observer-shell .rxlog-table.observer-table thead th{position:sticky;top:0;background:var(--obs-surface);z-index:1;box-shadow:0 1px 0 var(--obs-border)}.observer-shell .rxlog-table.observer-table th:first-child,.observer-shell .rxlog-table.observer-table td:first-child{position:sticky;left:0;background:var(--obs-surface);z-index:1}.observer-shell .rxlog-table.observer-table thead th:first-child{z-index:2}.observer-shell .rxlog-cards--mobile{display:none}.observer-shell .rxlog-cards-empty{padding:1rem;color:var(--obs-text-dim);font-size:.9rem}.observer-shell .rxlog-card{display:flex;align-items:flex-start;gap:.75rem;padding:.6rem .75rem;margin-bottom:.5rem;background:var(--obs-surface-2);border:1px solid var(--obs-border);border-radius:8px;font-size:.8rem}.observer-shell .rxlog-card-main{flex:1;min-width:0}.observer-shell .rxlog-card-type{display:flex;align-items:center;gap:.4rem;margin-bottom:.35rem;font-weight:600;color:var(--obs-cyan)}.observer-shell .rxlog-card-type-icon{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:var(--obs-cyan);color:var(--obs-bg);font-size:.75rem;font-weight:700;flex-shrink:0}.observer-shell .rxlog-card-row{margin-bottom:.2rem;line-height:1.35}.observer-shell .rxlog-card-row:last-child{margin-bottom:0}.observer-shell .rxlog-card-row--dim{color:var(--obs-text-dim);font-size:.75rem}.observer-shell .rxlog-card-message{word-break:break-word}.observer-shell .rxlog-card-signal{flex-shrink:0;color:var(--obs-green);font-weight:600;font-variant-numeric:tabular-nums}@media(max-width:768px){.observer-shell .rxlog-table--desktop{display:none!important}.observer-shell .rxlog-cards--mobile{display:block!important}.observer-shell .rxlog-table-wrap{overflow-x:visible}}@media(max-width:980px){.observer-panel{grid-column:span 12}}.observer-shell .transport.observer-panel{display:none}@media(max-width:599px){.observer-shell section{margin-bottom:.75rem}.observer-shell .tab-panel{margin-bottom:.5rem}}.observer-shell .hint{color:var(--obs-text-dim)}.observer-shell a{color:var(--obs-cyan)}.observer-shell a:hover{color:var(--obs-cyan-soft)}.observer-shell button:not(.observer-tab):not(.observer-tab--active){background:var(--obs-surface-2);border:1px solid var(--obs-border);color:var(--obs-text);border-radius:6px}.observer-shell button:hover:not(:disabled){background:#28d7ff1f;border-color:var(--obs-cyan)}.observer-shell .btn-warning{background:var(--obs-red);border-color:var(--obs-red);color:#fff}.observer-shell .btn-warning:hover{background:#d94a4a;border-color:#d94a4a}.observer-shell #app .app-main>.tab-panel[data-tab=chats] .chats-two-pane{flex:1;min-height:0!important}.observer-shell .chats-two-pane{flex-direction:column;border-color:var(--obs-border);background:var(--obs-bg-soft);border-radius:10px}@media(min-width:600px){.observer-shell .chats-two-pane{flex-direction:row}}@media(max-width:767px){.observer-shell .chats-two-pane:not(.chats-mobile-conversation) .chats-main{display:none!important}.observer-shell .chats-two-pane.chats-mobile-conversation .chats-sidebar{display:none!important}.observer-shell .chats-two-pane .chats-sidebar{width:100%;min-width:0;flex:1;min-height:0}.observer-shell .chats-two-pane.chats-mobile-conversation .chats-main{flex:1;min-height:0;display:flex!important}.observer-shell .chats-two-pane.chats-mobile-conversation .chats-conversation{flex:1;min-height:0}.observer-shell .chats-back{min-width:44px;min-height:44px;padding:.5rem .75rem;font-size:1.25rem}}.observer-shell .chats-sidebar{min-height:0;display:flex;flex-direction:column;background:var(--obs-surface);border-right-color:var(--obs-border);border-bottom:1px solid var(--obs-border)}@media(min-width:600px){.observer-shell .chats-sidebar{border-bottom:none;width:260px;min-width:260px}}.observer-shell .chats-sidebar-title{background:var(--obs-surface-2);color:var(--obs-text);border-bottom-color:var(--obs-border)}.observer-shell .chats-sidebar-hint{border-bottom-color:var(--obs-border);color:var(--obs-text-dim)}.observer-shell .chats-sidebar-search{border-bottom-color:var(--obs-border)}.observer-shell .chats-sidebar-search-input,.observer-shell .contacts-search-input{background:var(--obs-surface-2);color:var(--obs-text);border-color:var(--obs-border)}.observer-shell .chats-conv-item{background:var(--obs-surface);border-bottom-color:var(--obs-border);min-height:44px}.observer-shell .chats-conv-item:hover{background:var(--obs-surface-2)}.observer-shell .chats-conv-item--selected{background:#28d7ff26;border-left:3px solid var(--obs-cyan)}.observer-shell .chats-conv-name{color:var(--obs-text)}.observer-shell .chats-conv-preview{color:var(--obs-text-dim)}.observer-shell .chats-conv-unread-badge{background:var(--obs-red);color:#fff}.observer-shell .chats-main{min-height:0;background:var(--obs-bg-soft)}.observer-shell .chats-conversation{min-height:0!important}.observer-shell #app .app-main>.tab-panel[data-tab=contacts] .contacts-section{flex:1;min-height:0!important;display:flex;flex-direction:column;overflow:hidden}.observer-shell #app .app-main>.tab-panel[data-tab=contacts] .contacts-list,.observer-shell #app .app-main>.tab-panel[data-tab=contacts] .discovered-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.observer-shell #app .app-main>.tab-panel[data-tab=contacts] .contacts-list::-webkit-scrollbar,.observer-shell #app .app-main>.tab-panel[data-tab=contacts] .discovered-list::-webkit-scrollbar{display:none}.observer-shell .chats-placeholder{color:var(--obs-text-dim)}.observer-shell .chats-conv-header{background:var(--obs-surface);border-bottom-color:var(--obs-border)}.observer-shell .chats-conv-title{color:var(--obs-text)}.observer-shell .chats-back{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .chats-back:hover{background:#28d7ff1f;border-color:var(--obs-cyan)}.observer-shell .chat-bubble--received{background:var(--obs-surface-2);border:1px solid var(--obs-border);border-bottom-left-radius:4px}.observer-shell .chat-bubble--sent{background:#28d7ff2e;border:1px solid rgba(40,215,255,.35);border-bottom-right-radius:4px}.observer-shell .chat-bubble--sent .chat-bubble-meta{color:#28d7ffd1}.observer-shell .chat-bubble-sender{color:var(--obs-cyan)}.observer-shell .chat-bubble-time,.observer-shell .chat-bubble-meta,.observer-shell .chat-bubble-menu-btn{color:var(--obs-text-dim)}.observer-shell .chat-bubble-menu-btn:hover{background:#28d7ff1f;color:var(--obs-text)}.observer-shell .chat-bubble-menu{background:var(--obs-surface);border-color:var(--obs-border)}.observer-shell .chat-bubble-menu-item{color:var(--obs-text)}.observer-shell .chat-bubble-menu-item:hover{background:var(--obs-surface-2)}.observer-shell .chats-outgoing-delivery-hint{border-top-color:var(--obs-border);background:var(--obs-surface-2);color:var(--obs-text-dim)}.observer-shell .chats-input-row{background:var(--obs-surface);border-top-color:var(--obs-border)}.observer-shell .chats-input-row input{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .chats-input-row input::placeholder{color:var(--obs-text-dim)}.observer-shell .chats-input-row input:focus{outline:none;border-color:var(--obs-cyan);box-shadow:0 0 0 2px #28d7ff33}.observer-shell .chats-input-row button{background:var(--obs-cyan);border-color:var(--obs-cyan);color:#001018}.observer-shell .chats-input-row button:hover{background:var(--obs-cyan-soft);border-color:var(--obs-cyan-soft)}.observer-shell .chats-jump-to-present{bottom:3.5rem;right:1rem;color:var(--obs-text);background:var(--obs-surface-2);border-color:var(--obs-border);box-shadow:var(--obs-shadow)}.observer-shell .chats-jump-to-present:hover{background:var(--obs-surface);border-color:var(--obs-cyan);color:var(--obs-cyan)}.observer-shell .chats-jump-to-present:focus{outline:2px solid var(--obs-cyan);outline-offset:2px}.observer-shell .chats-disconnected-hint{background:#f3b23f26;border-top-color:var(--obs-border);color:var(--obs-text-dim)}.observer-shell .chats-no-messages,.observer-shell .chats-send-status--sending{color:var(--obs-text-dim)}.observer-shell .chats-send-status--sent,.observer-shell .chats-send-status--confirmed{color:var(--obs-green)}.observer-shell .chats-send-status--error{color:var(--obs-red)}.observer-shell .room-settings{border-top:1px solid var(--obs-border);background:var(--obs-surface)}.observer-shell .room-settings-toggle{background:var(--obs-surface-2);border-bottom-color:var(--obs-border);color:var(--obs-text)}.observer-shell .room-settings-toggle:hover{background:#28d7ff0f}.observer-shell .room-settings-toggle-meta{color:var(--obs-text-dim)}.observer-shell .room-settings-row input,.observer-shell .room-settings-row select{background:var(--obs-surface-2);color:var(--obs-text);border-color:var(--obs-border)}.observer-shell .room-acl-list{color:var(--obs-text-dim)}.observer-shell .contact-row{border-bottom-color:var(--obs-border)}.observer-shell .contact-row--chat:hover{background:#28d7ff14}.observer-shell .contact-name{color:var(--obs-text)}.observer-shell .contact-prefix{color:var(--obs-text-dim)}.observer-shell .contact-badge--repeater{background:#28d7ff33;color:var(--obs-cyan);border:1px solid rgba(40,215,255,.35)}.observer-shell .contact-options-btn{color:var(--obs-text-dim)}.observer-shell .contact-options-btn:hover{background:var(--obs-surface-2);color:var(--obs-text)}.observer-shell .contact-options-menu{background:var(--obs-surface);border-color:var(--obs-border);box-shadow:var(--obs-shadow)}.observer-shell .contact-options-menu button:hover{background:var(--obs-surface-2);color:var(--obs-text)}.observer-shell .repeater-inline-cog{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text-dim)}.observer-shell .repeater-inline-cog:hover{background:#28d7ff1f;color:var(--obs-cyan)}.observer-shell .add-contact-dialog{max-width:28rem}.observer-shell .add-contact-info{display:flex;align-items:flex-start;gap:.5rem;padding:.5rem .6rem;margin-bottom:.75rem;background:var(--obs-bg-soft);border-radius:8px;border:1px solid var(--obs-border)}.observer-shell .add-contact-info-icon{flex-shrink:0;font-style:normal}.observer-shell .add-contact-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin:.75rem 0}.observer-shell .add-contact-actions-row .btn-secondary{border:1px solid var(--obs-border);background:var(--obs-surface-2);color:var(--obs-text);padding:.4rem .75rem;border-radius:6px;font-size:.85rem;cursor:pointer}.observer-shell .add-contact-actions-row .btn-secondary:hover{background:var(--obs-bg-soft)}.observer-shell .icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;border:1px solid var(--obs-border);border-radius:6px;background:var(--obs-surface-2);color:var(--obs-text);font-size:1.25rem;line-height:1;cursor:pointer;flex-shrink:0}.observer-shell .icon-btn:hover:not(:disabled){background:#28d7ff1f;border-color:#28d7ff59;color:var(--obs-cyan)}.observer-shell .icon-btn:disabled{opacity:.5;cursor:not-allowed}.observer-shell .icon-btn--add{font-weight:300}.observer-shell .contacts-section-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.observer-shell .contacts-section-header .observer-panel-title{margin:0}.observer-shell .chats-sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.25rem}.observer-shell .chats-sidebar-header .chats-sidebar-title{margin:0}.observer-shell .chats-add-channel{position:relative}.observer-shell .chats-add-channel-menu{position:absolute;top:100%;right:0;margin-top:.2rem;min-width:12rem;padding:.25rem;background:var(--obs-surface);border:1px solid var(--obs-border);border-radius:8px;box-shadow:var(--obs-shadow);z-index:10}.observer-shell .chats-add-channel-menu-item{display:block;width:100%;padding:.45rem .6rem;text-align:left;font-size:.8rem;border:none;border-radius:4px;background:transparent;color:var(--obs-text);cursor:pointer}.observer-shell .chats-add-channel-menu-item:hover{background:var(--obs-surface-2)}.observer-shell .qr-scanner-dialog{max-width:min(90vw,320px)}.observer-shell .qr-scanner-video-wrap{position:relative;width:100%;aspect-ratio:1;background:#000;border-radius:8px;overflow:hidden;margin:.5rem 0}.observer-shell .qr-scanner-video-wrap video{width:100%;height:100%;object-fit:cover}.observer-shell .settings-form .settings-block h4{color:var(--obs-text-dim)}.observer-shell .settings-form .settings-row label{color:var(--obs-text)}.observer-shell .settings-form input[type=text],.observer-shell .settings-form input[type=number],.observer-shell .settings-form select{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .settings-form .settings-subhint{color:var(--obs-text-dim)}.observer-shell .settings-form .settings-ota-disclaimer{background:#f3b23f1f;border-color:#f3b23f80}.observer-shell .settings-form .settings-ota-disclaimer-title{color:var(--obs-amber)}.observer-shell .settings-form .settings-ota-disclaimer-body,.observer-shell .settings-form .settings-ota-disclaimer-body strong{color:var(--obs-text)}.observer-shell .settings-form .settings-errors{background:#ef5b5b26;border-color:var(--obs-red)}.observer-shell .settings-form .settings-errors p{color:#ffe2e2}.observer-shell .device-status .device-status-row{color:var(--obs-text)}.observer-shell .device-status .device-status-row strong{color:var(--obs-text-dim)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section{margin:0;overflow:hidden;contain:layout}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section+.advanced-section{margin-top:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-help-panel{margin-top:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-timeline-section .observer-panel-subtitle{margin-bottom:.5rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-timeline-actions{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;margin-top:.75rem;margin-bottom:1rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-timeline-actions .advanced-filter-btn{padding:.4rem .85rem;font-size:.9rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-timeline-export{margin-left:auto}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-filter-modal .settings-row{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-filter-modal .settings-row label{min-width:4rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-filter-modal select,.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-filter-modal input[type=text]{flex:1;min-width:0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-timeline-table-wrap{margin-top:.5rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section .settings-actions{margin-top:.5rem;margin-bottom:.75rem;display:flex;flex-wrap:wrap;gap:.5rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-batch-list{gap:.5rem 1.25rem;margin-top:.5rem;margin-bottom:.75rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-batch-row{min-height:1.75rem;align-items:center}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section h2{margin:0 0 .5rem;color:var(--obs-text)}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section h4{margin:1rem 0 .5rem;color:var(--obs-text-dim);font-size:.9rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section .observer-panel-subtitle{margin-bottom:.25rem}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-section p.hint{margin:.35rem 0}.observer-shell #app .app-main>.tab-panel[data-tab=advanced] .advanced-stats-grid{margin-top:.75rem;margin-bottom:1rem}.observer-shell .advanced-live-dashboard{background:linear-gradient(165deg,var(--obs-surface) 0%,var(--obs-surface-2) 100%);border:1px solid var(--obs-border);border-radius:10px;padding:1rem 1.25rem;box-shadow:0 2px 8px #00000026}.observer-shell .advanced-live-title{display:flex;align-items:center;gap:.5rem}.observer-shell .advanced-live-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--obs-cyan);background:#28d7ff26;padding:.2rem .5rem;border-radius:6px;animation:advanced-pulse 2s ease-in-out infinite}@keyframes advanced-pulse{0%,to{opacity:1}50%{opacity:.65}}.observer-shell .advanced-live-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:.75rem}.observer-shell .advanced-live-card{background:var(--obs-surface-2);border:1px solid var(--obs-border);border-radius:8px;padding:.85rem 1rem;box-shadow:0 1px 3px #0000001f;transition:border-color .2s ease,box-shadow .2s ease}.observer-shell .advanced-live-card:hover{border-color:#28d7ff59;box-shadow:0 2px 8px #0003}.observer-shell .advanced-live-card-wide{grid-column:span 2}@media(max-width:640px){.observer-shell .advanced-live-card-wide{grid-column:span 1}}.observer-shell .advanced-live-card h4{margin:0 0 .5rem;font-size:.85rem;font-weight:600;color:var(--obs-text-dim)}.observer-shell .advanced-live-meta{margin:.35rem 0 0;font-size:.75rem;color:var(--obs-text-dim)}.observer-shell .advanced-activity-strip{display:flex;gap:3px;align-items:flex-end;height:2.25rem;background:var(--obs-bg-soft);border-radius:6px;padding:4px}.observer-shell .advanced-activity-block{flex:1;min-width:4px;height:100%;border-radius:4px;background:color-mix(in srgb,var(--obs-cyan) calc(var(--intensity, 0) * 1%),transparent 85%);transition:background .25s ease}.observer-shell .advanced-live-sparkline-wrap{min-height:48px;display:flex;align-items:center;background:var(--obs-bg-soft);border-radius:6px;padding:6px 8px}.observer-shell .advanced-live-sparkline-wrap .advanced-sparkline{color:var(--obs-cyan);filter:drop-shadow(0 0 6px rgba(40,215,255,.4))}.observer-shell .advanced-mini-bars{display:flex;align-items:flex-end;gap:4px;height:2.75rem;background:var(--obs-bg-soft);border-radius:6px;padding:4px 6px}.observer-shell .advanced-mini-bar-fill{background:linear-gradient(180deg,var(--obs-cyan) 0%,var(--obs-cyan-soft) 100%)!important;border-radius:4px 4px 0 0;box-shadow:0 0 8px #28d7ff40;transition:height .3s ease}.observer-shell .advanced-mini-bars-rx .advanced-mini-bar-fill{background:linear-gradient(180deg,var(--obs-green) 0%,#259a6e 100%)!important;box-shadow:0 0 8px #2fd08f40}.observer-shell .advanced-donut{border-radius:8px;overflow:hidden;box-shadow:inset 0 1px 3px #0003}.observer-shell .advanced-donut-ok{background:linear-gradient(180deg,var(--obs-green),#259a6e)!important}.observer-shell .advanced-donut-fail{background:linear-gradient(180deg,var(--obs-red),#d94a4a)!important}.observer-shell .advanced-donut-timeout{background:linear-gradient(180deg,var(--obs-amber),#d99b2e)!important}.observer-shell .advanced-map-card{border-radius:10px;overflow:hidden;border:1px solid var(--obs-border);box-shadow:0 2px 8px #00000026}.observer-shell .advanced-map-iframe-wrap{width:100%;min-height:320px;border:1px solid var(--obs-border);border-radius:8px;overflow:hidden;background:var(--obs-bg-soft)}.observer-shell .advanced-map-iframe{width:100%;height:360px;border:none;display:block}.observer-shell .advanced-map-links{margin:.5rem 0 0}.observer-shell .advanced-stats-card{background:var(--obs-surface-2);border:1px solid var(--obs-border);border-radius:8px;padding:.85rem 1rem;box-shadow:0 1px 3px #0000001a}.observer-shell .advanced-stats-card h4{color:var(--obs-text-dim)}.observer-shell .advanced-stats-card .value{color:var(--obs-cyan);font-weight:600}.observer-shell .advanced-tool-card{background:var(--obs-surface-2);border:1px solid var(--obs-border);border-radius:8px;box-shadow:0 1px 3px #0000001a}.observer-shell .advanced-tool-card h4,.observer-shell .advanced-tool-desc{color:var(--obs-text-dim)}.observer-shell .advanced-bar-wrap{background:var(--obs-bg-soft);border-radius:6px;overflow:hidden}.observer-shell .advanced-bar-fill{background:linear-gradient(90deg,var(--obs-cyan),var(--obs-cyan-soft))!important;border-radius:4px;box-shadow:0 0 10px #28d7ff33;transition:width .25s ease}.observer-shell .advanced-bar-label,.observer-shell .advanced-bar-value{color:var(--obs-text)}.observer-shell .advanced-repeater-signal-table .advanced-repeater-sparkline svg.advanced-sparkline{color:var(--obs-cyan);filter:drop-shadow(0 0 4px rgba(40,215,255,.3))}.observer-shell .advanced-timeline-table-wrap{border:1px solid var(--obs-border);border-radius:8px;overflow:hidden;background:var(--obs-surface-2)}.observer-shell .advanced-timeline-table th{background:var(--obs-surface);color:var(--obs-text-dim);border-bottom-color:var(--obs-border)}.observer-shell .advanced-timeline-table td{border-bottom-color:var(--obs-border);color:var(--obs-text)}.observer-shell .advanced-filter-modal select,.observer-shell .advanced-filter-modal input[type=text]{color:var(--obs-text);background:var(--obs-surface-2);border-color:var(--obs-border)}.observer-shell .advanced-batch-list,.observer-shell .advanced-batch-row,.observer-shell .advanced-runbook-list,.observer-shell .advanced-runbook-row{color:var(--obs-text)}.observer-shell .advanced-help-btn,.observer-shell .advanced-help-panel{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .advanced-runbook-running,.observer-shell .advanced-batch-results{color:var(--obs-text)}.observer-shell .advanced-runbook-running table,.observer-shell .advanced-batch-results table{border-color:var(--obs-border)}.observer-shell .raw-log-wrap{max-height:20rem;overflow:auto;-webkit-overflow-scrolling:touch}.observer-shell .log-section pre{background:var(--obs-bg-soft);border-color:var(--obs-border);color:var(--obs-text-dim)}.observer-shell .modal-overlay{background:#000000b3}.observer-shell .modal-dialog,.observer-shell .contact-details-dialog,.observer-shell .preset-picker-dialog{background:var(--obs-surface);border:1px solid var(--obs-border);color:var(--obs-text)}.observer-shell .modal-dialog h2,.observer-shell .contact-details-header h2,.observer-shell .preset-picker-header h2,.observer-shell .contact-details-name{color:var(--obs-text)}.observer-shell .contact-details-id{color:var(--obs-text-dim)}.observer-shell .contact-details-action-btn{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .contact-details-action-btn:hover{background:#28d7ff1f;border-color:var(--obs-cyan)}.observer-shell .contact-details-letsmesh-btn{background:var(--obs-cyan);color:#001018}.observer-shell .contact-details-letsmesh-btn:hover{background:var(--obs-cyan-soft);color:#001018}.observer-shell .preset-picker-header{border-bottom-color:var(--obs-border)}.observer-shell .preset-picker-search-wrap input{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .preset-picker-item{background:var(--obs-surface);border-bottom-color:var(--obs-border);color:var(--obs-text)}.observer-shell .preset-picker-item:hover{background:var(--obs-surface-2)}.observer-shell .preset-picker-item--active{background:#28d7ff26}.observer-shell .preset-picker-group-title{background:var(--obs-surface-2);color:var(--obs-text-dim);border-color:var(--obs-border)}.observer-shell .settings-accordion{border:1px solid var(--obs-border);border-radius:6px;margin-bottom:.75rem;background:var(--obs-surface)}.observer-shell .settings-accordion-summary{padding:.5rem .75rem;cursor:pointer;font-weight:600;color:var(--obs-text);list-style:none}.observer-shell .settings-accordion-summary::-webkit-details-marker{display:none}.observer-shell .settings-accordion-summary:before{content:"▾ ";display:inline-block;transition:transform .2s;color:var(--obs-text-dim)}.observer-shell .settings-accordion:not([open]) .settings-accordion-summary:before{transform:rotate(-90deg)}.observer-shell .settings-accordion .settings-block{border-top:1px solid var(--obs-border);padding:.75rem;margin:0}@media(max-width:599px){.observer-shell .settings-accordion-summary{min-height:44px;display:flex;align-items:center;padding:0 .75rem}}@media(max-width:599px){.observer-shell .modal-dialog,.observer-shell .contact-details-dialog,.observer-shell .preset-picker-dialog{max-height:100vh;overflow-y:auto}}.observer-shell select,.observer-shell input[type=text],.observer-shell input[type=number],.observer-shell input[type=email],.observer-shell input[type=password],.observer-shell input[type=search]{background:var(--obs-surface-2);border:1px solid var(--obs-border);color:var(--obs-text);border-radius:6px;padding:.35rem .5rem;font-size:.9rem;font-family:inherit}.observer-shell select:hover,.observer-shell input[type=text]:hover,.observer-shell input[type=number]:hover,.observer-shell input[type=email]:hover,.observer-shell input[type=password]:hover,.observer-shell input[type=search]:hover{border-color:var(--obs-text-dim)}.observer-shell select:focus,.observer-shell input[type=text]:focus,.observer-shell input[type=number]:focus,.observer-shell input[type=email]:focus,.observer-shell input[type=password]:focus,.observer-shell input[type=search]:focus{outline:none;border-color:var(--obs-cyan);box-shadow:0 0 0 2px #28d7ff33}.observer-shell select option{background:var(--obs-surface-2);color:var(--obs-text)}.observer-shell input::placeholder{color:var(--obs-text-dim)}.observer-shell *:focus-visible{outline:2px solid var(--obs-cyan);outline-offset:2px}.observer-shell button:focus-visible,.observer-shell input:focus-visible,.observer-shell select:focus-visible,.observer-shell textarea:focus-visible,.observer-shell a:focus-visible{outline:2px solid var(--obs-cyan);outline-offset:2px}.observer-shell .tab-badge,.observer-shell .tab-badge--notif,.observer-shell .tab--has-notif .tab-badge--notif{background:var(--obs-red);color:#fff}.observer-shell .contacts-section-header--tabs{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem}.observer-shell .contacts-subtabs{display:flex;gap:0;border-radius:6px;overflow:hidden;border:1px solid var(--obs-border, #333)}.observer-shell .contacts-subtab{padding:.4rem .75rem;border:none;background:var(--obs-bg-elevated, #1a1a1a);color:var(--obs-text-dim);font:inherit;cursor:pointer}.observer-shell .contacts-subtab:hover{background:var(--obs-bg-hover, rgba(255,255,255,.06));color:var(--obs-text)}.observer-shell .contacts-subtab--active{background:var(--obs-surface-2);color:var(--obs-text);font-weight:600}.observer-shell .contacts-filter-row,.observer-shell .contacts-filter-label{color:var(--obs-text-dim)}.observer-shell .contacts-filter-btn{padding:.35rem .65rem;border:1px solid var(--obs-border, #333);border-radius:6px;background:var(--obs-bg-elevated, #1a1a1a);color:var(--obs-text-dim);font:inherit;font-size:.9rem;cursor:pointer}.observer-shell .contacts-filter-btn:hover{background:var(--obs-bg-hover, rgba(255, 255, 255, .06));color:var(--obs-text)}.observer-shell .contacts-filter-btn--active{background:var(--obs-surface-2);color:var(--obs-text);font-weight:600;border-color:var(--obs-border)}.observer-shell .contacts-search-row{color:var(--obs-text-dim)}.observer-shell .discovered-list{list-style:none;margin:0;padding:0}.observer-shell .discovered-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--obs-border, #333)}.observer-shell .discovered-row:last-child{border-bottom:none}.observer-shell .discovered-name{font-weight:500}.observer-shell .discovered-add-btn{margin-left:auto}.observer-shell .status-idle,.observer-shell .status-disconnected{color:var(--obs-text-dim)}.observer-shell .status-connecting{color:var(--obs-amber)}.observer-shell .status-connected{color:var(--obs-green)}.observer-shell .status-disconnecting{color:var(--obs-amber)}.observer-shell .status-error{color:var(--obs-red)}.observer-shell .transport-options button{min-height:44px;min-width:44px}.observer-shell .transport-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem}.observer-shell .transport-btn-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.observer-shell .transport-btn .transport-icon-svg{display:block;color:currentColor}.observer-shell .transport-btn-label{font-weight:600;font-size:.8rem;letter-spacing:.03em}.observer-shell .repeater-section .repeater-login-banner{background:#f3b23f26;border-color:var(--obs-amber);color:var(--obs-text)}.observer-shell .repeater-section .repeater-login-banner--success{background:#2fd08f26;border-color:var(--obs-green);color:var(--obs-text)}.observer-shell .repeater-section .repeater-login-banner--error{background:#ef5b5b26;border-color:var(--obs-red);color:var(--obs-red)}.observer-shell .repeater-section .repeater-block{background:var(--obs-surface-2);border-color:var(--obs-border)}.observer-shell .repeater-section .repeater-block h4{color:var(--obs-text-dim)}.observer-shell .repeater-section .repeater-block input,.observer-shell .repeater-section .repeater-block select{background:var(--obs-surface);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .repeater-section .repeater-output-block .repeater-output-header{display:flex;align-items:center;gap:.5rem}.observer-shell .repeater-section .repeater-output-block .repeater-output-header h4{margin:0}.observer-shell .repeater-section .repeater-output-block .repeater-output-toggle{padding:.2rem .4rem;font-size:.85rem;background:var(--obs-surface-2);border:1px solid var(--obs-border);color:var(--obs-text);border-radius:4px;cursor:pointer}.observer-shell .repeater-section .repeater-output-block .repeater-output-toggle:hover{background:var(--obs-border)}.observer-shell .repeater-section .repeater-output-block.repeater-output-block--collapsed .repeater-output-body{display:none}.observer-shell .repeater-section .repeater-log-wrap{background:var(--obs-bg-soft);border-color:var(--obs-border)}.observer-shell .repeater-section .repeater-log{color:var(--obs-text-dim)}.observer-shell .advanced-help-panel{background:var(--obs-surface-2);border-color:var(--obs-border);color:var(--obs-text)}.observer-shell .advanced-runbook-running{background:var(--obs-surface-2);border-color:var(--obs-border)}.observer-shell .advanced-runbook-history{color:var(--obs-text-dim)}.repeater-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.repeater-breadcrumb-label{font-size:.9rem;color:var(--obs-text)}.repeater-breadcrumb-label strong{font-weight:600}.empty-state{color:var(--obs-text-dim);padding:.75rem;text-align:center}.empty-state-message{margin:0;color:var(--obs-text-dim)}.empty-state-cta{margin-top:.5rem}.loading-state{color:var(--obs-text-dim);padding:.5rem .75rem;font-style:italic}.observer-shell .chats-conv-empty.empty-state{padding:1rem .75rem}:root{--app-max-width: 1200px}.menubar{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;margin-bottom:var(--space-md);border-bottom:1px solid var(--border);flex-shrink:0}.menubar-brand{color:var(--fg);text-decoration:none;font-size:var(--font-base);font-weight:600;margin-right:var(--space-sm)}.menubar-brand:hover{color:var(--accent)}.menubar-brand-logo{display:flex;align-items:center;margin-right:var(--space-sm)}.menubar-logo{height:2rem;width:auto;display:block;object-fit:contain}@media(min-width:600px){.menubar-logo{height:2.25rem}}.menubar-link{color:var(--fg-dim);text-decoration:none;font-size:var(--font-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius)}.menubar-link:hover{color:var(--accent);background:#00ff4114}.menubar-link.active{color:var(--accent);font-weight:600}.menubar-wrap{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--space-md);flex-wrap:nowrap;min-height:2.5rem}@media(min-width:600px){.menubar-wrap{min-height:2.75rem}}.menubar-nav{flex:1;min-width:0}.menubar-actions{display:flex;align-items:center;flex-shrink:0}.menubar-brand-app{font-size:var(--font-base);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);line-height:1;display:flex;align-items:center;flex-shrink:0;margin-right:var(--space-sm)}.menubar-links{margin-bottom:0;border-bottom:none;padding:0;flex-shrink:0}.menubar-status{display:flex;align-items:center;flex:1;min-width:0;justify-content:flex-end;gap:0 .5rem;font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap}.menubar-burger{display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:transparent;color:var(--fg);cursor:pointer;flex-shrink:0}.menubar-burger:hover{background:#00ff4114;color:var(--accent)}.menubar-burger-icon{display:block}@media(max-width:767px){.app-menubar-wrap{position:relative;z-index:200}.menubar-wrap:has(.menubar-burger){position:relative;flex-wrap:wrap}.menubar-wrap:has(.menubar-burger) .menubar-status{flex:1 1 100%;width:100%;min-width:100%;justify-content:flex-start;order:10;margin-top:.25rem;padding-top:.35rem;border-top:1px solid var(--border)}.menubar-burger{display:inline-flex;order:-1;margin-right:0}.menubar-wrap:has(.menubar-burger) .menubar-brand-app,.menubar-wrap:has(.menubar-burger) .menubar-brand{flex:1;justify-content:center;margin-right:0}.menubar-wrap:has(.menubar-burger) .menubar-brand{text-align:center;display:block}.menubar-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--obs-surface, #151f2d);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-sm);margin-top:var(--space-xs);box-shadow:0 10px 30px #00000040;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .2s ease,opacity .15s ease,visibility .15s ease}.menubar-wrap.menubar-open .menubar-links{max-height:200px;opacity:1;visibility:visible}}
