.vb-platform-main { margin: 0; padding: 0; }
.vb-auth-shell,.vb-portal-shell { margin-block: 0; padding-block: 144px 80px; }
.vb-auth-shell { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.vb-auth-form,.vb-auth-brand { padding: clamp(24px,4vw,56px); border: 1px solid #E5E7EB; }
.vb-auth-brand { display: flex; flex-direction: column; justify-content: center; background: #1F1F1F; color: #FFFFFF; }
.vb-auth-brand h2 { font-size: clamp(24px,3vw,40px); }
.vb-portal-shell { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 32px; }
.vb-portal-sidebar { align-self: start; position: sticky; top: 108px; }
.vb-portal-identity { padding: 24px; background: #1F1F1F; color: white; overflow-wrap: anywhere; }
.vb-portal-sidebar nav { display: flex; flex-direction: column; border: 1px solid #E5E7EB; margin-top: 16px; padding: 8px; }
.vb-portal-sidebar nav a { padding: 12px 16px; text-decoration: none; color: #1F1F1F; font-weight: 800; min-height: 44px; }
.vb-portal-sidebar nav a[aria-current] { background: #1F1F1F; color: #FFFFFF; }
.vb-portal-content { min-width: 0; }
.vb-portal-content h1,.vb-auth-form h1 { font-size: clamp(24px,2.5vw,36px); line-height: 1.5; margin-top: 0; }
.vb-platform-form { display: grid; gap: 20px; margin-block: 24px; max-width: 900px; }
.vb-platform-field { display: grid; gap: 8px; }
.vb-platform-form label,.vb-activities legend { font-size: 14px; font-weight: 800; }
.vb-platform-form input:not([type=radio]):not([type=checkbox]):not([type=hidden]),.vb-platform-form select,.vb-platform-form textarea { width: 100%; border: 1px solid #767676; border-radius: 0; background: #FFFFFF; color: #1F1F1F; min-height: 48px; padding: 12px; font: inherit; box-sizing: border-box; }
.vb-platform-form input[type=radio],.vb-platform-form input[type=checkbox] { accent-color: #C81018; width: 20px; height: 20px; }
.vb-platform-form button,.vb-outline { min-height: 44px; padding: 12px 20px; font: inherit; font-weight: 800; cursor: pointer; }
.vb-platform-form .wp-element-button { font-size: 20px; color: #FFFFFF; background: #ED1B24; border: 0; justify-self: start; }
.vb-outline { display: inline-flex; text-decoration: none; border: 1px solid #1F1F1F; background: #FFFFFF; color: #1F1F1F; align-items: center; }
.vb-activities { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; border: 0; padding: 0; }
.vb-activities label { display: flex; align-items: center; gap: 8px; border: 1px solid #767676; padding: 12px; }
.vb-activities label:has(input:checked) { border-color: #ED1B24; background: #FFF3F3; }
.vb-portal-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-block: 32px; }
.vb-portal-stats a { display: grid; padding: 24px; border: 1px solid #E5E7EB; color: #1F1F1F; text-decoration: none; }
.vb-portal-stats strong { font-size: 32px; }
.vb-portal-records { list-style: none; margin: 24px 0; padding: 0; border: 1px solid #E5E7EB; }
.vb-portal-records li { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 20px; border-bottom: 1px solid #E5E7EB; overflow-wrap: anywhere; }
.vb-portal-records h2 { font-size: 18px; flex: 1; }
.vb-project-actions { margin-block: 24px; }
.vb-project-select-all,.vb-project-choice { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.vb-project-choice input,.vb-project-select-all input { width: 20px; height: 20px; accent-color: #C81018; }
.vb-project-removal-state { padding: 6px 10px; background: #FFF3CD; color: #5C4500; }
.vb-project-actions > .wp-element-button { min-height: 44px; padding: 12px 20px; border: 0; background: #C81018; color: #FFFFFF; font: inherit; font-weight: 800; }
.vb-project-actions > .wp-element-button:disabled { cursor: not-allowed; opacity: .55; }
.vb-project-action-feedback { border-inline-start: 4px solid #2E7D32; padding: 12px 16px; background: #F2FFF5; }
.vb-ticket-layout { display: grid; grid-template-columns: 2fr 3fr; gap: 24px; }
.vb-ticket-layout > section { min-width: 0; }
.vb-ticket-message { padding: 16px; border: 1px solid #E5E7EB; margin-block: 16px; overflow-wrap: anywhere; }
.vb-support-reply { border-inline-start: 3px solid #ED1B24; }
.vb-ticket-message time { font-size: 12px; }
.vb-honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.vb-functional-enquiry { min-width: 0; }
.vb-wizard-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); padding: 0; list-style: none; border: 1px solid #E5E7EB; }
.vb-wizard-steps li { padding: 12px; font-size: 13px; }
.vb-wizard-steps [aria-current] { background: #1F1F1F; color: white; }
.vb-project-wizard section { display: grid; gap: 20px; margin-block: 24px; }
.vb-project-wizard [hidden] { display: none; }
.vb-wizard-nav { display: flex; gap: 12px; margin-block: 20px; }
.vb-project-image-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; border: 1px solid #E5E7EB; padding: 12px; }
.vb-project-image-row img { width: 120px; height: 90px; object-fit: cover; }
.vb-platform-main :focus-visible,.vb-functional-enquiry :focus-visible { outline: 3px solid #C81018; outline-offset: 3px; }
@media(max-width:1023px) { .vb-portal-shell { grid-template-columns: minmax(0,1fr); } .vb-portal-sidebar { position: static; } .vb-portal-sidebar nav { flex-direction: row; overflow-x: auto; } .vb-portal-sidebar nav a { flex-shrink: 0; } .vb-auth-shell { grid-template-columns: minmax(0,1fr); } .vb-auth-brand { min-height: 240px; } }
@media(max-width:639px) { .vb-auth-shell,.vb-portal-shell { padding-block: 112px 48px; } .vb-portal-stats,.vb-ticket-layout { grid-template-columns: minmax(0,1fr); } .vb-auth-form,.vb-auth-brand { padding: 24px; } .vb-wizard-steps { grid-template-columns: repeat(2,minmax(0,1fr)); } .vb-project-actions > .wp-element-button { width: 100%; } .vb-portal-records li { align-items: flex-start; } }
@media(prefers-reduced-motion:reduce) { .vb-platform-main * { scroll-behavior: auto; transition: none; animation: none; } }
