/* ============================================================
   GLOBAL RESET
   ============================================================ */
* {
    box-sizing: border-box;
}

/* ============================================================
   BACKGROUND + GLOBAL
   ============================================================ */
html, body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #e5e5f0;

    background-image: url("rru-bg.png");
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

/* Optional modes */
body.rru-fit { background-size: 1280px 1024px; background-position: center top; }
body.rru-contain { background-size: contain; background-position: center; }
body.rru-stretch { background-size: 100% 100%; }

/* ============================================================
   RRU HEADER BANNER — FINAL FIXED VERSION
   ============================================================ */
#rru-header {
    width: 100%;
    height: 220px;

    background-image: url("rru-bnr.png");
    background-size: cover;
    background-position: center top;
    background-repeat: no-repeat;
    background-attachment: scroll !important;

    background-color: rgba(0, 0, 0, 0.45);
    background-blend-mode: lighten;

    border: 1px solid #ffffff26;
    box-shadow:
        0 0 18px #000000d9,
        inset 0 0 14px #ffffff0d;

    position: relative;
    z-index: 10;
}

/* ============================================================
   TRANSPARENT PANELS (NO BLUR)
   ============================================================ */
.app,
main,
.block,
.json-output,
.md-output {
    background: transparent !important;
    backdrop-filter: none !important;
}

/* ============================================================
   BLACK GLASS PANELS
   ============================================================ */
.block,
.json-output,
.md-output {
    border: 1px solid #ffffff1a !important;
    box-shadow:
        0 0 18px #000000d9,
        inset 0 0 14px #ffffff0d;
    border-radius: 10px;
}

/* ============================================================
   INPUTS
   ============================================================ */
select,
input,
textarea {
    background: #0000008c !important;
    border: 1px solid #ffffff40 !important;
    color: #fff !important;
    padding: 10px !important;
    border-radius: 6px !important;
    text-align: right !important;
    padding-right: 14px !important;
}

/* ============================================================
   BUTTONS
   ============================================================ */
button {
    background: #00000040 !important;
    border: 1px solid #ffd70073 !important;
    color: #ffe9a6 !important;
    text-shadow: 0 0 6px #ffd7008c;
    box-shadow:
        0 0 14px #ffd70059,
        inset 0 0 12px #ffd70040;
    transition: 0.15s ease;
    width: 100% !important;
}

button:hover {
    background: #00000059 !important;
    box-shadow:
        0 0 22px #ffd7008c,
        inset 0 0 16px #ffd70059;
}

/* ============================================================
   TREE NODES
   ============================================================ */
.tree-node {
    border-left: 2px solid #ffffff26 !important;
    background: #00000073;
    padding: 8px 12px !important;
    border-radius: 6px;
    margin-bottom: 6px;
}

/* ============================================================
   INDICATORS
   ============================================================ */
.indicator-red { border-left-color: #ff3b3b !important; box-shadow: 0 0 14px #ff3b3b88 !important; }
.indicator-green { border-left-color: #3bff6b !important; box-shadow: 0 0 14px #3bff6b88 !important; }
.indicator-yellow { border-left-color: #ffe14a !important; box-shadow: 0 0 14px #ffe14a88 !important; }

/* ============================================================
   PULSE ANIMATIONS
   ============================================================ */
@keyframes pulseRed { 0%{box-shadow:0 0 6px #ff3b3b55;} 50%{box-shadow:0 0 22px #ff3b3b;} 100%{box-shadow:0 0 6px #ff3b3b55;} }
@keyframes pulseGreen { 0%{box-shadow:0 0 6px #3bff6b55;} 50%{box-shadow:0 0 22px #3bff6b;} 100%{box-shadow:0 0 6px #3bff6b55;} }
@keyframes pulseYellow { 0%{box-shadow:0 0 6px #ffe14a55;} 50%{box-shadow:0 0 22px #ffe14a;} 100%{box-shadow:0 0 6px #ffe14a55;} }

.pulse-red { animation: pulseRed 1.8s infinite; }
.pulse-green { animation: pulseGreen 1.8s infinite; }
.pulse-yellow { animation: pulseYellow 1.8s infinite; }

/* ============================================================
   HOVER GLOW
   ============================================================ */
.block:hover {
    box-shadow:
        0 0 26px #ffffff26,
        inset 0 0 18px #ffffff14;
    transition: 0.2s ease;
}

/* ============================================================
   INPUT FOCUS
   ============================================================ */
input:focus,
textarea:focus,
select:focus {
    outline: none !important;
    border-color: #ffd700a6 !important;
    box-shadow:
        0 0 22px #ffd7008c,
        inset 0 0 16px #ffd70059 !important;
}

/* ============================================================
   PADDING + READABILITY
   ============================================================ */
.block,
.json-output,
.md-output,
.tree-preview,{
    padding: 18px !important;
}

.block,
.json-output,
.md-output,
.tree-preview {
    background: #0000008c !important;
    border-radius: 10px !important;
    box-shadow:
        0 0 18px #000000d9,
        inset 0 0 14px #ffffff0d !important;
}


/* ============================================================
   LABELS
   ============================================================ */
label {
    background: #00000073;
    padding: 4px 6px;
    border-radius: 4px;
    text-align: left !important;
}

/* ============================================================
   DROPDOWN ARROWS
   ============================================================ */
select {
    appearance: none;
    background-image:
        linear-gradient(45deg, transparent 50%, gold 50%),
        linear-gradient(135deg, gold 50%, transparent 50%),
        linear-gradient(to right, #00000055, #00000055);
    background-position:
        calc(100% - 20px) calc(50% - 6px),
        calc(100% - 15px) calc(50% - 6px),
        100% 0;
    background-size: 6px 6px, 6px 6px, 2.5em 100%;
    background-repeat: no-repeat;
}

select:hover {
    border-color: #ffd700 !important;
    box-shadow: 0 0 12px #ffd700;
}

select option {
    background: #000 !important;
    color: #ffe9a6 !important;
}

/* ============================================================
   COLLAPSIBLE SUMMARY
   ============================================================ */
summary {
    background: #0000008c;
    padding: 8px 12px;
    border-radius: 6px;
    font-weight: 700;
    color: #ffe9a6;
    cursor: pointer;
}

/* ============================================================
   SIDEBAR ALIGNMENT
   ============================================================ */
td { padding: 4px; }

.left-pane table,
.left-pane td {
    padding: 0 !important;
    margin: 0 !important;
    border-spacing: 0 !important;
}

.left-pane .block {
    margin-bottom: 14px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

.left-pane label { text-align: left !important; }

.left-pane select,
.left-pane input,
.left-pane textarea {
    text-align: right !important;
    padding-right: 14px !important;
}

.left-pane button {
    text-align: center !important;
    width: 100% !important;
}

.left-pane td { vertical-align: top !important; }

.left-pane .block {
    width: 100% !important;
    box-sizing: border-box !important;
}

.left-pane table {
    width: 100% !important;
    table-layout: fixed !important;
}

/* ============================================================
   FORM AREA ALIGNMENT
   ============================================================ */
#formArea label {
    text-align: left !important;
    display: block !important;
    margin-bottom: 6px !important;
    padding-left: 4px !important;
}

#formArea input,
#formArea textarea,
#formArea select {
    text-align: right !important;
    width: 100% !important;
    padding-right: 14px !important;
    display: block !important;
    margin-left: auto !important;
}

#formArea {
    padding-left: 10px !important;
    padding-right: 10px !important;
}
/* ============================================================
   PROFESSIONAL POLISH LAYER — ENTERPRISE FINISH
   ============================================================ */

/* --- Typography refinement --- */
body, input, textarea, select, button, summary, label {
    font-family: "Segoe UI", system-ui, sans-serif !important;
    letter-spacing: 0.3px;
}

/* --- Cleaner panel edges --- */
.block,
.json-output,
.md-output,
.tree-preview,{
    border-radius: 12px !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    box-shadow:
        0 4px 18px rgba(0, 0, 0, 0.65),
        inset 0 0 12px rgba(255, 255, 255, 0.06) !important;
}

/* --- Professional spacing rhythm --- */
.block,
.json-output,
.md-output,
.tree-preview,{
    padding: 22px !important;
    margin-bottom: 18px !important;
}

/* --- Banner refinement --- */
#rru-header {
    height: 240px !important;
    background-position: center top !important;
    background-color: rgba(0, 0, 0, 0.35) !important;

}


/* --- Subtitle refinement --- */


/* --- Input refinement --- */
input,
textarea,
select {
    border-radius: 8px !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    background: rgba(0, 0, 0, 0.55) !important;
    box-shadow:
        0 0 10px rgba(0, 0, 0, 0.55),
        inset 0 0 10px rgba(255, 255, 255, 0.05) !important;
}

/* --- Button refinement --- */
button {
    border-radius: 8px !important;
    font-weight: 600 !important;
    letter-spacing: 0.4px;
    padding: 12px 16px !important;
    background: rgba(0, 0, 0, 0.45) !important;
    box-shadow:
        0 0 14px rgba(255, 215, 0, 0.35),
        inset 0 0 12px rgba(255, 215, 0, 0.25) !important;
}

button:hover {
    background: rgba(0, 0, 0, 0.6) !important;
    box-shadow:
        0 0 22px rgba(255, 215, 0, 0.55),
        inset 0 0 16px rgba(255, 215, 0, 0.35) !important;
}

/* --- Sidebar refinement --- */
.left-pane .block {
    padding: 18px 14px !important;
}

.left-pane label {
    font-weight: 600;
    opacity: 0.95;
}

/* --- Tree preview refinement --- */
.tree-node {
    padding: 10px 14px !important;
    border-left-width: 3px !important;
    background: rgba(0, 0, 0, 0.55) !important;
}

/* --- Summary refinement --- */
summary {
    padding: 10px 14px !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    background: rgba(0, 0, 0, 0.55) !important;
}

/* --- Professional scrollbars --- */
::-webkit-scrollbar {
    width: 10px;
}
::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.35);
}
::-webkit-scrollbar-thumb {
    background: rgba(255, 215, 0, 0.45);
    border-radius: 6px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 215, 0, 0.65);
}
/* ============================================================
   TORON-SEPARATOR v2.0 — CLEAN PROFESSIONAL BUILD
   AUTHOR: Demon / Copilot
   PURPOSE: Ultra-clean TRON electron sweep with rainbow halo
   ============================================================ */

/* TRACK BAR — black glass rail */
#load-sep {
    width: 100%;
    height: 4px;
    position: relative;
    overflow: hidden;

    background: rgba(0, 0, 0, 0.65);
    border-radius: 4px;

    box-shadow:
        inset 0 0 6px rgba(0, 0, 0, 0.85),
        0 0 10px rgba(0, 255, 255, 0.25),
        0 0 14px rgba(255, 60, 0, 0.25);
}

/* ELECTRON ORB — TRON plasma core */
#load-tron {
    position: absolute;
    top: 50%;
    left: -20%;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    transform: translateY(-50%);

    background: radial-gradient(circle,
        rgba(255,255,255,1) 0%,
        rgba(190, 0, 255, 1) 40%,
        rgba(140, 0, 200, 0.35) 70%,
        rgba(140, 0, 200, 0.0) 100%
    );

    animation:
        tronMove 1.8s linear infinite,
        tronPulse 1.2s ease-in-out infinite,
        tronPing 1.4s ease-in-out infinite,
        tronRainbow 3s linear infinite,
        tronFlicker 0.12s infinite;
}

/* MOVEMENT — sweep across rail */
@keyframes tronMove {
    0%   { left: -20%; opacity: 0; }
    15%  { opacity: 1; }
    50%  { left: 50%; opacity: 1; }
    85%  { opacity: 0.4; }
    100% { left: 120%; opacity: 0; }
}

/* BREATHING PULSE — LED bloom */
@keyframes tronPulse {
    0%   { transform: translateY(-50%) scale(0.85); }
    50%  { transform: translateY(-50%) scale(1.35); }
    100% { transform: translateY(-50%) scale(0.85); }
}

/* CORE PING — blur + brighten */
@keyframes tronPing {
    0% {
        filter: blur(0px);
        background: radial-gradient(circle,
            rgba(255,255,255,1) 0%,
            rgba(190, 0, 255, 1) 40%,
            rgba(140, 0, 200, 0.35) 70%,
            rgba(140, 0, 200, 0.0) 100%
        );
    }
    50% {
        filter: blur(2px);
        background: radial-gradient(circle,
            rgba(255,255,255,1) 0%,
            rgba(230, 0, 255, 1) 45%,
            rgba(190, 0, 255, 0.55) 75%,
            rgba(190, 0, 255, 0.0) 100%
        );
    }
    100% { filter: blur(0px); }
}

/* RAINBOW HALO — full-spectrum glow */
@keyframes tronRainbow {
    0%   { box-shadow: 0 0 12px #ff0000, 0 0 28px #ff0000, 0 0 48px #ff0000; }
    16%  { box-shadow: 0 0 12px #ff7f00, 0 0 28px #ff7f00, 0 0 48px #ff7f00; }
    33%  { box-shadow: 0 0 12px #ffff00, 0 0 28px #ffff00, 0 0 48px #ffff00; }
    50%  { box-shadow: 0 0 12px #00ff00, 0 0 28px #00ff00, 0 0 48px #00ff00; }
    66%  { box-shadow: 0 0 12px #0000ff, 0 0 28px #0000ff, 0 0 48px #0000ff; }
    83%  { box-shadow: 0 0 12px #4b0082, 0 0 28px #4b0082, 0 0 48px #4b0082; }
    100% { box-shadow: 0 0 12px #8f00ff, 0 0 28px #8f00ff, 0 0 48px #8f00ff; }
}

/* MICRO FLICKER — LED shimmer */
@keyframes tronFlicker {
    0%   { opacity: 0.96; transform: translateY(-50%) scale(1.00); }
    50%  { opacity: 1.00; transform: translateY(-50%) scale(1.02); }
    100% { opacity: 0.97; transform: translateY(-50%) scale(0.99); }
}
