:root{
  --bg:#07111e;
  --panel:#10233a;
  --panel-2:#0a192a;
  --line:#29435f;
  --text:#edf6ff;
  --muted:#9bb0c8;
  --primary:#38bdf8;
  --success:#34d399;
  --danger:#fb7185;
  --warning:#fbbf24;
  --violet:#c084fc;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}
button,input,select{font:inherit}
.app-shell{display:grid;grid-template-columns:430px minmax(700px,1fr);min-height:100vh}
.control-panel{background:var(--panel-2);border-right:1px solid var(--line);padding:14px;overflow-y:auto;max-height:100vh}
.simulator-area{padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}
.card{background:linear-gradient(180deg,#11253e,#0e2035);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:0 12px 28px #0004}
.hero{display:flex;gap:12px;align-items:center}.hero-mark{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--success));color:#04111e;font-size:26px;font-weight:900}
h1{font-size:1.15rem;margin:0 0 4px}h2{font-size:1rem;margin:0 0 10px}.hero p,.help{margin:0;color:var(--muted);font-size:.82rem;line-height:1.4}
.section-title{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-title h2{margin:0 0 10px}
.form-grid{display:grid;gap:9px}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.four{grid-template-columns:repeat(4,1fr)}.form-grid.compact{margin-top:12px}
label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:.76rem}
input,select{width:100%;border:1px solid #304d69;background:#071727;color:var(--text);padding:9px;border-radius:9px;outline:none}input:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 2px #38bdf826}
.button-grid{display:grid;gap:8px}.button-grid.two{grid-template-columns:repeat(2,1fr)}.button-grid.three{grid-template-columns:repeat(3,1fr)}.button-grid.four{grid-template-columns:repeat(4,1fr)}
.btn{border:0;border-radius:10px;padding:10px 8px;font-weight:800;cursor:pointer;color:#07111e;transition:transform .12s ease,filter .12s ease}.btn:hover{filter:brightness(1.07);transform:translateY(-1px)}.btn:active{transform:translateY(0)}
.success{background:var(--success)}.danger{background:var(--danger)}.primary{background:var(--primary)}.info{background:#60a5fa}.warning{background:var(--warning)}.violet{background:var(--violet)}.muted{background:#a9b7c7}.success-soft{background:#8be8c6}.danger-soft{background:#f8a9b8}.info-soft{background:#93c5fd}.warning-soft{background:#f9d777}.violet-soft{background:#d8b4fe}
.badge{padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:800}.badge.neutral{background:#142b45;color:#c9d7e7}.badge.ok{background:#12392e;color:#8ff0c8}.badge.bad{background:#48202b;color:#ffb7c4}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.metric{background:#071727;border-radius:10px;padding:8px}.metric small{display:block;color:var(--muted);font-size:.66rem;margin-bottom:3px}.metric strong{font-size:.83rem}
.status-message{margin-top:10px;border-left:4px solid var(--primary);background:#071727;border-radius:9px;padding:10px;font-size:.82rem;line-height:1.4}
.sensor-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:5px}.sensor{background:#071727;padding:5px;border-radius:8px;text-align:center;font-size:.68rem}.sensor-bar{height:62px;border-radius:5px;background:#183049;display:flex;align-items:flex-end;overflow:hidden;margin:5px 0}.sensor-fill{width:100%;height:0;background:linear-gradient(var(--primary),var(--success));transition:height .08s linear}.sensor-value{font-weight:800;font-size:.68rem}
.settings-card summary{cursor:pointer;font-weight:800}.settings-card[open] summary{margin-bottom:4px}
.mini-btn{border:1px solid #3a5874;background:#142b45;color:var(--text);padding:5px 8px;border-radius:8px;cursor:pointer;font-size:.7rem}
.serial-log{height:150px;overflow:auto;background:#030b13;color:#9ee6ff;border:1px solid #1f3b54;border-radius:9px;padding:9px;font-family:Consolas,monospace;font-size:.67rem;white-space:pre-wrap;margin:0}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.72rem}th,td{padding:7px 5px;border-bottom:1px solid #29435f;text-align:left}th{color:var(--muted)}
.sim-toolbar{background:#10233a;border:1px solid var(--line);border-radius:14px;padding:11px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px}.sim-toolbar strong{display:block}.sim-toolbar #trackDescription{color:var(--muted);font-size:.82rem}.legend{display:flex;flex-wrap:wrap;gap:12px;color:#c7d5e5;font-size:.75rem}.legend span{display:flex;align-items:center;gap:5px}.legend-dot{width:11px;height:11px;border-radius:50%;border:1px solid #8091a4}.legend-dot.black{background:#0b0b0b}.legend-dot.white{background:#fff}.legend-dot.orange{background:#f97316}.legend-dot.green{background:#22c55e}
.canvas-wrap{position:relative;min-height:0;flex:1;display:grid;place-items:center}canvas{display:block;width:100%;height:auto;max-height:calc(100vh - 125px);background:#eef3f8;border:1px solid #29435f;border-radius:18px;box-shadow:0 18px 40px #0006}
.editor-overlay{position:absolute;left:20px;bottom:18px;background:#fbbf24;color:#1f2937;font-weight:800;font-size:.78rem;padding:9px 12px;border-radius:10px;box-shadow:0 6px 18px #0005}.hidden{display:none}
.bottom-help{background:#0e2035;border:1px solid #29435f;color:#b9c9da;border-radius:12px;padding:10px 12px;font-size:.78rem;line-height:1.4}
@media(max-width:1250px){.app-shell{grid-template-columns:390px minmax(620px,1fr)}.form-grid.four{grid-template-columns:repeat(2,1fr)}.button-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.app-shell{display:block}.control-panel{max-height:none}.simulator-area{min-height:700px}.sim-toolbar{flex-direction:column;align-items:flex-start}canvas{max-height:none}}
@media(max-width:520px){.form-grid.two,.form-grid.four,.button-grid.two,.button-grid.three,.button-grid.four{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr 1fr}.control-panel{padding:9px}.sensor-grid{grid-template-columns:repeat(4,1fr)}}

.badge.warning{background:#49380f;color:#fde68a}


/* Resultado final */
.result-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:18px;background:rgba(1,8,16,.82);backdrop-filter:blur(7px)}
.result-modal.hidden{display:none}
.result-card{width:min(620px,96vw);max-height:94vh;overflow:auto;background:linear-gradient(155deg,#132c49,#091827 68%);border:1px solid #3b5c7a;border-radius:24px;padding:24px;box-shadow:0 28px 90px #000b;text-align:center;animation:result-pop .24s ease-out}
.result-trophy{font-size:3.2rem;line-height:1;margin-bottom:5px}.result-kicker{margin:0 0 7px;color:#8fcbe8;font-size:.72rem;font-weight:900;letter-spacing:.16em}
.result-title{font-size:1.65rem;margin:0}.result-title.excellent{color:#6ee7b7}.result-title.good{color:#7dd3fc}.result-title.progress{color:#fde68a}.result-title.needs-work{color:#fda4af}
.result-time{font-size:3rem;font-weight:950;letter-spacing:-.04em;margin:8px 0 5px;color:#fff}.result-record{font-weight:800;color:#cbd5e1;margin-top:3px}.result-record.new-record{color:#fde047;font-size:1.08rem}.result-record.tied-record{color:#c4b5fd}.result-position{margin:8px auto 16px;color:#a8dff6;font-weight:800}
.result-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0}.result-metrics div{background:#06121f;border:1px solid #29435f;border-radius:12px;padding:10px 7px}.result-metrics small{display:block;color:#91a8bd;font-size:.67rem;margin-bottom:4px}.result-metrics strong{font-size:1rem}
.result-summary,.result-advice{text-align:left;border-radius:13px;padding:12px 14px}.result-summary{background:#0c2136;border-left:4px solid #38bdf8}.result-summary strong{color:#bcecff}.result-summary p{margin:5px 0 0;color:#e5edf5;line-height:1.45;font-size:.86rem}.result-advice{margin-top:10px;background:#2b230d;border:1px solid #695719;color:#fde9a3;font-size:.8rem;line-height:1.45}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:17px}
@keyframes result-pop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:600px){.result-card{padding:18px}.result-time{font-size:2.35rem}.result-metrics{grid-template-columns:1fr 1fr}.result-actions{grid-template-columns:1fr}}

/* V6: explicaciones de parámetros */
.settings-intro{margin-top:8px!important}
.field-help{display:block;min-height:2.8em;color:#8fa8bf;font-size:.64rem;line-height:1.32;font-weight:400;margin-top:1px}
.form-grid label:focus-within .field-help{color:#c9e9f8}
.form-grid label{align-self:start}

/* Pantalla inicial EQUIPO PRISMA */
.welcome-screen{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 30%,rgba(56,189,248,.22),transparent 36%),linear-gradient(145deg,#06101d,#0b2035 60%,#07111e);transition:opacity .32s ease,visibility .32s ease}
.welcome-screen.closing{opacity:0;visibility:hidden;pointer-events:none}
.welcome-card{width:min(650px,94vw);padding:42px 32px 36px;text-align:center;border:1px solid #3d6685;border-radius:28px;background:linear-gradient(155deg,rgba(18,48,77,.96),rgba(6,20,34,.98));box-shadow:0 30px 100px #000c;animation:welcome-rise .55s cubic-bezier(.2,.8,.2,1)}
.welcome-logo{width:92px;height:92px;margin:0 auto 18px;border-radius:27px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--success));color:#03121d;font-size:54px;font-weight:950;box-shadow:0 14px 40px rgba(56,189,248,.3)}
.welcome-kicker{margin:0 0 8px;color:#8bd8f7;font-size:.78rem;font-weight:900;letter-spacing:.24em}
.welcome-card h1{margin:0;color:#fff;font-size:clamp(2.2rem,8vw,4.8rem);line-height:.95;letter-spacing:.035em;text-shadow:0 5px 24px rgba(56,189,248,.25)}
.welcome-subtitle{margin:17px 0 8px;color:#b9edff;font-size:1.08rem;font-weight:750}
.welcome-text{max-width:500px;margin:0 auto;color:#aebfd0;font-size:.9rem;line-height:1.55}
.welcome-button{min-width:230px;margin-top:25px;padding:13px 20px;font-size:1rem}
@keyframes welcome-rise{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
@media(max-width:600px){.welcome-card{padding:32px 20px 28px}.welcome-logo{width:76px;height:76px;font-size:44px}.field-help{min-height:auto}}
