.dropzone{position:relative;overflow:hidden}.dropzone input[type="file"]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;z-index:2;border:0;font-size:0}.dropzone-content{position:relative;z-index:1;pointer-events:none}.upload-container{max-width:var(--max-width-content, 760px);width:100%;margin:2rem auto;padding:2.75rem 3rem;background:var(--vr-bg);border:1px solid var(--vr-line);border-radius:var(--vr-radius);box-shadow:var(--vr-shadow);font-family:var(--font-sans);color:var(--vr-ink-secondary);letter-spacing:0.01em}.upload-container .card-header{margin-bottom:2rem;padding-bottom:1.75rem;border-bottom:1px solid var(--vr-line-strong)}.upload-container .page-brand{display:block;height:1.5rem;width:auto;margin-bottom:1.25rem}.upload-container .page-title{font-size:1.35rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--vr-ink);margin:0 0 0.35rem}.upload-container .page-subtitle{font-size:0.9375rem;line-height:1.6;color:var(--vr-ink-muted);margin:0 0 1.25rem}.upload-container .intake-requirements{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));gap:1rem;margin-top:1.25rem;padding:1rem 1.25rem;background:var(--vr-callout-bg);border:1px solid var(--vr-callout-line);border-radius:var(--vr-radius-sm)}.upload-container .intake-requirements-heading{margin:0 0 0.5rem;font-size:0.6875rem;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:var(--vr-ink-muted)}.upload-container .intake-requirements-list{margin:0;padding-left:1.1rem;font-size:0.8125rem;line-height:1.55;color:var(--vr-ink-secondary)}.upload-container .intake-requirements-list li + li{margin-top:0.35rem}.upload-container .intake-checks-note{margin:0.85rem 0 0;font-size:0.8125rem;line-height:1.55;color:var(--vr-ink-faint)}.intake-error-card{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.75rem;padding:1.25rem 1.5rem;background:var(--vr-fail-bg);border:1px solid var(--vr-fail-line);border-radius:var(--vr-radius-sm)}.intake-error-card[hidden]{display:none !important}.intake-error-icon{flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;background:var(--vr-surface);border:1px solid var(--vr-fail-line);border-radius:9999px;color:var(--vr-fail-ink)}.intake-error-body{flex:1;min-width:0}.intake-error-title{margin:0 0 0.5rem;font-size:0.9375rem;font-weight:500;color:var(--vr-fail-ink)}.intake-error-message{margin:0;font-size:0.9375rem;line-height:1.55;color:var(--vr-ink-secondary)}.intake-error-detail{margin:0;font-size:0.875rem;line-height:1.55;color:var(--vr-ink-secondary)}.upload-container .dropzone{border:1px dashed var(--vr-line-strong);border-radius:var(--vr-radius-sm);padding:2.75rem 1.75rem;text-align:center;background:var(--vr-surface);cursor:pointer;transition:border-color 0.2s ease, background-color 0.2s ease;outline:none;overflow:hidden}.upload-container .dropzone:hover,.upload-container .dropzone:focus{border-color:var(--vr-brand-line);background:var(--vr-brand-muted)}.upload-container .dropzone.dropzone-active,.upload-container .dropzone.drag-over{border-color:var(--vr-brand);background:var(--vr-brand-muted)}.upload-container .dropzone-content{display:flex;flex-direction:column;align-items:center;gap:0.75rem}.upload-container .upload-icon{width:44px;height:44px;color:var(--vr-ink-faint);transition:color 0.2s ease}.upload-container .dropzone:hover .upload-icon,.upload-container .dropzone:focus .upload-icon{color:var(--vr-brand)}.upload-container .dropzone-title{color:var(--vr-ink-secondary);font-size:0.9375rem;font-weight:500;margin:0}.upload-container .browse-link{color:var(--vr-ink);text-decoration:underline;text-underline-offset:0.15em;cursor:pointer}.upload-container .dropzone-subtitle{color:var(--vr-ink-faint);font-size:0.8125rem;margin:0}.upload-container .sample-format{margin-top:1.25rem;padding:1rem 1.25rem;background:var(--vr-callout-bg);border:1px solid var(--vr-callout-line);border-radius:var(--vr-radius-sm);text-align:left}.upload-container .sample-format-heading{margin:0 0 0.35rem;font-size:0.6875rem;font-weight:500;letter-spacing:0.07em;text-transform:uppercase;color:var(--vr-ink-muted)}.upload-container .sample-format-detail{margin:0 0 0.75rem;font-size:0.8125rem;line-height:1.55;color:var(--vr-ink-faint)}.upload-container .sample-download{display:inline-block;font-size:0.8125rem;font-weight:500;color:var(--vr-brand);text-decoration:none;border-bottom:1px solid var(--vr-brand-line);padding-bottom:0.05rem}.upload-container .sample-download:hover,.upload-container .sample-download:focus{color:var(--vr-brand-deep);border-bottom-color:var(--vr-brand)}.upload-container .preview-panel{margin-top:1.5rem}.upload-container .preview-card{background:var(--vr-surface);border:1px solid var(--vr-line);border-radius:var(--vr-radius-sm);padding:1.5rem 1.75rem;box-shadow:0 1px 2px rgba(26, 26, 28, 0.03)}.upload-container .preview-meta{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:0;padding-bottom:0;border-bottom:none}.upload-container .launch-block{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--vr-line)}.upload-container .launch-copy{margin-bottom:1.5rem}.upload-container .launch-title{font-size:1.0625rem;font-weight:500;color:var(--vr-ink);margin:0 0 0.5rem;letter-spacing:-0.01em}.upload-container .launch-description{font-size:0.9375rem;line-height:1.6;color:var(--vr-ink-muted);margin:0;max-width:42rem}.upload-container .launch-actions{display:flex;flex-direction:column;align-items:stretch;gap:0.75rem}.upload-container .btn-launch{display:inline-flex;align-items:center;justify-content:center;width:100%;font-family:var(--font-sans);font-size:0.875rem;font-weight:500;letter-spacing:0.04em;text-transform:uppercase;padding:0.9rem 1.5rem;border-radius:var(--vr-radius-sm);cursor:pointer;border:1px solid var(--vr-brand);background:var(--vr-brand);color:#ffffff;box-shadow:0 1px 2px rgba(37, 99, 235, 0.2);transition:background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;outline:none}.upload-container .btn-launch:hover{background:var(--vr-brand-deep);border-color:var(--vr-brand-deep)}.upload-container .btn-launch:focus-visible{box-shadow:0 0 0 2px var(--vr-surface), 0 0 0 4px var(--vr-brand-soft)}.upload-container .btn-launch:disabled{opacity:0.72;cursor:wait}.upload-container .btn-text{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:0.8125rem;font-weight:500;color:var(--vr-ink-muted);background:transparent;border:none;padding:0.35rem 0.5rem;cursor:pointer;transition:color 0.2s ease;outline:none}.upload-container .btn-text:hover{color:var(--vr-ink-secondary)}.upload-container .btn-text:focus-visible{box-shadow:0 0 0 2px var(--vr-line-strong);border-radius:0.25rem}.upload-container .preview-actions{display:none}.upload-container .status-badge{background:var(--vr-pass-bg);color:var(--vr-pass-ink);border:1px solid var(--vr-pass-line);font-size:0.6875rem;font-weight:500;letter-spacing:0.08em;text-transform:uppercase;padding:0.3rem 0.65rem;border-radius:9999px;display:inline-flex;align-items:center}.upload-container .file-details{display:flex;align-items:center;gap:0.5rem;font-size:0.9375rem;color:var(--vr-ink-secondary);font-weight:500}.upload-container .file-name{color:var(--vr-ink)}.upload-container .results-wrapper{margin-top:2.5rem;padding-top:1.75rem;border-top:1px solid var(--vr-line-strong)}.upload-container .trust-blurb{margin:1.75rem 0 0;padding-top:1.5rem;border-top:1px solid var(--vr-line);font-size:0.8125rem;line-height:1.6;color:var(--vr-ink-faint)}.upload-container .results-title{font-size:0.8125rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;color:var(--vr-brand);margin:0 0 1rem}.upload-container .code-window{background:var(--vr-surface);border:1px solid var(--vr-line);border-radius:var(--vr-radius-sm);padding:1rem 1.25rem;overflow-x:auto}.upload-container .code-content{color:var(--vr-ink-secondary);font-family:var(--font-mono);font-size:0.8125rem;line-height:1.6;margin:0;white-space:pre-wrap;font-variant-numeric:tabular-nums}.validation-run-pending{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(251, 251, 250, 0.88);backdrop-filter:blur(4px)}.validation-run-pending[hidden]{display:none !important}.validation-run-pending .validation-run-card{width:min(100%, 760px);background:var(--vr-bg);border:1px solid var(--vr-line);border-radius:var(--vr-radius);box-shadow:var(--vr-shadow);padding:2.5rem 2.75rem}.validation-run-pending .run-brand{display:block;width:2rem;height:2rem;margin-bottom:1.25rem;opacity:0.92}.validation-run-pending .validation-run-title{font-size:1.0625rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase;color:var(--vr-ink);margin:0 0 0.5rem}.validation-run-pending .validation-run-subtitle{font-size:0.9375rem;line-height:1.6;color:var(--vr-ink-muted);margin:0 0 1.5rem}.validation-run-pending .step-bar{height:3px;background:var(--vr-line);border-radius:9999px;overflow:hidden}.validation-run-pending .step-bar-fill{display:block;height:100%;width:38%;background:var(--vr-brand);border-radius:inherit;animation:validation-pending-pulse 1.2s ease-in-out infinite alternate}@keyframes validation-pending-pulse {from{width:28%;opacity:0.65}to{width:62%;opacity:1}}@media (max-width: 640px) {.upload-container{padding:2rem 1.5rem}.upload-container .intake-requirements{grid-template-columns:1fr}}:root{--max-width-container:1088px;--max-width-content:760px;--max-width-narrow:640px;--spacing-xs:0.5rem;--spacing-sm:0.75rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:6px;--radius-md:12px;--radius-lg:14px;--radius-xl:18px;--radius-full:9999px;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--galm-slate:#26323c;--galm-slate-soft:#3b4753;--galm-slate-deep:#1b252d;--galm-blue:#2563eb;--galm-blue-soft:#3b82f6;--galm-blue-deep:#1d4ed8;--galm-blue-muted:#eff6ff;--galm-blue-line:rgba(37, 99, 235, 0.22);--vr-bg:#fbfbfa;--vr-surface:#ffffff;--vr-ink:#0e0e10;--vr-ink-secondary:#2f2f31;--vr-ink-muted:#49494c;--vr-ink-faint:#5f5f64;--vr-accent:var(--galm-slate);--vr-accent-soft:var(--galm-slate-soft);--vr-cta:var(--galm-slate);--vr-cta-deep:var(--galm-slate-deep);--vr-cta-muted:#eef0f2;--vr-brand:var(--galm-blue);--vr-brand-soft:var(--galm-blue-soft);--vr-brand-deep:var(--galm-blue-deep);--vr-brand-muted:var(--galm-blue-muted);--vr-brand-line:var(--galm-blue-line);--vr-line:rgba(26, 26, 28, 0.08);--vr-line-strong:rgba(26, 26, 28, 0.12);--vr-shadow:0 1px 2px rgba(26, 26, 28, 0.04), 0 12px 40px rgba(26, 26, 28, 0.06);--vr-radius:14px;--vr-radius-sm:10px;--vr-pass-bg:#dceee0;--vr-pass-ink:#1a3d28;--vr-pass-line:rgba(26, 61, 40, 0.22);--vr-fail-bg:#fce4e4;--vr-fail-ink:#5c1a1a;--vr-fail-line:rgba(92, 26, 26, 0.2);--vr-warn-bg:#fde8c8;--vr-warn-ink:#7c2d12;--vr-warn-line:rgba(124, 45, 18, 0.24);--vr-callout-bg:#f0f6ff;--vr-callout-line:var(--galm-blue-line);--nav-cta-green:#2f6b52;--nav-cta-green-deep:#1e4a38;--nav-cta-green-muted:#e9f3ee;--nav-cta-green-line:rgba(47, 107, 82, 0.28)}.masthead{background-color:rgb(27, 28, 29)}.topbar{background:#ffffff;border-bottom:1px solid var(--vr-brand-line)}.topbar__inner{max-width:var(--max-width-container);margin:0 auto;padding:var(--spacing-sm) var(--spacing-md);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--spacing-md)}.topbar__brand{display:inline-flex;align-items:center;text-decoration:none;line-height:0}.topbar__logo{display:block;height:1.35rem;width:auto}.topbar__nav{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.topbar__nav--right{justify-content:flex-end}.topbar__nav a{color:var(--vr-ink-muted);text-decoration:none;padding:0.25rem 0;border-radius:0;border-bottom:2px solid transparent;transition:color 0.2s ease, border-color 0.2s ease}.topbar__nav li.active > a{color:var(--vr-brand-deep);font-weight:500;background:transparent;border-bottom-color:var(--vr-brand)}.topbar__nav a:hover{color:var(--vr-brand);background:transparent}.topbar__nav li.active > a:hover{color:var(--vr-brand-deep);border-bottom-color:var(--vr-brand)}.site-main{flex:1;width:100%}.page-content{max-width:var(--max-width-container);width:100%;margin:0 auto;padding:var(--spacing-xl) var(--spacing-md)}.flash-message{max-width:var(--max-width-container);width:calc(100% - 2 * var(--spacing-md));margin:var(--spacing-md) auto 0;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);background:var(--vr-brand-muted);border:1px solid var(--vr-brand-line);color:var(--vr-brand-deep);font-size:0.9375rem;line-height:1.5}.site-footer{margin-top:auto;border-top:1px solid var(--vr-line);background:var(--vr-surface)}.site-footer__inner{max-width:var(--max-width-container);margin:0 auto;padding:var(--spacing-lg) var(--spacing-md)}.masthead{margin-top:-21px;color:white;text-align:center;min-height:500px}.masthead .header{max-width:var(--max-width-content);margin:0 auto;font-family:var(--font-sans)}.masthead h1.header{margin-top:1em;margin-bottom:0em;font-size:clamp(2.5rem, 8vw, 4.5rem);line-height:1.2em;font-weight:normal}.masthead h2{font-size:clamp(1.2rem, 4vw, 1.7rem);font-weight:normal}.masthead .btn{margin:1em 0}.bs-callout{padding:var(--spacing-xl);margin:var(--spacing-xl) 0;border:1px solid #eee;border-left-width:5px;border-radius:var(--radius-sm)}.bs-callout p:last-child{margin-bottom:0}.bs-callout-info{border-left-color:#1b809e}.bs-docs-section{margin-bottom:60px}.bs-docs-section:last-child{margin-bottom:0}#message{margin-bottom:0}.hero-card{background:#ffffff;border:1px solid #e5e7eb;border-radius:var(--radius-xl);box-shadow:0 18px 45px rgba(17, 24, 39, 0.06);padding:var(--spacing-2xl) var(--spacing-xl);max-width:var(--max-width-content);margin:0 auto}.hero-copy h2{margin-top:0;margin-bottom:var(--spacing-sm);font-size:2rem;color:#111827}.hero-copy p{color:#6b7280;line-height:1.6}.form-group{margin:var(--spacing-lg) 0 var(--spacing-md)}.form-group label{display:inline-block;margin-bottom:var(--spacing-xs);font-weight:600;color:#111827}.upload-zone{border:2px dashed #c7ccd4;border-radius:var(--radius-xl);padding:var(--spacing-xl) var(--spacing-lg);min-height:240px;background:linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,0.6);display:flex;flex-direction:column;justify-content:center}.upload-zone__header{display:flex;flex-direction:column;gap:0.2rem;margin-bottom:var(--spacing-sm)}.upload-zone__header strong{font-size:1.05rem;color:#111827}.upload-zone__header span{color:#6b7280}.custom-file{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap;padding:var(--spacing-sm) var(--spacing-md);border:1px solid #d1d5db;border-radius:var(--radius-md);background:#ffffff}.custom-file input[type="file"]{flex:1 1 220px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid #d1d5db;border-radius:var(--radius-sm);background:#fff;color:#111827}.form-actions{margin-top:var(--spacing-md)}.form-actions .btn{min-width:180px;border-radius:var(--radius-full);padding:var(--spacing-sm) var(--spacing-lg);background:#111827;border:1px solid #111827;color:#ffffff}.form-actions .btn:hover{background:#1f2937;border-color:#1f2937}.preview-box{margin-top:var(--spacing-lg);padding:var(--spacing-md);border:1px solid #e5e7eb;border-radius:var(--radius-lg);background:linear-gradient(180deg, #ffffff 0%, #f9fafb 100%)}.preview-box pre{margin:0;white-space:pre-wrap;word-break:break-word;color:#374151;font-family:var(--font-mono);font-size:0.95rem;line-height:1.5}.preview-box p{margin:0;color:#6b7280}#uploadSubmit[disabled]{opacity:0.65;cursor:not-allowed}.preview-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.btn-primary,.btn-secondary{display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:0.875rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);cursor:pointer;transition:all 0.15s ease-in-out;outline:none}.btn-primary{background-color:var(--vr-cta);color:#ffffff;border:1px solid var(--vr-cta);box-shadow:0 1px 2px rgba(27, 37, 45, 0.14)}.btn-primary:hover{background-color:var(--vr-cta-deep);border-color:var(--vr-cta-deep)}.btn-primary:focus-visible{box-shadow:0 0 0 2px #ffffff, 0 0 0 4px var(--vr-brand-soft)}.btn-secondary{background-color:#ffffff;color:#4b5563;border:1px solid #e5e7eb}.btn-secondary:hover{background-color:#f9fafb;color:#1f2937;border-color:#d1d5db}.btn-secondary:focus-visible{box-shadow:0 0 0 2px #ffffff, 0 0 0 4px #d1d5db}.preview-actions{display:flex;gap:var(--spacing-xs);justify-content:flex-end;margin-top:var(--spacing-md)}.results-wrapper{margin-top:var(--spacing-xl);border-top:1px solid #e2e8f0;padding-top:var(--spacing-lg)}.results-title{font-size:1.1rem;color:#1e293b;margin-bottom:var(--spacing-sm)}.code-window{background:#f8fafc;border:1px solid #e2e8f0;border-radius:var(--radius-sm);padding:var(--spacing-md);overflow-x:auto}.code-content{color:#334155;font-family:var(--font-mono);font-size:0.85rem;line-height:1.6;margin:0;white-space:pre-wrap}@media print {.topbar,.site-footer,.flash-message{display:none !important}body{background:#ffffff !important}.site-main,.page-content{max-width:none;padding:0}}