:root{
    --bg:#07090f;
    --bg-soft:#0b101b;
    --bg-glow:#111827;

    --panel:#101624;
    --panel-2:#141b2d;
    --panel-3:#192238;
    --panel-hover:#202b45;

    --line:#29354f;
    --line-soft:rgba(255,255,255,.08);

    --text:#f8fafc;
    --text-2:#d9e1ef;
    --muted:#98a6bd;
    --muted-2:#6f7d93;

    --red:#ef4444;
    --red-2:#b91c1c;
    --blue:#5865f2;
    --blue-2:#4752c4;
    --green:#22c55e;
    --amber:#f59e0b;
    --purple:#a855f7;

    --discord-dark:#1e1f22;
    --discord-side:#2b2d31;
    --discord-chat:#313338;
    --discord-hover:#393c43;
    --discord-input:#383a40;

    --radius-sm:10px;
    --radius:16px;
    --radius-lg:22px;
    --radius-xl:30px;

    --shadow:0 20px 70px rgba(0,0,0,.42);
    --shadow-soft:0 12px 32px rgba(0,0,0,.28);
    --ring:0 0 0 4px rgba(88,101,242,.18);
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    font-family:Inter,Arial,sans-serif;
    color:var(--text);
    background:
        radial-gradient(circle at 12% 0%,rgba(239,68,68,.18),transparent 34%),
        radial-gradient(circle at 90% 8%,rgba(88,101,242,.16),transparent 34%),
        linear-gradient(180deg,#080a10,#05070c);
}

body.vpt-body{
    min-height:100vh;
}

a{
    color:inherit;
    text-decoration:none;
}

button,
input,
textarea,
select{
    font-family:inherit;
}

button{
    user-select:none;
}

input,
textarea,
select{
    width:100%;
    color:var(--text)!important;
    background:#101827!important;
    border:1px solid var(--line);
    border-radius:14px;
    padding:12px 14px;
    outline:none;
    caret-color:#fff;
    transition:.16s ease;
}

textarea{
    min-height:100px;
    resize:vertical;
    line-height:1.5;
}

input::placeholder,
textarea::placeholder{
    color:#8794aa!important;
}

input:focus,
textarea:focus,
select:focus{
    border-color:var(--blue);
    box-shadow:var(--ring);
}

::-webkit-scrollbar{
    width:10px;
    height:10px;
}

::-webkit-scrollbar-track{
    background:rgba(255,255,255,.03);
}

::-webkit-scrollbar-thumb{
    background:#33415f;
    border-radius:999px;
    border:2px solid transparent;
    background-clip:content-box;
}

::-webkit-scrollbar-thumb:hover{
    background:#4a5879;
    background-clip:content-box;
}

/* Shared */

.vpt-muted{color:var(--muted)}
.vpt-txt-warn{color:#fde68a!important}
.vpt-txt-danger{color:#fecaca!important}
.vpt-txt-good{color:#86efac!important}

.vpt-eyebrow{
    margin:0 0 8px;
    color:#ff6b6b;
    text-transform:uppercase;
    font-size:12px;
    font-weight:900;
    letter-spacing:.16em;
}

.vpt-card,
.vpt-admin-panel,
.vpt-report-card{
    background:linear-gradient(180deg,rgba(17,24,39,.94),rgba(13,19,32,.94));
    border:1px solid var(--line-soft);
    border-radius:var(--radius-xl);
    padding:24px;
    box-shadow:var(--shadow-soft);
}

.vpt-card h1,
.vpt-card h2,
.vpt-card h3,
.vpt-admin-panel h1,
.vpt-admin-panel h2,
.vpt-admin-panel h3,
.vpt-report-card h1,
.vpt-report-card h2,
.vpt-report-card h3{
    margin-top:0;
}

.vpt-btn{
    min-height:42px;
    border:1px solid var(--line);
    background:linear-gradient(180deg,#1b2438,#151d2f);
    color:var(--text);
    border-radius:14px;
    padding:11px 16px;
    font-weight:850;
    cursor:pointer;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    transition:transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease, opacity .16s ease;
}

.vpt-btn:hover{
    transform:translateY(-1px);
    background:linear-gradient(180deg,#222d47,#182238);
    border-color:#4b5b7c;
    box-shadow:0 10px 22px rgba(0,0,0,.22);
}

.vpt-btn:active{
    transform:translateY(0);
}

.vpt-btn:disabled{
    opacity:.55;
    cursor:not-allowed;
    transform:none;
}

.vpt-btn.primary{
    background:linear-gradient(135deg,#ff4141,#c51224);
    border-color:#ff5a5a;
    color:#fff;
    box-shadow:0 14px 34px rgba(239,68,68,.28);
}

.vpt-btn.primary:hover{
    background:linear-gradient(135deg,#ff5555,#d3162a);
}

.vpt-btn.discord{
    background:linear-gradient(135deg,#5865f2,#4752c4);
    border-color:#7580ff;
    color:white;
}

.vpt-btn.ghost{
    background:rgba(255,255,255,.035);
}

.vpt-btn.danger{
    background:linear-gradient(180deg,#35131a,#220b11);
    border-color:#7f1d1d;
    color:#fecaca;
}

.vpt-btn.block{
    width:100%;
}

.vpt-btn.tiny{
    min-height:34px;
    padding:7px 10px;
    font-size:12px;
    border-radius:10px;
}

.vpt-icon-btn{
    width:42px;
    height:42px;
    border:1px solid var(--line);
    background:#151d30;
    color:var(--text);
    border-radius:13px;
    cursor:pointer;
}

.vpt-brand-badge{
    width:46px;
    height:46px;
    border-radius:15px;
    background:linear-gradient(135deg,#ff3b3b,#990e1c);
    display:grid;
    place-items:center;
    font-weight:950;
    font-size:20px;
    box-shadow:0 16px 35px rgba(239,68,68,.32);
}

.vpt-brand-badge.small{
    width:36px;
    height:36px;
    border-radius:12px;
    font-size:15px;
}

.vpt-empty{
    padding:32px;
    border:1px dashed #384763;
    border-radius:20px;
    color:var(--muted);
    background:rgba(255,255,255,.025);
    text-align:center;
}

.vpt-tag,
.vpt-result-pill,
.vpt-flag{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 10px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
    border:1px solid var(--line);
    background:#172033;
}

.vpt-tag.green,
.result-pass{
    color:#86efac;
    background:rgba(34,197,94,.12);
    border-color:rgba(34,197,94,.38);
}

.vpt-tag.red,
.result-fail{
    color:#fecaca;
    background:rgba(239,68,68,.12);
    border-color:rgba(239,68,68,.38);
}

.vpt-tag.amber,
.result-needs-review{
    color:#fde68a;
    background:rgba(245,158,11,.12);
    border-color:rgba(245,158,11,.38);
}

.vpt-tag.blue{
    color:#c7d2fe;
    background:rgba(88,101,242,.14);
    border-color:rgba(88,101,242,.38);
}

.vpt-tag.grey{
    color:#cbd5e1;
    background:rgba(148,163,184,.10);
}

.vpt-flag.warn{
    color:#fde68a;
    background:rgba(245,158,11,.12);
    border-color:rgba(245,158,11,.35);
}

.vpt-flag.danger{
    color:#fecaca;
    background:rgba(239,68,68,.13);
    border-color:rgba(239,68,68,.36);
}

.vpt-flag.stale-flag{
    color:#dbeafe;
    border-color:rgba(59,130,246,.35);
}

/* Login */

.vpt-auth-body{
    min-height:100vh;
    overflow-x:hidden;
}

.vpt-auth-page{
    min-height:100vh;
    position:relative;
    display:grid;
    place-items:center;
    padding:36px 20px;
}

.vpt-auth-glow{
    position:absolute;
    width:460px;
    height:460px;
    filter:blur(60px);
    opacity:.28;
    border-radius:50%;
    pointer-events:none;
}

.vpt-auth-glow.glow-red{
    background:var(--red);
    left:-140px;
    top:-120px;
}

.vpt-auth-glow.glow-blue{
    background:var(--blue);
    right:-140px;
    bottom:-120px;
}

.vpt-auth-shell{
    width:min(1120px,100%);
    display:grid;
    grid-template-columns:minmax(360px,520px) 1fr;
    gap:22px;
    position:relative;
    z-index:2;
}

.vpt-auth-card.upgraded-login{
    padding:30px;
    border-radius:32px;
    background:
        linear-gradient(180deg,rgba(17,24,39,.96),rgba(12,18,31,.96)),
        radial-gradient(circle at top right,rgba(239,68,68,.18),transparent 30%);
    border:1px solid rgba(255,255,255,.10);
    box-shadow:var(--shadow);
}

.vpt-auth-top{
    display:flex;
    gap:16px;
    align-items:center;
    margin-bottom:24px;
}

.vpt-auth-top h1{
    margin:0;
    font-size:clamp(28px,4vw,40px);
    letter-spacing:-.05em;
}

.vpt-auth-top p:last-child{
    margin:4px 0 0;
    color:var(--muted);
    font-weight:750;
}

.auth-badge{
    width:60px;
    height:60px;
    border-radius:20px;
    font-size:24px;
}

.vpt-auth-info-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:10px;
    margin-bottom:20px;
}

.vpt-auth-info-grid div{
    background:rgba(255,255,255,.035);
    border:1px solid var(--line-soft);
    border-radius:17px;
    padding:12px;
}

.vpt-auth-info-grid span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:5px;
}

.vpt-auth-info-grid strong{
    font-size:13px;
}

.vpt-signed-in.upgraded{
    display:flex;
    align-items:center;
    gap:12px;
    border:1px solid rgba(34,197,94,.28);
    background:rgba(34,197,94,.08);
    border-radius:20px;
    padding:14px;
    margin-bottom:14px;
}

.vpt-signed-avatar{
    width:44px;
    height:44px;
    border-radius:15px;
    background:linear-gradient(135deg,var(--blue),var(--red));
    display:grid;
    place-items:center;
    font-weight:950;
}

.vpt-signed-in strong{
    display:block;
}

.vpt-signed-in span{
    color:var(--muted);
    font-size:13px;
}

.vpt-signed-dot{
    margin-left:auto;
    width:11px;
    height:11px;
    border-radius:50%;
    background:var(--green);
    box-shadow:0 0 18px var(--green);
}

.auth-main-btn{
    height:50px;
    font-size:15px;
}

.vpt-auth-divider{
    display:grid;
    grid-template-columns:1fr auto 1fr;
    gap:12px;
    align-items:center;
    margin:20px 0;
}

.vpt-auth-divider span{
    height:1px;
    background:var(--line);
}

.vpt-auth-divider p{
    margin:0;
    color:var(--muted);
    font-size:12px;
    font-weight:850;
    text-transform:uppercase;
    letter-spacing:.08em;
}

.vpt-password-box{
    background:rgba(5,8,14,.28);
    border:1px solid var(--line-soft);
    border-radius:22px;
    padding:16px;
}

.vpt-field-label{
    display:block;
    margin-bottom:8px;
    color:var(--text-2);
    font-weight:850;
    font-size:13px;
}

.vpt-password-input-wrap{
    display:flex;
    gap:8px;
    align-items:center;
}

.vpt-password-input-wrap input{
    flex:1;
}

.vpt-password-toggle{
    width:auto;
    border:1px solid var(--line);
    color:var(--muted);
    background:#111827;
    padding:0 12px;
    border-radius:12px;
    height:43px;
    cursor:pointer;
    font-weight:800;
}

.auth-password-btn{
    margin-top:12px;
}

.vpt-login-message{
    min-height:22px;
    margin-top:10px;
    font-size:13px;
    font-weight:800;
}

.vpt-login-message.danger{color:#fecaca}
.vpt-login-message.success{color:#86efac}

.vpt-auth-bottom{
    margin-top:18px;
    color:var(--muted);
    font-size:14px;
}

.vpt-auth-bottom a{
    color:#c7d2fe;
    font-weight:850;
}

.vpt-auth-side-card{
    border-radius:32px;
    background:
        radial-gradient(circle at top left,rgba(88,101,242,.20),transparent 34%),
        linear-gradient(180deg,rgba(17,24,39,.75),rgba(13,19,32,.72));
    border:1px solid rgba(255,255,255,.10);
    box-shadow:var(--shadow);
    padding:34px;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    min-height:520px;
}

.vpt-auth-side-card h2{
    margin:0 0 12px;
    font-size:clamp(32px,5vw,56px);
    letter-spacing:-.06em;
    line-height:.95;
}

.vpt-auth-side-card p{
    color:var(--text-2);
    line-height:1.6;
    max-width:520px;
}

.vpt-auth-feature-list{
    display:grid;
    gap:10px;
    margin-top:20px;
}

.vpt-auth-feature-list div{
    padding:12px 14px;
    border-radius:16px;
    background:rgba(255,255,255,.035);
    border:1px solid var(--line-soft);
    color:var(--text-2);
    font-weight:780;
}

.vpt-auth-feature-list span{
    color:var(--green);
    margin-right:8px;
}

/* Nav */

.vpt-nav{
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(8,10,16,.82);
    backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line-soft);
}

.vpt-nav-inner{
    max-width:1180px;
    margin:0 auto;
    padding:14px 20px;
    display:flex;
    align-items:center;
    gap:12px;
}

.vpt-nav-title{
    display:flex;
    flex-direction:column;
    gap:2px;
}

.vpt-nav-title span{
    color:var(--muted);
    font-size:13px;
}

/* Simulation */

.vpt-sim-body{
    overflow:hidden;
    background:var(--discord-dark);
}

.vpt-topbar{
    height:58px;
    background:#101217;
    border-bottom:1px solid #262a31;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 14px;
    position:relative;
    z-index:40;
}

.vpt-topbar-left,
.vpt-topbar-right{
    display:flex;
    align-items:center;
    gap:12px;
}

.vpt-topbar-title{
    display:flex;
    flex-direction:column;
}

.vpt-topbar-title span{
    color:var(--muted);
    font-size:12px;
}

.vpt-tab-status{
    font-size:12px;
    font-weight:900;
    color:#86efac;
    background:rgba(34,197,94,.10);
    border:1px solid rgba(34,197,94,.30);
    padding:7px 10px;
    border-radius:999px;
}

.vpt-tab-status.away{
    color:#fde68a;
    background:rgba(245,158,11,.12);
    border-color:rgba(245,158,11,.35);
}

.vpt-sim-timer{
    background:#1c2230;
    border:1px solid #2c3445;
    border-radius:999px;
    padding:7px 12px;
    font-weight:900;
}

.vpt-progress-mini{
    width:150px;
    height:8px;
    border-radius:999px;
    background:#202532;
    overflow:hidden;
}

.vpt-progress-mini-fill{
    height:100%;
    width:0%;
    background:linear-gradient(90deg,var(--red),var(--blue));
    transition:.25s ease;
}

.vpt-discord{
    height:calc(100vh - 58px);
    display:grid;
    grid-template-columns:72px 280px minmax(0,1fr) 350px;
    background:var(--discord-chat);
}

.vpt-guild-rail{
    background:var(--discord-dark);
    padding:12px 0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;
}

.vpt-guild-pill{
    width:48px;
    height:48px;
    border-radius:18px;
    background:#313338;
    display:grid;
    place-items:center;
    font-weight:900;
    cursor:pointer;
    transition:.15s ease;
}

.vpt-guild-pill.active{
    border-radius:16px;
    background:linear-gradient(135deg,#ff3b3b,#98111e);
}

.vpt-guild-pill:hover{
    border-radius:14px;
    background:#3c3f46;
}

.vpt-guild-pill.add{
    color:#22c55e;
}

.vpt-guild-sep{
    width:32px;
    height:2px;
    background:#363a43;
    border-radius:999px;
}

.vpt-channels{
    background:var(--discord-side);
    display:flex;
    flex-direction:column;
    min-height:0;
}

.vpt-server-head{
    height:52px;
    padding:0 14px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    border-bottom:1px solid #22252b;
    font-weight:900;
}

.vpt-channel-scroll{
    flex:1;
    overflow:auto;
    padding:10px 8px;
}

.vpt-cat{
    margin-bottom:14px;
}

.vpt-cat-label{
    color:#949ba4;
    font-size:11px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
    padding:8px 8px 4px;
}

.vpt-channel{
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 9px;
    border-radius:8px;
    color:#b5bac1;
    cursor:pointer;
    font-weight:700;
    font-size:14px;
}

.vpt-channel:hover,
.vpt-channel.active{
    background:var(--discord-hover);
    color:white;
}

.vpt-channel-icon{
    color:#8d94a0;
    width:18px;
    text-align:center;
}

.vpt-user-strip{
    min-height:58px;
    padding:8px;
    background:#232428;
    display:flex;
    align-items:center;
    gap:10px;
}

.vpt-user-avatar,
.vpt-live-avatar,
.vpt-roster-av,
.vpt-result-avatar{
    width:42px;
    height:42px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--blue),var(--red));
    display:grid;
    place-items:center;
    font-weight:950;
    overflow:hidden;
    flex:none;
}

.vpt-result-avatar{
    width:76px;
    height:76px;
    font-size:28px;
}

.vpt-avatar-img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.vpt-user-meta{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.vpt-user-meta span{
    color:#949ba4;
    font-size:12px;
}

.vpt-status-dot{
    width:10px;
    height:10px;
    background:var(--green);
    border-radius:50%;
    margin-left:auto;
    box-shadow:0 0 14px var(--green);
}

.vpt-chat{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:0;
    background:var(--discord-chat);
}

.vpt-chat-head{
    height:52px;
    padding:0 18px;
    border-bottom:1px solid #292c32;
    display:flex;
    align-items:center;
    gap:10px;
}

.vpt-chat-hash{
    color:#80848e;
    font-size:28px;
}

.vpt-chat-head-divider{
    height:24px;
    width:1px;
    background:#4a4d55;
}

.vpt-chat-topic{
    color:#b5bac1;
    font-size:13px;
}

.vpt-briefing{
    margin:14px;
    padding:14px;
    background:#222631;
    border:1px solid #394156;
    border-radius:16px;
    display:flex;
    gap:14px;
}

.vpt-briefing-badge{
    background:linear-gradient(135deg,var(--red),var(--red-2));
    color:white;
    border-radius:12px;
    padding:8px 10px;
    font-weight:900;
    align-self:flex-start;
}

.vpt-briefing p{
    margin:4px 0 0;
    color:#c3c8d2;
}

.vpt-messages{
    flex:1;
    overflow:auto;
    padding:8px 18px 20px;
}

.vpt-msg{
    display:grid;
    grid-template-columns:42px 1fr;
    gap:12px;
    padding:8px 4px;
    border-radius:10px;
    opacity:0;
    transform:translateY(5px);
    transition:.18s ease;
}

.vpt-msg.in,
.vpt-msg{
    opacity:1;
    transform:none;
}

.vpt-msg:hover{
    background:rgba(255,255,255,.035);
}

.vpt-msg-avatar{
    width:42px;
    height:42px;
    border-radius:50%;
    background:#5865f2;
    display:grid;
    place-items:center;
    font-weight:900;
}

.vpt-msg-head{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:3px;
}

.vpt-msg-name{
    font-weight:900;
}

.vpt-msg-time{
    color:#8d94a0;
    font-size:11px;
}

.vpt-bot-tag{
    background:var(--blue);
    color:white;
    border-radius:4px;
    padding:2px 4px;
    font-size:10px;
    font-weight:900;
}

.vpt-role-tag{
    background:rgba(255,255,255,.08);
    color:#cbd5e1;
    border-radius:4px;
    padding:2px 5px;
    font-size:10px;
    font-weight:850;
}

.vpt-msg-body{
    color:#dbdee1;
    line-height:1.38;
    white-space:pre-wrap;
    word-break:break-word;
}

.vpt-msg-embed{
    margin-top:8px;
    background:#2b2d31;
    border-left:4px solid var(--blue);
    border-radius:8px;
    padding:10px 12px;
    max-width:520px;
}

.vpt-msg-embed strong{
    display:block;
    margin-bottom:4px;
}

.vpt-blocked{
    margin-top:8px;
    border:1px dashed var(--red);
    color:#fecaca;
    background:rgba(239,68,68,.08);
    padding:10px;
    border-radius:10px;
    display:inline-block;
}

.vpt-typing-hint{
    padding:0 18px 8px;
    color:#b5bac1;
    font-size:13px;
    align-items:center;
    gap:6px;
}

.vpt-typing-dots i{
    display:inline-block;
    width:5px;
    height:5px;
    border-radius:50%;
    background:#b5bac1;
    margin-right:2px;
    animation:vptDot 1s infinite ease-in-out;
}

.vpt-typing-dots i:nth-child(2){animation-delay:.15s}
.vpt-typing-dots i:nth-child(3){animation-delay:.3s}

@keyframes vptDot{
    0%,80%,100%{opacity:.35;transform:translateY(0)}
    40%{opacity:1;transform:translateY(-3px)}
}

.vpt-composer-locked{
    margin:0 18px 18px;
    padding:14px;
    border-radius:14px;
    background:var(--discord-input);
    color:#b5bac1;
}

.vpt-actions{
    background:var(--discord-side);
    border-left:1px solid #22252b;
    min-height:0;
    overflow:auto;
}

.vpt-action-scroll{
    padding:14px;
}

.vpt-members{
    padding-bottom:14px;
    margin-bottom:14px;
    border-bottom:1px solid #383c45;
}

.vpt-members-label,
.vpt-panel-label{
    color:#949ba4;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-size:11px;
    font-weight:900;
    margin-bottom:8px;
}

.vpt-member{
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 0;
    color:#d7dce8;
    font-weight:800;
}

.vpt-member em{
    margin-left:auto;
    color:#949ba4;
    font-size:11px;
    font-style:normal;
}

.vpt-mdot{
    width:10px;
    height:10px;
    border-radius:50%;
}

.vpt-action-block{
    margin-bottom:18px;
}

.vpt-panel-sub{
    margin:0 0 10px;
    color:#aeb6c8;
    font-size:13px;
}

.vpt-action-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}

.vpt-action-btn{
    border:1px solid #3e4658;
    background:#353840;
    color:#f2f3f5;
    border-radius:13px;
    padding:10px;
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:flex-start;
    cursor:pointer;
    min-height:72px;
    transition:.14s ease;
}

.vpt-action-btn:hover{
    background:#40444d;
    transform:translateY(-1px);
}

.vpt-action-btn.selected,
.vpt-action-btn.active{
    background:rgba(88,101,242,.24);
    border-color:#7c83ff;
    box-shadow:0 0 0 3px rgba(88,101,242,.18);
}

.vpt-action-icon{
    font-size:20px;
}

.vpt-action-label{
    font-size:12px;
    font-weight:900;
    text-align:left;
}

.vpt-reason,
#reasonBox{
    color:#fff!important;
    background:#1f2430!important;
    border:1px solid #4a5266;
    min-height:140px;
}

.vpt-reason-meta{
    margin-top:8px;
    color:#9ca3af;
    font-size:12px;
    display:flex;
    justify-content:space-between;
    gap:10px;
}

.vpt-submit-scenario{
    width:100%;
    margin-top:8px;
}

.vpt-submit-note{
    color:#fca5a5;
    font-size:13px;
    margin-top:8px;
}

/* Overlays */

.vpt-intervene-backdrop,
.vpt-complete-backdrop,
.vpt-modal-backdrop{
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.68);
    backdrop-filter:blur(12px);
    display:none;
    align-items:center;
    justify-content:center;
    z-index:1000;
    padding:20px;
}

.vpt-intervene-backdrop.show,
.vpt-complete-backdrop.show,
.vpt-modal-backdrop.show{
    display:flex;
}

.vpt-intervene-card,
.vpt-complete-card,
.vpt-modal{
    width:min(570px,96vw);
    background:linear-gradient(180deg,#111827,#0e1524);
    border:1px solid var(--line);
    border-radius:28px;
    padding:26px;
    box-shadow:var(--shadow);
}

.vpt-intervene-head,
.vpt-modal-head{
    display:flex;
    align-items:center;
    gap:12px;
    justify-content:space-between;
}

.vpt-intervene-icon{
    width:52px;
    height:52px;
    border-radius:17px;
    background:rgba(245,158,11,.14);
    display:grid;
    place-items:center;
    font-size:26px;
}

.vpt-intervene-body{
    margin:18px 0;
    padding:16px;
    background:#182033;
    border:1px solid var(--line);
    border-radius:16px;
    color:var(--text-2);
    white-space:pre-wrap;
}

.vpt-modal-close{
    background:transparent;
    border:none;
    color:var(--muted);
    font-size:28px;
    cursor:pointer;
}

.vpt-modal-foot{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:14px;
    flex-wrap:wrap;
}

.vpt-complete-card{
    text-align:center;
}

.vpt-complete-spinner{
    width:54px;
    height:54px;
    border:5px solid rgba(255,255,255,.12);
    border-top-color:var(--red);
    border-radius:50%;
    margin:0 auto 16px;
    animation:vptSpin 1s linear infinite;
}

@keyframes vptSpin{
    to{transform:rotate(360deg)}
}

/* Admin */

.vpt-admin-body{
    background:
        radial-gradient(circle at top right,rgba(88,101,242,.14),transparent 34%),
        radial-gradient(circle at bottom left,rgba(239,68,68,.12),transparent 38%),
        #070b12;
}

.vpt-admin-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
}

.vpt-admin-side{
    position:sticky;
    top:0;
    height:100vh;
    background:rgba(11,15,25,.92);
    border-right:1px solid var(--line-soft);
    padding:18px;
    display:flex;
    flex-direction:column;
    backdrop-filter:blur(18px);
}

.vpt-admin-brand{
    display:flex;
    align-items:center;
    gap:12px;
    padding-bottom:18px;
    border-bottom:1px solid var(--line);
}

.vpt-admin-brand h2{
    margin:0;
}

.vpt-admin-brand span{
    color:var(--muted);
    font-size:13px;
}

.vpt-admin-side nav{
    display:flex;
    flex-direction:column;
    gap:7px;
    margin-top:18px;
}

.vpt-admin-side nav a{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px;
    border-radius:14px;
    color:#cbd5e1;
    font-weight:800;
    transition:.15s ease;
}

.vpt-admin-side nav a:hover,
.vpt-admin-side nav a.active{
    background:#182033;
    color:white;
}

.vpt-admin-side .sep{
    height:1px;
    background:var(--line);
    margin:8px 0;
}

.vpt-side-foot{
    margin-top:auto;
    padding-top:14px;
    color:var(--muted);
    font-size:13px;
    border-top:1px solid var(--line);
}

.vpt-admin-main{
    padding:30px;
    min-width:0;
}

.vpt-admin-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:24px;
}

.vpt-admin-head h1{
    margin:0 0 6px;
    font-size:clamp(30px,4vw,46px);
    letter-spacing:-.05em;
}

.vpt-live-indicator{
    display:flex;
    align-items:center;
    gap:8px;
    background:#101625;
    border:1px solid var(--line);
    padding:10px 14px;
    border-radius:999px;
    color:#cbd5e1;
    font-weight:800;
}

.vpt-live-dot{
    width:10px;
    height:10px;
    background:var(--green);
    border-radius:50%;
    box-shadow:0 0 18px var(--green);
}

.vpt-admin-stats{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:14px;
    margin-bottom:22px;
}

.vpt-astat{
    background:linear-gradient(180deg,#111827,#0d1423);
    border:1px solid var(--line-soft);
    border-radius:20px;
    padding:17px;
    box-shadow:var(--shadow-soft);
}

.vpt-astat span{
    color:var(--muted);
    font-size:13px;
    font-weight:800;
}

.vpt-astat strong{
    display:block;
    margin-top:6px;
    font-size:32px;
}

.vpt-astat.active strong{color:#93c5fd}
.vpt-astat.pass strong{color:#86efac}
.vpt-astat.review strong{color:#fde68a}
.vpt-astat.fail strong{color:#fecaca}

.vpt-admin-panel{
    margin-bottom:22px;
}

.vpt-panel-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}

.vpt-filter-row{
    display:flex;
    gap:8px;
    align-items:center;
}

.vpt-filter-row input,
.vpt-filter-row select{
    min-width:180px;
}

.vpt-live-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(330px,1fr));
    gap:14px;
}

.vpt-live-card{
    background:linear-gradient(180deg,#101625,#0d1422);
    border:1px solid var(--line);
    border-radius:22px;
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:14px;
    box-shadow:var(--shadow-soft);
}

.vpt-live-card.stale{
    opacity:.76;
    border-color:rgba(245,158,11,.35);
}

.vpt-live-card-head{
    display:flex;
    align-items:center;
    gap:10px;
}

.vpt-live-who{
    min-width:0;
    flex:1;
}

.vpt-live-who strong,
.vpt-attempt-who strong{
    display:block;
}

.vpt-live-who span,
.vpt-attempt-who span,
.vpt-attempt-who small{
    color:var(--muted);
    font-size:12px;
}

.vpt-live-score{
    width:56px;
    height:56px;
    border-radius:17px;
    display:grid;
    place-items:center;
    background:#1d2740;
    color:#c7d2fe;
    font-weight:950;
}

.vpt-live-scenario{
    display:flex;
    gap:10px;
    align-items:center;
    background:#151d30;
    border:1px solid var(--line);
    border-radius:16px;
    padding:10px;
}

.vpt-live-scn-num{
    width:36px;
    height:36px;
    border-radius:12px;
    background:linear-gradient(135deg,var(--red),var(--red-2));
    display:grid;
    place-items:center;
    font-weight:950;
}

.vpt-live-scenario span{
    color:var(--muted);
    font-size:12px;
}

.vpt-live-status-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
}

.vpt-live-status-box{
    background:#0b1020;
    border:1px solid var(--line);
    border-radius:14px;
    padding:10px;
}

.vpt-live-status-box span{
    display:block;
    color:var(--muted);
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:5px;
}

.vpt-live-status-box strong{
    font-size:13px;
}

.vpt-live-status-box.good strong{color:#86efac}
.vpt-live-status-box.warn strong{color:#fde68a}

.vpt-live-typed label,
.vpt-inline-label{
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    display:block;
    margin-bottom:6px;
}

.vpt-live-typed-box{
    min-height:68px;
    max-height:160px;
    overflow:auto;
    background:#070b12;
    border:1px solid var(--line);
    color:#fff;
    border-radius:15px;
    padding:12px;
    white-space:pre-wrap;
    word-break:break-word;
}

.vpt-live-typed-box.big{
    min-height:160px;
    font-size:15px;
}

.vpt-live-actions-row,
.vpt-chip-row,
.vpt-perm-chips,
.vpt-live-flags{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.vpt-live-chip,
.vpt-perm-chip{
    background:#202a41;
    border:1px solid var(--line);
    border-radius:999px;
    padding:6px 9px;
    color:#dbe4ff;
    font-size:12px;
    font-weight:900;
}

.vpt-live-chip.good{
    color:#86efac;
    border-color:rgba(34,197,94,.35);
}

.vpt-live-chip.miss{
    color:#fecaca;
    border-color:rgba(239,68,68,.35);
}

.vpt-live-card-foot{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

/* Full live view */

.vpt-live-watch-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) 310px;
    gap:16px;
}

.vpt-live-discord-preview{
    background:#1e1f22;
    border:1px solid var(--line);
    border-radius:24px;
    overflow:hidden;
    box-shadow:var(--shadow-soft);
}

.vpt-live-discord-top{
    height:62px;
    background:#111318;
    border-bottom:1px solid #292c32;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 14px;
}

.vpt-live-discord-top div:nth-child(2){
    display:flex;
    flex-direction:column;
}

.vpt-live-discord-top span{
    color:var(--muted);
    font-size:12px;
}

.vpt-live-status-pill{
    margin-left:auto;
    color:#86efac;
    background:rgba(34,197,94,.10);
    border:1px solid rgba(34,197,94,.30);
    border-radius:999px;
    padding:7px 10px;
    font-size:12px;
    font-weight:900;
}

.vpt-live-status-pill.danger{
    color:#fecaca;
    background:rgba(239,68,68,.12);
    border-color:rgba(239,68,68,.35);
}

.vpt-live-discord-body{
    display:grid;
    grid-template-columns:190px 1fr;
    min-height:520px;
}

.vpt-live-mini-sidebar{
    background:#2b2d31;
    padding:14px;
    display:flex;
    flex-direction:column;
    gap:8px;
    color:#b5bac1;
    font-size:13px;
    border-right:1px solid #22252b;
}

.vpt-live-mini-sidebar span{
    padding:8px;
    border-radius:8px;
}

.vpt-live-mini-sidebar span:hover{
    background:#393c43;
}

.vpt-live-mini-chat{
    background:#313338;
    padding:16px;
    overflow:auto;
}

.vpt-live-brief{
    background:#222631;
    border:1px solid #394156;
    border-radius:16px;
    padding:14px;
    margin-bottom:14px;
}

.vpt-live-brief span{
    color:#ff9f9f;
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
}

.vpt-live-brief strong{
    display:block;
    margin:5px 0;
}

.vpt-live-brief p{
    margin:0;
    color:#c3c8d2;
}

.vpt-live-screen-box{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:8px;
    margin-bottom:14px;
}

.vpt-live-screen-row{
    background:#23272f;
    border:1px solid #3b4254;
    border-radius:13px;
    padding:10px;
}

.vpt-live-screen-row span{
    display:block;
    color:#9ca3af;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:5px;
}

.vpt-live-tools-panel{
    background:#101625;
    border:1px solid var(--line);
    border-radius:22px;
    padding:18px;
    box-shadow:var(--shadow-soft);
}

.vpt-live-tools-panel h3{
    margin-top:0;
}

.vpt-tool-grid{
    display:grid;
    gap:8px;
    margin:14px 0;
}

.vpt-live-admin-note{
    padding:14px;
    border-radius:16px;
    background:#0b1020;
    border:1px solid var(--line);
}

.vpt-live-admin-note p{
    color:var(--muted);
    line-height:1.5;
}

/* Attempts / reports */

.vpt-attempt-list{
    display:grid;
    gap:12px;
}

.vpt-attempt-card{
    display:grid;
    grid-template-columns:minmax(220px,1.4fr) 130px minmax(180px,1fr) auto;
    gap:14px;
    align-items:center;
    background:#101625;
    border:1px solid var(--line);
    border-radius:20px;
    padding:15px;
}

.vpt-attempt-who{
    display:flex;
    gap:10px;
    align-items:center;
}

.vpt-attempt-score{
    display:flex;
    flex-direction:column;
    gap:8px;
}

.vpt-attempt-score strong{
    font-size:26px;
}

.vpt-attempt-meta{
    color:var(--muted);
    display:flex;
    gap:8px;
    flex-wrap:wrap;
}

.vpt-attempt-actions{
    display:flex;
    gap:8px;
    justify-content:flex-end;
}

.vpt-report-wrap{
    width:100%;
}

.vpt-back{
    margin-bottom:16px;
}

.vpt-report-hero,
.vpt-results-hero{
    display:flex;
    align-items:center;
    gap:18px;
    margin-bottom:22px;
}

.vpt-report-hero h1,
.vpt-results-hero h1{
    margin:0;
    font-size:clamp(28px,4vw,42px);
    letter-spacing:-.04em;
}

.vpt-report-verdict-box{
    margin-left:auto;
    min-width:150px;
    border-radius:22px;
    padding:15px;
    text-align:center;
    border:1px solid var(--line);
    background:#101625;
}

.vpt-report-score{
    display:block;
    font-size:36px;
    font-weight:950;
    margin-bottom:8px;
}

.vpt-kv-grid,
.vpt-snap-grid,
.vpt-live-inline,
.vpt-reco-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;
}

.vpt-kv-grid div,
.vpt-snap-grid div,
.vpt-live-inline div,
.vpt-reco-box,
.vpt-result-stat{
    background:#101625;
    border:1px solid var(--line);
    border-radius:17px;
    padding:14px;
}

.vpt-kv-grid span,
.vpt-snap-grid span,
.vpt-live-inline span,
.vpt-reco-box span,
.vpt-result-stat span{
    display:block;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:6px;
}

.vpt-kv-grid strong,
.vpt-snap-grid strong,
.vpt-live-inline strong,
.vpt-reco-box strong,
.vpt-result-stat strong{
    color:var(--text);
    font-size:17px;
}

.vpt-report-card{
    margin-bottom:18px;
}

.vpt-reco-verdict{
    font-size:18px;
    color:var(--text-2);
    line-height:1.55;
}

.vpt-reco-columns{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:12px;
    margin-top:14px;
}

.vpt-reco-col{
    border-radius:17px;
    padding:15px;
    background:#101625;
    border:1px solid var(--line);
}

.vpt-reco-col h3{
    margin:0 0 8px;
}

.vpt-reco-col ul{
    margin:0;
    padding-left:18px;
    color:var(--text-2);
    line-height:1.5;
}

.vpt-perm-box{
    margin-top:14px;
    padding:14px;
    border-radius:17px;
    background:#101625;
    border:1px solid var(--line);
}

.vpt-flag-summary{
    margin-top:14px;
    display:grid;
    gap:8px;
}

.vpt-flag-line{
    padding:12px;
    border-radius:14px;
    border:1px solid var(--line);
    background:#101625;
}

.vpt-flag-line.danger{
    color:#fecaca;
    border-color:rgba(239,68,68,.35);
}

.vpt-flag-line.warn{
    color:#fde68a;
    border-color:rgba(245,158,11,.35);
}

.vpt-scn-list{
    display:grid;
    gap:14px;
}

.vpt-scn-row{
    display:grid;
    grid-template-columns:46px 1fr;
    gap:14px;
    background:#101625;
    border:1px solid var(--line);
    border-radius:20px;
    padding:15px;
}

.vpt-scn-num-badge{
    width:42px;
    height:42px;
    border-radius:14px;
    background:linear-gradient(135deg,var(--red),var(--red-2));
    display:grid;
    place-items:center;
    font-weight:950;
}

.vpt-scn-title-row{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-bottom:12px;
}

.vpt-scn-channel{
    color:var(--muted);
}

.vpt-scn-points{
    margin-left:auto;
    font-weight:950;
}

.vpt-scn-points.good{color:#86efac}
.vpt-scn-points.mid{color:#fde68a}
.vpt-scn-points.low{color:#fecaca}

.vpt-scn-cols{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:12px;
    margin-bottom:12px;
}

.vpt-scn-cols label,
.vpt-scn-reason label,
.vpt-scn-explain label{
    display:block;
    color:var(--muted);
    font-size:12px;
    font-weight:900;
    text-transform:uppercase;
    margin-bottom:6px;
}

.vpt-scn-reason,
.vpt-scn-explain{
    margin-top:10px;
    padding:12px;
    border-radius:14px;
    background:#0b1020;
    border:1px solid var(--line);
}

.vpt-scn-reason p,
.vpt-scn-explain p{
    margin:0;
    color:var(--text-2);
    line-height:1.5;
    white-space:pre-wrap;
}

.vpt-scn-meta{
    margin-top:10px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    color:var(--muted);
}

.vpt-event-log{
    display:grid;
    gap:8px;
}

.vpt-event{
    padding:10px 12px;
    border-radius:13px;
    background:#101625;
    border:1px solid var(--line);
    color:var(--text-2);
}

.vpt-event span{
    color:var(--muted);
    margin-right:8px;
}

.vpt-event em{
    margin-left:8px;
    color:var(--muted);
}

.vpt-report-intervene-row{
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:8px;
    margin-top:12px;
}

.vpt-control-row{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}

/* Settings */

.vpt-settings-form{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.vpt-toggle-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:12px;
}

.vpt-toggle-card{
    display:flex;
    gap:12px;
    background:#101625;
    border:1px solid var(--line);
    border-radius:17px;
    padding:14px;
    cursor:pointer;
}

.vpt-toggle-card input{
    width:auto;
    accent-color:var(--blue);
}

.vpt-toggle-card span{
    display:block;
    margin-top:4px;
    color:var(--muted);
    font-size:13px;
}

.vpt-settings-numbers{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:12px;
}

.vpt-full-label{
    display:flex;
    flex-direction:column;
    gap:8px;
    color:var(--text-2);
    font-weight:800;
}

/* Roster */

.vpt-roster-tablewrap{
    overflow:auto;
    border:1px solid var(--line);
    border-radius:20px;
}

.vpt-roster-table{
    width:100%;
    border-collapse:collapse;
    min-width:860px;
}

.vpt-roster-table th,
.vpt-roster-table td{
    padding:13px 14px;
    text-align:left;
    border-bottom:1px solid var(--line);
}

.vpt-roster-table th{
    color:var(--muted);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.08em;
    background:#0c1220;
}

.vpt-roster-table tr{
    background:#101625;
}

.vpt-roster-table tr:nth-child(even){
    background:#0f1726;
}

.vpt-roster-table tr:hover{
    background:#151d30;
}

.vpt-roster-person{
    display:flex;
    align-items:center;
    gap:10px;
}

.vpt-roster-person .n{
    display:flex;
    flex-direction:column;
}

.vpt-roster-person small{
    color:var(--muted);
}

/* Results */

.vpt-results-wrap{
    max-width:1050px;
    margin:0 auto;
    padding:36px 20px;
}

.vpt-result-headline{
    border:1px solid var(--line);
    border-radius:26px;
    padding:24px;
    display:flex;
    align-items:center;
    gap:24px;
    background:#101625;
    margin-bottom:18px;
    box-shadow:var(--shadow-soft);
}

.vpt-result-score{
    width:150px;
    height:150px;
    border-radius:32px;
    display:grid;
    place-items:center;
    background:#0b1020;
    border:1px solid var(--line);
}

.vpt-result-score-num{
    font-size:42px;
    font-weight:950;
}

.vpt-result-score-label{
    color:var(--muted);
    font-size:12px;
    font-weight:900;
}

.vpt-result-verdict p{
    color:var(--text-2);
    font-size:18px;
}

.vpt-result-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:12px;
    margin-bottom:18px;
}

.vpt-result-note{
    margin-bottom:18px;
}

.vpt-hb-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
    gap:12px;
}

.vpt-hb-card{
    background:#101625;
    border:1px solid var(--line);
    border-radius:20px;
    padding:16px;
}

.vpt-hb-ico{
    font-size:26px;
}

.vpt-hb-card h3{
    margin:10px 0 6px;
}

.vpt-hb-card p{
    color:var(--muted);
}

.vpt-results-foot{
    margin-top:18px;
    text-align:center;
}

/* Toast */

#vptToastArea{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:1200;
    display:grid;
    gap:10px;
}

.vpt-toast{
    background:#101625;
    border:1px solid var(--line);
    color:var(--text);
    border-radius:14px;
    padding:12px 14px;
    min-width:240px;
    box-shadow:var(--shadow-soft);
    opacity:0;
    transform:translateY(8px);
    transition:.2s ease;
}

.vpt-toast.show{
    opacity:1;
    transform:translateY(0);
}

.vpt-toast.success{
    border-color:rgba(34,197,94,.35);
    color:#bbf7d0;
}

.vpt-toast.danger{
    border-color:rgba(239,68,68,.35);
    color:#fecaca;
}

/* Responsive */

@media(max-width:1200px){
    .vpt-auth-shell{
        grid-template-columns:1fr;
        max-width:660px;
    }

    .vpt-auth-side-card{
        min-height:auto;
    }

    .vpt-discord{
        grid-template-columns:60px 240px minmax(0,1fr) 310px;
    }

    .vpt-admin-stats{
        grid-template-columns:repeat(3,1fr);
    }

    .vpt-attempt-card{
        grid-template-columns:1fr;
    }

    .vpt-attempt-actions{
        justify-content:flex-start;
    }

    .vpt-live-watch-layout{
        grid-template-columns:1fr;
    }
}

@media(max-width:900px){
    .vpt-discord{
        grid-template-columns:1fr;
    }

    .vpt-guild-rail{
        display:none;
    }

    .vpt-channels{
        position:fixed;
        left:-285px;
        top:58px;
        bottom:0;
        width:280px;
        z-index:60;
        transition:.2s ease;
        box-shadow:var(--shadow);
    }

    .vpt-channels.show,
    .vpt-channels.open{
        left:0;
    }

    .vpt-chat{
        grid-column:1 / -1;
    }

    .vpt-actions{
        position:fixed;
        right:0;
        top:58px;
        bottom:0;
        width:min(370px,94vw);
        z-index:65;
        box-shadow:var(--shadow);
        transform:translateX(100%);
        transition:.2s ease;
    }

    .vpt-actions.show,
    .vpt-actions.open{
        transform:translateX(0);
    }

    .vpt-admin-shell{
        grid-template-columns:1fr;
    }

    .vpt-admin-side{
        position:relative;
        height:auto;
    }

    .vpt-admin-main{
        padding:18px;
    }

    .vpt-admin-head,
    .vpt-panel-top{
        flex-direction:column;
    }

    .vpt-admin-stats{
        grid-template-columns:repeat(2,1fr);
    }

    .vpt-filter-row{
        width:100%;
        flex-direction:column;
    }

    .vpt-filter-row input,
    .vpt-filter-row select{
        min-width:0;
    }

    .vpt-report-intervene-row{
        grid-template-columns:1fr;
    }

    .vpt-live-discord-body{
        grid-template-columns:1fr;
    }

    .vpt-live-mini-sidebar{
        display:none;
    }

    .vpt-live-screen-box{
        grid-template-columns:repeat(2,1fr);
    }
}

@media(max-width:650px){
    .vpt-auth-page{
        padding:18px 12px;
        place-items:start center;
    }

    .vpt-auth-card.upgraded-login,
    .vpt-auth-side-card{
        border-radius:24px;
        padding:20px;
    }

    .vpt-auth-top{
        align-items:flex-start;
    }

    .vpt-auth-info-grid{
        grid-template-columns:1fr;
    }

    .vpt-topbar{
        height:auto;
        min-height:58px;
        align-items:flex-start;
        padding:10px;
        gap:10px;
        flex-direction:column;
    }

    .vpt-topbar-left,
    .vpt-topbar-right{
        width:100%;
        justify-content:space-between;
    }

    .vpt-topbar-title strong{
        font-size:14px;
    }

    .vpt-progress-mini{
        display:none;
    }

    .vpt-action-grid{
        grid-template-columns:1fr;
    }

    .vpt-admin-stats{
        grid-template-columns:1fr;
    }

    .vpt-result-headline,
    .vpt-report-hero,
    .vpt-results-hero{
        flex-direction:column;
        align-items:flex-start;
    }

    .vpt-report-verdict-box{
        margin-left:0;
        width:100%;
    }

    .vpt-result-score{
        width:100%;
        height:auto;
        padding:20px;
    }

    .vpt-scn-row{
        grid-template-columns:1fr;
    }

    .vpt-admin-main{
        padding:14px;
    }

    .vpt-card,
    .vpt-admin-panel,
    .vpt-report-card{
        padding:16px;
        border-radius:22px;
    }

    .vpt-live-status-grid,
    .vpt-live-screen-box{
        grid-template-columns:1fr;
    }

    .vpt-modal-foot{
        flex-direction:column;
    }

    .vpt-modal-foot .vpt-btn{
        width:100%;
    }
}

/* Print */

@media print{
    body{
        background:white!important;
        color:black!important;
    }

    .vpt-admin-side,
    .vpt-back,
    .vpt-report-controls,
    .vpt-nav,
    .vpt-live-tools-panel,
    .vpt-control-row{
        display:none!important;
    }

    .vpt-admin-shell{
        display:block;
    }

    .vpt-report-card,
    .vpt-card{
        box-shadow:none;
        border:1px solid #ccc;
        color:black;
        background:white;
    }
}
/* emergency layout fix */
.vpt-auth-body .vpt-auth-page{
    min-height:100vh!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:32px 18px!important;
}

.vpt-auth-body .vpt-auth-shell{
    width:min(1100px,100%)!important;
    display:grid!important;
    grid-template-columns:minmax(360px,520px) 1fr!important;
    gap:22px!important;
    margin:auto!important;
}

.vpt-auth-body .vpt-auth-card,
.vpt-auth-body .upgraded-login{
    background:linear-gradient(180deg,#111827,#0b1020)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:30px!important;
    padding:30px!important;
    box-shadow:0 25px 80px rgba(0,0,0,.45)!important;
}

.vpt-auth-body .vpt-auth-side-card{
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-end!important;
    min-height:520px!important;
    background:linear-gradient(180deg,#111827,#0b1020)!important;
    border:1px solid rgba(255,255,255,.12)!important;
    border-radius:30px!important;
    padding:34px!important;
}

.vpt-auth-body .vpt-auth-info-grid{
    display:grid!important;
    grid-template-columns:repeat(3,1fr)!important;
    gap:10px!important;
    margin:18px 0!important;
}

.vpt-auth-body .vpt-auth-info-grid div{
    background:#0f172a!important;
    border:1px solid #29354f!important;
    border-radius:16px!important;
    padding:12px!important;
}

.vpt-auth-body .vpt-btn{
    width:100%;
    min-height:48px;
    border-radius:14px;
}

.vpt-auth-body input{
    margin-bottom:10px;
}

@media(max-width:900px){
    .vpt-auth-body .vpt-auth-shell{
        grid-template-columns:1fr!important;
        max-width:620px!important;
    }
}
/* Public training + handbook layout fix */
.vpt-landing{
    width:min(1180px,100%);
    margin:0 auto;
    padding:34px 20px 60px;
}

.vpt-nav-inner{
    justify-content:space-between;
}

.vpt-nav-actions{
    margin-left:auto;
    display:flex;
    gap:10px;
    align-items:center;
}

.vpt-hero{
    background:
        radial-gradient(circle at top left,rgba(239,68,68,.20),transparent 38%),
        linear-gradient(180deg,#111827,#0b1020);
    border:1px solid rgba(255,255,255,.10);
    border-radius:32px;
    padding:34px;
    box-shadow:0 24px 80px rgba(0,0,0,.42);
    margin-bottom:24px;
}

.vpt-hero h1{
    margin:0;
    font-size:clamp(34px,5vw,62px);
    letter-spacing:-.06em;
    line-height:1;
}

.vpt-hero-lead{
    color:var(--text-2);
    font-size:17px;
    line-height:1.65;
    max-width:980px;
}

.vpt-hero-meta{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:18px;
}

.vpt-meta-chip{
    background:#101827;
    border:1px solid var(--line);
    color:#dbeafe;
    border-radius:999px;
    padding:8px 12px;
    font-weight:850;
    font-size:13px;
}

.vpt-grid-2{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr);
    gap:18px;
    align-items:start;
}

.vpt-key-card{
    background:linear-gradient(180deg,#111827,#0b1020);
    border:1px solid rgba(255,255,255,.10);
    border-radius:28px;
    padding:24px;
    box-shadow:0 18px 50px rgba(0,0,0,.32);
    position:sticky;
    top:82px;
}

.vpt-steps{
    display:flex;
    align-items:center;
    gap:12px;
    margin:22px 0;
    background:#0d1422;
    border:1px solid var(--line);
    border-radius:20px;
    padding:14px;
}

.vpt-step-dot{
    display:flex;
    align-items:center;
    gap:8px;
    color:var(--muted);
    font-weight:900;
    white-space:nowrap;
}

.vpt-step-dot i{
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#182033;
    color:var(--muted);
    font-style:normal;
}

.vpt-step-dot.active,
.vpt-step-dot.done{
    color:#fff;
}

.vpt-step-dot.active i{
    background:linear-gradient(135deg,var(--red),var(--red-2));
    color:#fff;
}

.vpt-step-dot.done i{
    background:var(--green);
    color:#04120a;
}

.vpt-step-sep{
    flex:1;
    height:1px;
    background:var(--line);
}

.vpt-step{
    display:none;
}

.vpt-step.active{
    display:block;
}

.vpt-note-list{
    margin-top:18px;
    display:grid;
    gap:10px;
}

.vpt-note-item{
    background:#0b1020;
    border:1px solid var(--line);
    border-radius:14px;
    padding:11px 12px;
    color:var(--text-2);
    font-weight:750;
}

.vpt-alert{
    border-radius:18px;
    padding:16px;
    border:1px solid var(--line);
    background:#101827;
}

.vpt-alert.danger{
    border-color:rgba(239,68,68,.35);
    background:rgba(239,68,68,.10);
    color:#fecaca;
}

.vpt-terms-scroll{
    max-height:430px;
    overflow:auto;
    background:#0b1020;
    border:1px solid var(--line);
    border-radius:20px;
    padding:18px;
    color:var(--text-2);
    line-height:1.6;
}

.vpt-terms-sub{
    color:var(--muted);
    font-weight:800;
}

.vpt-terms-accept{
    display:flex;
    gap:12px;
    margin:18px 0;
    background:#101827;
    border:1px solid var(--line);
    border-radius:18px;
    padding:15px;
    color:var(--text-2);
    line-height:1.5;
}

.vpt-terms-accept input{
    width:auto!important;
    margin-top:4px;
    accent-color:var(--red);
}

.vpt-terms-actions{
    display:flex;
    gap:10px;
}

.vpt-hb-full{
    display:grid;
    gap:18px;
}

.vpt-hb-section{
    background:linear-gradient(180deg,#111827,#0b1020);
    border:1px solid rgba(255,255,255,.10);
    border-radius:28px;
    padding:24px;
    box-shadow:0 16px 45px rgba(0,0,0,.25);
}

.vpt-hb-section-head{
    display:flex;
    gap:14px;
    align-items:flex-start;
    margin-bottom:14px;
}

.vpt-hb-section-head .ico{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:16px;
    background:#182033;
    font-size:24px;
    flex:none;
}

.vpt-hb-section h2{
    margin:0 0 6px;
    font-size:28px;
    letter-spacing:-.03em;
}

.vpt-hb-section p{
    margin:0;
    color:var(--muted);
    line-height:1.55;
}

.vpt-hb-list{
    margin:14px 0 0;
    padding-left:22px;
    color:var(--text-2);
    line-height:1.7;
}

.vpt-hb-list li{
    margin-bottom:8px;
}

.vpt-inline-summary{
    margin-top:10px;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.vpt-inline-summary span{
    background:#101827;
    border:1px solid var(--line);
    border-radius:999px;
    padding:6px 10px;
}

@media(max-width:900px){
    .vpt-grid-2{
        grid-template-columns:1fr;
    }

    .vpt-key-card{
        position:relative;
        top:auto;
    }

    .vpt-steps{
        align-items:flex-start;
        flex-direction:column;
    }

    .vpt-step-sep{
        display:none;
    }

    .vpt-nav-inner{
        align-items:flex-start;
        flex-direction:column;
    }

    .vpt-nav-actions{
        margin-left:0;
    }
}

@media(max-width:650px){
    .vpt-landing{
        padding:18px 12px 40px;
    }

    .vpt-hero,
    .vpt-hb-section,
    .vpt-key-card{
        padding:18px;
        border-radius:22px;
    }

    .vpt-terms-actions{
        flex-direction:column;
    }

    .vpt-terms-actions .vpt-btn{
        width:100%;
    }
}