/* ==========================================================
   PAULINA V2
   Debug Visualizer
========================================================== */

:root{

    --bg:#0d1117;
    --panel:#161b22;
    --panel2:#1f2630;

    --border:#30363d;

    --text:#e6edf3;
    --muted:#8b949e;

    --green:#3fb950;
    --red:#f85149;
    --yellow:#d29922;
    --blue:#58a6ff;

    --radius:12px;

    --shadow:
        0 4px 18px rgba(0,0,0,.35);

    --mono:
        Consolas,
        "Cascadia Code",
        monospace;

}

/* ========================================================== */

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

body{

    background:var(--bg);

    color:var(--text);

    font-family:

        system-ui,

        Segoe UI,

        sans-serif;

    padding:24px;

}

/* ========================================================== */

#app{

    max-width:1600px;

    margin:auto;

}

/* ========================================================== */

.topbar{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:24px;

}

.title h1{

    font-size:32px;

}

.version{

    color:var(--muted);

    font-size:14px;

}

/* ========================================================== */

.status{

    display:flex;

    gap:12px;

    align-items:center;

}

.badge{

    padding:

        8px 16px;

    border-radius:999px;

    font-size:13px;

    font-weight:600;

}

.waiting{

    background:#444;

}

.ok{

    background:var(--green);

    color:white;

}

.error{

    background:var(--red);

    color:white;

}

.warning{

    background:var(--yellow);

    color:black;

}

.time{

    color:var(--muted);

    font-size:13px;

}

/* ========================================================== */

main{

    display:grid;

    gap:24px;

}

/* ========================================================== */

.card{

    background:var(--panel);

    border:

        1px solid var(--border);

    border-radius:var(--radius);

    padding:22px;

    box-shadow:var(--shadow);

}

/* ========================================================== */

.card h2{

    margin-bottom:18px;

}

/* ========================================================== */

textarea{

    width:100%;

    min-height:280px;

    resize:vertical;

    background:#0b0f15;

    color:var(--text);

    border:

        1px solid var(--border);

    border-radius:10px;

    padding:18px;

    font-family:var(--mono);

    font-size:14px;

    line-height:1.55;

}

/* ========================================================== */

.toolbar{

    display:flex;

    gap:12px;

    margin-top:16px;

    flex-wrap:wrap;

}

/* ========================================================== */

button{

    cursor:pointer;

    border:none;

    border-radius:8px;

    padding:

        10px 18px;

    font-size:14px;

    transition:.2s;

}

button:hover{

    transform:translateY(-1px);

}

#processBtn{

    background:var(--green);

    color:white;

}

#clearBtn{

    background:#444;

    color:white;

}

#copyJsonBtn,
#copyJsonBtnTop{

    background:var(--blue);

    color:white;

}

#downloadBtn{

    background:#5b21b6;

    color:white;

}

/* ========================================================== */

.info-row{

    margin-top:14px;

    display:flex;

    gap:24px;

    color:var(--muted);

    font-size:13px;

}

/* ========================================================== */

.grid{

    display:grid;

    grid-template-columns:

        repeat(2,1fr);

    gap:18px;

}

.full{

    grid-column:1/-1;

}

/* ========================================================== */

.field{

    display:flex;

    flex-direction:column;

    gap:6px;

}

.field label{

    color:var(--muted);

    font-size:12px;

    text-transform:uppercase;

    letter-spacing:.08em;

}

.field div{

    background:var(--panel2);

    border-radius:8px;

    padding:12px;

    min-height:46px;

}

/* ========================================================== */

#content{

    white-space:pre-wrap;

    font-family:var(--mono);

    line-height:1.6;

}

/* ========================================================== */

#tags{

    display:flex;

    flex-wrap:wrap;

    gap:8px;

}

.tag{

    background:#2d333b;

    padding:

        5px 12px;

    border-radius:999px;

    font-size:13px;

}

/* ========================================================== */

#warnings{

    display:flex;

    flex-direction:column;

    gap:10px;

}

.warning-item{

    background:#352900;

    border-left:

        4px solid var(--yellow);

    padding:12px;

    border-radius:6px;

}

/* ========================================================== */

.card-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:14px;

}

/* ========================================================== */

pre{

    overflow:auto;

    background:#0b0f15;

    border:

        1px solid var(--border);

    border-radius:8px;

    padding:16px;

    font-family:var(--mono);

    font-size:13px;

    line-height:1.5;

}

/* ========================================================== */

.collapsible{

    margin-bottom:16px;

}

#toggleDebug{

    width:100%;

    background:#2d333b;

    color:white;

}

/* ========================================================== */

.hidden{

    display:none;

}

/* ========================================================== */

.debug-block{

    margin-bottom:18px;

}

.debug-block h3{

    margin-bottom:8px;

    color:var(--blue);

    font-size:15px;

}

/* ========================================================== */

.json-key{

    color:#79c0ff;

}

.json-string{

    color:#a5d6ff;

}

.json-number{

    color:#ffa657;

}

.json-bool{

    color:#56d364;

}

.json-null{

    color:#ff7b72;

}

/* ========================================================== */

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-thumb{

    background:#3b4450;

    border-radius:10px;

}

::-webkit-scrollbar-track{

    background:#111;

}

/* ========================================================== */

@media(max-width:900px){

    .grid{

        grid-template-columns:1fr;

    }

    .topbar{

        flex-direction:column;

        align-items:flex-start;

        gap:16px;

    }

}