:root{
  color-scheme:dark;--bg:#050b11;--bg-soft:#08121c;--surface:#0b1722;--surface-2:#101f2c;
  --surface-3:#162a39;--line:rgba(137,185,219,.17);--line-strong:rgba(116,190,239,.34);
  --text:#eef8ff;--muted:#8ea7b8;--faint:#597083;--accent:#56c8ff;--accent-2:#786dff;
  --ok:#4de1a1;--warn:#ffc966;--bad:#ff6e82;--shadow:0 26px 90px rgba(0,0,0,.46);
  --sidebar:278px;--topbar:76px;--taskbar:48px;--radius:18px
}
*{box-sizing:border-box}html,body{height:100%;overflow:hidden}body{margin:0;font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg);font-size:16px}
button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent)}
.app-shell{height:100%;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);background:radial-gradient(circle at 8% 0,rgba(36,116,161,.2),transparent 28%),radial-gradient(circle at 95% 10%,rgba(84,65,194,.15),transparent 26%),linear-gradient(145deg,#07111a,#04090e 60%)}
.sidebar{min-height:0;display:flex;flex-direction:column;padding:18px 14px 12px;border-right:1px solid var(--line);background:rgba(5,12,18,.88);backdrop-filter:blur(24px);z-index:80;transition:.22s ease}
.brand{display:flex;align-items:center;gap:12px;padding:0 2px 18px}.brand-mark{width:44px;height:44px;border-radius:15px;display:grid;place-items:center;position:relative;background:linear-gradient(145deg,#163a52,#101c2b);border:1px solid rgba(106,203,255,.34);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 28px rgba(0,0,0,.3)}.brand-mark span{position:absolute;inset:8px;border:1px solid rgba(86,200,255,.35);border-radius:50%}.brand-mark b{font-size:24px;letter-spacing:-1px}.brand-copy{min-width:0}.brand-copy strong{display:block;font-size:16px}.brand-copy span{display:block;color:var(--muted);font-size:16px;text-transform:uppercase;letter-spacing:.14em;margin-top:3px}.brand .compact{margin-left:auto}
.icon-button{width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:rgba(17,33,46,.76);display:grid;place-items:center;cursor:pointer;transition:.16s}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-3);transform:translateY(-1px)}.icon-button.compact{width:29px;height:29px;border-radius:9px}
.module-search{height:42px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px;padding:0 11px;border:1px solid var(--line);border-radius:13px;background:rgba(14,27,38,.72);color:var(--muted)}.module-search input{min-width:0;border:0;background:transparent;color:var(--text);outline:0}.module-search kbd{font-size:16px;color:var(--faint);border:1px solid var(--line);border-radius:6px;padding:3px 5px;background:#0a121a}.sidebar-caption{display:flex;justify-content:space-between;align-items:center;margin:18px 5px 8px;color:var(--faint);font-size:16px;text-transform:uppercase;letter-spacing:.14em}.sidebar-caption button{border:0;background:none;color:var(--muted);font-size:16px;cursor:pointer}
.module-launcher{overflow:auto;min-height:0;padding-right:2px}.module-launcher::-webkit-scrollbar,.module-content::-webkit-scrollbar,.module-page::-webkit-scrollbar{width:8px}.module-launcher::-webkit-scrollbar-thumb,.module-content::-webkit-scrollbar-thumb,.module-page::-webkit-scrollbar-thumb{background:#1b3548;border-radius:8px}.launcher-group{margin-bottom:14px}.launcher-group-title{padding:6px 8px;color:#557184;font-size:16px;text-transform:uppercase;letter-spacing:.12em}.launcher-item{width:100%;min-height:51px;display:grid;grid-template-columns:37px minmax(0,1fr) 8px;align-items:center;gap:10px;padding:7px 9px;border:1px solid transparent;border-radius:13px;background:transparent;text-align:left;cursor:pointer;transition:.15s}.launcher-item:hover,.launcher-item.open{background:linear-gradient(90deg,rgba(59,156,210,.14),rgba(65,61,150,.08));border-color:rgba(91,176,226,.18)}.launcher-icon{width:36px;height:36px;border:1px solid rgba(117,171,208,.2);border-radius:11px;display:grid;place-items:center;background:rgba(16,31,43,.9);font-size:16px;font-weight:800;letter-spacing:.04em}.launcher-copy{min-width:0}.launcher-copy b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}.launcher-copy span{display:block;color:var(--muted);font-size:16px;margin-top:3px}.status-dot{width:7px;height:7px;border-radius:50%;background:#526675;box-shadow:0 0 0 4px rgba(82,102,117,.08)}.status-dot.operational{background:var(--ok);box-shadow:0 0 0 4px rgba(77,225,161,.09)}.status-dot.needs_configuration{background:var(--warn)}.status-dot.foundation{background:var(--accent)}.sidebar-spacer{flex:1}.privacy-card{padding:12px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,rgba(12,26,36,.9),rgba(8,18,26,.7))}.privacy-card-head{display:flex;align-items:center;gap:8px;font-size:16px}.privacy-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px var(--ok)}.privacy-card p{margin:7px 0 0;color:var(--muted);font-size:16px;line-height:1.5}.sidebar-footer{display:flex;justify-content:space-between;padding:11px 4px 0;color:var(--faint);font-size:16px;text-transform:uppercase;letter-spacing:.1em}.sidebar-footer a{color:var(--muted);text-decoration:none}.sidebar-footer a:hover{color:var(--accent)}
.work-area{min-width:0;min-height:0;display:grid;grid-template-rows:var(--topbar) minmax(0,1fr) var(--taskbar)}.topbar{display:flex;align-items:center;gap:20px;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(7,15,23,.72);backdrop-filter:blur(20px);z-index:60}.topbar-left{display:flex;align-items:center;gap:12px;min-width:220px}.workspace-heading h1{margin:2px 0 0;font-size:24px;letter-spacing:-.02em}.eyebrow{color:#75bfe8;font-size:16px;text-transform:uppercase;letter-spacing:.14em;font-weight:700}.live-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok);margin-right:5px}.topbar-center{flex:1;display:flex;justify-content:center}.platform-stats{display:flex;gap:8px}.stat-chip{min-width:74px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:rgba(13,26,37,.65)}.stat-chip b{display:block;font-size:16px}.stat-chip span{display:block;color:var(--muted);font-size:16px;text-transform:uppercase;letter-spacing:.08em;margin-top:2px}.topbar-actions{display:flex;align-items:center;gap:8px}.compact-field{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:16px}.compact-field select{height:36px;max-width:170px}.ai-indicator{height:36px;display:flex;align-items:center;gap:7px;padding:0 11px;border:1px solid var(--line);border-radius:11px;color:var(--muted);font-size:16px;background:rgba(13,25,35,.76)}.ai-indicator>span{width:7px;height:7px;border-radius:50%;background:#6c7880}.ai-indicator.online>span{background:var(--ok);box-shadow:0 0 9px var(--ok)}.ai-indicator.partial>span{background:var(--warn)}
.button{height:36px;border:1px solid transparent;border-radius:11px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-weight:650;font-size:16px;transition:.16s}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:wait;transform:none}.button.primary{background:linear-gradient(135deg,#40bfff,#6177ff);color:white;box-shadow:0 10px 26px rgba(49,137,220,.22)}.button.secondary{border-color:rgba(97,183,236,.25);background:rgba(33,78,107,.35)}.button.ghost{border-color:var(--line);background:rgba(13,24,34,.45);color:var(--muted)}.button.danger{border-color:rgba(255,110,130,.3);background:rgba(120,34,48,.25)}.button.large{height:44px;padding:0 18px;border-radius:13px}
.workspace-viewport{position:relative;overflow:hidden;min-height:0;background-image:linear-gradient(rgba(92,135,165,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(92,135,165,.035) 1px,transparent 1px);background-size:32px 32px}.workspace-viewport:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 55% 45%,rgba(28,89,124,.08),transparent 42%)}.workspace-canvas{position:absolute;inset:0;overflow:hidden}.welcome-panel{position:absolute;inset:0;display:grid;grid-template-columns:minmax(260px,.72fr) minmax(420px,1.1fr) minmax(240px,.65fr);align-items:center;gap:35px;padding:6vh 5vw;z-index:1;transition:.25s}.welcome-panel.hidden{opacity:0;pointer-events:none;transform:scale(.985)}.welcome-copy{max-width:690px}.welcome-copy h2{font-size:clamp(36px,4vw,62px);line-height:1.02;letter-spacing:-.055em;margin:10px 0 18px;background:linear-gradient(180deg,#fff,#9fc8df);-webkit-background-clip:text;color:transparent}.welcome-copy>p{font-size:16px;line-height:1.7;color:var(--muted);max-width:650px}.welcome-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.system-summary{display:flex;gap:10px;margin-top:28px}.summary-card{min-width:105px;padding:12px 14px;border-left:1px solid var(--line-strong)}.summary-card b{display:block;font-size:24px}.summary-card span{display:block;color:var(--muted);font-size:16px;text-transform:uppercase;letter-spacing:.1em;margin-top:3px}.welcome-visual{position:relative;width:min(32vw,390px);aspect-ratio:1;margin:auto}.globe-core{position:absolute;inset:24%;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 28%,#246b8f,#09263a 55%,#07131e 70%);border:1px solid rgba(98,201,255,.4);box-shadow:inset -24px -22px 40px rgba(0,0,0,.46),0 0 70px rgba(68,179,235,.18)}.globe-core:before,.globe-core:after{content:"";position:absolute;inset:10%;border-radius:50%;border:1px solid rgba(117,203,249,.15);transform:rotate(55deg)}.globe-core:after{transform:rotate(-22deg) scaleX(.52)}.globe-core span{font-weight:900;font-size:34px;letter-spacing:-.08em;color:#bceaff}.orbit{position:absolute;inset:10%;border-radius:50%;border:1px solid rgba(90,181,232,.22);transform:rotate(24deg) scaleY(.44)}.orbit-two{inset:2%;transform:rotate(-38deg) scaleY(.62);border-style:dashed}.node{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 18px var(--accent)}.n1{left:8%;top:43%}.n2{right:13%;top:21%;background:var(--accent-2)}.n3{right:4%;bottom:27%;background:var(--ok)}.n4{left:26%;bottom:5%;background:var(--warn)}.quick-modules{display:grid;gap:10px;align-self:center}.quick-card{padding:14px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(145deg,rgba(15,30,42,.82),rgba(8,18,27,.64));cursor:pointer;transition:.17s}.quick-card:hover{transform:translateX(-4px);border-color:var(--line-strong)}.quick-card b{display:block;font-size:16px}.quick-card span{display:block;color:var(--muted);font-size:16px;margin-top:4px;line-height:1.4}
.module-window{position:absolute;min-width:470px;min-height:330px;resize:both;overflow:hidden;border:1px solid rgba(123,183,220,.23);border-radius:16px;background:rgba(8,17,25,.97);box-shadow:0 20px 70px rgba(0,0,0,.46);display:grid;grid-template-rows:48px minmax(0,1fr);backdrop-filter:blur(20px);transition:border-color .12s,box-shadow .12s}.module-window.focused{border-color:rgba(86,200,255,.58);box-shadow:0 28px 95px rgba(0,0,0,.58),0 0 0 1px rgba(83,188,245,.12)}.module-window.maximized{left:8px!important;top:8px!important;width:calc(100% - 16px)!important;height:calc(100% - 16px)!important;resize:none}.module-window.minimized{display:none}.module-window.pinned{border-style:dashed}.window-titlebar{display:flex;justify-content:space-between;align-items:center;padding:0 8px 0 12px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(19,37,50,.96),rgba(10,22,31,.94));cursor:move;user-select:none}.window-title{display:flex;align-items:center;gap:10px;min-width:0}.window-badge{width:29px;height:29px;display:grid;place-items:center;border:1px solid rgba(97,190,245,.28);border-radius:9px;background:#102a3b;font-size:16px;font-weight:800}.window-title div{min-width:0}.window-title b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:16px}.window-title span:not(.window-badge){display:block;color:var(--muted);font-size:16px;margin-top:2px}.window-actions{display:flex;gap:4px}.window-actions .icon-button{width:29px;height:29px;border-radius:8px;background:transparent;border-color:transparent;font-size:16px}.window-actions .icon-button:hover,.window-actions .icon-button.active{background:rgba(66,124,162,.24);border-color:var(--line)}.module-content{min-height:0;overflow:auto}.module-page{min-height:100%;padding:16px}.module-page.full-bleed{padding:0;height:100%;display:grid;grid-template-rows:36px minmax(0,1fr)}.frame-bar{display:flex;justify-content:space-between;align-items:center;padding:0 12px;border-bottom:1px solid var(--line);color:var(--muted);font-size:16px}.drone-frame,.familyguard-frame{width:100%;height:100%;border:0;background:#07111c}.familyguard-frame-wrap{background:#07111c}
.module-intro{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(230px,.65fr);gap:14px;margin-bottom:13px}.module-intro h3{font-size:24px;margin:4px 0 6px}.module-intro p{margin:0;color:var(--muted);line-height:1.55;font-size:16px}.capabilities{display:flex;flex-wrap:wrap;gap:5px;margin-top:9px}.cap{padding:4px 7px;border:1px solid var(--line);border-radius:999px;color:#8dbbd4;background:rgba(20,49,66,.3);font-size:16px}.boundary{padding:12px;border:1px solid rgba(255,201,102,.18);border-radius:13px;background:rgba(93,65,20,.12);color:#c3b18b;font-size:16px;line-height:1.55}.boundary b{color:var(--warn)}.module-toolbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:end;gap:12px;padding:10px 12px;margin-bottom:12px;border:1px solid var(--line);border-radius:13px;background:rgba(13,26,37,.93);backdrop-filter:blur(12px)}.toolbar-fields{display:flex;gap:10px;flex-wrap:wrap}.toolbar-field{display:grid;gap:4px}.toolbar-field span{font-size:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.tabs{display:flex;gap:5px;overflow:auto;margin:0 0 12px}.tab{height:34px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:rgba(10,21,30,.6);color:var(--muted);cursor:pointer;font-size:16px}.tab.active{background:linear-gradient(135deg,rgba(48,139,190,.35),rgba(77,70,178,.24));border-color:rgba(89,190,244,.38);color:var(--text)}
.tool-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tool-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.tool-panel{min-width:0;padding:14px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,rgba(16,31,43,.86),rgba(9,19,28,.82))}.tool-panel.wide{grid-column:1/-1}.tool-panel h4{margin:0 0 5px;font-size:16px}.tool-panel>p{margin:0 0 12px;color:var(--muted);font-size:16px;line-height:1.5}.field{display:grid;gap:5px;margin-bottom:10px;min-width:0}.field>span{font-size:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.field-row.three{grid-template-columns:repeat(3,minmax(0,1fr))}.full{grid-column:1/-1}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#08131c;color:var(--text);padding:9px 10px;min-height:36px}textarea{min-height:88px;resize:vertical;line-height:1.5}input::placeholder,textarea::placeholder{color:#4f687a}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.check{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);border-radius:9px;color:var(--muted);font-size:16px}.check input{width:auto;min-height:0}.output{min-height:160px;max-height:430px;overflow:auto;white-space:pre-wrap;word-break:break-word;margin:10px 0 0;padding:12px;border:1px solid var(--line);border-radius:11px;background:#050d14;color:#a9c7d8;font:10px/1.55 "Cascadia Code",Consolas,monospace}.empty-state{min-height:260px;display:grid;place-items:center;text-align:center;border:1px dashed var(--line);border-radius:15px;color:var(--muted)}.empty-state>div{max-width:520px}.boundary-note{padding:10px 12px;border:1px solid rgba(255,201,102,.22);border-radius:11px;background:rgba(110,76,21,.12);color:#c8b38a;font-size:16px;line-height:1.5}
.filter-builder{display:grid;grid-template-columns:180px 1fr auto;gap:8px;align-items:end}.filter-list{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.filter-token{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid rgba(86,200,255,.25);border-radius:999px;background:rgba(39,112,150,.18);font-size:16px}.filter-token button{border:0;background:transparent;color:var(--muted);cursor:pointer}.result-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:10px 0}.result-count{font-size:24px;font-weight:800}.result-count span{font-size:16px;color:var(--muted);font-weight:400}.host-list{display:grid;gap:8px}.host-card{padding:11px;border:1px solid var(--line);border-radius:12px;background:rgba(7,16,23,.72);cursor:pointer}.host-card:hover{border-color:var(--line-strong)}.host-head{display:flex;justify-content:space-between;gap:12px}.host-address{font:600 14px/1.2 "Cascadia Code",monospace}.host-port{padding:3px 6px;border-radius:7px;background:rgba(70,161,213,.18);color:#8ed8ff;font-size:16px}.host-meta{display:flex;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:16px;margin-top:6px}.facet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.facet-card{padding:10px;border:1px solid var(--line);border-radius:10px}.facet-card b{display:block;font-size:16px}.facet-bar{height:4px;border-radius:4px;background:#132c3d;margin-top:7px;overflow:hidden}.facet-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.chat-shell{height:100%;min-height:440px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#07111a}.chat-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);gap:8px}.chat-head .chat-actions{display:flex;gap:6px;align-items:center}.chat-thread{overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.message{max-width:82%;padding:10px 12px;border-radius:13px;white-space:pre-wrap;line-height:1.5;font-size:16px}.message.user{align-self:flex-end;background:linear-gradient(135deg,#17658d,#4f55b9)}.message.assistant{align-self:flex-start;background:#102534;border:1px solid var(--line)}.message small{display:block;color:rgba(255,255,255,.55);font-size:16px;margin-top:5px}.chat-compose{display:grid;grid-template-columns:auto 1fr auto;gap:8px;padding:10px;border-top:1px solid var(--line)}.chat-compose textarea{min-height:42px;max-height:110px;margin:0}.attachment-row{display:flex;gap:6px;flex-wrap:wrap}.attachment-pill{padding:5px 7px;border:1px solid var(--line);border-radius:8px;font-size:16px;color:var(--muted)}
.graph-layout{height:100%;min-height:480px;display:grid;grid-template-columns:250px minmax(0,1fr) 250px;gap:10px}.graph-side,.graph-inspector{border:1px solid var(--line);border-radius:13px;padding:12px;background:rgba(10,22,31,.78);overflow:auto}.graph-stage{position:relative;min-height:420px;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:radial-gradient(circle at center,rgba(25,64,86,.4),#050d14 68%)}.graph-stage canvas,.shadow-stage canvas{width:100%;height:100%;display:block}.graph-hud{position:absolute;left:10px;top:10px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:rgba(4,10,15,.72);font-size:16px;color:var(--muted)}
.shadow-layout{height:100%;min-height:500px;display:grid;grid-template-columns:260px minmax(0,1fr);gap:11px}.shadow-controls{border:1px solid var(--line);border-radius:13px;padding:13px;background:rgba(10,22,31,.82);overflow:auto}.shadow-stage{position:relative;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:linear-gradient(#0a2440,#122b39 50%,#182b26 51%,#0a1713)}.time-readout{font-size:30px;font-weight:800;letter-spacing:-.04em}.range{accent-color:var(--accent)}.shadow-badge{position:absolute;right:12px;top:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:rgba(5,12,18,.72);font-size:16px;color:var(--muted)}
.digest-groups{display:grid;gap:10px}.digest-group{padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(8,18,26,.72)}.digest-group h5{margin:0;font-size:16px}.digest-group p{color:var(--muted);font-size:16px;line-height:1.5}.event-list{display:grid;gap:6px}.event-row{padding:8px;border-left:2px solid var(--accent);background:rgba(18,37,49,.5)}.event-row b{font-size:16px}.event-row span{display:block;color:var(--muted);font-size:16px;margin-top:3px}
.taskbar{display:flex;align-items:center;gap:8px;padding:0 10px;border-top:1px solid var(--line);background:rgba(6,13,20,.93);z-index:70}.taskbar-brand{width:29px;height:29px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#1a668d,#5452aa);font-size:16px;font-weight:800}.taskbar-items{display:flex;gap:5px;min-width:0;overflow:auto;flex:1}.task-item{height:30px;max-width:210px;border:1px solid var(--line);border-radius:9px;background:rgba(15,29,40,.75);padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:16px;cursor:pointer}.task-item.active{border-color:rgba(88,196,250,.42);color:var(--text);background:rgba(39,106,143,.28)}.task-item.minimized{opacity:.65}.taskbar-help{display:flex;gap:10px;color:var(--faint);font-size:16px;text-transform:uppercase;letter-spacing:.08em}
.dialog-card{width:min(620px,calc(100vw - 30px));border:1px solid var(--line-strong);border-radius:18px;background:#09141d;color:var(--text);box-shadow:var(--shadow);padding:0}.dialog-card::backdrop{background:rgba(1,5,8,.72);backdrop-filter:blur(8px)}.dialog-card form{padding:18px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:16px}.dialog-head h3{margin:4px 0 0;font-size:24px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.dialog-note{color:var(--muted);font-size:16px;line-height:1.5}.settings-dialog{width:min(980px,calc(100vw - 30px))}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:65vh;overflow:auto;margin-top:12px}.settings-section{display:grid;grid-template-columns:42px 1fr;gap:10px;padding:13px;border:1px solid var(--line);border-radius:13px;background:rgba(13,27,38,.65)}.settings-section h4{margin:2px 0 1px}.settings-section p{margin:0;color:var(--muted);font-size:16px}.settings-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#123249;border:1px solid rgba(86,200,255,.22);font-size:16px;font-weight:800}.command-dialog{width:min(650px,calc(100vw - 30px));padding:0;top:8vh;margin-top:0}.command-head{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line)}.command-head input{border:0;background:transparent;font-size:16px;outline:0}.command-results{padding:8px;max-height:52vh;overflow:auto}.command-item{width:100%;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid transparent;border-radius:11px;background:transparent;text-align:left;cursor:pointer}.command-item:hover,.command-item.selected{background:rgba(35,90,121,.24);border-color:var(--line)}.command-item span{color:var(--muted);font-size:16px}.command-footer{display:flex;gap:16px;padding:9px 12px;border-top:1px solid var(--line);color:var(--faint);font-size:16px}.toast{position:fixed;right:18px;bottom:62px;z-index:200;max-width:420px;padding:11px 14px;border:1px solid rgba(77,225,161,.28);border-radius:12px;background:#0c211b;color:#bff4db;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.18s;font-size:16px}.toast.show{opacity:1;transform:none}.toast.error{border-color:rgba(255,110,130,.3);background:#2a1117;color:#ffc5ce}.mobile-only{display:none}
body.sidebar-collapsed{--sidebar:78px}.sidebar-collapsed .brand-copy,.sidebar-collapsed .module-search input,.sidebar-collapsed .module-search kbd,.sidebar-collapsed .sidebar-caption,.sidebar-collapsed .launcher-copy,.sidebar-collapsed .status-dot,.sidebar-collapsed .privacy-card,.sidebar-collapsed .sidebar-footer{display:none}.sidebar-collapsed .module-search{grid-template-columns:1fr;padding:0;place-items:center}.sidebar-collapsed .launcher-item{grid-template-columns:1fr;padding:7px}.sidebar-collapsed .launcher-icon{margin:auto}.sidebar-collapsed .brand{justify-content:center}.sidebar-collapsed .brand .compact{position:absolute;left:57px}.popout .sidebar,.popout .topbar,.popout .taskbar{display:none}.popout .app-shell{display:block}.popout .work-area{display:block;height:100%}.popout .workspace-viewport{height:100%}.popout .module-window.maximized{inset:0!important;width:100%!important;height:100%!important;border-radius:0;border:0}
@media(max-width:1180px){.topbar-center{display:none}.welcome-panel{grid-template-columns:.65fr 1.2fr}.quick-modules{display:none}.graph-layout{grid-template-columns:220px minmax(0,1fr)}.graph-inspector{display:none}}
@media(max-width:860px){:root{--sidebar:250px}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;left:-260px;top:0;bottom:0;width:250px}.sidebar-open .sidebar{left:0}.mobile-only{display:grid}.topbar{padding:0 10px}.layout-field,.topbar-actions>.button.ghost,.ai-indicator{display:none}.welcome-panel{grid-template-columns:1fr;padding:32px}.welcome-visual{display:none}.module-window{min-width:330px}.module-intro{grid-template-columns:1fr}.tool-grid,.tool-grid.three,.field-row.three{grid-template-columns:1fr}.shadow-layout,.graph-layout{grid-template-columns:1fr}.shadow-controls,.graph-side{max-height:240px}.settings-grid{grid-template-columns:1fr}.taskbar-help{display:none}}
.tab-pane{display:none}.tab-pane.active{display:block}

/* ── 3D Modules (Cesium / Three.js) ── */
.cesium-container{width:100%!important;height:100%!important;position:absolute;inset:0}
.cesium-container .cesium-viewer{height:100%;width:100%}
.cesium-wrapper{position:relative;flex:1;min-height:400px;overflow:hidden;border-radius:0 0 12px 12px}
.graph-3d-stage{position:relative;overflow:hidden;min-height:350px}
.graph-3d-stage canvas{display:block}
.module-page .cesium-credit-logoContainer,.module-page .cesium-credit-textContainer{display:none!important}

/* ── 3D Force Graph (obsidian-3d-graph style) ── */
.graph-3d-stage{position:relative;overflow:hidden;min-height:350px;background:radial-gradient(ellipse at center, #0f1f33 0%, #070d17 60%, #020508 100%)}
.graph-3d-stage canvas{display:block}
.graph-3d-stage .scene-nav-info{display:none!important}

input[type="checkbox"],input[type="radio"]{width:16px;min-width:16px;height:16px;min-height:16px;padding:0;flex:0 0 16px}

/* v7 compact operator UI -------------------------------------------------- */
:root{--topbar:58px;--taskbar:42px;--radius:16px}
.sidebar{padding-top:14px}.brand{padding-bottom:10px}.sidebar-caption{margin:8px 5px 7px;font-size:11px}.launcher-group-title{font-size:10px}.launcher-copy b{font-size:13px}.launcher-copy span{font-size:11px}.sidebar-footer{font-size:9px;gap:8px;align-items:center}.sidebar-footer span:last-child{display:none}
.topbar{justify-content:space-between;padding:0 14px 0 16px;gap:12px;background:linear-gradient(180deg,rgba(8,18,27,.92),rgba(6,14,21,.86));box-shadow:0 8px 30px rgba(0,0,0,.16)}
.topbar-left{min-width:0;flex:1}.topbar-product{display:flex;align-items:center;gap:10px;min-width:0}.topbar-product-mark{width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(145deg,#17445f,#333d83);border:1px solid rgba(110,200,255,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.08);font-size:11px;font-weight:900;letter-spacing:.08em}.topbar-product div{min-width:0}.topbar-product strong{display:block;font-size:13px;line-height:1.15;letter-spacing:.01em}.topbar-product div span{display:block;margin-top:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.14em}
.topbar-actions{margin-left:auto}.ai-indicator{height:30px;padding:0 9px;border-radius:9px;font-size:11px;background:rgba(11,26,37,.72)}.icon-button.subtle{width:30px;height:30px;border-radius:9px;color:var(--muted);background:rgba(10,22,31,.55)}
.taskbar{padding:0 8px}.taskbar-brand{width:26px;height:26px;font-size:10px}.task-item{height:28px;font-size:11px}.taskbar-help{font-size:9px}

/* Long-chat performance and readable structured replies. */
[data-role="chat-thread"]{overscroll-behavior:contain;scrollbar-gutter:stable}.message{font-size:13px;line-height:1.55;max-width:min(88%,900px);white-space:normal}.message small{font-size:10px;margin-top:7px}.message.system{align-self:center;max-width:92%;background:rgba(28,42,52,.58);border:1px dashed rgba(123,183,220,.2);color:#bfd0db}.message-content{white-space:pre-wrap;word-break:break-word}.message-content p{margin:.45em 0}.message-content p:first-child{margin-top:0}.message-content p:last-child{margin-bottom:0}.message-content code{padding:1px 5px;border-radius:5px;background:rgba(0,0,0,.28);font-size:.92em}.message-content pre{overflow:auto;padding:10px;border-radius:9px;background:#071018;border:1px solid var(--line);white-space:pre;font-size:12px}.message-table-wrap{margin-top:9px;max-width:100%;overflow:auto;border:1px solid rgba(123,183,220,.18);border-radius:10px;background:rgba(5,15,23,.55)}.message-table{width:100%;border-collapse:collapse;font-size:12px;white-space:normal}.message-table th,.message-table td{padding:7px 9px;border-right:1px solid rgba(123,183,220,.12);border-bottom:1px solid rgba(123,183,220,.12);vertical-align:top;text-align:left}.message-table th{position:sticky;top:0;background:#102534;color:#dcecf6;font-weight:700}.message-table tr:last-child td{border-bottom:0}.message-table th:last-child,.message-table td:last-child{border-right:0}
.telegram-actions{margin-top:10px;padding:9px;border:1px solid rgba(255,201,102,.28);border-radius:10px;background:rgba(255,201,102,.055)}.telegram-actions-title{display:flex;align-items:center;gap:6px;margin-bottom:7px;color:#ffd78c;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.telegram-actions-row{display:flex;gap:7px;flex-wrap:wrap;margin-top:6px}.telegram-action{min-height:32px;padding:5px 10px;border:1px solid rgba(123,183,220,.28);border-radius:8px;background:rgba(20,48,65,.85);color:var(--text);font-size:12px;cursor:pointer}.telegram-action:hover{border-color:rgba(86,200,255,.58);background:rgba(28,73,99,.9)}.telegram-action.approve{border-color:rgba(77,225,161,.38);background:rgba(24,104,73,.42);color:#bcf5d9}.telegram-action.danger{border-color:rgba(255,110,130,.36);background:rgba(120,34,50,.35)}.telegram-action:disabled{opacity:.55;cursor:wait}.chat-history-note{align-self:center;padding:5px 9px;border-radius:999px;background:rgba(9,23,33,.78);border:1px solid var(--line);font-size:10px;color:var(--muted)}

@media(max-width:860px){:root{--topbar:54px}.topbar-product div span{display:none}.ai-indicator{display:flex}.sidebar-footer a{display:none}}


/* v7.1 readability + stable scrolling ----------------------------------- */
body{font-size:17px}
.module-content{font-size:15px}
.module-content input,.module-content select,.module-content textarea,.module-content button{font-size:15px}
/* Many legacy module templates still carry compact inline pixel sizes. */
.module-content [style*="font-size:9px"]{font-size:12px!important}
.module-content [style*="font-size:10px"]{font-size:12px!important}
.module-content [style*="font-size:11px"]{font-size:13px!important}
.module-content [style*="font-size:12px"]{font-size:14px!important}
.module-content [style*="font-size:13px"]{font-size:15px!important}
.launcher-copy b{font-size:14px}.launcher-copy span{font-size:12px}.launcher-group-title,.sidebar-caption{font-size:11px}
.topbar-product strong{font-size:14px}.topbar-product div span{font-size:10px}.ai-indicator{font-size:12px}
.task-item{font-size:12px}.taskbar-help{font-size:10px}
[data-role="chat-thread"],[data-role="vyv-chat"],[data-role="shodan-chat"],[data-role="tg-output"],[data-role="tool-output"]{scroll-behavior:auto!important;overflow-anchor:none;overscroll-behavior:contain;scrollbar-gutter:stable}
.message{font-size:16px;line-height:1.62;max-width:min(92%,980px);white-space:normal;contain:none;content-visibility:visible}
.message small{font-size:12px;margin-top:8px}.message-content code{font-size:.94em}.message-content pre{font-size:14px;line-height:1.55}
.message-table{font-size:14px}.message-table th,.message-table td{padding:9px 11px;line-height:1.45}
.telegram-actions-title{font-size:13px}.telegram-action{min-height:36px;padding:7px 12px;font-size:14px}.chat-history-note{font-size:12px;padding:6px 10px}
[data-role="vyv-chat"]{font-size:15px!important;line-height:1.58}
[data-role="shodan-chat"]{font-size:15px!important;line-height:1.55}
@media(max-width:860px){body{font-size:16px}.message{font-size:15px}.message-table{font-size:13px}}

/* Camera inventory ------------------------------------------------------- */
.camera-inventory{height:100%;min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr);background:linear-gradient(145deg,rgba(7,16,24,.96),rgba(4,10,15,.98));overflow:hidden}
.camera-db-sidebar{min-height:0;display:flex;flex-direction:column;border-right:1px solid var(--line);background:linear-gradient(180deg,rgba(10,22,32,.96),rgba(6,14,21,.94));padding:14px 12px 12px}
.camera-db-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 12px}.camera-db-sidebar-head span,.camera-title>span,.camera-modal-head small,.camera-detail-head small{display:block;color:#75bfe8;font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:750}.camera-db-sidebar-head h3{margin:4px 0 0;font-size:19px}.camera-square-button{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:rgba(23,48,65,.72);font-size:20px;cursor:pointer}.camera-square-button:hover{border-color:var(--line-strong);background:rgba(34,75,101,.8)}
.camera-db-create-box{display:none;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:9px;margin-bottom:8px;border:1px solid rgba(86,200,255,.2);border-radius:12px;background:rgba(12,31,43,.72)}.camera-db-create-box.visible{display:grid}.camera-db-create-box input{min-width:0;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:#08131d;color:var(--text)}
.camera-db-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:6px;padding:2px}.camera-db-item{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;padding:9px;border:1px solid transparent;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.camera-db-item:hover{background:rgba(35,80,105,.2);border-color:rgba(86,200,255,.12)}.camera-db-item.active{background:linear-gradient(100deg,rgba(38,111,151,.28),rgba(76,67,169,.14));border-color:rgba(86,200,255,.25)}.camera-db-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:rgba(20,49,67,.9);border:1px solid rgba(111,190,233,.18);font-size:11px;font-weight:900;letter-spacing:.07em}.camera-db-copy{min-width:0}.camera-db-copy b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.camera-db-copy small{display:block;margin-top:3px;color:var(--muted);font-size:11px}.camera-db-access{padding:3px 5px;border-radius:6px;background:rgba(77,225,161,.1);color:#a7edcf;font-size:9px;font-weight:800;letter-spacing:.08em}.camera-db-sidebar-foot{margin-top:auto;padding:10px 5px 2px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.camera-db-sidebar-foot span{display:block;color:var(--faint);font-size:9px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:3px}
.camera-main{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);overflow:hidden}.camera-main-head{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--line);background:rgba(7,17,25,.86)}.camera-title{min-width:0;display:flex;align-items:baseline;gap:12px}.camera-title h2{margin:0;font-size:17px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camera-title p{margin:0;color:var(--muted);font-size:12px;white-space:nowrap}.camera-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.camera-head-actions .button{height:34px;padding:0 11px;font-size:13px}
.camera-search-row{display:flex;align-items:center;gap:10px;padding:10px 18px;border-bottom:1px solid var(--line);background:rgba(6,14,21,.8)}.camera-search-box{flex:1;max-width:620px;height:38px;display:flex;align-items:center;gap:8px;padding-left:11px;border:1px solid var(--line);border-radius:11px;background:rgba(11,25,35,.82);color:var(--muted)}.camera-search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:14px}.camera-search-box .camera-mini{margin-right:4px}.camera-result-count{white-space:nowrap;color:var(--muted);font-size:12px}.camera-status{margin-left:auto;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.camera-status.ok{color:var(--ok)}.camera-status.error{color:var(--bad)}
.camera-table-wrap{min-height:0;overflow:auto;scrollbar-gutter:stable}.camera-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1050px;font-size:13px}.camera-table thead th{position:sticky;top:0;z-index:4;padding:9px 10px;border-bottom:1px solid var(--line);background:#0c1b27;color:#89a7ba;text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.camera-table tbody td{padding:8px 10px;border-bottom:1px solid rgba(137,185,219,.09);vertical-align:middle}.camera-table tbody tr:hover{background:rgba(27,70,94,.14)}.camera-photo-cell{width:92px}.camera-thumb{width:78px;height:54px;display:block;object-fit:cover;border-radius:8px;border:1px solid rgba(137,185,219,.2);background:#081019}.camera-thumb.placeholder{display:grid;place-items:center;color:var(--faint);font-size:21px}.camera-ip-link{padding:0;border:0;background:none;color:#a8ddff;font:inherit;font-weight:750;cursor:pointer}.camera-ip-link:hover{color:#fff;text-decoration:underline}.camera-table td small{display:block;margin-top:3px;color:var(--muted);font-size:10px}.camera-password{display:flex;align-items:center;gap:6px;min-width:120px}.camera-mini{min-height:26px;padding:3px 8px;border:1px solid var(--line);border-radius:7px;background:rgba(18,39,53,.75);color:#b9ccda;font-size:11px;cursor:pointer;white-space:nowrap}.camera-mini:hover{border-color:var(--line-strong);color:#fff}.camera-mini.danger{border-color:rgba(255,110,130,.24);color:#ffbdc7}.camera-profile-chip{display:inline-block;max-width:180px;padding:4px 7px;border:1px solid rgba(86,200,255,.16);border-radius:8px;background:rgba(41,91,120,.16);color:#aedaf2;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.camera-note-cell{max-width:330px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#c8d7e0}.camera-row-actions{display:flex;gap:5px}.camera-empty{padding:38px 18px;text-align:center;color:var(--muted);font-size:14px}.camera-empty.compact{padding:15px 8px;font-size:12px}
.camera-detail{position:absolute;z-index:25;top:0;right:0;bottom:0;width:min(520px,92%);display:flex;flex-direction:column;transform:translateX(102%);transition:transform .2s ease;background:rgba(7,17,25,.985);border-left:1px solid var(--line-strong);box-shadow:-22px 0 60px rgba(0,0,0,.38)}.camera-detail.visible{transform:none}.camera-detail-head,.camera-modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.camera-detail-head h3,.camera-modal-head h3{margin:3px 0 0;font-size:20px}.camera-detail-scroll{min-height:0;overflow:auto;padding:15px 16px 24px}.camera-photo-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}.camera-photo-gallery a{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:9px;border:1px solid var(--line);background:#081019}.camera-photo-gallery img{width:100%;height:100%;object-fit:cover;display:block}.camera-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:13px}.camera-detail-grid label{padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(12,28,39,.65)}.camera-detail-grid label>span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.camera-detail-grid b{font-size:14px}.camera-connect-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:11px}.camera-connect-grid .button{height:38px;font-size:12px}.camera-connect-status{margin-top:10px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:rgba(10,23,32,.75);color:var(--muted);font-size:11px;line-height:1.45}.camera-snapshot-box{min-height:210px;margin-top:10px;display:grid;place-items:center;overflow:hidden;border:1px dashed rgba(137,185,219,.22);border-radius:11px;background:#050d13;color:var(--muted);font-size:12px}.camera-snapshot-box img{width:100%;height:auto;max-height:420px;object-fit:contain;display:block}.camera-note-detail{margin:12px 0;padding:11px;border:1px solid var(--line);border-radius:10px;background:rgba(10,22,31,.62)}.camera-note-detail span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.camera-note-detail p{margin:6px 0 0;white-space:pre-wrap;line-height:1.5;font-size:13px}
.camera-overlay{position:absolute;z-index:35;inset:0;display:none;align-items:center;justify-content:center;padding:22px;background:rgba(2,7,11,.72);backdrop-filter:blur(8px)}.camera-overlay.visible{display:flex}.camera-modal-card{width:min(760px,96%);max-height:90%;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line-strong);border-radius:16px;background:#091722;box-shadow:var(--shadow)}.camera-modal-note{margin:0;padding:12px 16px;color:var(--muted);font-size:12px;line-height:1.5;border-bottom:1px solid var(--line)}.camera-acl-list{min-height:0;overflow:auto;padding:8px 12px 14px}.camera-acl-row{display:grid;grid-template-columns:minmax(0,1fr) 180px 190px;gap:9px;align-items:center;padding:9px 6px;border-bottom:1px solid rgba(137,185,219,.09)}.camera-acl-row b{display:block;font-size:14px}.camera-acl-row small{display:block;margin-top:2px;color:var(--muted);font-size:10px}.camera-acl-row select{height:34px}.camera-acl-actions{display:flex;justify-content:flex-end;gap:6px}.camera-owner-badge{padding:5px 8px;border-radius:7px;background:rgba(77,225,161,.1);color:#a7edcf;font-size:10px;font-weight:750}.camera-add-card{width:min(700px,96%)}.camera-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:16px}.camera-form-wide{grid-column:1/-1}.camera-form-grid textarea{resize:vertical}.camera-modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--line)}
@media(max-width:1050px){.camera-inventory{grid-template-columns:210px minmax(0,1fr)}.camera-main-head{align-items:flex-start;flex-direction:column}.camera-head-actions{justify-content:flex-start}.camera-acl-row{grid-template-columns:minmax(0,1fr) 150px}.camera-acl-actions{grid-column:1/-1;justify-content:flex-start}}
@media(max-width:760px){.camera-inventory{grid-template-columns:1fr}.camera-db-sidebar{display:none}.camera-main-head{padding:10px 12px}.camera-search-row{padding:8px 12px;flex-wrap:wrap}.camera-status{width:100%;margin-left:0}.camera-detail{width:100%}.camera-detail-grid,.camera-connect-grid,.camera-form-grid{grid-template-columns:1fr}.camera-form-wide{grid-column:auto}.camera-photo-gallery{grid-template-columns:repeat(2,1fr)}.camera-acl-row{grid-template-columns:1fr}.camera-acl-actions{grid-column:auto}}

/* Camera automatic snapshots ------------------------------------------------ */
.camera-detail-tabs{display:flex;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);background:rgba(8,19,28,.94)}
.camera-detail-tab{height:34px;padding:0 12px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:13px;font-weight:750;cursor:pointer}
.camera-detail-tab:hover{background:rgba(35,80,105,.2);color:var(--text)}
.camera-detail-tab.active{border-color:rgba(86,200,255,.28);background:rgba(38,111,151,.24);color:#d9f2ff}
.camera-detail-pane{display:none}.camera-detail-pane.active{display:block}
.camera-live-pane{min-height:100%}
.camera-live-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.camera-live-head p{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.camera-live-state{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:rgba(14,30,41,.72);color:var(--muted);font-size:12px;font-weight:800}
.camera-live-state.active{border-color:rgba(77,225,161,.28);background:rgba(77,225,161,.08);color:#a7edcf}
.camera-live-frame{position:relative;min-height:270px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#03090e}
.camera-live-frame img{display:block;width:100%;height:auto;max-height:520px;object-fit:contain}
.camera-live-empty{padding:26px;text-align:center;color:var(--muted);font-size:13px;line-height:1.5}
.camera-live-settings{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(11,25,35,.72)}
.camera-live-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.camera-live-toggle input{margin-top:4px;transform:scale(1.12)}
.camera-live-toggle b{display:block;font-size:14px}.camera-live-toggle small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.45}
.camera-live-settings-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:9px;margin:12px 0}.camera-live-settings .button{width:100%}
.camera-live-retention,.camera-live-readonly{margin:10px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
.camera-live-readonly{padding:10px 11px;border:1px solid rgba(86,200,255,.15);border-radius:10px;background:rgba(38,111,151,.08);font-size:12px}
@media(max-width:760px){.camera-live-settings-grid{grid-template-columns:1fr}.camera-live-frame{min-height:210px}}

/* Dedicated operator cam.py ------------------------------------------------ */
.camera-module-tabs{display:flex;align-items:center;gap:6px;padding:8px 16px;border-bottom:1px solid var(--line);background:rgba(6,14,21,.88)}
.camera-module-tab{height:35px;padding:0 13px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:14px;font-weight:800;cursor:pointer}
.camera-module-tab:hover{background:rgba(35,80,105,.2);color:var(--text)}
.camera-module-tab.active{border-color:rgba(86,200,255,.28);background:rgba(38,111,151,.24);color:#d9f2ff}
.camera-pane-stack{position:relative;min-width:0;min-height:0;overflow:hidden}
.camera-module-pane{position:absolute;inset:0;display:none;min-width:0;min-height:0;overflow:hidden}
.camera-module-pane.active{display:block}
.camera-inventory-pane.active{display:grid;grid-template-rows:auto minmax(0,1fr)}
.camera-main.special-active .camera-head-actions{display:none}
.camera-special-pane{overflow:auto!important;padding:18px}
.camera-special-shell{width:min(1120px,100%);margin:0 auto;display:flex;flex-direction:column;gap:13px}
.camera-special-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(135deg,rgba(15,35,48,.88),rgba(9,20,29,.9))}
.camera-special-kicker{display:block;margin-bottom:4px;color:#75bfe8;font-size:11px;font-weight:850;letter-spacing:.12em}
.camera-special-top h3{margin:0;font-size:22px}.camera-special-top p{margin:5px 0 0;color:var(--muted);font-size:13px;line-height:1.45}
.camera-special-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.camera-special-binding{display:grid;grid-template-columns:minmax(220px,1fr) minmax(210px,340px) auto;gap:10px;align-items:center;padding:12px 14px;border:1px solid rgba(86,200,255,.18);border-radius:12px;background:rgba(22,50,67,.32)}
.camera-special-binding b{display:block;font-size:14px}.camera-special-binding small{display:block;margin-top:3px;color:var(--muted);font-size:11px;line-height:1.4}.camera-special-binding select{height:38px}
.camera-special-view{min-height:420px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#02070b;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}
.camera-special-view img{display:block;width:100%;height:100%;max-height:70vh;object-fit:contain}
.camera-special-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 13px;border:1px solid var(--line);border-radius:11px;background:rgba(9,21,30,.72)}
.camera-special-footer p{margin:0;color:var(--muted);font-size:12px}.camera-special-footer code{max-width:55%;color:#9fc3d8;font-size:11px;white-space:pre-wrap;word-break:break-word;text-align:right}
/* Special camera layout with sidebar */
.camera-special-layout{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:12px}
.camera-special-sidebar{display:flex;flex-direction:column;min-height:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(6,14,21,.8)}
.camera-special-sidebar-head{padding:6px 8px;font-size:11px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line);text-align:center}
.camera-special-feed{flex:1;overflow-y:auto;padding:4px;display:flex;flex-direction:column;gap:3px;max-height:420px}
.camera-special-feed-item{position:relative;border-radius:6px;overflow:hidden;border:1px solid transparent;transition:border-color .15s}
.camera-special-feed-item:hover{border-color:var(--accent)}
.camera-special-feed-item img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.camera-special-feed-item span{position:absolute;bottom:2px;right:3px;padding:1px 4px;border-radius:4px;background:rgba(0,0,0,.7);color:#fff;font-size:9px}
@media(max-width:760px){.camera-module-tabs{padding:7px 10px;overflow:auto}.camera-module-tab{font-size:13px;white-space:nowrap}.camera-special-pane{padding:10px}.camera-special-top{flex-direction:column}.camera-special-controls{justify-content:flex-start}.camera-special-binding{grid-template-columns:1fr}.camera-special-view{min-height:260px}.camera-special-layout{grid-template-columns:1fr}.camera-special-sidebar{display:none}.camera-special-footer{flex-direction:column}.camera-special-footer code{max-width:none;text-align:left}}

/* ── Photo gallery viewer ── */
.camera-gallery{margin-bottom:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#050d14}
.camera-gallery-main{position:relative;display:flex;align-items:center;justify-content:center;min-height:280px;background:#02070b}
.camera-gallery-viewer{position:relative;width:100%;display:grid;place-items:center;cursor:zoom-in}
.camera-gallery-viewer.fullscreen{position:fixed;inset:0;z-index:200;background:#000;cursor:zoom-out}
.camera-gallery-viewer.fullscreen img{max-height:100vh;max-width:100vw;object-fit:contain}
.camera-gallery-viewer img{display:block;width:100%;max-height:520px;object-fit:contain}
.camera-gallery-counter{position:absolute;bottom:10px;right:14px;padding:4px 9px;border-radius:7px;background:rgba(0,0,0,.65);color:#fff;font-size:13px;font-weight:700}
.camera-gallery-arrow{width:44px;height:60px;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:32px;cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);z-index:5;display:flex;align-items:center;justify-content:center;transition:background .15s}
.camera-gallery-arrow:hover{background:rgba(0,0,0,.75)}
.camera-gallery-arrow.prev{left:0;border-radius:0 10px 10px 0}
.camera-gallery-arrow.next{right:0;border-radius:10px 0 0 10px}
.camera-gallery-strip{display:flex;gap:6px;padding:8px 10px;overflow-x:auto;background:rgba(8,17,25,.7);border-top:1px solid var(--line)}
.camera-gallery-thumb{flex:0 0 72px;height:54px;border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;background:transparent;cursor:pointer;opacity:.55;transition:opacity .15s,border-color .15s}
.camera-gallery-thumb:hover{opacity:.85}
.camera-gallery-thumb.active{border-color:var(--accent);opacity:1}
.camera-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}

/* ── Live stream box ── */
.camera-live-box{margin-top:12px;border:2px solid #e53e3e;border-radius:14px;overflow:hidden;background:#000}
.camera-live-box-head{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:rgba(229,62,62,.12);border-bottom:1px solid rgba(229,62,62,.3)}
.camera-live-box-head span{font-size:14px;font-weight:700;color:#fc8181}
.camera-live-channel-bar{display:flex;align-items:center;gap:5px;padding:8px 12px;background:rgba(229,62,62,.06);border-bottom:1px solid rgba(229,62,62,.18);overflow-x:auto}
.camera-live-channel-btn{height:30px;padding:0 14px;border:1px solid rgba(229,62,62,.35);border-radius:8px;background:rgba(229,62,62,.08);color:#fca5a5;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s}
.camera-live-channel-btn:hover{background:rgba(229,62,62,.2);border-color:rgba(229,62,62,.6);color:#fff}
.camera-live-channel-btn.active{background:#e53e3e;border-color:#e53e3e;color:#fff;box-shadow:0 0 12px rgba(229,62,62,.4)}
.camera-live-channel-btn.tried-ok{border-color:rgba(77,225,161,.4);color:#a7edcf}
.camera-live-channel-btn.tried-fail{border-color:rgba(255,110,130,.25);color:#ff8a9e;opacity:.6}
.camera-live-channel-btn.tried-ok.active{background:#38a169;border-color:#38a169;box-shadow:0 0 12px rgba(56,161,105,.4)}
.camera-live-channel-btn.tried-fail.active{background:#c53030;border-color:#c53030;box-shadow:0 0 12px rgba(197,48,48,.4)}
.camera-live-stream-img{display:block;width:100%;max-height:75vh;object-fit:contain}
.camera-live-status{padding:8px 14px;color:var(--muted);font-size:12px;border-top:1px solid rgba(229,62,62,.15)}

/* ── Availability status dot ── */
.camera-status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}
.camera-status-dot.online{background:var(--ok);box-shadow:0 0 8px var(--ok)}
.camera-status-dot.offline{background:var(--bad);box-shadow:0 0 6px var(--bad)}
.camera-status-cell{text-align:center;width:50px}

/* ── Pagination ── */
.camera-pagination{padding:8px 18px;border-top:1px solid var(--line);background:rgba(6,14,21,.8)}
.paginator{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center}
.paginator-btn{min-width:32px;height:30px;border:1px solid var(--line);border-radius:7px;background:rgba(13,26,38,.7);color:var(--muted);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.paginator-btn:hover{border-color:var(--line-strong);color:var(--text)}
.paginator-btn.active{background:rgba(38,111,151,.35);border-color:var(--accent);color:var(--text);font-weight:700}
.paginator-btn:disabled{opacity:.35;cursor:default}
.paginator-ellipsis{padding:0 2px;color:var(--faint);font-size:13px}
.paginator-info{margin-left:auto;color:var(--muted);font-size:12px}

/* SaaS visual refresh ------------------------------------------------------ */
:root{--bg:#070910;--bg-soft:#0b0e17;--surface:#101521;--surface-2:#151c2a;--surface-3:#1b2434;--line:rgba(170,190,225,.13);--line-strong:rgba(132,170,255,.34);--text:#f4f7fb;--muted:#98a5b8;--faint:#637086;--accent:#7ea2ff;--accent-2:#9d7cff;--sidebar:286px;--topbar:72px;--radius:20px}
body{letter-spacing:-.005em;background:#070910}.app-shell{background:radial-gradient(circle at 8% 8%,rgba(84,103,201,.16),transparent 30%),radial-gradient(circle at 86% 5%,rgba(137,83,196,.11),transparent 28%),linear-gradient(150deg,#090c14,#06080d 62%)}
.sidebar{padding:18px 14px 12px;background:rgba(9,12,19,.83);border-right-color:rgba(190,205,232,.10);box-shadow:14px 0 60px rgba(0,0,0,.14)}
.brand-mark{background:linear-gradient(145deg,rgba(126,162,255,.20),rgba(157,124,255,.13));border-color:rgba(145,173,255,.42);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 14px 34px rgba(21,26,54,.55)}
.brand-copy strong{font-size:15px;letter-spacing:-.02em}.brand-copy span{font-size:9px;letter-spacing:.16em}.sidebar-caption,.sidebar-caption button,.launcher-group-title{font-size:10px}.launcher-item{min-height:58px;border-radius:15px;padding:8px 10px}.launcher-item:hover,.launcher-item.open{background:linear-gradient(100deg,rgba(103,131,216,.17),rgba(130,92,192,.08));border-color:rgba(139,168,244,.20)}.launcher-icon{width:38px;height:38px;border-radius:12px;background:linear-gradient(145deg,rgba(31,41,61,.95),rgba(18,24,37,.92));border-color:rgba(170,193,231,.14)}.launcher-copy b{font-size:14px}.launcher-copy span{font-size:11px;line-height:1.25}
.topbar{background:rgba(9,12,19,.70);border-bottom-color:rgba(190,205,232,.10);padding:0 24px}.topbar-product-mark{background:linear-gradient(135deg,rgba(126,162,255,.28),rgba(157,124,255,.25))!important;border-color:rgba(145,173,255,.32)!important}.ai-indicator{background:rgba(17,22,33,.76);font-size:11px}
.workspace-viewport{background-image:linear-gradient(rgba(155,174,211,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(155,174,211,.025) 1px,transparent 1px);background-size:40px 40px}.welcome-panel{grid-template-columns:minmax(250px,.72fr) minmax(420px,1.2fr) minmax(220px,.58fr);gap:44px}.welcome-copy h2{font-size:clamp(39px,4.1vw,66px);line-height:1.01;background:linear-gradient(180deg,#fff 0%,#c7d1e5 78%);-webkit-background-clip:text}.welcome-copy>p{font-size:15px;line-height:1.75;max-width:610px}.eyebrow{font-size:10px;color:#9eb6ff}.button{font-size:13px;border-radius:12px}.button.primary{background:linear-gradient(135deg,#789cff,#8c72ec);box-shadow:0 12px 34px rgba(83,94,194,.25)}
.privacy-card{background:linear-gradient(145deg,rgba(19,25,39,.94),rgba(12,16,25,.85));border-color:rgba(177,197,231,.13)}.account-mini-head{display:flex;align-items:center;gap:10px}.account-avatar{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,rgba(126,162,255,.28),rgba(157,124,255,.22));border:1px solid rgba(147,173,245,.26);font-weight:800}.account-mini-head b{display:block;font-size:13px}.account-mini-head small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.account-mini-meta{display:flex;align-items:center;gap:7px;margin-top:10px;color:var(--faint);font-size:10px}.account-mini-meta i{width:3px;height:3px;border-radius:50%;background:var(--faint)}.account-mini-meta button{border:1px solid rgba(147,173,245,.35);background:rgba(126,162,255,.12);color:var(--text);padding:6px 10px;cursor:pointer;font-size:12px;border-radius:8px;font-weight:700}.account-mini-meta button:hover{color:var(--text)}
.module-window{border-color:rgba(173,193,229,.14)!important;background:rgba(12,16,25,.94)!important;box-shadow:0 28px 90px rgba(0,0,0,.42)!important}.module-head{background:linear-gradient(180deg,rgba(26,34,49,.95),rgba(16,21,31,.92))!important}.module-content{background:linear-gradient(160deg,rgba(12,17,27,.98),rgba(8,11,18,.98))!important}

.auth-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 18% 18%,rgba(92,104,205,.19),transparent 31%),radial-gradient(circle at 80% 18%,rgba(140,81,189,.12),transparent 27%),linear-gradient(145deg,#080a10,#05070b 66%);color:var(--text)}.auth-shell{width:min(1050px,100%);min-height:620px;display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;border:1px solid rgba(175,195,229,.14);border-radius:30px;background:rgba(11,14,22,.88);box-shadow:0 45px 120px rgba(0,0,0,.48);backdrop-filter:blur(24px)}.auth-story{position:relative;display:flex;flex-direction:column;padding:42px 48px;background:linear-gradient(145deg,rgba(25,32,52,.88),rgba(13,17,28,.92));overflow:hidden}.auth-story:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(139,165,244,.13);border-radius:50%;right:-170px;bottom:-180px;box-shadow:0 0 0 70px rgba(126,162,255,.025),0 0 0 140px rgba(157,124,255,.018)}.auth-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand>span{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(145,173,255,.33);border-radius:14px;background:linear-gradient(135deg,rgba(126,162,255,.25),rgba(157,124,255,.19));font-size:13px;font-weight:900}.auth-brand b{display:block;font-size:15px}.auth-brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase;margin-top:3px}.auth-copy{margin:auto 0;position:relative;z-index:1}.auth-kicker{display:inline-flex;padding:7px 10px;border-radius:999px;border:1px solid rgba(147,173,245,.20);background:rgba(126,162,255,.07);color:#aabfff;font-size:10px;text-transform:uppercase;letter-spacing:.12em}.auth-copy h1{margin:18px 0 16px;font-size:clamp(42px,4.5vw,64px);line-height:.98;letter-spacing:-.055em}.auth-copy p{max-width:520px;margin:0;color:#9ba8bb;font-size:14px;line-height:1.75}.auth-features{display:flex;gap:8px;flex-wrap:wrap;position:relative;z-index:1}.auth-features span{padding:7px 10px;border:1px solid rgba(172,192,226,.13);border-radius:9px;color:#8290a5;font-size:9px;text-transform:uppercase;letter-spacing:.1em}.auth-card{display:flex;flex-direction:column;justify-content:center;padding:62px 58px;background:rgba(8,11,17,.86)}.auth-card-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:30px}.auth-card-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;border-radius:12px;background:rgba(126,162,255,.12);border:1px solid rgba(126,162,255,.22);color:#a8bcff}.auth-card h2{margin:0;font-size:25px;letter-spacing:-.035em}.auth-card-head p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.auth-field{margin-bottom:16px}.auth-field span{font-size:11px;color:#adb7c7}.auth-field input{height:48px!important;border-radius:13px!important;background:rgba(17,22,33,.82)!important;border-color:rgba(174,195,229,.14)!important;font-size:14px!important}.auth-submit{width:100%;height:49px;margin-top:5px;justify-content:space-between;padding:0 17px}.auth-error{padding:10px 12px;border:1px solid rgba(255,110,130,.22);border-radius:10px;background:rgba(255,110,130,.07);color:#ff9aaa;font-size:11px;margin:12px 0 0}.auth-foot{display:flex;align-items:center;gap:10px;margin-top:28px}.auth-foot>span{width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 12px rgba(77,225,161,.55)}.auth-foot p{margin:0;color:#69768a;font-size:10px}@media(max-width:820px){.auth-shell{grid-template-columns:1fr;max-width:520px}.auth-story{display:none}.auth-card{padding:42px 32px;min-height:560px}}
[data-ac-user-card]{padding:14px!important;margin-bottom:9px!important;border-radius:14px!important;background:rgba(15,20,31,.76)!important}[data-ac-user-card] .button{height:31px!important;font-size:11px!important;padding:0 9px!important}[data-ac-user-card] label{font-size:11px!important;line-height:1.35}[data-ac-user-card] input[type="checkbox"]{accent-color:var(--accent)}

.auth-phone{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
.auth-phone-btn{display:flex;align-items:center;justify-content:center;height:44px;text-align:center;text-decoration:none;border-radius:13px;font-size:13px;font-weight:700;color:inherit}
.auth-phone-hint{margin:10px 0 0;color:#8290a5;font-size:11px;line-height:1.45}
@media(max-width:520px){.auth-phone{grid-template-columns:1fr}}


/* chrome-compact-maps */
.module-page.full-bleed{grid-template-rows:minmax(0,1fr)!important;position:relative;height:100%}
.module-page.full-bleed .frame-bar{
  position:absolute;top:6px;right:10px;z-index:8;height:auto;padding:0;border:0;background:transparent;gap:8px;width:auto;left:auto
}
.module-page.full-bleed .frame-bar span{display:none}
.module-page.full-bleed .frame-bar a{font-size:11px;color:#9ec4dd;text-decoration:none;background:rgba(8,18,28,.72);border:1px solid rgba(140,180,210,.25);border-radius:8px;padding:3px 8px}
.module-window.maximized{left:4px!important;top:4px!important;width:calc(100% - 8px)!important;height:calc(100% - 8px)!important}
.module-window.maximized{grid-template-rows:34px minmax(0,1fr)}
.module-window.maximized .window-titlebar{padding:0 6px 0 10px}
.module-window.maximized .window-title span:not(.window-badge){display:none}
.module-window.maximized .window-title b{font-size:13px;line-height:1.2}
.module-window.maximized .window-badge{width:22px;height:22px;font-size:11px;border-radius:7px}

/* osint-topbar-slim */
:root{--topbar:40px}
.topbar{height:40px;min-height:40px;padding:0 12px !important;gap:8px !important}
.topbar-product{gap:8px}
.topbar-product-mark{width:22px !important;height:22px !important;border-radius:6px !important;font-size:9px !important}
.topbar-product strong{font-size:12px !important;line-height:1.1 !important}
.topbar-product div span{display:none !important}
.ai-indicator{height:24px !important;padding:0 8px !important;font-size:11px !important;border-radius:8px !important}
.topbar-actions .button{height:24px !important;font-size:12px !important;padding:0 10px !important;border-radius:8px !important}
.topbar .icon-button,.topbar .icon-button.subtle{width:24px !important;height:24px !important;border-radius:7px !important}
