/* Zona Smart brand layer for the student portal. Loads after portal.css and portal-course.css: it maps their
   variables to the design system tokens and restyles the few pieces that used loose values.
   The portal always uses the dark theme, as a continuation of the course site. */
@font-face{font-family:Geist;src:url(/fonts/geist.woff2?v=19f9c92546) format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Funnel Display';src:url(/fonts/funnel-display.woff2?v=ddd29aac51) format('woff2');font-weight:700;font-display:swap}

:root{color-scheme:dark;--bg:#0a0a0a;--surface:#0b0f12;--surface-deep:#070a0d;--surface-raised:#16191b;--glass:rgba(11, 17, 20, 0.78);--text:#ffffff;--text-soft:rgba(255, 255, 255, 0.84);--text-muted:#a1a1aa;--brand:#26c6da;--brand-light:#a8e8f0;--brand-soft:rgba(38, 198, 218, 0.12);--on-brand:#001014;--border:rgba(255, 255, 255, 0.10);--border-strong:rgba(255, 255, 255, 0.25);--border-brand:rgba(38, 198, 218, 0.16);--border-brand-strong:rgba(38, 198, 218, 0.62);--danger:#ff6467;--success:#4ade80;--shadow-button:inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 1px 2px rgba(0, 0, 0, 0.2);--shadow-card:inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 16px 35px -16px rgba(0, 0, 0, 0.7);--shadow-ring:0 0 0 1px rgba(255, 255, 255, 0.06);--shadow-glow:0 0 22px -2px rgba(38, 198, 218, 0.2), 0 0 64px -6px rgba(38, 198, 218, 0.1), 0 40px 90px -46px rgba(38, 198, 218, 0.34);--radius-sm:10px;--radius-md:16px;--radius-lg:20px;--radius-xl:22px;--radius-pill:9999px;--border-hairline:1px;--border-focus:2px;--glass-blur:18px;--disabled:0.45;--duration-fast:150ms;--ease-out:cubic-bezier(0.2, 0.7, 0.2, 1);--font-sans:Geist, system-ui, -apple-system, 'Segoe UI', sans-serif;--font-display:'Funnel Display', Geist, system-ui, sans-serif;
 /* Portal names, mapped to the tokens */
 --card:var(--surface);--ink:var(--text);--muted:var(--text-muted);--line:var(--border);--accent:var(--brand);--accent-ink:var(--on-brand);--soft:var(--brand-soft);--ok:var(--success);--ok-soft:rgba(74, 222, 128, 0.12)}

body{font-family:var(--font-sans);background:radial-gradient(ellipse at 90% 0,var(--brand-soft),transparent 45%),var(--bg);color:var(--text)}
h1{font-weight:700;letter-spacing:-0.02em}
h2,h3{letter-spacing:-0.02em}
:is(.pt-btn,.pt-link,input,a,button):focus-visible{outline:var(--border-focus) solid var(--brand);outline-offset:2px}

.pt-top{background:var(--glass);backdrop-filter:blur(var(--glass-blur));border-color:var(--border)}
.pt-home span{color:var(--brand);border-color:var(--border)}
.pt-tag{color:var(--brand);font-size:12px;font-weight:600;letter-spacing:.18em}
.pt-error{color:var(--danger)}

.pt-card,.pt-guide{background:var(--surface);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}

.pt-btn{border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-weight:600;box-shadow:var(--shadow-button);transition:filter var(--duration-fast) var(--ease-out),transform var(--duration-fast) var(--ease-out)}
.pt-btn:hover{background:var(--brand);filter:brightness(1.08)}
.pt-btn.secondary{background:transparent;color:var(--text);border:var(--border-hairline) solid var(--border-strong);box-shadow:none}
.pt-btn.secondary:hover{background:var(--brand-soft);border-color:var(--border-brand-strong);filter:none}
.pt-btn[disabled]{opacity:var(--disabled)}
.pt-help{background:transparent;color:var(--text);border:var(--border-hairline) solid var(--border-strong);border-radius:var(--radius-pill)}
.pt-help:hover{color:var(--brand);border-color:var(--border-brand-strong)}
.pt-link{color:var(--brand)}

.pt-form input,.pt-form select,.pt-form textarea,.pt-quote input,.pt-quote select,.pt-quote textarea,.pt-net-inputs input{background:var(--surface-deep);color:var(--text);border:var(--border-hairline) solid var(--border-strong);border-radius:var(--radius-sm)}
.pt-form input:focus,.pt-form textarea:focus,.pt-net-inputs input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 var(--border-hairline) var(--brand)}

/* Welcome: the one gradient of the brand, on the highlighted word */
.pt-welcome h1 em{font-family:var(--font-display);background:linear-gradient(90deg,var(--brand),var(--brand-light));-webkit-background-clip:text;background-clip:text;color:transparent}
.pt-welcome-image{border-color:var(--border);border-radius:var(--radius-lg)}
.pt-welcome-image span{background:var(--glass);backdrop-filter:blur(var(--glass-blur));border:var(--border-hairline) solid var(--border-brand-strong);border-radius:var(--radius-pill);color:var(--text)}

/* "Continue where you left off": the one highlighted block of the home screen */
.pt-continue{background:var(--surface-deep);border:var(--border-hairline) solid var(--border-brand);border-radius:var(--radius-xl);box-shadow:var(--shadow-glow)}
.pt-continue:hover{border-color:var(--border-brand-strong)}
.pt-thumb{border-radius:var(--radius-md)}
.pt-thumb>span{background:var(--brand);color:var(--on-brand)}

.pt-bar{background:var(--border)}
.pt-bar>i{background:var(--brand)}

/* Course outline */
.pt-class{background:var(--surface);border-color:var(--border);border-radius:var(--radius-md);color:var(--text);text-decoration:none}
.pt-class:hover{border-color:var(--border-brand-strong)}
.pt-class.current{background:var(--brand-soft);border-color:var(--border-brand-strong)}
.pt-class .pt-check{border-color:var(--border-strong);color:var(--text-muted)}
.pt-class.done .pt-check{background:var(--success);border-color:var(--success);color:var(--bg)}
.pt-class.current .pt-check{border-color:var(--brand);color:var(--brand)}
.pt-outline details{background:var(--surface);border-color:var(--border);border-radius:var(--radius-lg)}
.pt-tabs{border-color:var(--border)}
.pt-tabs button[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand)}
.pt-video,.pt-novideo{border-radius:var(--radius-md)}
.pt-novideo{background:var(--surface-deep)}
.pt-tool{background:var(--surface-raised);border:var(--border-hairline) solid var(--border);border-radius:var(--radius-md)}
.pt-tool:hover{background:var(--surface-raised);border-color:var(--border-brand-strong)}
.pt-network{border-color:var(--border-brand-strong);border-radius:var(--radius-md)}
.pt-diagram figcaption{color:var(--brand)}

@media(max-width:700px){.pt-card,.pt-login-layout>.pt-card{border-radius:var(--radius-lg)}.pt-continue{border-radius:var(--radius-lg)}}
@media(prefers-reduced-motion:reduce){.pt-btn{transition:none}}
/* Class questions: each question is a thread; the teacher's answer is marked with the brand color. */
.pt-qs{display:grid;gap:12px;margin-top:20px}
.pt-q{display:grid;gap:8px;padding:16px;border:var(--border-hairline) solid var(--border-strong);border-radius:var(--radius-md,14px);background:var(--surface-deep)}
.pt-q header{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}
.pt-q p{margin:0;white-space:pre-line;overflow-wrap:anywhere}
.pt-q.answered{border-color:var(--brand)}
.pt-q-photo{display:block;max-width:100%;max-height:320px;border-radius:var(--radius-sm);object-fit:cover}
.pt-reply{display:grid;gap:2px;padding:10px 12px;border-left:3px solid var(--border-strong);margin-left:4px}
.pt-reply.teacher{border-left-color:var(--brand)}
.pt-reply.teacher>b{color:var(--brand)}
.pt-q-reply summary{cursor:pointer;color:var(--brand);font-weight:600;min-height:44px;display:flex;align-items:center}
.pt-q-reply .pt-form{margin-top:8px}
.pt-form input[type=file]{min-height:auto;padding:10px}
.pt-live.cancelled{opacity:.75}.pt-live.cancelled h2{text-decoration:line-through}
.pt-badges{display:grid;gap:10px;margin-top:12px}.pt-badges p{margin:0}.pt-badges ul{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.pt-badges li{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:var(--border-hairline) solid var(--border-strong);color:var(--text-muted,inherit);font-size:.9rem;opacity:.7}.pt-badges li.earned{border-color:var(--brand);color:inherit;opacity:1;font-weight:600}.pt-badges li.earned span[aria-hidden]{color:var(--brand)}.pt-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.pt-delivery{display:grid;gap:8px}
/* Fixed menu: bottom bar on phones, tab bar under the header on computers */
.pt-top-actions{display:flex;align-items:center;gap:6px}
.pt-bell{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-pill);border:0;background:transparent;color:var(--text);cursor:pointer}
.pt-bell:hover{background:var(--surface-raised)}
.pt-bell b{position:absolute;top:4px;right:2px;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-pill);background:var(--brand);color:var(--on-brand);font-size:.7rem;line-height:18px;text-align:center}
.pt-bell-panel{position:fixed;z-index:20;top:calc(64px + env(safe-area-inset-top,0px));right:12px;left:12px;max-width:420px;margin-left:auto;max-height:70vh;overflow:auto;display:grid;gap:6px;padding:16px;border-radius:var(--radius-lg);background:var(--surface-deep);border:var(--border-hairline) solid var(--border-strong);box-shadow:var(--shadow-card)}
.pt-bell-panel h2{margin:0 0 4px;font-size:1.1rem}
.pt-push:not(:empty){display:grid;gap:8px;margin-top:8px;padding-top:12px;border-top:var(--border-hairline) solid var(--border-strong)}
.pt-push p{margin:0}
.pt-note{display:grid;gap:2px;text-align:left;padding:10px 12px;border-radius:var(--radius-md);border:0;background:transparent;color:var(--text);font:inherit;cursor:pointer}
.pt-note:hover{background:var(--surface-raised)}
.pt-note.new{background:var(--brand-soft)}
.pt-nav{position:fixed;z-index:6;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));background:var(--glass);backdrop-filter:blur(var(--glass-blur));border-top:var(--border-hairline) solid var(--border)}
.pt-nav a{display:grid;justify-items:center;gap:2px;min-height:52px;padding:6px 2px;border-radius:var(--radius-md);color:var(--text-muted);text-decoration:none;font-size:.75rem;font-weight:600}
.pt-nav a[aria-current]{color:var(--brand)}
.pt-nav a:focus-visible,.pt-bell:focus-visible,.pt-note:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}
body.pt-has-nav{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
@media(min-width:960px){
 .pt-nav{position:sticky;top:calc(64px + env(safe-area-inset-top,0px));bottom:auto;display:flex;justify-content:center;gap:4px;padding:6px 16px;border-top:0;border-bottom:var(--border-hairline) solid var(--border)}
 .pt-nav a{display:flex;align-items:center;gap:8px;min-height:40px;padding:6px 16px;font-size:.95rem}
 .pt-nav a[aria-current]{background:var(--brand-soft)}
 body.pt-has-nav{padding-bottom:0}
}
/* Clases: course cards like a classroom */
.pt-courses{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.pt-course-card{display:grid;gap:8px;align-content:start;padding:18px;border-radius:var(--radius-xl);background:var(--surface-deep);border:var(--border-hairline) solid var(--border-strong);color:var(--text);text-decoration:none}
a.pt-course-card:hover{border-color:var(--brand)}
.pt-course-card b{font-size:1.15rem}
.pt-course-card.locked{opacity:.65;border-style:dashed}
.pt-course-card .pt-bar{margin-top:4px}
.pt-step.done{border-color:var(--brand)}
.pt-step h2{display:flex;align-items:center;gap:10px}
/* Comunidad */
.pt-start{display:grid;gap:4px;padding:14px 16px;border-radius:var(--radius-lg);border:var(--border-hairline) solid var(--brand);background:var(--brand-soft);color:var(--text);text-decoration:none}
.pt-compose summary{cursor:pointer;padding:6px 0;color:var(--text-muted);font-weight:600}
.pt-compose[open] summary{margin-bottom:10px}
.pt-chips{display:flex;flex-wrap:wrap;gap:8px}
.pt-chips button{min-height:40px;padding:6px 16px;border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-strong);background:transparent;color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.pt-chips button[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.pt-post-actions{display:flex;gap:8px}
.pt-like{min-height:40px;padding:6px 14px;border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-strong);background:transparent;color:var(--text);font:inherit;cursor:pointer}
.pt-like.on{border-color:var(--brand);color:var(--brand);font-weight:600}
/* Mi nivel */
.pt-levels{display:grid;gap:6px;margin:12px 0 0;padding:0;list-style:none;counter-reset:lvl}
.pt-levels li{counter-increment:lvl;display:flex;align-items:center;gap:10px;color:var(--text-muted)}
.pt-levels li::before{content:counter(lvl);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:var(--border-hairline) solid var(--border-strong);font-size:.8rem}
.pt-levels li.done{color:var(--text)}
.pt-levels li.done::before{content:'✓';background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.pt-levels li.current{color:var(--text);font-weight:700}
.pt-levels li.current::before{border-color:var(--brand);color:var(--brand)}
.pt-class.redo .pt-check{border-color:var(--danger);color:var(--danger)}
.pt-practice-card{border-color:var(--border-brand)}
.pt-practice-card,.pt-tabpanel{scroll-margin-top:96px}@media(min-width:960px){.pt-practice-card,.pt-tabpanel{scroll-margin-top:140px}}
.pt-faq-search{display:grid;gap:6px;font-weight:600}
.pt-faq-search input{width:100%;min-height:48px;padding:10px 14px;font:inherit;background:var(--surface-deep);color:var(--text);border:var(--border-hairline) solid var(--border-strong);border-radius:var(--radius-sm)}
.pt-faq-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 var(--border-hairline) var(--brand)}
#pt-faq-list{display:grid;gap:10px}
.pt-faq{display:grid;gap:10px}
.pt-faq summary{display:grid;gap:2px;cursor:pointer;list-style:none}
.pt-faq summary::-webkit-details-marker{display:none}
.pt-faq summary::after{content:'+';justify-self:end;margin-top:-1.6em;font-size:1.2rem;color:var(--text-muted)}
.pt-faq[open] summary::after{content:'−'}
.pt-faq summary b{padding-right:28px}
.pt-faq-answer{display:grid;gap:4px;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-deep);border-left:3px solid var(--brand)}
.pt-faq-answer p{margin:0;white-space:pre-line}
/* Mi primera obra */
.pt-job{display:grid;gap:16px}
.pt-job-checks{display:grid;gap:12px}.pt-job-check{display:flex!important;align-items:flex-start;gap:12px;font-weight:500;line-height:1.4}.pt-job-check input{flex:none;width:20px!important;height:20px;min-height:0!important;margin:1px 0 0;accent-color:var(--brand)}
.pt-job-facts{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;margin:0}.pt-job-facts dt{color:var(--text-muted)}.pt-job-facts dd{margin:0;font-weight:600}
.pt-job-photos{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.pt-job-photos figure{margin:0;display:grid;gap:4px}.pt-job-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius-md);display:block}.pt-job-photos figcaption{font-size:.85rem;color:var(--text-muted)}
.pt-job-link{display:grid;gap:2px}
/* Esquemas de conexión */
.wz-tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.wz-tabs a{flex:none;padding:8px 14px;border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-strong);color:var(--text-soft);text-decoration:none;font-size:.92rem}.wz-tabs a[aria-current]{border-color:var(--brand);background:var(--brand-soft);color:var(--text);font-weight:600}
.wz{display:grid;gap:14px}.wz-draw{border-radius:var(--radius-md);background:var(--surface-deep);border:var(--border-hairline) solid var(--border);padding:8px}
.wz-svg{display:block;width:100%;height:auto;font-family:var(--font-sans)}
.wz-svg text{fill:var(--text-soft);font-size:12px}.wz-svg .wz-note{fill:var(--text-muted);font-size:11px}.wz-svg .wz-tl{fill:var(--text);font-size:12px;font-weight:600}
.wz-p{cursor:pointer;outline:none}.wz-p:focus-visible rect,.wz-p:focus-visible circle{stroke:var(--brand);stroke-width:2.5}
.wz-hit{stroke:transparent;stroke-width:20;fill:none}.wz-vis{fill:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;transition:opacity var(--duration-fast),stroke-width var(--duration-fast)}.wz-stripe{stroke:#f2c94c!important;stroke-dasharray:6 8}
.wz-b rect{fill:var(--surface-raised);stroke:var(--border-strong);stroke-width:1.2}.wz-b.dashed rect{fill:none;stroke-dasharray:5 4}.wz-b.solid rect{fill:var(--surface);stroke:var(--brand)}.wz-b text{fill:var(--text-muted)}
.wz-t circle{fill:var(--surface-deep);stroke:var(--text-soft);stroke-width:1.8}.wz-lamp circle{fill:rgba(255,214,102,.12);stroke:#ffd666;stroke-width:2}.wz-lamp path{stroke:#ffd666;stroke-width:1.6}
.wz-bn rect{fill:var(--surface-deep);stroke-width:2}.wz-svg .wz-bn text{fill:var(--text);font-size:12px;font-weight:700}.wz-bn.on rect,.wz-p.wz-bn:focus-visible rect{stroke:var(--brand);stroke-width:3}
.wz-pipe rect{fill:rgba(255,255,255,.05);stroke:var(--border-strong);stroke-width:1.2;stroke-dasharray:3 3}.wz-svg .wz-pipe text{fill:var(--text-muted);font-size:11px}.wz-pipe.on rect{stroke:var(--brand);stroke-width:2.5}
.wz-door rect{fill:var(--surface-raised);stroke:var(--border);stroke-width:1}.wz-door text{fill:var(--text-muted)}
.wz.picked .wz-p:not(.on){opacity:.35}.wz-w.on .wz-vis{stroke-width:6}.wz-b.on rect,.wz-t.on circle,.wz-lamp.on circle{stroke:var(--brand);stroke-width:2.5}
.wz-info{min-height:84px;padding:12px 14px;border-radius:var(--radius-md);background:var(--surface-raised);border-left:3px solid var(--brand)}.wz-info b{display:flex;align-items:center;gap:8px}.wz-info p{margin:6px 0 0;color:var(--text-soft);line-height:1.45}
.wz-info i,.wz-chip i{display:inline-block;width:14px;height:6px;border-radius:3px;flex:none}
.wz-legend{display:flex;flex-wrap:wrap;gap:8px}.wz-chip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px;border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-strong);background:transparent;color:var(--text-soft);font:inherit;font-size:.88rem;cursor:pointer}.wz-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--text)}
.pt-wiring-links{display:grid;gap:8px;margin-top:14px}.pt-wiring-links h3{margin:0}.pt-wiring-links p{margin:0}
@media (prefers-reduced-motion:reduce){.wz-vis{transition:none}}
.wz-c-fase{background:#b0683a}.wz-c-neutro{background:#3fb2ea}.wz-c-retorno{background:#c9c9c9}.wz-c-tierra{background:repeating-linear-gradient(90deg,#2fa84f 0 5px,#f2c94c 5px 9px)}.wz-c-senal{background:#f0a03c}.wz-c-bajar{background:#8a8a8a}
/* Biblioteca de fallas comunes */
.pt-faq-cat{flex:none;padding:8px 14px;border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--border-strong);background:transparent;color:var(--text-soft);font:inherit;font-size:.92rem;cursor:pointer}.pt-faq-cat[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--text);font-weight:600}
.pt-faq-steps{margin:0;padding-left:1.3em;display:grid;gap:8px;line-height:1.45}
.pt-faq-sources{margin:0;font-size:.85rem;color:var(--text-muted)}.pt-faq-sources a{color:var(--brand-light)}
.pt-logo{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:14px 0;padding:12px;border-radius:var(--radius-md);border:var(--border-hairline) dashed var(--border-strong)}
.pt-logo img{max-width:160px;max-height:64px;padding:8px;border-radius:8px;background:#fff}.pt-logo-empty{flex:1 1 160px;color:var(--text-muted);font-size:14px}
.pt-logo>div{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.pt-logo small{flex-basis:100%}.pt-logo label.pt-btn{cursor:pointer}
/* Automation simulator */
.sim-log{list-style:none;margin:0;padding:0;display:grid;gap:6px}.sim-log li{font-size:14px;line-height:1.4;color:var(--text-soft)}.sim-log time{color:var(--text-muted);font-variant-numeric:tabular-nums}.sim-log li.rule b{color:var(--brand)}.sim-log li.manual{color:var(--text-muted)}
.sim-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.sim-rules,.sim-ch{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}.sim-rules li,.sim-ch li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-radius:var(--radius-md);border:var(--border-hairline) solid var(--border-strong)}
.sim-rules li>div:first-child,.sim-ch li>div{display:grid;gap:4px;flex:1 1 220px}.sim-rules small,.sim-ch small{color:var(--text-muted);line-height:1.4}.sim-rules li.off{opacity:.55}
.sim-rule-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.sim-ch li.done{border-color:var(--brand)}.sim-ch p{margin:6px 0 0}
.sim-builder fieldset{border:0;padding:0;margin:12px 0 0;display:grid;gap:8px}.sim-builder legend{font-weight:700;margin-bottom:4px}
.sim-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sim-row select,.sim-row label{flex:1 1 140px}.sim-warn ul{margin:6px 0 0;padding-left:18px}
.sim-builder .pt-check{display:flex;align-items:center;gap:10px;font-weight:600}.sim-builder .pt-check input{width:auto;min-height:0}.sim-row>select{min-width:0}
.sim-rule-act .pt-check{display:flex;align-items:center;gap:6px;font-size:14px}
.sim-check{display:flex!important;align-items:center;gap:10px;font-weight:600;font-size:14px;cursor:pointer}.sim-check input{width:20px!important;height:20px;min-height:0!important;margin:0;accent-color:var(--brand)}
.sim-row>.sim-dev-sel{flex:1 1 100%}.sim-builder fieldset+fieldset{border-top:var(--border-hairline) solid var(--border);padding-top:12px}
.pt-d-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:10px}.pt-d-item+.pt-d-item{margin-top:10px}
.pt-d-photos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:10px 0}.pt-d-photos figure{margin:0;display:grid;gap:4px}.pt-d-photos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}
.pt-recs li.stop{background:var(--warn-soft);box-shadow:inset 4px 0 0 #d9534f}.pt-recs li.stop b{color:#d9534f}.pt-recs li.check{background:transparent;border:1px dashed var(--border-strong)}.pt-recs li.check b{color:var(--muted,inherit)}
.pt-dx-opts{display:grid;gap:10px;margin-top:12px}.pt-dx-opt{display:block;width:100%;text-align:left;padding:14px 16px;min-height:48px;border-radius:var(--radius-sm);border:var(--border-hairline) solid var(--border-strong);background:var(--surface-deep);color:var(--text);font:inherit;line-height:1.45;cursor:pointer}.pt-dx-opt:hover:not(:disabled){border-color:var(--accent)}.pt-dx-opt.wrong{border-color:#d9534f;cursor:default;opacity:.85}.pt-dx-why{display:block;margin-top:6px;color:#e5675a}
.pt-dx-story p{margin:0;line-height:1.55}.pt-dx-past{margin:14px 0 0;padding-left:20px;display:grid;gap:10px}.pt-dx-past b{display:block}.pt-dx-past small{display:block;color:var(--muted,inherit);margin-top:2px}
.pt-red-skills{border:0;padding:0;margin:12px 0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.pt-red-skills legend{font-weight:600;margin-bottom:6px}.pt-red-offer h3{margin:8px 0 4px}.pt-red-offer+.pt-red-offer{margin-top:12px}
/* Simulator: active challenge, Smart Life builder, feedback under the plan */
.sim-intro ol{margin:8px 0 12px;padding-left:20px;display:grid;gap:6px;line-height:1.45}.sim-intro p{margin:0 0 10px}
.sim-active{border:var(--border-hairline) solid var(--brand)}.sim-active h2{margin:6px 0}.sim-active p{margin:6px 0;line-height:1.45}.sim-why{font-size:14px}
.sim-client{padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-deep)}
.sim-hint summary{cursor:pointer;font-weight:600;color:var(--brand);padding:6px 0}.sim-hint p{font-size:14px}
.sim-kinds{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.sim-opt{display:flex!important;gap:10px;align-items:flex-start;padding:12px;border-radius:var(--radius-md);border:var(--border-hairline) solid var(--border-strong);cursor:pointer}.sim-opt.on{border-color:var(--brand);background:var(--brand-soft)}
.sim-opt input{width:20px!important;height:20px;min-height:0!important;margin:2px 0 0;accent-color:var(--brand)}.sim-opt span{display:grid;gap:4px}.sim-opt small{color:var(--text-muted);font-weight:400;line-height:1.4}
.sim-app{margin:4px 0 0;font-size:13px;color:var(--text-muted)}.sim-valid{gap:18px}
.sim-preview{margin:14px 0 0;padding:10px 12px;border-radius:var(--radius-md);background:var(--surface-deep);line-height:1.45}
.sim-kind{font-size:11px;font-weight:700;color:var(--brand);letter-spacing:.04em}
#sim-list h3{margin:16px 0 0;font-size:15px}.sim-ch li.on{border-color:var(--brand)}.sim-scenes small{width:100%}
/* Client rating page and stars */
.rt-main{max-width:520px;margin:0 auto}.rt-card h1{margin:6px 0 10px}.rt-card p{line-height:1.5}
.rt-stars{border:0;padding:0;margin:14px 0}.rt-stars legend{font-weight:700;margin-bottom:6px}.rt-stars [role=radiogroup]{display:flex;gap:6px}
.rt-stars button{width:52px;height:52px;font-size:34px;line-height:1;border-radius:12px;border:var(--border-hairline) solid var(--border-strong);background:var(--surface-deep);color:var(--text-muted);cursor:pointer}
.rt-stars button.on{color:#ffd666;border-color:#ffd666}.rt-stars button:focus-visible{outline:var(--border-focus) solid var(--brand);outline-offset:2px}.rt-label{margin:8px 0 0}
.pt-net-rating b{color:#ffd666;letter-spacing:2px}
/* Mi clase (teachers): the nav takes a fifth item only for them; one card per student with the class checklist inside. */
.pt-nav{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}.pt-nav a[hidden]{display:none}
.pt-class-edition{margin:24px 0}.pt-class-student summary{cursor:pointer;display:grid;gap:6px;list-style:none}.pt-class-student summary::-webkit-details-marker{display:none}
.pt-class-student summary small{font-size:.85rem}.pt-class-student h3{font-size:.95rem;margin:16px 0 6px}.pt-class-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
/* Simulator as a home app, like the scene on zonasmart.com.ar: the house lights up on a dark canvas, the app beside it. */
.sim-panel{display:grid;gap:16px;align-items:start}
.sim-stage{display:grid;gap:12px;min-width:0}
.sim-canvas{position:relative;overflow:hidden;border-radius:1.25rem;border:1px solid var(--border-strong);background:#050506;isolation:isolate;box-shadow:0 40px 120px -40px rgba(255,200,120,calc(var(--amb,.3) * .35)),0 0 0 1px rgba(255,255,255,.02);transition:box-shadow .6s var(--ease-soft,ease)}
.sim-canvas::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 70%,rgba(0,0,0,.45))}
.sim-hud{position:absolute;left:.75rem;top:.75rem;z-index:2;display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .7rem;border-radius:999px;font-size:.75rem;font-weight:500;color:#e4e4e7;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.sim-dot{width:.45rem;height:.45rem;border-radius:50%;background:var(--brand);box-shadow:0 0 10px var(--brand)}
.sim-house{display:block;width:100%;height:auto;font-family:var(--font-sans)}
.sim-lights{mix-blend-mode:screen;pointer-events:none}
.sim-rl{fill:rgba(255,255,255,.6);stroke:#040506;stroke-width:3px;paint-order:stroke;stroke-linejoin:round;font-size:11px;font-weight:600;letter-spacing:.14em;pointer-events:none}
.sim-temp{fill:rgba(255,255,255,.8);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}
.sim-actx{fill:#0e7c8a;font-size:12px;font-weight:700}
.sim-dev{cursor:pointer;outline:none}
.sim-ring{fill:transparent;pointer-events:all;stroke:var(--brand);stroke-width:2.5;stroke-opacity:0}
.sim-dev:hover .sim-ring{stroke-opacity:.35}.sim-dev:focus-visible .sim-ring{stroke-opacity:1}
.sim-dev.flash .sim-ring,.sim-door.flash .sim-ring{stroke-opacity:1;animation:sim-pulse 1.1s ease-out 2}
.sim-door .sim-ring{pointer-events:none}
@keyframes sim-pulse{0%{stroke-width:7}100%{stroke-width:2.5}}
.sim-led,.sim-pir-led{fill:#3a3a3e}.sim-ac.on .sim-led,.sim-pir.on .sim-pir-led{fill:var(--brand)}.sim-cam.on .sim-led{fill:#ff4d4d}.sim-plug.on .sim-led{fill:#ff8a3d}
.sim-wave{stroke:var(--brand);stroke-width:2;stroke-linecap:round;opacity:0}.sim-pir.on .sim-wave{opacity:1}
.sim-pir.flash .sim-wave{opacity:1}
/* Clock under the house */
.sim-clockbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}
.sim-clockbox{display:grid}.sim-clockbox small{color:var(--text-muted);font-size:.8rem}
.sim-clock{font-size:2.5rem;font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--text);font-variant-numeric:tabular-nums}
.sim-goto{display:flex;align-items:center;gap:6px;font-size:.875rem;color:var(--text-muted)}
.sim-goto input{min-height:2.5rem;padding:.4rem .7rem;border-radius:999px;border:1px solid var(--border-strong);background:rgba(255,255,255,.03);color:var(--text);font:inherit}
.sim-note{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:1rem;border:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015));font-size:.9rem;line-height:1.45}
.sim-note time{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted)}.sim-note ul{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.sim-note li.rule{color:var(--brand);font-weight:600}.sim-note li.phone{color:#ffd59e}.sim-note li.none{color:var(--text-muted)}.sim-note-empty{color:var(--text-muted)}
/* The app */
.sim-app{display:grid;gap:18px;padding:clamp(1rem,.6rem + 1.5vw,1.5rem);border-radius:1.25rem;border:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.015))}
.sim-ptitle{margin:0 0 .5rem;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}
.sim-empty{margin:0;font-size:.875rem;color:#71717a}
.sim-chips{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}
.sim-chip{min-height:2.5rem;padding:.45rem .95rem;border-radius:999px;border:1px solid var(--border-strong);background:rgba(255,255,255,.03);color:#e4e4e7;font:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .18s,border-color .18s,color .18s}
.sim-chip:hover{border-color:rgba(38,198,218,.6)}
.sim-chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:#04191c}
.sim-chip-scene{border-color:rgba(38,198,218,.45);color:var(--text)}.sim-chip-scene:active{background:var(--brand);color:#04191c}
.sim-list{list-style:none;margin:0;padding:0;display:grid}
.sim-list>li+li{border-top:1px solid var(--border)}
.sim-sw,.sim-row-blind,.sim-row-btn{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:3.25rem;padding:.4rem .25rem;border-radius:.6rem}
.sim-sw{border:0;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer;justify-content:flex-start;gap:.7rem}
.sim-row-blind,.sim-row-btn{flex-wrap:wrap}.sim-row-blind,.sim-row-btn{color:var(--text)}
.sim-sw-name{display:flex;flex-direction:column;font-weight:500;font-size:.9375rem;line-height:1.25;min-width:0}
.sim-sw-name small{font-size:.75rem;font-weight:400;color:#71717a}
.sim-pista{position:relative;flex:none;width:2.6rem;height:1.5rem;border-radius:999px;background:#2a2a2e;border:1px solid var(--border-strong);transition:background-color .18s}
.sim-bola{position:absolute;top:50%;left:.2rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#a1a1aa;translate:0 -50%;transition:translate .45s var(--ease-soft,ease),background-color .18s}
.sim-sw[aria-checked=true] .sim-pista{background:rgba(38,198,218,.3);border-color:var(--brand)}
.sim-sw[aria-checked=true] .sim-bola{translate:1.05rem -50%;background:var(--brand);box-shadow:0 0 10px var(--brand)}
.sim-sw[aria-checked=true] .sim-sw-name small{color:var(--brand-light)}
.sim-step{display:inline-flex;align-items:center;gap:8px}.sim-step .sim-chip{width:2.5rem;padding:0;font-size:1.1rem}.sim-step b{min-width:3.5em;text-align:center;font-variant-numeric:tabular-nums}
.sim-app .flash{animation:sim-row 1.2s ease-out}
@keyframes sim-row{0%{background:rgba(38,198,218,.22)}100%{background:transparent}}
.sim-reset{justify-self:start}
/* Phone: the house stays pinned under the header while the app scrolls, so every switch is seen working */
@media(max-width:959px){.sim-stage{display:contents}.sim-canvas{position:sticky;top:calc(66px + env(safe-area-inset-top,0px));z-index:3;box-shadow:0 18px 30px -18px rgba(0,0,0,.9)}.sim-rl{font-size:14px}.sim-temp{font-size:14px}}
/* Lights with dimmer and the blind, like the website: switch and name, slider, percentage */
.sim-zone{display:block}
.sim-zone-dim{display:grid;grid-template-columns:minmax(8.5rem,1fr) minmax(5rem,9rem) 2.9rem;align-items:center;gap:.6rem;padding:.15rem 0}
.sim-zone-dim .sim-sw{width:auto}
.sim-zone-blind{min-height:3.25rem;color:var(--text)}
.sim-val{font-variant-numeric:tabular-nums;font-size:.875rem;color:var(--text-muted);text-align:right}
.sim-range{--v:50%;width:100%;height:2.75rem;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
.sim-range::-webkit-slider-runnable-track{height:.4rem;border-radius:999px;background:linear-gradient(90deg,var(--brand) var(--v),#2a2a2e var(--v))}
.sim-range::-moz-range-track{height:.4rem;border-radius:999px;background:#2a2a2e}
.sim-range::-moz-range-progress{height:.4rem;border-radius:999px;background:var(--brand)}
.sim-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:1.25rem;height:1.25rem;margin-top:-.425rem;border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 2px 8px rgba(0,0,0,.5)}
.sim-range::-moz-range-thumb{width:1rem;height:1rem;border-radius:50%;background:#fff;border:3px solid var(--brand)}
.sim-range:focus-visible{outline:none}.sim-range:focus-visible::-webkit-slider-thumb{outline:2px solid var(--brand);outline-offset:3px}.sim-range:focus-visible::-moz-range-thumb{outline:2px solid var(--brand);outline-offset:3px}
@media(max-width:400px){.sim-zone-dim{grid-template-columns:minmax(0,1fr) minmax(4.5rem,7rem) 2.6rem;gap:.45rem}}
@media(min-width:960px){.sim-panel{grid-template-columns:minmax(0,1.4fr) minmax(300px,1fr);gap:24px}.sim-stage{position:sticky;top:calc(128px + env(safe-area-inset-top,0px))}}
@media (prefers-reduced-motion:reduce){.sim-dev.flash .sim-ring,.sim-door.flash .sim-ring,.sim-app .flash{animation:none}.sim-bola{transition:none}}
/* The simulator page uses the wide layout; the reading cards keep a comfortable width */
main.pt-sim-page>*:not(#pt-sim),#pt-sim>section:not(.sim-panel){max-width:860px}
