:root{--bg:#05090c;--surface:#0b1217;--surface-2:#101a20;--line:#20313a;--line-bright:#315262;--text:#e9f2f5;--muted:#78909a;--cyan:#55d8f3;--violet:#9a7cf4;--green:#56d59a;--orange:#f0a45e;--red:#f16767;--sidebar:230px;--context:300px;--topbar:64px;--status:28px}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif}button,input,select,textarea{font:inherit}button,a{color:inherit}button{cursor:pointer}.xent-app{display:grid;grid-template-columns:var(--sidebar) 1fr;grid-template-rows:1fr var(--status);height:100vh;background:radial-gradient(circle at 70% 5%,rgba(55,128,153,.12),transparent 28%),var(--bg)}.xent-sidebar{grid-row:1/2;display:flex;min-width:0;flex-direction:column;border-right:1px solid var(--line);background:#070d11;transition:.25s}.xent-sidebar>header{display:flex;align-items:center;gap:10px;height:64px;padding:0 13px;border-bottom:1px solid var(--line)}.xent-symbol{display:grid;place-items:center;width:30px;height:30px;border:1px solid rgba(85,216,243,.5);border-radius:6px;background:linear-gradient(135deg,#237f96,#693cc5);font-weight:800;text-decoration:none}.xent-sidebar>header div{display:flex;min-width:0;flex:1;flex-direction:column}.xent-sidebar>header strong{font:800 16px Manrope;letter-spacing:.14em}.xent-sidebar>header small{color:var(--muted);font-size:6px;letter-spacing:.12em}.xent-sidebar>header button{width:28px;height:28px;border:0;background:transparent;color:var(--muted);font-size:22px}.primary-action{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;margin:14px;border:1px solid #48b7d3;border-radius:5px;background:linear-gradient(90deg,#116b83,#394fb0);font-size:9px;font-weight:800;letter-spacing:.05em}.xent-sidebar nav{display:grid;gap:2px;padding:0 8px}.xent-sidebar nav button{position:relative;display:grid;grid-template-columns:28px 1fr auto;align-items:center;min-height:37px;padding:0 9px;border:0;border-radius:4px;background:transparent;color:#91a4ac;text-align:left;font-size:9px}.xent-sidebar nav button:hover,.xent-sidebar nav button.active{background:rgba(68,185,216,.11);color:#eaf9fc}.xent-sidebar nav button.active:before{position:absolute;top:7px;bottom:7px;left:0;width:2px;background:var(--cyan);content:""}.xent-sidebar nav button b{color:#6fbdd0;font-size:14px}.xent-sidebar nav button em{padding:3px;border:1px solid #2b4d5b;border-radius:2px;color:#6ba5b5;font-size:5px;font-style:normal}.side-recent{margin:14px 12px;padding-top:12px;border-top:1px solid var(--line)}.side-recent>p{color:#536871;font-size:7px;font-weight:700;letter-spacing:.1em}.side-recent button{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:0;border-radius:4px;background:#0c151a;color:#c9d6da;text-align:left;font-size:8px}.side-recent i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 7px var(--green)}.side-recent span,.side-user span{display:flex;flex-direction:column}.side-recent small,.side-user small{margin-top:3px;color:var(--muted);font-size:6px}.xent-sidebar>footer{display:grid;gap:4px;margin-top:auto;padding:10px;border-top:1px solid var(--line)}.xent-sidebar>footer>a,.xent-sidebar>footer>button{display:flex;align-items:center;gap:9px;min-height:31px;padding:0 8px;border:0;background:transparent;color:#8599a1;font-size:8px;text-decoration:none}.side-user{display:flex;align-items:center;gap:8px;margin-top:5px;padding:9px 7px;border-radius:4px;background:#0c151a;font-size:8px}.side-user>b{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#244854;color:#c8f4fd;font-size:8px}.xent-main{min-width:0;overflow:hidden}.xent-topbar{display:flex;align-items:center;gap:12px;height:var(--topbar);padding:0 14px;border-bottom:1px solid var(--line);background:rgba(7,13,17,.9)}.app-switcher{position:relative}.app-switcher>button{display:flex;align-items:center;gap:15px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:4px;background:#0d171c;font-size:9px;font-weight:800;letter-spacing:.1em}.app-menu{position:absolute;top:43px;left:0;z-index:30;width:210px;padding:7px;border:1px solid var(--line-bright);border-radius:6px;background:#091116;box-shadow:0 20px 50px #000}.app-menu a{display:flex;align-items:center;justify-content:space-between;padding:10px;border-radius:4px;text-decoration:none}.app-menu a:hover,.app-menu a.active{background:#122129}.app-menu b{font-size:9px}.app-menu small{color:var(--muted);font-size:6px}.app-menu a.disabled{opacity:.45}.project-select{display:flex;align-items:center;gap:8px}.project-select>span{color:var(--muted);font-size:7px;text-transform:uppercase}.project-select select{height:36px;max-width:190px;border:1px solid var(--line);border-radius:4px;background:#0d171c;color:var(--text);font-size:8px}.global-search{display:flex;align-items:center;gap:8px;width:min(330px,30vw);height:36px;margin-left:auto;padding:0 11px;border:1px solid var(--line);border-radius:4px;background:#0a1216}.global-search span{color:var(--cyan)}.global-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:8px}.top-actions{display:flex;align-items:center;gap:6px}.top-actions>button{position:relative;height:34px;min-width:34px;border:1px solid var(--line);border-radius:4px;background:#0d171c;font-size:10px}.top-actions button>b{position:absolute;top:-4px;right:-3px;display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:var(--red);font-size:6px}.ai-button{display:flex;align-items:center;gap:5px!important;padding:0 9px!important;border-color:#5646a2!important;background:linear-gradient(90deg,rgba(77,54,148,.25),rgba(29,96,116,.2))!important;color:#d9cfff!important}.ai-button small{font-size:5px;color:#9d8bd8}.avatar{border-radius:50%!important;background:linear-gradient(135deg,#2c6c7c,#6342a5)!important}.mode-banner{display:flex;align-items:center;gap:15px;min-height:34px;padding:0 16px;border-bottom:1px solid rgba(239,164,94,.22);background:rgba(77,50,26,.2);font-size:7px}.mode-banner span{color:#ffc183;font-weight:800}.mode-banner span i{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--orange)}.mode-banner p{color:#a38f7c}.mode-banner button{margin-left:auto;border:0;background:transparent;color:#d6ac82;font-size:7px;text-decoration:underline}.workspace-head{display:flex;align-items:end;justify-content:space-between;padding:13px 17px}.workspace-head p{margin:0 0 4px;color:#55717d;font-size:6px;letter-spacing:.12em}.workspace-head h1{margin:0;font-size:20px}.workspace-actions{display:flex;gap:6px}.workspace-actions button{height:31px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:#0c151a;color:#a6b7bd;font-size:7px}.workspace-actions button:hover{border-color:#3c7888;color:white}.workspace{display:grid;grid-template-columns:1fr 0;min-height:0;height:calc(100vh - var(--topbar) - var(--status) - 34px - 69px);transition:.25s}.workspace:has(.context-panel.is-open){grid-template-columns:minmax(0,1fr) var(--context)}.workspace-canvas{min-width:0;overflow:auto;padding:0 16px 16px}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}.kpi-row article{position:relative;display:grid;grid-template-columns:1fr auto;gap:3px;padding:12px;border:1px solid var(--line);border-radius:5px;background:linear-gradient(145deg,#0e181d,#091115)}.kpi-row article:before{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--cyan);content:""}.kpi-row article.violet:before{background:var(--violet)}.kpi-row article.orange:before{background:var(--orange)}.kpi-row article.green:before{background:var(--green)}.kpi-row span{color:#6d858f;font-size:6px;font-weight:700}.kpi-row b{grid-row:1/3;grid-column:2;font-size:19px}.kpi-row small{color:#83969d;font-size:6px}.panel-grid{display:grid;grid-template-columns:1.4fr .8fr;grid-template-rows:minmax(275px,1.2fr) minmax(220px,1fr);gap:8px}.xent-panel{position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:5px;background:#091116}.xent-panel>header{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 12px;border-bottom:1px solid var(--line)}.xent-panel>header span{color:#567581;font-size:6px;letter-spacing:.12em}.xent-panel>header h2{margin:3px 0 0;font-size:10px}.xent-panel>header button{height:25px;padding:0 8px;border:1px solid var(--line);border-radius:3px;background:#0e191e;color:#8da1a9;font-size:7px}.demo-map{position:relative;height:calc(100% - 48px);min-height:225px;overflow:hidden;background:radial-gradient(circle at 30% 40%,rgba(36,91,76,.45),transparent 24%),linear-gradient(135deg,#102326,#101a1f 45%,#0c161a)}.map-grid{position:absolute;inset:0;opacity:.24;background-image:linear-gradient(rgba(104,172,183,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(104,172,183,.2) 1px,transparent 1px);background-size:26px 26px;transform:perspective(500px) rotateX(15deg) scale(1.1)}.map-road{position:absolute;height:5px;background:#314147;box-shadow:0 0 0 1px #53666c;transform-origin:left}.road-a{top:27%;left:-10%;width:125%;transform:rotate(18deg)}.road-b{top:72%;left:2%;width:105%;transform:rotate(-16deg)}.demo-map>small{position:absolute;right:9px;bottom:7px;color:#51666f;font-size:5px}.map-asset{position:absolute;top:var(--y);left:var(--x);z-index:4;border:0;background:transparent;transform:translate(-50%,-50%)}.map-asset i{display:block;width:12px;height:12px;border:2px solid #dffaff;border-radius:50%;background:var(--green);box-shadow:0 0 0 6px rgba(86,213,154,.13),0 0 12px var(--green)}.map-asset.warning i{background:var(--orange);box-shadow:0 0 0 6px rgba(240,164,94,.13),0 0 12px var(--orange)}.map-asset span{position:absolute;top:17px;left:50%;width:max-content;padding:3px 5px;border:1px solid #2f4b55;border-radius:2px;background:rgba(5,12,15,.9);font-size:6px;transform:translateX(-50%)}.map-asset.search-hidden{opacity:.12}.map-legend{position:absolute;top:9px;left:9px;z-index:5;display:flex;gap:9px;padding:6px;background:rgba(5,11,14,.82);font-size:5px}.map-legend i{display:inline-block;width:5px;height:5px;margin-right:3px;border-radius:50%;background:var(--red)}.map-legend i.ok{background:var(--green)}.map-legend i.warn{background:var(--orange)}.source-list{display:grid;max-height:calc(100% - 77px);overflow:auto}.source-list button{display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;padding:11px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#c8d4d8;text-align:left}.source-list button:hover{background:#0d191e}.source-list button>i{width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 6px var(--green)}.source-list button>span{display:flex;min-width:0;flex-direction:column}.source-list button b{overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.source-list button small{margin-top:4px;color:#657a83;font-size:6px}.source-list button em{padding:3px;border:1px solid #285643;border-radius:2px;color:#76c99c;font-size:5px;font-style:normal}.source-list button strong{grid-column:3;color:#8ba0a8;font-size:7px}.source-panel>footer{position:absolute;right:0;bottom:0;left:0;padding:7px 10px;background:#091116}.source-panel>footer button{border:0;background:transparent;color:#65cbe3;font-size:6px}.events-panel>div{display:grid}.events-panel>div button{display:grid;grid-template-columns:42px 1fr auto;gap:8px;align-items:center;padding:11px;border:0;border-bottom:1px solid var(--line);background:transparent;color:#c8d4d8;text-align:left}.events-panel>div button:hover{background:#0d191e}.events-panel button>span:nth-child(2){display:flex;flex-direction:column}.events-panel button b{font-size:8px}.events-panel button small{margin-top:4px;color:#657a83;font-size:6px}.events-panel button em{color:#667b84;font-size:6px}.priority{padding:4px;border-radius:2px;text-align:center;font-size:5px}.priority--alta{background:rgba(241,103,103,.14);color:#ff8d8d}.priority--media{background:rgba(240,164,94,.14);color:#ffc081}.priority--baja{background:rgba(86,213,154,.12);color:#7edca8}.bim-demo{position:relative;height:calc(100% - 48px);overflow:hidden;background:radial-gradient(circle at 49% 41%,rgba(71,138,160,.25),transparent 30%),linear-gradient(145deg,#0d1d24,#071014)}.bim-demo:before{position:absolute;inset:0;opacity:.22;background-image:linear-gradient(rgba(118,189,210,.24) 1px,transparent 1px),linear-gradient(90deg,rgba(118,189,210,.24) 1px,transparent 1px);background-size:20px 20px;content:""}.bim-building{position:absolute;top:20%;right:24%;bottom:19%;left:22%;border:1px solid #6c9aaa;background:repeating-linear-gradient(0deg,rgba(133,195,215,.18) 0 2px,transparent 2px 24px),repeating-linear-gradient(90deg,transparent 0 29px,rgba(133,195,215,.2) 30px 32px);box-shadow:18px 14px 0 -1px #0c171c,18px 14px 0 #4a6771;transform:skewY(-5deg)}.bim-building i{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--orange);box-shadow:0 0 8px var(--orange)}.bim-building i:nth-child(1){top:20%;left:12%}.bim-building i:nth-child(2){top:48%;right:15%}.bim-building i:nth-child(3){bottom:15%;left:42%}.bim-building i:nth-child(4){top:9%;right:30%;background:var(--cyan)}.bim-toolbar{position:absolute;top:9px;left:9px;z-index:2;display:flex;gap:4px}.bim-toolbar button{padding:5px;border:1px solid var(--line);border-radius:2px;background:rgba(7,14,18,.9);color:#8ca2ab;font-size:5px}.bim-demo>small{position:absolute;right:8px;bottom:7px;color:#526871;font-size:5px}.context-panel{min-width:0;overflow:hidden;border-left:1px solid var(--line);background:#081015;opacity:0;transition:.22s}.context-panel.is-open{opacity:1}.context-panel>header{display:flex;align-items:center;justify-content:space-between;height:43px;padding:0 12px;border-bottom:1px solid var(--line)}.context-panel>header span{color:#66818c;font-size:6px;letter-spacing:.12em}.context-panel>header button{border:0;background:transparent;color:#81969e;font-size:16px}.context-panel>div{padding:16px}.context-panel h2{margin:5px 0 10px;font-size:17px}.context-panel p{color:#82969e;font-size:8px;line-height:1.6}.empty-icon{font-size:35px!important;color:#3a5965!important}.context-eyebrow{color:var(--cyan)!important;font-size:6px!important;letter-spacing:.13em}.property-list{display:grid;margin:16px 0}.property-list div{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid var(--line)}.property-list dt{color:#667b84;font-size:7px}.property-list dd{margin:0;color:#c1cfd4;font-size:7px;text-align:right}.property-list dd i{display:inline-block;width:5px;height:5px;margin-right:4px;border-radius:50%;background:var(--green)}.property-list dd i.warn{background:var(--orange)}.context-relations h3{color:#58717b;font-size:6px;letter-spacing:.1em}.context-relations span{display:block;margin:6px 0;padding:8px;border:1px solid var(--line);border-radius:3px;color:#9eb0b7;font-size:7px}.context-actions{display:grid;gap:6px;margin-top:16px}.context-actions button{padding:9px;border:1px solid #315865;border-radius:3px;background:#102129;color:#b7dce5;font-size:7px}.audit-list{display:grid}.audit-list span{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--line)}.audit-list b{font-size:8px}.audit-list small{margin-top:4px;color:#71858d;font-size:6px}.module-summary{display:flex;align-items:end;gap:6px;padding:18px 0}.module-summary b{font-size:28px}.module-summary span{padding-bottom:5px;color:#748991;font-size:7px}.state-card{padding:14px;border:1px solid #5e492e;border-radius:4px;background:rgba(94,73,46,.15)}.state-card b{color:#efb979;font-size:7px}.system-bar{grid-column:1/-1;display:flex;align-items:center;gap:22px;height:var(--status);padding:0 12px;border-top:1px solid var(--line);background:#060b0e;color:#647983;font-size:6px}.system-bar span:last-child{margin-left:auto}.system-bar b{color:#a4b7be}.system-bar i{display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%}.system-bar i.online{background:var(--green);box-shadow:0 0 6px var(--green)}.sidebar-collapsed{--sidebar:60px}.sidebar-collapsed .xent-sidebar header div,.sidebar-collapsed .xent-sidebar span,.sidebar-collapsed .xent-sidebar small,.sidebar-collapsed .xent-sidebar nav em,.sidebar-collapsed .side-recent,.sidebar-collapsed .xent-sidebar footer>a,.sidebar-collapsed .xent-sidebar footer>button{display:none}.sidebar-collapsed .xent-sidebar header{justify-content:center;flex-wrap:wrap;height:72px;padding:7px}.sidebar-collapsed .primary-action{margin:10px;padding:0}.sidebar-collapsed .xent-sidebar nav button{grid-template-columns:1fr;padding:0;text-align:center}.sidebar-collapsed .side-user{justify-content:center;padding:6px}.analysis-layout .panel-grid{grid-template-columns:1fr 1fr}.analysis-layout .map-panel{grid-column:1/-1}.analysis-layout .source-panel{grid-row:2}.panel-fullscreen{position:fixed!important;inset:20px!important;z-index:80;background:#091116!important}.spinning{animation:spin .5s linear}.xent-dialog{width:min(560px,calc(100% - 30px));padding:0;border:1px solid var(--line-bright);border-radius:7px;background:#0a1318;color:var(--text);box-shadow:0 30px 100px #000}.xent-dialog::backdrop{background:rgba(0,0,0,.74);backdrop-filter:blur(5px)}.xent-dialog form{display:grid;gap:13px;padding:22px}.xent-dialog header{display:flex;justify-content:space-between;margin-bottom:6px}.xent-dialog header p{margin:0;color:var(--cyan);font-size:6px;letter-spacing:.12em}.xent-dialog header h2{margin:5px 0;font-size:20px}.xent-dialog header span{color:var(--muted);font-size:7px}.xent-dialog header button{border:0;background:transparent;color:#8ca0a8;font-size:20px}.xent-dialog label{display:grid;gap:6px;color:#8ca0a8;font-size:7px}.xent-dialog input,.xent-dialog select{height:39px;padding:0 10px;border:1px solid var(--line);border-radius:3px;outline:0;background:#0d191e;color:var(--text);font-size:8px}.xent-dialog input:focus,.xent-dialog select:focus{border-color:#4eaac0}.xent-dialog footer{display:flex;justify-content:flex-end;gap:7px;margin-top:5px}.xent-dialog footer button{min-height:37px;padding:0 13px;border-radius:3px;font-size:7px}.xent-dialog .secondary{border:1px solid var(--line);background:#101b20;color:#a8b9bf}.xent-dialog .primary{border:1px solid #3998b0;background:#166c82;color:#fff}.form-status{padding:9px;border:1px solid;border-radius:3px;font-size:7px}.form-status.success{border-color:#2d654c;background:rgba(45,101,76,.16);color:#7dd9aa}.form-status.error{border-color:#7b3f3f;background:rgba(123,63,63,.16);color:#ef9494}.ai-drawer{position:fixed;top:0;right:0;bottom:var(--status);z-index:90;display:flex;width:min(390px,100%);flex-direction:column;border-left:1px solid #4a3d82;background:#090d15;box-shadow:-25px 0 70px #000;transform:translateX(100%);transition:.22s}.ai-drawer.is-open{transform:none}.ai-drawer>header{display:flex;align-items:center;justify-content:space-between;padding:17px;border-bottom:1px solid #2d2845}.ai-drawer header p{margin:0;color:#a58cf4;font-size:6px;letter-spacing:.1em}.ai-drawer h2{margin:5px 0 0;font-size:16px}.ai-drawer header button{border:0;background:transparent;color:#8a829f;font-size:20px}.ai-disclaimer{margin:12px;padding:10px;border:1px solid #574986;border-radius:4px;background:rgba(87,73,134,.12)}.ai-disclaimer b{color:#ba9fff;font-size:6px}.ai-disclaimer p{margin:5px 0 0;color:#8c84a0;font-size:7px}.ai-history{display:flex;overflow:auto;flex:1;flex-direction:column;gap:9px;padding:12px}.ai-welcome{margin:auto;text-align:center}.ai-welcome span{font-size:28px;color:#a785ff}.ai-welcome h3{font-size:14px}.ai-welcome p{color:#776f8d;font-size:8px}.ai-message{max-width:90%;padding:10px;border-radius:6px;font-size:8px;line-height:1.55}.ai-message.user{align-self:flex-end;background:#26365c}.ai-message.system{align-self:flex-start;border:1px solid #352e54;background:#141323;color:#c7c0da}.ai-message.system b{color:#aa92ed;font-size:6px}.ai-message.system p{margin:6px 0}.ai-message.system small{color:#736b88;font-size:6px}.ai-message.loading{animation:pulse 1s infinite}.ai-drawer form{display:flex;gap:7px;padding:12px;border-top:1px solid #2d2845}.ai-drawer textarea{min-height:63px;flex:1;resize:none;border:1px solid #352e54;border-radius:4px;outline:0;background:#11101d;color:#ddd7ed;font-size:8px;padding:9px}.ai-drawer form button{align-self:end;height:34px;border:1px solid #6e55be;border-radius:4px;background:#4d3695;color:#fff;font-size:7px}.toast-region{position:fixed;right:16px;bottom:44px;z-index:120;display:grid;gap:7px}.toast{display:flex;align-items:center;gap:9px;min-width:250px;padding:11px;border:1px solid #315b4a;border-radius:4px;background:#0e1d18;box-shadow:0 12px 30px #000;color:#bfe6d3;font-size:8px}.toast>b{color:var(--green)}.toast--info{border-color:#31576a;background:#0e1a21;color:#bad8e4}.toast--info>b{color:var(--cyan)}.empty-state{padding:20px;text-align:center}.empty-state b{font-size:9px}.empty-state p{color:var(--muted);font-size:7px}.light-theme{--bg:#edf3f5;--surface:#fff;--surface-2:#f4f7f8;--line:#cdd9dd;--line-bright:#a9bec6;--text:#17262c;--muted:#627982}.light-theme .xent-sidebar,.light-theme .xent-topbar,.light-theme .xent-panel,.light-theme .source-panel>footer,.light-theme .context-panel,.light-theme .system-bar{background:#f8fbfc}.light-theme .xent-app{background:#edf3f5}.light-theme .mode-banner{background:#fff8ee}.light-theme .kpi-row article,.light-theme .workspace-actions button,.light-theme .top-actions>button,.light-theme .app-switcher>button,.light-theme .global-search,.light-theme .project-select select{background:#fff}.light-theme .source-list button,.light-theme .events-panel>div button{color:#30434a}.light-theme .xent-dialog{background:#fff;color:#17262c}.light-theme .xent-dialog input,.light-theme .xent-dialog select{background:#f3f7f8;color:#17262c}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}
@media(max-width:1050px){:root{--context:270px}.project-select>span{display:none}.global-search{width:220px}.panel-grid{grid-template-columns:1fr}.source-panel{min-height:250px}.workspace{height:calc(100vh - var(--topbar) - var(--status) - 34px - 69px)}}
@media(max-width:760px){body{overflow:auto}.xent-app{grid-template-columns:1fr;height:auto;min-height:100vh}.xent-sidebar{position:fixed;top:0;bottom:0;left:0;z-index:100;width:230px;transform:translateX(-100%)}.sidebar-collapsed .xent-sidebar{transform:none}.sidebar-collapsed{--sidebar:0}.xent-topbar{position:sticky;top:0;z-index:50;flex-wrap:wrap;height:auto;min-height:64px;padding:8px}.app-switcher{margin-left:38px}.project-select{display:none}.global-search{order:3;width:100%;margin:0}.ai-button small,.top-actions>button:not(.ai-button):not([data-theme]){display:none}.mode-banner p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.workspace-head{align-items:start;flex-direction:column;gap:9px}.workspace-actions{overflow:auto;width:100%}.workspace{display:block;height:auto}.workspace-canvas{overflow:visible}.kpi-row{grid-template-columns:1fr 1fr}.panel-grid{grid-template-columns:1fr;grid-template-rows:auto}.xent-panel{min-height:290px}.context-panel{position:fixed;top:0;right:0;bottom:0;z-index:95;width:min(300px,90%);transform:translateX(100%)}.context-panel.is-open{transform:none}.system-bar{position:fixed;right:0;bottom:0;left:0;z-index:110;overflow:auto;white-space:nowrap}.system-bar span:last-child{margin:0}.workspace:has(.context-panel.is-open){display:block}.xent-topbar:before{position:absolute;top:18px;left:14px;color:var(--cyan);font-size:20px;content:"☰";cursor:pointer}.analysis-layout .panel-grid{grid-template-columns:1fr}.analysis-layout .map-panel{grid-column:auto}}
.mobile-menu{display:none;width:34px;height:34px;border:1px solid var(--line);border-radius:4px;background:#0d171c;color:var(--text)}
@media(max-width:760px){.mobile-menu{display:block}.app-switcher{margin-left:0}.xent-topbar:before{display:none}}

/* NEXUS Centro Operativo — vista global inspirada en un centro de mando. */
.workspace-head>div:first-child>span{display:block;margin-top:4px;color:var(--muted);font-size:7px}.period-select select{height:31px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:#0c151a;color:#a6b7bd;font-size:7px}.nexus-dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 290px;grid-template-rows:190px minmax(210px,1fr) 245px;gap:9px}.nexus-dashboard .map-panel{grid-column:1/3;grid-row:1/3}.nexus-dashboard .summary-panel{grid-column:3;grid-row:1}.nexus-dashboard .source-panel{grid-column:3;grid-row:2}.nexus-dashboard .events-panel{grid-column:1;grid-row:3}.nexus-dashboard .indicators-panel{grid-column:2;grid-row:3}.nexus-dashboard .bim-panel{grid-column:3;grid-row:3}.nexus-dashboard .xent-panel>header{height:42px}.nexus-dashboard .xent-panel>header span{color:#6ca7bb;font-weight:700}.nexus-dashboard .xent-panel>header button{border:0;background:transparent;color:#70a7bb}.nexus-dashboard .demo-map{height:calc(100% - 42px);min-height:380px;background-image:linear-gradient(rgba(3,11,16,.42),rgba(3,11,16,.62)),url('../../assets/images/urban-vision-map-satellite.webp');background-position:center;background-size:cover;transition:background-size .25s}.nexus-dashboard .demo-map.zoomed{background-size:125% auto}.nexus-dashboard .map-grid{opacity:.14}.map-layer-menu{position:absolute;top:10px;left:10px;z-index:8;display:grid;width:140px;padding:7px;border:1px solid #263a43;border-radius:5px;background:rgba(4,11,15,.92);box-shadow:0 12px 28px rgba(0,0,0,.35)}.map-layer-menu.is-hidden{display:none}.map-layer-menu button{display:grid;grid-template-columns:20px 1fr auto;align-items:center;min-height:27px;border:0;background:transparent;color:#c3d1d6;text-align:left;font-size:7px}.map-layer-menu button b{color:#75bdcf}.map-layer-menu button span{color:#4bd490}.map-layer-menu button:not(.is-active){opacity:.42}.map-layer-menu button:not(.is-active) span{color:#63757c}.map-symbols i{position:absolute;z-index:5;display:grid;place-items:center;width:23px;height:23px;border:1px solid currentColor;border-radius:50%;background:rgba(8,17,22,.88);font-size:9px;font-style:normal;box-shadow:0 0 15px currentColor}.map-symbols .camera{color:#b48cff}.map-symbols .sensor{color:#55d99a}.map-symbols .drone{color:#65b4ff}.map-symbols .water{color:#42a9ff}.map-symbols .c1{top:17%;left:42%}.map-symbols .c2{top:61%;left:69%}.map-symbols .s1{top:24%;left:69%}.map-symbols .s2{top:74%;left:34%}.map-symbols .d1{top:46%;left:61%}.map-symbols .w1{top:68%;left:18%}.map-zoom{position:absolute;right:10px;bottom:46px;z-index:8;display:grid;gap:3px}.map-zoom button{display:grid;place-items:center;width:29px;height:29px;border:1px solid #263a43;border-radius:3px;background:rgba(4,11,15,.9);color:#d1dde1;font-size:8px}.map-scale{position:absolute;bottom:11px;left:12px;z-index:5;padding:3px 12px;border-bottom:2px solid #dbe7ea;color:#dbe7ea;font-size:6px}.summary-panel .kpi-row{grid-template-columns:1fr 1fr;gap:7px;margin:0;padding:10px}.summary-panel .kpi-row article{display:flex;min-height:57px;flex-direction:column;padding:9px}.summary-panel .kpi-row article:before{display:none}.summary-panel .kpi-row span{font-size:6px}.summary-panel .kpi-row b{order:2;margin-top:8px;font-size:16px}.summary-panel .kpi-row small{display:none}.nexus-dashboard .source-list{max-height:calc(100% - 69px)}.nexus-dashboard .source-list button{padding:8px 10px}.nexus-dashboard .source-list button strong{display:none}.nexus-dashboard .source-panel>footer{padding:5px 10px}.nexus-dashboard .events-panel>div{max-height:calc(100% - 42px);overflow:auto}.nexus-dashboard .events-panel>div button{padding:9px 10px}.indicators-panel{padding-bottom:8px}.chart-legend{display:flex;gap:14px;padding:10px 15px 0;color:#8ea0a7;font-size:6px}.chart-legend span:before{display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:currentColor;content:""}.chart-legend .violet{color:#a37cf5}.chart-legend .orange{color:#f39c52}.chart-legend .blue{color:#4ca1ff}.line-chart{position:relative;height:165px;margin:0 13px 8px;padding:17px 8px 18px 26px}.line-chart:before{position:absolute;top:17px;right:8px;bottom:18px;left:26px;border-bottom:1px solid #52636a;border-left:1px solid #52636a;background:repeating-linear-gradient(0deg,rgba(255,255,255,.05) 0 1px,transparent 1px 32px);content:""}.line-chart svg{position:relative;z-index:2;width:100%;height:100%;overflow:visible}.line-chart polyline{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.chart-violet{stroke:#a37cf5}.chart-orange{stroke:#f07155}.chart-blue{stroke:#4ca1ff}.axis-y{position:absolute;top:16px;bottom:17px;left:0;color:#667b84;font-size:5px;line-height:29px}.axis-x{position:absolute;right:5px;bottom:3px;left:24px;color:#667b84;font-size:5px;white-space:nowrap}.nexus-dashboard .bim-demo{height:calc(100% - 42px)}.nexus-dashboard .bim-building{top:28%;right:15%;bottom:19%;left:18%;background:repeating-linear-gradient(0deg,rgba(170,197,212,.3) 0 3px,transparent 3px 17px),repeating-linear-gradient(90deg,transparent 0 25px,rgba(150,193,211,.24) 26px 28px);transform:perspective(300px) rotateX(18deg) rotateZ(-8deg)}.open-bim{position:absolute;bottom:10px;left:10px;z-index:3;padding:7px 10px;border:1px solid #35515c;border-radius:3px;background:rgba(7,14,18,.85);color:#b8cbd2;font-size:6px}.analysis-layout .nexus-dashboard{grid-template-columns:1fr 1fr 290px}.analysis-layout .nexus-dashboard .map-panel{grid-column:1/3}.light-theme .period-select select{background:#fff;color:#40545c}.light-theme .map-layer-menu{background:rgba(247,251,252,.94);color:#21343b}.light-theme .map-layer-menu button{color:#2b3f46}
@media(max-width:1200px){.nexus-dashboard{grid-template-columns:1fr 1fr;grid-template-rows:410px 180px 240px 240px}.nexus-dashboard .map-panel{grid-column:1/3;grid-row:1}.nexus-dashboard .summary-panel{grid-column:1;grid-row:2}.nexus-dashboard .source-panel{grid-column:2;grid-row:2}.nexus-dashboard .events-panel{grid-column:1;grid-row:3}.nexus-dashboard .indicators-panel{grid-column:2;grid-row:3}.nexus-dashboard .bim-panel{grid-column:1/3;grid-row:4}.nexus-dashboard .demo-map{min-height:360px}}
@media(max-width:760px){.workspace-head>div:first-child>span{font-size:8px;line-height:1.5}.period-select{flex:0 0 auto}.nexus-dashboard{display:grid;grid-template-columns:1fr;grid-template-rows:400px auto 260px 260px 260px 270px}.nexus-dashboard .map-panel,.nexus-dashboard .summary-panel,.nexus-dashboard .source-panel,.nexus-dashboard .events-panel,.nexus-dashboard .indicators-panel,.nexus-dashboard .bim-panel{grid-column:1;grid-row:auto}.nexus-dashboard .demo-map{min-height:358px}.map-layer-menu{width:125px}.map-symbols i{width:20px;height:20px}.analysis-layout .nexus-dashboard{grid-template-columns:1fr}.analysis-layout .nexus-dashboard .map-panel{grid-column:1}}
.xent-sidebar nav>p{margin:11px 9px 4px;color:#496872;font-size:6px;font-weight:800;letter-spacing:.12em}.nexus-dashboard .demo-map.hide-gis{background-image:linear-gradient(rgba(3,11,16,.88),rgba(3,11,16,.92)),url('../../assets/images/urban-vision-map-satellite.webp')}
.nexus-dashboard .demo-map{position:relative}

/* NEXUS desktop command center — proportions aligned to the approved reference. */
@media(min-width:1201px){
  .nexus-page{--sidebar:302px;--topbar:78px;--status:28px}
  .nexus-page .xent-sidebar>header{height:78px;padding:0 19px;gap:14px}
  .nexus-page .xent-symbol{width:42px;height:42px;border-radius:7px;font-size:18px}
  .nexus-page .xent-sidebar>header strong{font-size:21px}
  .nexus-page .xent-sidebar>header small{font-size:8px}
  .nexus-page .primary-action{min-height:47px;margin:12px 19px 11px;font-size:10px}
  .nexus-page .xent-sidebar nav{gap:0;padding:0 18px}
  .nexus-page .xent-sidebar nav button{min-height:29px;padding:0 7px;font-size:10px}
  .nexus-page .xent-sidebar nav button b{font-size:13px}
  .nexus-page .xent-sidebar nav>p{margin:11px 0 4px;font-size:7px}
  .nexus-page .side-recent{margin:12px 19px;padding-top:10px}
  .nexus-page .xent-sidebar>footer{padding:9px 19px}
  .nexus-page .xent-topbar{height:78px;padding:0 20px;gap:14px}
  .nexus-page .app-switcher>button,.nexus-page .project-select select{height:44px}
  .nexus-page .global-search{width:min(392px,31vw);height:44px}
  .nexus-page .top-actions>button{height:44px;min-width:44px}
  .nexus-page .mode-banner{min-height:41px;padding:0 24px;font-size:8px}
  .nexus-page .workspace-head{min-height:96px;padding:14px 24px 12px}
  .nexus-page .workspace-head h1{font-size:26px}
  .nexus-page .workspace-head>div:first-child>span{font-size:9px}
  .nexus-page .workspace-head p{font-size:7px}
  .nexus-page .workspace-actions button,.nexus-page .period-select select{height:35px;font-size:8px}
  .nexus-page .workspace{height:calc(100vh - var(--topbar) - var(--status) - 41px - 96px)}
  .nexus-page .workspace-canvas{padding:0 24px 24px}
  .nexus-page .nexus-dashboard{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 330px;grid-template-rows:190px 210px 270px;gap:10px}
  .nexus-page .nexus-dashboard .xent-panel>header{height:48px}
  .nexus-page .nexus-dashboard .xent-panel>header span{font-size:8px}
  .nexus-page .nexus-dashboard .xent-panel>header button{font-size:8px}
  .nexus-page .nexus-dashboard .demo-map{height:calc(100% - 48px);min-height:352px;background-image:linear-gradient(rgba(3,10,15,.18),rgba(3,10,15,.28)),url('../../assets/images/nexus-city-isometric-v2.webp');background-position:center;background-size:cover}
  .nexus-page .nexus-dashboard .demo-map.zoomed{background-size:125% auto}
  .nexus-page .map-road{display:none}
  .nexus-page .map-grid{opacity:.08}
  .nexus-page .map-layer-menu{top:10px;left:12px;width:145px}
  .nexus-page .map-layer-menu button{font-size:8px}
  .nexus-page .summary-panel .kpi-row span{font-size:7px}
  .nexus-page .summary-panel .kpi-row b{font-size:19px}
  .nexus-page .nexus-dashboard .source-list button b,.nexus-page .nexus-dashboard .events-panel button b{font-size:9px}
  .nexus-page .nexus-dashboard .source-list button small,.nexus-page .nexus-dashboard .events-panel button small{font-size:7px}
  .nexus-page .chart-legend{font-size:7px}
  .nexus-page .line-chart{height:190px}
}
