/* NODO 03 · Campus Vivo */
:root { --n3-ink:#182537; --n3-muted:#6c7685; --n3-paper:#fbfaf6; --n3-line:#d5d9dc; --n3-navy:#101d30; --n3-blue:#2767ad; --n3-green:#278b78; --n3-orange:#d08b34; }
.acceso-nodo03 { position:relative; isolation:isolate; grid-column:1/-1; display:grid; grid-template-columns:74px minmax(0,1fr) auto; align-items:center; gap:24px; margin-top:22px; padding:26px 28px; overflow:hidden; color:#fff; background:linear-gradient(110deg,#102d3b,#155269 54%,#253760); border:1px solid rgba(104,225,201,.52); border-radius:20px; box-shadow:0 18px 40px rgba(7,19,36,.22); }
.acceso-nodo03::after { content:"CAMPUS VIVO"; position:absolute; z-index:-1; right:-8px; bottom:-32px; color:rgba(255,255,255,.045); font-size:clamp(4rem,10vw,9rem); font-weight:950; letter-spacing:-.08em; }
.acceso-nodo03__icono { display:grid; place-items:center; width:72px; height:72px; color:#84f0dc; background:rgba(46,216,184,.1); border:1px solid rgba(107,236,218,.6); border-radius:50%; font-size:2.6rem; }
.acceso-nodo03 small { display:block; margin-bottom:5px; color:#83eedc; font-size:.72rem; font-weight:900; letter-spacing:.13em; }
.acceso-nodo03 h3 { margin:0 0 7px; color:#fff; font-size:clamp(1.35rem,2.3vw,1.85rem); line-height:1.1; }
.acceso-nodo03 p { max-width:760px; margin:0; color:#d4e4eb; line-height:1.5; }
#abrirNodo03IA { min-width:210px; min-height:58px; padding:14px 24px; color:#102c37; background:linear-gradient(105deg,#77e9d3,#d2fff2); border:0; border-radius:12px; box-shadow:0 12px 28px rgba(2,16,27,.3); font:900 .98rem inherit; cursor:pointer; transition:transform .18s ease,box-shadow .18s ease; }
#abrirNodo03IA:hover { transform:translateY(-3px); box-shadow:0 16px 34px rgba(2,16,27,.4); }
body.n3-sin-scroll { overflow:hidden!important; }
.n3-overlay { position:fixed; inset:0; z-index:100001; display:none; overflow:auto; color:var(--n3-ink); background:#e9eef0; font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
.n3-overlay.abierto { display:block; }
.n3-overlay * { box-sizing:border-box; }
.n3-app { min-height:100vh; background-image:linear-gradient(rgba(35,50,64,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(35,50,64,.04) 1px,transparent 1px); background-size:25px 25px; }
.n3-header { position:sticky; top:0; z-index:30; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:20px; min-height:78px; padding:13px max(24px,calc((100vw - 1460px)/2)); color:#fff; background:var(--n3-navy); border-bottom:4px solid #4ad6c1; box-shadow:0 8px 24px rgba(15,29,48,.2); }
.n3-header div:first-child { display:grid; }
.n3-header div:first-child span { color:#6ee7d4; font-size:.66rem; font-weight:950; letter-spacing:.16em; }
.n3-header div:first-child strong { font-family:Georgia,serif; font-size:1.3rem; }
.n3-header p { color:#c4d1dc; font-size:.8rem; font-weight:750; }
.n3-header-tools { justify-self:end; display:flex; align-items:center; gap:12px; }
.n3-header time { min-width:76px; padding:8px 10px; text-align:center; color:#8ee9d8; border:1px solid #42586c; border-radius:5px; font:850 .86rem ui-monospace,monospace; }
.n3-header button { width:42px; height:42px; color:#fff; background:transparent; border:1px solid #536678; border-radius:5px; font-size:1.6rem; cursor:pointer; }
.n3-progreso { position:sticky; top:78px; z-index:25; display:flex; justify-content:center; gap:3px; padding:8px 14px; background:rgba(251,250,246,.96); border-bottom:1px solid #ced5d8; backdrop-filter:blur(9px); }
.n3-progreso span { display:flex; align-items:center; gap:7px; min-width:105px; padding:6px 9px; color:#89939d; font-size:.7rem; font-weight:850; }
.n3-progreso b { display:grid; place-items:center; width:24px; height:24px; color:#77818a; background:#dde3e5; border-radius:50%; font-size:.65rem; }
.n3-progreso .actual { color:var(--n3-ink); }.n3-progreso .actual b { color:#fff; background:var(--n3-blue); }.n3-progreso .listo { color:#287764; }.n3-progreso .listo b { color:#fff; background:var(--n3-green); }
.n3-registro { width:min(1240px,calc(100% - 40px)); margin:44px auto; display:grid; grid-template-columns:1.05fr .95fr; overflow:hidden; background:var(--n3-paper); border:1px solid #cbd3d5; border-radius:12px; box-shadow:0 24px 70px rgba(19,39,50,.17); }
.n3-portada { position:relative; padding:clamp(38px,6vw,74px); color:#fff; background:linear-gradient(145deg,#0d2438,#123f58 58%,#1d6564); }
.n3-portada::after { content:"01 / 07"; position:absolute; right:28px; bottom:32px; color:rgba(207,255,246,.3); font:900 1rem ui-monospace,monospace; letter-spacing:.13em; }
.n3-portada>small { color:#79eed9; font-size:.68rem; font-weight:950; letter-spacing:.14em; }.n3-orbita { width:84px; height:84px; display:grid; place-items:center; margin:30px 0 18px; color:#a0f6e8; border:1px solid #70dbcc; border-radius:50%; font-size:3rem; box-shadow:0 0 0 13px rgba(89,222,200,.08),0 0 0 26px rgba(89,222,200,.04); }
.n3-portada h1 { max-width:620px; margin:0 0 19px; font-family:Georgia,serif; font-size:clamp(2.6rem,5vw,4.8rem); font-weight:600; line-height:.98; letter-spacing:-.04em; }.n3-portada h1 em { color:#91f1df; }.n3-portada>p { max-width:650px; margin:0; color:#cbe0e6; line-height:1.7; }.n3-tags { display:flex; flex-wrap:wrap; gap:8px; margin:35px 0; }.n3-tags span { padding:8px 10px; color:#dbf9f2; border:1px solid #4f8792; border-radius:20px; font:800 .7rem ui-monospace,monospace; }.n3-portada aside { max-width:600px; padding:15px 18px; color:#d9e9ed; background:rgba(255,255,255,.07); border-left:4px solid #9eeadc; line-height:1.5; }
.n3-form { align-self:center; padding:clamp(30px,5vw,60px); }.n3-kicker,.n3-cab span,.n3-mision>small { color:var(--n3-blue); font-size:.67rem; font-weight:950; letter-spacing:.14em; }.n3-form h2 { margin:8px 0 26px; font-family:Georgia,serif; font-size:2rem; }.n3-form label,.n3-campo { display:grid; gap:7px; margin-bottom:15px; }.n3-form label>span,.n3-campo>span { color:#404c5a; font-size:.78rem; font-weight:850; }.n3-form input,.n3-form select,.n3-campo select,.n3-campo textarea { width:100%; min-height:46px; padding:11px 13px; color:var(--n3-ink); background:#fff; border:1px solid #bdc7cb; border-radius:5px; outline:none; font:inherit; }.n3-form input:focus,.n3-form select:focus,.n3-campo select:focus,.n3-campo textarea:focus { border-color:var(--n3-blue); box-shadow:0 0 0 3px rgba(39,103,173,.12); }.n3-dos { display:grid; grid-template-columns:1fr 1fr; gap:13px; }.n3-error { min-height:1.25em; color:#a72d37; font-size:.82rem; font-weight:800; }.n3-boton { min-height:47px; padding:11px 19px; border-radius:5px; font:900 .88rem inherit; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }.n3-boton.principal { color:#fff; background:var(--n3-blue); border:1px solid var(--n3-blue); box-shadow:0 7px 16px rgba(39,103,173,.2); }.n3-boton.principal:hover { transform:translateY(-2px); box-shadow:0 10px 21px rgba(39,103,173,.3); }.n3-boton.secundario { color:#3a4958; background:#fff; border:1px solid #bbc5ca; }.n3-acciones { display:flex; justify-content:space-between; gap:12px; margin-top:24px; padding-top:20px; border-top:1px solid #d4dbdc; }
.n3-brief,.n3-area { width:min(1260px,calc(100% - 40px)); margin:30px auto 70px; }.n3-brief { display:grid; grid-template-columns:1.2fr .8fr; gap:20px; }.n3-caso,.n3-mision,.n3-hoja { background:var(--n3-paper); border:1px solid #c8d0d2; border-radius:9px; box-shadow:0 10px 30px rgba(25,43,53,.08); }.n3-caso { padding:clamp(28px,5vw,55px); }.n3-caso>span { color:var(--n3-green); font:900 .68rem ui-monospace,monospace; letter-spacing:.13em; }.n3-caso h1 { max-width:750px; margin:10px 0 16px; font-family:Georgia,serif; font-size:clamp(2.1rem,4vw,4rem); line-height:1; }.n3-caso>p { max-width:780px; color:#5c6874; line-height:1.65; }.n3-mapa { position:relative; min-height:225px; margin-top:35px; background:#eaf1f0; border:1px dashed #a8c7c1; border-radius:8px; }.n3-nodo { position:absolute; display:grid; place-items:center; min-width:90px; min-height:52px; color:#1b4650; background:#d8f4ed; border:1px solid #67bcae; border-radius:8px; font:900 .7rem ui-monospace,monospace; text-align:center; }.n3-nodo.central { top:76px; left:calc(50% - 45px); width:90px; min-width:90px; border-radius:50%; background:#1b5e6b; color:#fff; }.n3-nodo.central small { color:#a5e7dc; }.n3-nodo.n1 { top:25px; left:10%; }.n3-nodo.n2 { top:25px; right:10%; }.n3-nodo.n3 { bottom:22px; left:calc(50% - 48px); }.n3-mision { align-self:start; padding:30px; border-top:7px solid var(--n3-green); }.n3-mision h2 { margin:8px 0 15px; font-family:Georgia,serif; font-size:2.1rem; }.n3-mision p { color:#606b77; line-height:1.6; }.n3-mision .n3-boton { width:100%; }
.n3-hoja { padding:clamp(25px,4vw,48px); }.n3-cab { display:flex; align-items:start; justify-content:space-between; gap:24px; margin-bottom:25px; }.n3-cab h2 { margin:6px 0; font-family:Georgia,serif; font-size:clamp(1.9rem,3.5vw,3rem); }.n3-cab p { margin:0; color:var(--n3-muted); }.n3-score { min-width:82px; padding:9px; color:#707c86; background:#edf1f0; border:1px solid #d0d9d7; border-radius:6px; text-align:center; font:850 1rem ui-monospace,monospace; }.n3-score b { color:var(--n3-green); font-size:1.55rem; }.n3-paso-instruccion { padding:14px 16px; margin-bottom:16px; color:#435664; background:#edf6f4; border-left:4px solid var(--n3-green); font-weight:750; }.n3-ruta-grid,.n3-agentes,.n3-sensores { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.n3-ruta-grid button,.n3-agentes button,.n3-sensores button { display:grid; grid-template-columns:42px 1fr; align-items:center; gap:12px; min-height:92px; padding:14px; color:var(--n3-ink); text-align:left; background:#f5f7f5; border:1px solid #c7d1d1; border-radius:6px; cursor:pointer; }.n3-ruta-grid button>b,.n3-agentes button>b,.n3-sensores button>b { display:grid; place-items:center; width:38px; height:38px; color:#697984; background:#fff; border:1px solid #ccd4d4; border-radius:50%; font-size:1.25rem; }.n3-ruta-grid strong,.n3-ruta-grid small,.n3-agentes strong,.n3-agentes small,.n3-sensores strong,.n3-sensores small { display:block; }.n3-ruta-grid small,.n3-agentes small,.n3-sensores small { margin-top:4px; color:#717c86; line-height:1.35; }.n3-ruta-grid button.elegida,.n3-agentes button.elegido,.n3-sensores button.elegido { color:#fff; background:#29465a; border-color:#29465a; }.n3-ruta-grid button.elegida>b { color:#fff; background:var(--n3-green); border-color:var(--n3-green); }.n3-agentes button.elegido>b { color:#fff; background:var(--ag); border-color:var(--ag); }.n3-agentes button.elegido small,.n3-sensores button.elegido small { color:#d9e4e8; }.n3-sensores button.elegido>b { color:#fff; background:var(--n3-green); border-color:var(--n3-green); }.n3-ruta-actual { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-height:54px; margin:17px 0 23px; padding:12px 15px; color:#51646e; background:#e9f0ee; border:1px dashed #a8c4be; }.n3-ruta-actual span { display:inline-flex; align-items:center; gap:5px; color:#2d4e57; font-weight:850; }.n3-ruta-actual b { display:grid; place-items:center; width:24px; height:24px; color:#fff; background:var(--n3-green); border-radius:50%; font-size:.65rem; }.n3-campo textarea { min-height:120px; resize:vertical; line-height:1.5; }.n3-campo>small { justify-self:end; color:#7d8790; }.n3-nota { padding:14px; color:#6a6b50; background:#f5f3e7; border-left:4px solid var(--n3-orange); line-height:1.45; }
.n3-evento { margin:14px 0 9px; padding:18px; color:#fff; background:#1f354a; border-left:5px solid #67d9c5; border-radius:5px; }.n3-evento b { color:#8ae8d8; font-size:.64rem; letter-spacing:.12em; }.n3-evento h3 { margin:7px 0; font-family:Georgia,serif; font-size:1.35rem; }.n3-evento p { margin:0; color:#d1dae0; }.n3-evento--2 { border-left-color:#efbd59; background:#354456; }.n3-evento--2 b { color:#ffd886; }.n3-opciones { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin:0 0 18px; padding:0; border:0; }.n3-opciones label { cursor:pointer; }.n3-opciones input { position:absolute; opacity:0; }.n3-opciones label span { display:block; min-height:90px; padding:14px; color:#4c5965; background:#f2f5f3; border:2px solid transparent; border-radius:5px; font-size:.84rem; line-height:1.45; }.n3-opciones label span b { display:block; margin-bottom:5px; color:#29495a; }.n3-opciones input:checked+span { color:#fff; background:#29465a; border-color:#6fe1ce; }.n3-opciones input:checked+span b { color:#9af3e4; }
.n3-arquitecturas { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:22px; }.n3-arquitecturas label { cursor:pointer; }.n3-arquitecturas input { position:absolute; opacity:0; }.n3-arquitecturas label span { display:grid; gap:7px; min-height:108px; padding:18px; color:#40505d; background:#edf2f0; border:2px solid transparent; border-radius:6px; }.n3-arquitecturas small { color:#77828b; line-height:1.4; }.n3-arquitecturas input:checked+span { color:#fff; background:#29465a; border-color:#72decf; }.n3-arquitecturas input:checked+span small { color:#d9e7eb; }.n3-guardando { min-height:calc(100vh - 78px); display:grid; place-content:center; justify-items:center; text-align:center; }.n3-guardando>div { width:70px; height:70px; border:6px solid #cad6d5; border-top-color:var(--n3-blue); border-radius:50%; animation:n3giro .8s linear infinite; }@keyframes n3giro{to{transform:rotate(360deg)}}.n3-guardando h2 { margin:20px 0 4px; font-family:Georgia,serif; }.n3-guardando p { color:var(--n3-muted); }
.n3-resultado { width:min(1120px,calc(100% - 40px)); margin:30px auto 70px; overflow:hidden; background:var(--n3-paper); border:1px solid #c9d2d3; border-radius:9px; box-shadow:0 20px 60px rgba(20,41,52,.15); }.n3-resultado-cab { display:grid; grid-template-columns:1fr auto; align-items:center; gap:20px; padding:clamp(30px,5vw,55px); color:#fff; background:linear-gradient(120deg,#102439,#21626a); }.n3-resultado-cab span { color:#8ef0df; font-size:.67rem; font-weight:950; letter-spacing:.13em; }.n3-resultado-cab h1 { margin:7px 0; font-family:Georgia,serif; font-size:clamp(2.2rem,5vw,4rem); }.n3-resultado-cab p { margin:0; color:#d4e4e6; }.n3-cal { display:grid; grid-template-columns:auto auto; align-items:end; padding:15px 20px; border:1px solid rgba(255,255,255,.25); }.n3-cal b { font:700 4.7rem Georgia,serif; line-height:.8; }.n3-cal span { color:#c5d9db; }.n3-cal small { grid-column:1/-1; margin-top:8px; color:#95f0df; text-align:right; font-weight:900; }.n3-acta { padding:clamp(27px,5vw,52px); }.n3-folio { display:flex; align-items:center; flex-wrap:wrap; gap:12px; padding-bottom:22px; border-bottom:1px solid #d4dcdc; }.n3-folio span { color:#7a858c; font-size:.64rem; font-weight:900; letter-spacing:.1em; }.n3-folio strong { margin-right:auto; color:var(--n3-blue); font:950 1.25rem ui-monospace,monospace; }.n3-folio button { padding:6px 10px; color:#fff; background:#31566a; border:0; border-radius:4px; cursor:pointer; }.n3-resumen { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:22px 0; }.n3-resumen article { padding:18px; background:#edf2f0; border:1px solid #d6dedb; }.n3-resumen article.ancho { grid-column:1/-1; }.n3-resumen small { color:#28786d; font-size:.62rem; font-weight:950; letter-spacing:.1em; }.n3-resumen h3 { margin:7px 0; font-family:Georgia,serif; font-size:1.35rem; }.n3-resumen p { margin:0; color:#5c6871; line-height:1.5; }.n3-entrega { padding:18px; color:#fff; background:#24394b; line-height:1.5; }.n3-entrega b { color:#9bf0e1; }.n3-guardado { padding:12px; font-size:.8rem; }.n3-guardado.ok { color:#137661; background:#dff4ed; }.n3-guardado.local { color:#8b641f; background:#fff0cc; }
@media(max-width:1020px){.n3-ruta-grid,.n3-agentes,.n3-sensores{grid-template-columns:repeat(2,1fr)}}
@media(max-width:820px){.acceso-nodo03{grid-template-columns:62px 1fr}.acceso-nodo03__icono{width:60px;height:60px}.acceso-nodo03 button{grid-column:1/-1;width:100%}.n3-header{grid-template-columns:1fr auto}.n3-header p{display:none}.n3-registro,.n3-brief{grid-template-columns:1fr}.n3-opciones,.n3-arquitecturas{grid-template-columns:1fr}.n3-progreso{justify-content:start;overflow:auto}.n3-progreso span{min-width:auto}.n3-progreso span:not(.actual){font-size:0}}
@media(max-width:560px){.acceso-nodo03{grid-template-columns:1fr;padding:22px 18px}.n3-header{min-height:68px;padding:10px 12px}.n3-header div:first-child strong{font-size:1rem}.n3-header time{display:none}.n3-progreso{top:68px}.n3-registro,.n3-brief,.n3-area,.n3-resultado{width:calc(100% - 18px);margin-top:12px}.n3-portada,.n3-form,.n3-caso,.n3-hoja{padding:23px 18px}.n3-portada h1{font-size:2.5rem}.n3-dos,.n3-ruta-grid,.n3-agentes,.n3-sensores,.n3-resumen{grid-template-columns:1fr}.n3-cab,.n3-acciones{flex-direction:column}.n3-acciones button{width:100%}.n3-resumen article.ancho{grid-column:auto}}
@media print{body>*:not(#nodo03Overlay){display:none!important}.n3-overlay{position:static;display:block!important;background:#fff}.n3-header,.n3-acciones{display:none!important}.n3-resultado{width:100%;margin:0;box-shadow:none}}
