/* FOSFENO :: Panel de control Tema verde acido y negro, con acentos en naranja neon. */ :root { --bg: #060a06; --card: #0d120c; --line: #243016; --green: #b4ff00; /* verde acido */ --green-d: #86bd00; --orange: #ff7a00; /* naranja acido */ --orange-n: #ff9d2a; /* naranja neon */ --ink: #050705; /* negro: texto sobre superficies brillantes */ --txt: #cfe8ad; /* texto claro sobre fondo oscuro */ --dim: #6f8a52; --red: #ff3b2f; } * { box-sizing: border-box; margin: 0; padding: 0; } /* El atributo 'hidden' debe ocultar siempre, incluso sobre display:flex */ [hidden] { display: none !important; } body { background: var(--bg); color: var(--txt); font-family: "Segoe UI", Roboto, system-ui, sans-serif; -webkit-tap-highlight-color: transparent; padding-bottom: 48px; } header { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 2px solid var(--green-d); position: sticky; top: 0; background: var(--bg); z-index: 10; } header h1 { font-size: 20px; font-weight: 800; letter-spacing: 0.32em; color: var(--green); text-shadow: 0 0 14px rgba(180, 255, 0, 0.55); } .dot { width: 13px; height: 13px; border-radius: 50%; display: inline-block; } .dot.on { background: var(--green); box-shadow: 0 0 9px var(--green); } .dot.off { background: var(--red); box-shadow: 0 0 9px var(--red); } main { max-width: 560px; margin: 0 auto; padding: 16px; display: flex; flex-direction: column; gap: 14px; } /* --- Tarjetas --- */ .card { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 12px; } .card.center { align-items: center; } .cardhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; } .label { color: var(--green); font-size: 13px; text-transform: uppercase; letter-spacing: 0.09em; font-weight: 700; } .value { color: var(--orange-n); font-weight: 800; } .hint { color: var(--dim); font-size: 12px; line-height: 1.45; } .row { display: flex; align-items: center; justify-content: space-between; gap: 10px; } .row .cmd { flex: 1; } /* --- Boton de informacion (circular naranja) --- */ .info { width: 28px; height: 28px; flex: none; border-radius: 50%; background: var(--orange); color: var(--ink); border: none; font-weight: 900; font-style: italic; font-size: 15px; cursor: pointer; box-shadow: 0 0 10px rgba(255, 122, 0, 0.5); } .info:active { background: var(--orange-n); } /* --- Boton de encendido (circular grande) --- */ .power-btn { width: 128px; height: 128px; border-radius: 50%; border: none; cursor: pointer; font-weight: 900; font-size: 26px; letter-spacing: 0.05em; background: var(--green); color: var(--ink); box-shadow: 0 0 26px rgba(180, 255, 0, 0.55); } .power-btn.off { background: var(--card); color: var(--dim); border: 3px solid var(--line); box-shadow: none; } /* --- Selector de motor (botones circulares) --- */ .engines { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; } .engine { width: 96px; height: 96px; border-radius: 50%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; cursor: pointer; background: var(--card); border: 3px solid var(--line); color: var(--txt); } .engine strong { font-size: 13px; } .engine small { font-size: 9px; color: var(--dim); } .engine.active { background: var(--green); color: var(--ink); border-color: var(--orange); box-shadow: 0 0 20px rgba(180, 255, 0, 0.6); } .engine.active small { color: var(--ink); } /* --- Botones de comando --- */ .cmd, .sysbtn { padding: 13px; border-radius: 11px; cursor: pointer; background: #161d10; border: 1px solid var(--line); color: var(--txt); font-weight: 700; font-size: 14px; } .cmd:active, .sysbtn:active { background: #202a16; } .cmd.accent { background: var(--green); color: var(--ink); border: none; } /* --- Selectores y sliders --- */ select { width: 100%; padding: 12px; border-radius: 11px; background: #161d10; color: var(--txt); border: 1px solid var(--line); font-size: 14px; } select.inline { width: auto; padding: 8px 10px; } input[type=range] { width: 100%; accent-color: var(--green); height: 30px; } .check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--txt); } .check input { width: 22px; height: 22px; accent-color: var(--orange); } /* --- Botones segmentados --- */ .seg { display: flex; gap: 6px; } .segbtn { flex: 1; padding: 11px 6px; border-radius: 10px; cursor: pointer; background: #161d10; border: 2px solid var(--line); color: var(--dim); font-weight: 700; font-size: 13px; } .segbtn.active { border-color: var(--orange); color: var(--orange-n); box-shadow: 0 0 12px rgba(255, 122, 0, 0.35); } /* --- BPM --- */ .bpm { font-size: 30px; font-weight: 900; color: var(--orange-n); text-shadow: 0 0 14px rgba(255, 157, 42, 0.6); font-variant-numeric: tabular-nums; } /* --- Sliders del mezclador --- */ .slider { display: flex; flex-direction: column; gap: 4px; margin-bottom: 6px; } .slider .head { display: flex; justify-content: space-between; font-size: 13px; color: var(--dim); } .slider .head b { color: var(--green); font-weight: 800; } /* --- Editor CodeMirror --- */ .CodeMirror { height: 220px; border-radius: 11px; border: 1px solid var(--green-d); font-size: 13px; font-family: "Fira Mono", Consolas, monospace; } .now { font-size: 15px; color: var(--orange-n); word-break: break-word; } /* --- Sistema --- */ .sys { flex-direction: row; } .sys .sysbtn { flex: 1; } .sysbtn.danger { color: var(--red); border-color: var(--red); } /* --- Banda de avisos --- */ .notif { display: flex; align-items: center; gap: 10px; padding: 12px 16px; font-size: 14px; font-weight: 600; position: sticky; top: 60px; z-index: 9; } .notif.info { background: var(--green); color: var(--ink); } .notif.warn { background: var(--orange); color: var(--ink); } .notif.error { background: var(--red); color: #fff; } .notif span { flex: 1; } .notif button { background: transparent; border: none; color: inherit; font-size: 22px; font-weight: 900; cursor: pointer; line-height: 1; } /* --- Ventana de informacion --- */ .modal { position: fixed; inset: 0; z-index: 50; background: rgba(3, 6, 3, 0.88); display: flex; align-items: center; justify-content: center; padding: 20px; } .modal-box { background: var(--card); border: 2px solid var(--green); border-radius: 16px; padding: 22px; max-width: 460px; width: 100%; max-height: 80vh; overflow-y: auto; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 0 30px rgba(180, 255, 0, 0.3); } .modal-box h2 { color: var(--green); font-size: 18px; letter-spacing: 0.04em; } .modal-box p { color: var(--txt); font-size: 14px; line-height: 1.5; } /* Pie con la direccion del panel */ .netfoot { text-align: center; color: var(--dim); font-size: 12px; font-family: monospace; padding: 4px 0 8px; }