:root { --fv-navy:#081a3e; --fv-blue:#004aad; --fv-cyan:#8bcfe0; --fv-ink:#10213d; --fv-muted:#66758c; --fv-line:#dfe6ef; --fv-bg:#f5f7fb; }
.fv-auth-card { width:min(100%,460px); margin:auto; padding:38px; border-radius:22px; background:#fff; box-shadow:0 22px 70px rgba(0,0,0,.25); }
.fv-auth-brand { display:block; color:var(--fv-blue); text-align:center; text-decoration:none; font-size:1.7rem; font-weight:600; letter-spacing:-.04em; }
.fv-auth-card h1 { margin:16px 0 8px; text-align:center; color:var(--fv-ink); font-size:1.8rem; }
.fv-auth-card>p { color:var(--fv-muted); text-align:center; line-height:1.5; }
.fv-sso-grid { display:grid; gap:10px; margin-top:24px; }
.fv-sso-grid form { margin:0; }
.fv-sso-button { position:relative; width:100%; min-height:46px; display:flex; align-items:center; justify-content:center; padding:.65rem 1rem; border:1px solid #cbd5e1; background:#fff; color:#1f2937; border-radius:10px; font:600 .9rem Montserrat,sans-serif; cursor:pointer; box-shadow:0 1px 2px rgba(15,23,42,.08); transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease,transform .15s ease; }
.fv-sso-button:hover { border-color:#94a3b8; background:#f8fafc; color:#111827; box-shadow:0 3px 10px rgba(15,23,42,.12); transform:translateY(-1px); }
.fv-sso-button:focus-visible { outline:0; border-color:#7ba8e6; box-shadow:0 0 0 .2rem rgba(0,74,173,.18); }
.fv-provider-mark { position:absolute; left:1rem; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:#eef3fa; color:var(--fv-blue); }
.fv-provider-mark--google { border-radius:0; background:transparent; }
.fv-provider-mark--google svg { display:block; width:18px; height:18px; }
.fv-divider { display:flex; align-items:center; gap:12px; margin:22px 0; color:#8793a5; font-size:.82rem; }
.fv-divider::before,.fv-divider::after { content:""; height:1px; background:var(--fv-line); flex:1; }
.fv-auth-form { display:grid; gap:8px; }
.fv-auth-form label { font-weight:600; color:var(--fv-ink); font-size:.9rem; margin-top:5px; }
.fv-auth-form input:not([type=checkbox]) { width:100%; padding:12px 13px; border:1px solid #cdd6e2; border-radius:9px; font:inherit; }
.fv-auth-form span { color:#b91c1c; font-size:.82rem; }
.fv-auth-form small { color:var(--fv-muted); line-height:1.4; }
.fv-checkbox { display:flex; align-items:center; gap:7px; font-weight:400!important; }
.fv-auth-switch { margin-top:24px!important; font-size:.9rem; }
.fv-auth-switch a { color:var(--fv-blue); font-weight:600; }
.fv-alert { border-radius:10px; padding:12px 14px; margin:12px 0; font-size:.92rem; }
.fv-alert:empty { display:none; }
.fv-alert--error { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; }
.fv-alert--success { background:#ecfdf5; border:1px solid #a7f3d0; color:#065f46; }
.fv-app-shell { width:min(100%,1500px); min-height:calc(100vh - 130px); display:grid; grid-template-columns:250px minmax(0,1fr); background:var(--fv-bg); border-radius:24px; overflow:hidden; box-shadow:0 22px 70px rgba(0,0,0,.24); }
.fv-sidebar { background:var(--fv-navy); color:#fff; padding:28px 20px; display:flex; flex-direction:column; }
.fv-sidebar-brand { color:#fff; text-decoration:none; font-size:1.55rem; font-weight:600; padding:0 10px 24px; }
.fv-user-chip { display:flex; gap:10px; align-items:center; padding:14px 10px; border-block:1px solid rgba(255,255,255,.12); margin-bottom:22px; min-width:0; }
.fv-user-chip>span { flex:0 0 36px; height:36px; display:grid; place-items:center; border-radius:10px; background:var(--fv-blue); font-weight:600; }
.fv-user-chip div { min-width:0; }
.fv-user-chip strong,.fv-user-chip small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fv-user-chip strong { font-size:.82rem; }.fv-user-chip small { color:#c5d0e1; margin-top:3px; font-size:.78rem; }
.fv-sidebar nav { display:grid; gap:5px; }
.fv-sidebar nav a { display:flex; gap:12px; align-items:center; padding:12px 13px; border-radius:9px; color:#d7dfeb; text-decoration:none; font-size:.9rem; }
.fv-sidebar nav a:hover,.fv-sidebar nav a.active { background:rgba(139,207,224,.13); color:#fff; }
.fv-sidebar-upload { margin-top:auto; display:block; padding:13px; background:var(--fv-blue); border-radius:10px; color:#fff; text-decoration:none; text-align:center; font-weight:600; font-size:.88rem; }
.fv-dashboard { min-width:0; padding:38px; color:var(--fv-ink); overflow:auto; }
.fv-dashboard-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:26px; }
.fv-dashboard-header p,.fv-eyebrow { margin:0 0 5px; color:var(--fv-blue); font-size:.75rem; font-weight:600; letter-spacing:.13em; }
.fv-dashboard-header h1 { margin:0; font-size:1.9rem; letter-spacing:-.04em; }
.fv-plan-badge { background:#e8f1ff; color:var(--fv-blue); border-radius:999px; padding:8px 14px; font-size:.84rem; font-weight:600; }
.fv-dashboard-section { padding-top:18px; margin-bottom:30px; scroll-margin-top:20px; }
.fv-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.fv-metric-card { min-height:144px; padding:20px; background:#fff; border:1px solid var(--fv-line); border-radius:15px; display:flex; flex-direction:column; }
.fv-metric-card>span { color:#53657d; font-size:.84rem; }.fv-metric-card strong { display:block; margin-top:auto; font-size:1.55rem; }.fv-metric-card small { color:#53657d; margin-top:4px; font-size:.82rem; }
.fv-metric-card--primary { background:linear-gradient(145deg,#004aad,#073b74); color:#fff; border:0; }.fv-metric-card--primary>span,.fv-metric-card--primary small { color:#dcecff; }
.fv-progress { height:5px; border-radius:9px; background:rgba(255,255,255,.25); margin-top:14px; overflow:hidden; }.fv-progress i { display:block; height:100%; background:var(--fv-cyan); }
.fv-insight-card { margin-top:14px; padding:22px 24px; border-radius:15px; background:#e8f6fa; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.fv-insight-card h2 { margin:5px 0 7px; font-size:1.16rem; }.fv-insight-card p { margin:0; color:#40536d; font-size:.9rem; line-height:1.6; max-width:750px; }.fv-insight-card>a { color:var(--fv-blue); white-space:nowrap; font-weight:600; font-size:.88rem; }
.fv-panel { padding:25px; background:#fff; border:1px solid var(--fv-line); border-radius:17px; }
.fv-section-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:20px; }.fv-section-heading h2 { margin:4px 0; font-size:1.3rem; }.fv-section-heading p { color:#53657d; margin:5px 0; font-size:.9rem; }
.fv-primary-link,.fv-outline-button { padding:10px 13px; border-radius:9px; border:0; background:var(--fv-blue); color:#fff; text-decoration:none; font:600 .85rem Montserrat,sans-serif; cursor:pointer; }
.fv-outline-button { background:#fff; border:1px solid #cbd5e1; color:var(--fv-ink); }
.fv-table-tools { display:flex; gap:9px; justify-content:flex-end; margin-bottom:12px; }.fv-table-tools input,.fv-table-tools select { padding:9px 11px; border:1px solid #d5dde8; border-radius:8px; font:inherit; font-size:.85rem; }
.fv-table-tools input { min-width:230px; }.fv-table-wrap { overflow-x:auto; }
.fv-data-table { width:100%; border-collapse:collapse; font-size:.84rem; }.fv-data-table th { color:#65758a; font-weight:600; cursor:pointer; }.fv-data-table th,.fv-data-table td { padding:12px 9px; text-align:left; border-bottom:1px solid #edf0f5; white-space:nowrap; }.fv-data-table td:first-child { white-space:normal; min-width:190px; }.fv-data-table td strong,.fv-data-table td small { display:block; }.fv-data-table td small { color:#8b97a9; margin-top:3px; }
.fv-status { display:inline-block; padding:5px 8px; border-radius:999px; font-weight:600; }.fv-status--active { background:#dcfce7;color:#166534; }.fv-status--expired { background:#f1f5f9;color:#64748b; }.fv-status--completed { background:#dbeafe;color:#1d4ed8; }
.fv-icon-button { border:0;background:transparent;color:#b42318;cursor:pointer;font:600 .82rem Montserrat,sans-serif; }.fv-empty { color:var(--fv-muted); text-align:center; }
.fv-plan-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.fv-plan-card { position:relative; padding:22px; background:#fff; border:1px solid var(--fv-line); border-radius:16px; }.fv-plan-card.featured { border:2px solid var(--fv-blue); }.fv-plan-card>div { display:flex; justify-content:space-between; font-weight:600; }.fv-plan-card em { font-size:.75rem; font-style:normal; color:var(--fv-blue); background:#e8f1ff;padding:5px 7px;border-radius:999px; }.fv-plan-card>strong { display:block;font-size:1.65rem;margin:18px 0; }.fv-plan-card>strong small { font-size:.8rem;color:var(--fv-muted); }.fv-plan-card ul { list-style:none;padding:0;margin:0 0 18px;min-height:105px;color:#53657d;font-size:.86rem;line-height:1.8; }.fv-plan-card button,.fv-credit-card button { width:100%;border:0;border-radius:8px;padding:10px;background:var(--fv-blue);color:#fff;font:600 .84rem Montserrat,sans-serif;cursor:pointer; }.fv-plan-card button:disabled,.fv-credit-card button:disabled { opacity:.5;cursor:not-allowed; }.fv-config-note { color:#8a5a00;background:#fff7df;padding:10px;border-radius:8px;font-size:.84rem; }
.fv-credit-balance { text-align:right; }.fv-credit-balance span,.fv-credit-balance strong { display:block; }.fv-credit-balance span { color:var(--fv-muted);font-size:.8rem; }.fv-credit-balance strong { color:var(--fv-blue);font-size:1.25rem; }
.fv-credit-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px; }.fv-credit-card { padding:16px;background:#f8fafc;border:1px solid var(--fv-line);border-radius:12px;text-align:center; }.fv-credit-card span,.fv-credit-card strong { display:block; }.fv-credit-card span { font-weight:600; }.fv-credit-card strong { color:var(--fv-blue);font-size:1.35rem;margin:9px 0 14px; }
.fv-cancel-subscription { display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:12px;color:var(--fv-muted);font-size:.84rem; }.fv-cancel-subscription button { border:0;background:transparent;color:#b42318;font:600 .82rem Montserrat,sans-serif;cursor:pointer; }

.fv-anchor-alias { position:relative; top:-20px; }
.fv-addon-block { padding-top:20px; border-top:1px solid var(--fv-line); }
.fv-addon-block + .fv-addon-block { margin-top:24px; }
.fv-addon-block-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; margin-bottom:16px; }
.fv-addon-block-heading h3 { margin:0; color:var(--fv-ink); font-size:1.08rem; }
.fv-addon-block-heading p { margin:5px 0 0; color:#53657d; font-size:.88rem; line-height:1.55; }
.fv-pass-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.fv-pass-groups h4 { margin:0 0 10px; color:#40536d; font-size:.9rem; }
.fv-pass-grid { display:grid; gap:10px; }
.fv-pass-card { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:14px 16px; background:#f8fafc; border:1px solid var(--fv-line); border-radius:12px; }
.fv-pass-card > span { color:var(--fv-ink); font-size:.9rem; font-weight:600; }
.fv-pass-card > small { color:#53657d; font-size:.8rem; }
.fv-pass-card > strong { color:var(--fv-blue); font-size:1rem; }
.fv-pass-card button { border:0; border-radius:8px; padding:9px 11px; background:var(--fv-blue); color:#fff; font:600 .82rem Montserrat,sans-serif; cursor:pointer; }
.fv-pass-card button:disabled { opacity:.5; cursor:not-allowed; }
@media(max-width:1100px){.fv-metric-grid{grid-template-columns:repeat(2,1fr)}.fv-credit-grid{grid-template-columns:repeat(2,1fr)}.fv-pass-groups{grid-template-columns:1fr}}
@media(max-width:820px){.fv-app-shell{grid-template-columns:1fr;border-radius:0}.fv-sidebar{position:sticky;top:0;z-index:5;padding:13px 16px;display:grid;grid-template-columns:auto 1fr auto;align-items:center}.fv-sidebar-brand{padding:0}.fv-user-chip{display:none}.fv-sidebar nav{display:flex;overflow:auto}.fv-sidebar nav a{padding:9px}.fv-sidebar nav a span{display:none}.fv-sidebar-upload{margin:0}.fv-dashboard{padding:24px 16px}.fv-plan-grid{grid-template-columns:1fr}}
@media(max-width:560px){.fv-pass-card{grid-template-columns:1fr}.fv-addon-block-heading{flex-direction:column}.fv-auth-card{padding:26px 20px;border-radius:16px}.fv-metric-grid,.fv-credit-grid{grid-template-columns:1fr}.fv-insight-card,.fv-section-heading{align-items:flex-start;flex-direction:column}.fv-table-tools{flex-direction:column}.fv-table-tools input{min-width:0;width:100%}.fv-sidebar-upload{font-size:0}.fv-sidebar-upload::after{content:"＋";font-size:1rem}}
