@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root{
    --bg:#090b10;
    --surface:#11151c;
    --surface-2:#171d26;
    --surface-3:#1d2530;

    --border:rgba(255,255,255,.08);
    --border-hover:rgba(94,234,212,.35);

    --text:#f4f7fb;
    --text-dim:#9ba6b6;
    --text-faint:#667085;

    --accent:#5eead4;
    --accent-soft:rgba(94,234,212,.12);

    --amber:#fbbf24;
    --amber-soft:rgba(251,191,36,.14);

    --red:#fb7185;
    --red-soft:rgba(251,113,133,.14);

    --radius:14px;
    --radius-sm:9px;

    --shadow:
        0 15px 40px rgba(0,0,0,.35);

    --transition:
        .25s ease;
}


*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}


body{
    min-height:100vh;

    background:
        radial-gradient(
            circle at top left,
            rgba(94,234,212,.08),
            transparent 35%
        ),
        radial-gradient(
            circle at bottom right,
            rgba(99,102,241,.08),
            transparent 35%
        ),
        var(--bg);

    color:var(--text);

    font-family:'Poppins',sans-serif;

    font-size:14px;
}


code,
.mono{
    font-family:
    "JetBrains Mono",
    monospace;
}


h1,h2,h3,h4{
    font-weight:600;
    letter-spacing:-.03em;
}


p{
    color:var(--text-dim);
}


button,
input,
select,
textarea{
    font-family:inherit;
}


::-webkit-scrollbar{
    width:8px;
}

::-webkit-scrollbar-thumb{
    background:#303846;
    border-radius:99px;
}


/* =====================
   TERMINAL BAR
===================== */


.termbar{
    height:54px;

    display:flex;
    align-items:center;

    gap:12px;

    padding:0 18px;

    background:
        rgba(17,21,28,.8);

    backdrop-filter:
        blur(16px);

    border-bottom:
        1px solid var(--border);

    position:sticky;
    top:0;

    z-index:20;
}


.termbar .dots{
    display:flex;
    gap:7px;
}


.termbar .dot{
    width:11px;
    height:11px;
    border-radius:50%;
}


.termbar .dot.r{
    background:#fb7185;
}

.termbar .dot.a{
    background:#fbbf24;
}

.termbar .dot.g{
    background:#5eead4;
}


.termbar .path{
    font-size:13px;
    color:var(--text-dim);
}


.termbar .path .user{
    color:var(--accent);
}


.termbar .spacer{
    flex:1;
}


.logout{
    background:transparent;

    border:1px solid var(--border);

    color:var(--text-dim);

    padding:7px 13px;

    border-radius:10px;

    cursor:pointer;

    transition:var(--transition);
}


.logout:hover{
    color:var(--red);

    border-color:var(--red);

    transform:translateY(-1px);
}

a{text-decoration: none;}

/* =====================
   LAYOUT
===================== */


.shell{
    display:flex;

    min-height:
    calc(100vh - 54px);
}



.sidebar{

    width:220px;

    padding:20px 12px;

    background:
        rgba(17,21,28,.75);

    backdrop-filter:
        blur(18px);

    border-right:
        1px solid var(--border);
}


.sidebar a {
  display: block;
  padding: 11px 15px;
  margin-bottom: 5px;
  border-radius: 10px;
  color: var(--text-dim);
  font-size: 14px;
  transition: var(--transition);
  text-decoration: none;
}



.sidebar a:hover{

    background:
        var(--surface-2);

    color:var(--text);

    transform:
        translateX(4px);
}


.sidebar a.active{

    background:
        var(--accent-soft);

    color:
        var(--accent);

    box-shadow:
        inset 0 0 0 1px rgba(94,234,212,.15);
}



main{

    flex:1;

    max-width:1000px;

    padding:
        38px 42px;
}



/* =====================
   TITLES
===================== */


h1{

    font-size:24px;

}


h2{

    margin-top:30px;

    margin-bottom:14px;

    font-size:15px;

    color:var(--text-dim);

}


.subtitle{

    margin-top:5px;

    margin-bottom:25px;

    color:var(--text-dim);

}



/* =====================
   CARDS
===================== */


.card{

    background:
        rgba(17,21,28,.85);

    backdrop-filter:
        blur(14px);

    border:
        1px solid var(--border);

    border-radius:
        var(--radius);

    padding:
        20px;

    margin-bottom:
        14px;

    box-shadow:
        var(--shadow);

    transition:
        var(--transition);
}


.card:hover{

    transform:
        translateY(-3px);

    border-color:
        var(--border-hover);
}



.card-row{

    display:flex;

    justify-content:space-between;

    align-items:center;

    gap:15px;
}



.card h3{

    font-size:16px;

    margin-bottom:5px;
}


.card p{

    font-size:13px;

}



/* =====================
   BADGES
===================== */


.badge{

    display:inline-flex;

    align-items:center;

    padding:
        5px 11px;

    border-radius:
        999px;

    font-size:11px;

    font-weight:500;
}


.badge.trial{

    background:
        var(--amber-soft);

    color:
        var(--amber);
}


.badge.confirmed,
.badge.open{

    background:
        var(--accent-soft);

    color:
        var(--accent);
}


.badge.closed{

    background:
        rgba(255,255,255,.06);

    color:
        var(--text-faint);
}


.badge.founder{

    background:
        rgba(167,139,250,.15);

    color:
        #c4b5fd;
}



/* =====================
   FORMS
===================== */


input,
select,
textarea{

    width:100%;

    background:
        var(--surface-2);

    border:
        1px solid transparent;

    color:
        var(--text);

    padding:
        11px 13px;

    border-radius:
        10px;

    transition:
        var(--transition);
}


input:focus,
select:focus,
textarea:focus{

    outline:none;

    border-color:
        var(--accent);

    box-shadow:
        0 0 0 4px rgba(94,234,212,.1);
}


label{

    display:block;

    margin:
        14px 0 6px;

    color:
        var(--text-dim);

    font-size:12px;
}



/* =====================
   BUTTONS
===================== */


button{

    padding:
        10px 18px;

    border-radius:
        10px;

    border:
        1px solid var(--accent);

    background:
        var(--accent-soft);

    color:
        var(--accent);

    cursor:pointer;

    transition:
        var(--transition);

    font-weight:600;
}


button:hover{

    background:
        var(--accent);

    color:#052622;

    transform:
        translateY(-2px);
}


button.secondary{

    border-color:
        var(--border);

    background:
        transparent;

    color:
        var(--text-dim);
}


button.secondary:hover{

    background:
        var(--surface-2);

    color:
        var(--text);
}


button.danger{

    border-color:
        var(--red);

    background:
        var(--red-soft);

    color:
        var(--red);
}



/* =====================
   ALERT
===================== */


.error-msg,
.ok-msg{

    padding:
        12px 15px;

    border-radius:
        12px;

    margin:
        15px 0;

    font-size:13px;
}


.error-msg{

    background:
        var(--red-soft);

    border:
        1px solid rgba(251,113,133,.3);

    color:
        #fecdd3;
}


.ok-msg{

    background:
        var(--accent-soft);

    border:
        1px solid rgba(94,234,212,.3);

    color:
        var(--accent);
}



/* =====================
   LOGIN
===================== */


.login-wrap{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;
}


.login-box{

    width:360px;

    background:
        rgba(17,21,28,.9);

    border:
        1px solid var(--border);

    border-radius:
        20px;

    padding:
        32px;

    box-shadow:
        var(--shadow);
}



/* =====================
   VOTING
===================== */


.vote-progress{

    height:8px;

    display:flex;

    overflow:hidden;

    background:
        var(--surface-2);

    border-radius:
        99px;

    margin:
        12px 0;
}


.vote-progress .for{

    background:
        var(--accent);
}


.vote-progress .against{

    background:
        var(--red);
}


.vote-progress .abstain{

    background:
        #64748b;
}



.results-grid{

    display:grid;

    grid-template-columns:
        repeat(4,1fr);

    gap:12px;

    margin-top:15px;
}


.results-grid .stat{

    padding:15px;

    background:
        var(--surface-2);

    border:
        1px solid var(--border);

    border-radius:
        12px;

    text-align:center;

    transition:
        var(--transition);
}


.results-grid .stat:hover{

    transform:
        translateY(-3px);
}


.results-grid .num{

    font-size:22px;

    font-weight:700;
}


.results-grid .lbl{

    color:
        var(--text-dim);

    font-size:12px;
}



/* =====================
   RESPONSIVE
===================== */


@media(max-width:800px){

    .sidebar{

        width:70px;

    }


    .sidebar a{

        font-size:0;

    }


    main{

        padding:
        25px 18px;

    }


    .results-grid{

        grid-template-columns:
        repeat(2,1fr);

    }

}


@media(max-width:500px){

    .shell{

        display:block;

    }


    .sidebar{

        width:100%;

        border-right:none;

    }


    .card-row{

        flex-direction:column;

        align-items:flex-start;

    }

}