@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Inter:wght@400;500;600&display=swap";.vf-toast-host{z-index:1000;flex-direction:column;gap:8px;max-width:min(380px,100vw - 24px);display:flex;position:fixed;bottom:16px;right:16px}.vf-toast{border-radius:var(--vf-radius);border:1px solid var(--vf-border-subtle);background:var(--vf-surface);box-shadow:var(--vf-shadow);font-size:var(--vf-fs-md);color:var(--vf-text-primary);justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.vf-toast-success{background:var(--vf-success-bg);border-color:var(--vf-success-border);color:var(--vf-success)}.vf-toast-error{background:var(--vf-danger-bg);border-color:var(--vf-danger-border);color:var(--vf-danger)}.vf-toast-warning{background:var(--vf-warning-bg);border-color:var(--vf-warning-border);color:var(--vf-warning)}.vf-toast-info{background:var(--vf-info-bg);border-color:color-mix(in srgb, var(--vf-info) 35%, var(--vf-border-subtle));color:var(--vf-info)}.vf-toast-close{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;padding:0 2px;font-size:18px;line-height:1}.vf-toast-close:hover{opacity:1}.theme-toggle{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-pill);background:var(--vf-surface-elevated);align-items:center;gap:4px;padding:3px;display:inline-flex}.theme-toggle-icon{border-radius:var(--vf-radius-pill);width:32px;height:32px;color:var(--vf-text-secondary);cursor:pointer;background:0 0;border:none;place-items:center;transition:background .15s,color .15s;display:grid}.theme-toggle-icon:hover{color:var(--vf-text-primary);background:var(--vf-primary-softer)}.theme-toggle-icon.active{color:var(--vf-primary);background:var(--vf-primary-soft)}.theme-toggle-select-wrap{margin-left:2px;position:relative}.theme-toggle-select{appearance:none;color:var(--vf-text-secondary);font-size:var(--vf-fs-xs);font-weight:var(--vf-fw-semibold);cursor:pointer;background:0 0;border:none;max-width:78px;padding:4px 18px 4px 8px}.theme-toggle-select:focus-visible{outline:2px solid var(--vf-primary);outline-offset:1px;border-radius:4px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vf-shell{grid-template-columns:var(--vf-sidebar-width) 1fr;background:var(--vf-bg);min-height:100vh;color:var(--vf-text-primary);display:grid;position:relative}.vf-shell.nav-closed{grid-template-columns:1fr}.vf-sidebar{background:var(--vf-sidebar-bg);color:var(--vf-sidebar-text);min-height:100vh;width:var(--vf-sidebar-width);z-index:40;border-right:1px solid var(--vf-sidebar-border);flex-direction:column;transition:transform .2s,background .2s;display:flex;overflow:hidden}.vf-shell.nav-closed .vf-sidebar{display:none}.vf-nav-backdrop{pointer-events:none;display:none}.vf-side-brand{border:1px solid var(--vf-sidebar-border);border-radius:var(--vf-radius-lg);background:var(--vf-brand-plate-bg);color:#101828;box-shadow:var(--vf-shadow-sm);align-items:center;gap:12px;margin:16px 14px 8px;padding:12px 14px;display:flex}.vf-side-brand-mark-plate{background:var(--vf-brand-plate-muted);border:1px solid var(--vf-brand-plate-border);border-radius:12px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.vf-side-brand-mark-plate img{object-fit:contain;width:28px;height:28px;display:block}.vf-side-brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.vf-side-brand-text strong{font-size:var(--vf-fs-card-title);line-height:var(--vf-lh-card-title);font-weight:var(--vf-fw-semibold);color:#101828;letter-spacing:-.02em}.vf-side-brand-text em{font-style:normal;font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:#526277;font-weight:var(--vf-fw-medium)}.vf-find-menu{align-items:center;gap:var(--vf-space-icon);background:var(--vf-bg-muted);border:1px solid var(--vf-sidebar-border);border-radius:var(--vf-radius-sm);min-height:var(--vf-control-height);margin:14px 14px 8px;padding:0 10px;display:flex}.vf-find-icon{width:16px;height:16px;color:var(--vf-sidebar-muted);flex-shrink:0;display:grid}.vf-find-icon svg{width:16px;height:16px}.vf-find-menu input{min-width:0;color:var(--vf-sidebar-text);font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-regular);background:0 0;border:none;outline:none;flex:1}.vf-find-menu input::placeholder{color:var(--vf-text-tertiary)}.vf-side-nav{flex-direction:column;flex:1;gap:2px;padding:6px 10px 18px;display:flex;overflow:auto}.vf-side-item{border-radius:var(--vf-radius);width:100%;min-height:42px;color:var(--vf-sidebar-muted);font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-medium);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:0 12px;text-decoration:none;transition:background .15s,color .15s,box-shadow .15s;display:flex}.vf-side-item:hover{background:var(--vf-sidebar-hover);color:var(--vf-sidebar-text);text-decoration:none}.vf-side-item.active,.vf-side-item.group-toggle.active{background:var(--vf-sidebar-active);color:var(--vf-primary);font-weight:var(--vf-fw-semibold);box-shadow:inset 3px 0 0 var(--vf-primary)}.vf-side-icon{opacity:.95;flex-shrink:0;width:18px;height:18px;display:grid}.vf-side-icon svg{width:18px;height:18px}.vf-side-label{flex:1;min-width:0}.vf-side-chevron{opacity:.55;width:14px;height:14px;transition:transform .15s;display:grid}.vf-side-chevron svg{width:14px;height:14px}.vf-side-chevron.open{transform:rotate(90deg)}.vf-side-children{border-left:1px solid var(--vf-sidebar-border);flex-direction:column;gap:1px;margin-left:18px;padding:2px 0 6px 18px;display:flex}.vf-side-child{border-radius:var(--vf-radius-sm);color:var(--vf-sidebar-muted);font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-medium);padding:8px 12px;text-decoration:none;display:block}.vf-side-child:hover{background:var(--vf-sidebar-hover);color:var(--vf-sidebar-text);text-decoration:none}.vf-side-child.active{background:var(--vf-sidebar-active);color:var(--vf-primary);font-weight:var(--vf-fw-semibold);box-shadow:inset 2px 0 0 var(--vf-primary)}.vf-body{flex-direction:column;min-width:0;min-height:100vh;display:flex}.vf-topbar{height:var(--vf-header-height);background:color-mix(in srgb, var(--vf-surface) 92%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--vf-border-subtle);z-index:30;justify-content:space-between;align-items:center;gap:16px;padding:0 22px;display:flex;position:sticky;top:0}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.vf-topbar{background:var(--vf-surface)}}.vf-context-badge{border-radius:var(--vf-radius-pill);font-size:var(--vf-fs-badge);line-height:var(--vf-lh-badge);font-weight:var(--vf-fw-medium);background:var(--vf-primary-soft);color:var(--vf-primary);border:1px solid var(--vf-border-subtle);white-space:nowrap;flex-shrink:0;align-items:center;padding:4px 10px;display:inline-flex}.vf-topbar-left,.vf-topbar-right{align-items:center;gap:12px;min-width:0;display:flex}.vf-hamburger{border-radius:var(--vf-radius);border:1px solid var(--vf-border-subtle);background:var(--vf-bg-muted);cursor:pointer;place-items:center;gap:4px;width:36px;height:36px;padding:0;display:grid}.vf-hamburger span{background:var(--vf-text-primary);border-radius:1px;width:14px;height:1.5px;transition:transform .15s,opacity .15s;display:block}.vf-header-context{align-items:center;gap:12px;min-width:0;display:flex}.vf-header-context strong{font-size:var(--vf-fs-base);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.vf-header-context .vf-context-badge{margin-left:0}.vf-brand-lockup{align-items:center;gap:10px;min-width:0;display:flex}.vf-product-mark-plate{background:var(--vf-brand-plate-bg);border:1px solid var(--vf-brand-plate-border);width:34px;height:34px;box-shadow:var(--vf-shadow-sm);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.vf-product-mark-plate img{object-fit:contain;width:24px;height:24px;display:block}.vf-product-name{flex-direction:column;min-width:0;line-height:1.15;display:flex}.vf-product-name strong{font-size:var(--vf-fs-base);color:var(--vf-heading)}.vf-product-name span{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium);font-style:normal}.vf-user-block{align-items:center;gap:10px;display:flex}.vf-user-meta{flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.vf-user-meta strong{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-medium);color:var(--vf-heading)}.vf-user-meta span{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);text-transform:capitalize}.vf-avatar{background:var(--vf-primary-soft);width:34px;height:34px;color:var(--vf-primary);border:1px solid var(--vf-border-subtle);font-size:var(--vf-fs-helper);font-weight:var(--vf-fw-semibold);border-radius:50%;place-items:center;display:grid}.vf-logout{border:1px solid var(--vf-border-subtle);color:var(--vf-text-secondary);border-radius:var(--vf-radius);min-height:36px;font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-semibold);cursor:pointer;background:0 0;padding:7px 12px;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.vf-logout:hover{color:var(--vf-text-primary);background:var(--vf-bg-muted);border-color:var(--vf-border);text-decoration:none}.vf-main{min-width:0;padding:var(--vf-space-workspace) var(--vf-space-workspace) var(--vf-space-8);background:radial-gradient(ellipse 70% 40% at 100% 0%, rgba(var(--vf-primary-rgb), .05), transparent 55%), var(--vf-bg);gap:var(--vf-space-section);flex-direction:column;flex:1;display:flex}.vf-canvas{flex:1;width:100%;min-width:0;max-width:none;margin:0}@media (width<=900px){.vf-shell,.vf-shell.nav-open,.vf-shell.nav-closed{grid-template-columns:1fr}.vf-sidebar{box-shadow:var(--vf-shadow-lg);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.vf-shell.nav-open .vf-sidebar{display:flex;transform:translate(0)}.vf-shell.nav-closed .vf-sidebar{display:flex;transform:translate(-100%)}.vf-nav-backdrop{pointer-events:auto;background:var(--vf-overlay);z-index:35;border:none;display:block;position:fixed;inset:0}.vf-user-meta{display:none}}.page-title{font-size:var(--vf-fs-page);line-height:var(--vf-lh-page);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);letter-spacing:-.01em;margin:0}.page-sub{margin:var(--vf-space-2) 0 0;color:var(--vf-text-secondary);font-size:var(--vf-fs-body);line-height:var(--vf-lh-body);font-weight:var(--vf-fw-regular)}.section-title{margin:0 0 var(--vf-space-3);font-size:var(--vf-fs-section);line-height:var(--vf-lh-section);font-weight:var(--vf-fw-semibold);color:var(--vf-heading)}.card-title{margin:0 0 var(--vf-space-2);font-size:var(--vf-fs-card-title);line-height:var(--vf-lh-card-title);font-weight:var(--vf-fw-semibold);color:var(--vf-heading)}.breadcrumb{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-regular);color:var(--vf-text-secondary);margin:var(--vf-space-2) 0 var(--vf-space-4);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.breadcrumb a{color:var(--vf-text-secondary);text-decoration:none}.breadcrumb a:hover{color:var(--vf-primary);text-underline-offset:.15em;text-decoration:underline}.breadcrumb span.sep{opacity:.55}.page-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.page-header{margin-bottom:var(--vf-space-section)}.page-header .page-header-row{margin-top:0}.action-row{gap:var(--vf-space-actions);flex-wrap:wrap;align-items:center;display:flex}.panel{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);padding:var(--vf-space-card);box-shadow:var(--vf-shadow-sm);transition:border-color .15s,box-shadow .15s}.panel-elevated{background:var(--vf-surface-elevated);box-shadow:var(--vf-shadow)}.panel h2{margin:0 0 var(--vf-space-3);font-size:var(--vf-fs-card-title);line-height:var(--vf-lh-card-title);font-weight:var(--vf-fw-semibold);color:var(--vf-heading)}.empty-panel{max-width:560px}.chart-container{width:100%;min-width:0}.chart-container-body{width:100%;min-width:0;overflow:auto}.btn{justify-content:center;align-items:center;gap:var(--vf-space-icon);border-radius:var(--vf-radius-sm);padding:0 var(--vf-space-4);min-height:var(--vf-control-height);font-weight:var(--vf-fw-semibold);font-size:var(--vf-fs-button);line-height:var(--vf-lh-button);cursor:pointer;border:1px solid #0000;text-decoration:none;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.btn:hover{text-decoration:none}.btn:disabled,.btn[disabled]{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--vf-primary);color:var(--vf-on-primary);box-shadow:0 4px 12px rgba(var(--vf-primary-rgb), .22);border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--vf-primary-hover);border-color:var(--vf-primary-hover);color:var(--vf-on-primary);box-shadow:0 6px 16px rgba(var(--vf-primary-rgb), .28)}.btn-primary:focus-visible{outline:2px solid var(--vf-primary);outline-offset:2px}.btn-icon{width:var(--vf-control-height);min-width:var(--vf-control-height);background:var(--vf-surface-elevated);color:var(--vf-text-primary);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-sm);padding:0}.btn-icon:hover:not(:disabled){background:var(--vf-primary-softer);border-color:var(--vf-border);color:var(--vf-primary)}.btn-secondary{background:var(--vf-surface);color:var(--vf-text-primary);border-color:var(--vf-border)}.btn-secondary:hover:not(:disabled){background:var(--vf-bg);border-color:var(--vf-border-strong)}.btn-ghost{border:1px solid var(--vf-border-subtle);color:var(--vf-text-primary);border-radius:var(--vf-radius-sm);padding:0 var(--vf-space-3);min-height:var(--vf-control-height);font-size:var(--vf-fs-button);line-height:var(--vf-lh-button);font-weight:var(--vf-fw-semibold);cursor:pointer;background:0 0;text-decoration:none}.btn-ghost:hover:not(:disabled){background:var(--vf-bg);text-decoration:none}.btn-danger{background:var(--vf-danger);color:var(--vf-on-primary);border-color:var(--vf-danger)}.btn-danger:hover:not(:disabled){filter:brightness(.92);color:var(--vf-on-primary)}.btn-outline{color:var(--vf-primary);border-color:var(--vf-primary);background:0 0}.btn-outline:hover:not(:disabled){background:var(--vf-primary-soft);color:var(--vf-primary)}.btn-sm{min-height:var(--vf-table-row-height-compact);padding:0 var(--vf-space-3);font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper)}button.btn{cursor:pointer}.status-pill,.pill{border-radius:var(--vf-radius-pill);font-size:var(--vf-fs-badge);line-height:var(--vf-lh-badge);font-weight:var(--vf-fw-medium);text-transform:capitalize;align-items:center;padding:2px 10px;display:inline-flex}.status-pill.active,.status-pill.completed,.status-pill.ready,.status-pill.assigned,.pill-ok{background:var(--vf-success-bg);color:var(--vf-success)}.status-pill.inactive,.status-pill.failed,.status-pill.revoked,.status-pill.disabled,.pill-bad{background:var(--vf-danger-bg);color:var(--vf-danger)}.status-pill.draft,.status-pill.queued,.status-pill.pending,.status-pill.invited,.status-pill.running,.status-pill.suspended,.status-pill.thin,.pill-warn{background:var(--vf-warning-bg);color:var(--vf-warning)}.status-pill.archived,.status-pill.missing{background:var(--vf-bg-muted);color:var(--vf-text-secondary);border:1px solid var(--vf-border-subtle)}.toolbar{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);box-shadow:var(--vf-shadow-sm);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;padding:12px 14px;display:flex}.toolbar input,.toolbar select{min-height:var(--vf-control-height);border:1px solid var(--vf-border);border-radius:var(--vf-radius-sm);background:var(--vf-surface);min-width:140px;color:var(--vf-text-primary);font-size:var(--vf-fs-control);line-height:var(--vf-lh-control);font-weight:var(--vf-fw-regular);padding:0 12px}.toolbar .grow{flex:1;min-width:180px}.page-footer-bar{border-top:1px solid var(--vf-border-subtle);color:var(--vf-text-secondary);font-size:var(--vf-fs-sm);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding-top:12px;display:flex}.muted{color:var(--vf-text-secondary);font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-regular)}.alert,.banner{border-radius:var(--vf-radius-sm);font-size:var(--vf-fs-body);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-regular);margin:0 0 12px;padding:10px 12px}.alert-error,.banner.error{background:var(--vf-danger-bg);color:var(--vf-danger);border:1px solid var(--vf-danger-border)}.alert-ok,.banner.ok{background:var(--vf-success-bg);color:var(--vf-success);border:1px solid var(--vf-success-border)}.alert-warn{background:var(--vf-warning-bg);color:var(--vf-warning);border:1px solid var(--vf-warning-border)}.table-wrap{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);background:var(--vf-surface);width:100%;max-height:min(70vh,720px);box-shadow:var(--vf-shadow-sm);overflow:auto}.table-wrap.table-wrap-flush{max-height:none}.data-table{border-collapse:collapse;width:100%;font-size:var(--vf-fs-body);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-regular);table-layout:auto}.data-table th,.data-table td{min-height:var(--vf-table-row-height);border-bottom:1px solid var(--vf-border-subtle);text-align:left;vertical-align:middle;white-space:nowrap;padding:12px}.data-table th{background:var(--vf-bg-muted);color:var(--vf-text-secondary);font-weight:var(--vf-fw-semibold);font-size:var(--vf-fs-table-header);line-height:var(--vf-lh-table-header);z-index:1;box-shadow:0 1px 0 var(--vf-border-subtle);position:sticky;top:0}.data-table.compact th,.data-table.compact td{min-height:var(--vf-table-row-height-compact);padding:8px 12px}.data-table th.num,.data-table td.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--vf-font-mono)}.data-table tbody tr:hover td{background:var(--vf-primary-softer)}.data-table .actions{flex-wrap:wrap;gap:6px;display:flex}.table-footer{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);padding:10px 12px}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.row-stale td{background:var(--vf-warning-bg)}.form-panel{gap:var(--vf-space-field);flex-direction:column;display:flex}.form-grid{gap:var(--vf-space-field) var(--vf-space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (width<=900px){.form-grid{grid-template-columns:1fr}}.field{gap:var(--vf-space-label);font-size:var(--vf-fs-label);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-medium);color:var(--vf-text-primary);margin-bottom:var(--vf-space-field);flex-direction:column;display:flex}.req,.field-req{color:var(--vf-danger);margin-left:2px}.field input,.field select,.field textarea,.fields-row input,.fields-row select,.form-grid input,.form-grid select,.form-grid textarea{min-height:var(--vf-control-height);border:1px solid var(--vf-border);border-radius:var(--vf-radius-sm);background:var(--vf-surface);height:auto;font-size:var(--vf-fs-control);line-height:var(--vf-lh-control);font-weight:var(--vf-fw-regular);color:var(--vf-text-primary);padding:0 12px}.field textarea,.form-grid textarea{height:auto;min-height:80px;padding:8px 10px}.field input:disabled,.field select:disabled,.field textarea:disabled,.field input[readonly],.readonly-field{background:var(--vf-surface-readonly);color:var(--vf-text-primary);cursor:default}.field input.invalid,.field select.invalid{border-color:var(--vf-danger)}.field-error{color:var(--vf-danger);font-size:var(--vf-fs-body);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-regular)}.fields-row{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:12px 14px;margin-bottom:8px;display:grid}.fields-row>.btn,.fields-row>button,.fields-row>.check-row{align-self:end}@media (width<=900px){.fields-row{grid-template-columns:1fr}}.leg-row{border-top:1px solid var(--vf-border-subtle);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));align-items:end;gap:10px;padding:10px 0;display:grid}.check-row{font-size:var(--vf-fs-md);align-items:center;gap:8px;margin:6px 0;display:flex}.chip-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.chip{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-pill);font-size:var(--vf-fs-sm);align-items:center;gap:6px;padding:4px 10px;display:inline-flex}.tab-row{flex-wrap:wrap;gap:6px;margin:8px 0 14px;display:flex}.tab-btn{border:1px solid var(--vf-border-subtle);background:var(--vf-surface);border-radius:var(--vf-radius-sm);min-height:var(--vf-control-height);font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-medium);cursor:pointer;color:var(--vf-text-primary);padding:0 12px}.tab-btn.active{background:var(--vf-primary);color:var(--vf-on-primary);border-color:var(--vf-primary)}.tab-btn:hover:not(.active){background:var(--vf-bg-muted);border-color:var(--vf-border)}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;display:grid}.metric-card{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);padding:var(--vf-space-card);background:var(--vf-surface);min-height:96px;box-shadow:var(--vf-shadow-sm);flex-direction:column;justify-content:space-between;transition:border-color .15s,box-shadow .15s;display:flex}.metric-card:hover{border-color:var(--vf-border);box-shadow:var(--vf-shadow)}.costs-layout{grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);align-items:start;gap:16px;display:grid}.costs-layout .panel{min-width:0}@media (width<=900px){.costs-layout{grid-template-columns:1fr}}.unit-suffix{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);font-weight:var(--vf-fw-regular);margin-left:6px;display:inline-block}.compare-layout{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.compare-side-metrics{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.metric-card span{font-size:var(--vf-fs-kpi-label);line-height:var(--vf-lh-kpi-label);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium);margin-bottom:4px;display:block}.metric-card strong{font-size:var(--vf-fs-kpi);line-height:var(--vf-lh-kpi);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);font-variant-numeric:tabular-nums}.metric-card strong.gain{color:var(--vf-pnl-positive)}.metric-card strong.loss{color:var(--vf-pnl-negative)}.pnl-pos{color:var(--vf-pnl-positive);font-weight:var(--vf-fw-semibold)}.pnl-neg{color:var(--vf-pnl-negative);font-weight:var(--vf-fw-semibold)}.pnl-neu{color:var(--vf-pnl-neutral)}.chart-legend-a{color:var(--vf-heading);font-weight:var(--vf-fw-bold)}.chart-legend-b{color:var(--vf-primary);font-weight:var(--vf-fw-bold)}.readiness-list{font-size:var(--vf-fs-md);color:var(--vf-text-primary);margin:8px 0 0;padding-left:18px}.stat-card{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);background:var(--vf-surface);box-shadow:var(--vf-shadow-sm);padding:16px}.stat-card .lbl{font-size:var(--vf-fs-kpi-label);line-height:var(--vf-lh-kpi-label);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium)}.stat-card .val{font-size:var(--vf-fs-kpi);line-height:var(--vf-lh-kpi);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);font-variant-numeric:tabular-nums;margin-top:6px}.stat-card .range{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);margin-top:6px}.menu-wrap{display:inline-flex;position:relative}.menu-trigger{border-radius:var(--vf-radius);border:1px solid var(--vf-border-subtle);background:var(--vf-surface);cursor:pointer;width:32px;height:32px;color:var(--vf-text-secondary);font-weight:700}.menu-trigger:hover{background:var(--vf-bg)}.menu-pop{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius);min-width:160px;box-shadow:var(--vf-shadow);z-index:20;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.menu-pop button,.menu-pop a{text-align:left;width:100%;font-size:var(--vf-fs-md);color:var(--vf-text-primary);border-radius:var(--vf-radius-sm);cursor:pointer;background:0 0;border:none;padding:8px 10px;text-decoration:none;display:block}.menu-pop button:hover,.menu-pop a:hover{background:var(--vf-primary-softer);text-decoration:none}.menu-pop .danger{color:var(--vf-danger)}.admin-page{width:100%;max-width:none}.admin-dashboard{gap:var(--vf-space-section,20px);flex-direction:column;display:flex}.admin-metric-groups{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.admin-metric-card{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-xl);min-height:152px;color:inherit;cursor:pointer;box-shadow:var(--vf-shadow-sm);z-index:1;flex-direction:column;gap:6px;padding:18px 20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex;position:relative}a.admin-metric-card:hover{border-color:color-mix(in srgb, var(--vf-primary) 40%, var(--vf-border-subtle));box-shadow:var(--vf-shadow);color:inherit;text-decoration:none}.admin-metric-label{font-size:var(--vf-fs-kpi-label);line-height:var(--vf-lh-kpi-label);font-weight:var(--vf-fw-medium);color:var(--vf-text-secondary)}.admin-metric-value{font-size:var(--vf-fs-kpi);line-height:var(--vf-lh-kpi);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);font-variant-numeric:tabular-nums}.admin-metric-hint,.admin-metric-breakdown{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);margin:0}.admin-metric-cta{font-size:var(--vf-fs-nav);color:var(--vf-primary);font-weight:var(--vf-fw-medium);margin-top:auto}.admin-dash-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.admin-quick-actions{z-index:1;gap:10px;display:grid;position:relative}.admin-quick-actions a.admin-action-card{border-radius:var(--vf-radius-lg);border:1px solid var(--vf-border-subtle);background:var(--vf-surface-elevated,var(--vf-surface));color:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:14px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.admin-quick-actions a.admin-action-card:hover{border-color:color-mix(in srgb, var(--vf-primary) 40%, var(--vf-border-subtle));background:var(--vf-primary-softer,#00808014);color:inherit;text-decoration:none}.admin-quick-actions a.admin-action-card strong{font-size:var(--vf-fs-md,.95rem);color:var(--vf-heading)}.admin-quick-actions a.admin-action-card span{font-size:var(--vf-fs-sm,.85rem);color:var(--vf-text-secondary)}.admin-dashboard .home-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-dashboard .home-panel-head h2{font-size:var(--vf-fs-section);margin:0}.admin-dashboard .home-panel-head a{color:var(--vf-primary);font-weight:var(--vf-fw-medium);font-size:var(--vf-fs-nav);z-index:1;text-decoration:none;position:relative}.admin-dashboard .home-panel-head a:hover{text-decoration:underline}.admin-dashboard .panel{z-index:0;position:relative}.admin-dashboard .attention-list a{z-index:1;padding:2px 0;display:inline-block;position:relative}.admin-md-dl{gap:12px;margin:0;display:grid}.admin-md-dl>div{gap:2px;display:grid}.admin-md-dl dt{font-size:var(--vf-fs-kpi-label);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium)}.admin-md-dl dd{color:var(--vf-text-primary);font-size:var(--vf-fs-base);margin:0}.admin-proc-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.admin-proc-list li{border-bottom:1px solid var(--vf-border-subtle);justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:8px;display:flex}.admin-proc-list li:last-child{border-bottom:none;padding-bottom:0}.admin-proc-list span{color:var(--vf-text-secondary);font-size:var(--vf-fs-nav)}.admin-proc-list strong{font-variant-numeric:tabular-nums;color:var(--vf-heading)}.metric-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:16px 0;display:grid}.metric-card{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);padding:var(--vf-space-card)}.metric-card strong{font-size:var(--vf-fs-kpi);line-height:var(--vf-lh-kpi);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);font-variant-numeric:tabular-nums;display:block}.metric-card span{font-size:var(--vf-fs-kpi-label);line-height:var(--vf-lh-kpi-label);font-weight:var(--vf-fw-medium);color:var(--vf-text-secondary)}.attention-list{margin:0;padding:0;list-style:none}.attention-list li{margin:0 0 8px}.attention-list a{color:var(--vf-primary);text-decoration:none}.attention-list a:hover{text-decoration:underline}.detail-tabs{border-bottom:1px solid var(--vf-border-subtle);flex-wrap:wrap;gap:8px;margin:16px 0;padding-bottom:8px;display:flex}.detail-tabs button{min-height:var(--vf-control-height);border-radius:var(--vf-radius-sm);cursor:pointer;color:var(--vf-text-secondary);font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-medium);background:0 0;border:none;padding:0 12px}.detail-tabs button.active{background:var(--vf-primary-soft,#0080801f);color:var(--vf-primary)}.vf-context-badge{border-radius:var(--vf-radius-pill);font-size:var(--vf-fs-badge);line-height:var(--vf-lh-badge);font-weight:var(--vf-fw-medium);background:var(--vf-primary-soft,#0080801f);color:var(--vf-primary);border:1px solid var(--vf-border-subtle);align-items:center;margin-right:12px;padding:4px 10px;display:inline-flex}.am-wrap{display:inline-flex;position:relative}.am-trigger{border:1px solid var(--vf-border-subtle);background:var(--vf-surface-elevated,var(--vf-surface));width:32px;height:32px;color:var(--vf-text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.am-trigger:hover,.am-trigger[aria-expanded=true]{background:var(--vf-bg-muted);border-color:var(--vf-primary);color:var(--vf-text-primary)}.am-pop{z-index:40;border:1px solid var(--vf-border);background:var(--vf-surface-elevated,var(--vf-surface));min-width:180px;color:var(--vf-text-primary);box-shadow:var(--vf-shadow-lg,0 8px 24px #0f172a2e);border-radius:10px;padding:6px;position:absolute;top:calc(100% + 4px);right:0}.am-pop-portal{z-index:1000;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;position:fixed;right:auto;overflow-y:auto}.am-item{align-items:center;gap:var(--vf-space-icon);border-radius:var(--vf-radius-sm);width:100%;color:var(--vf-text-primary);font:inherit;font-size:var(--vf-fs-nav);line-height:var(--vf-lh-nav);font-weight:var(--vf-fw-medium);text-align:left;cursor:pointer;background:0 0;border:0;padding:8px 10px;display:flex}.am-item:hover:not(:disabled),.am-item:focus-visible:not(:disabled){background:var(--vf-bg-muted);outline:none}.am-item:disabled{opacity:.45;cursor:not-allowed}.am-icon{width:16px;height:16px;color:var(--vf-text-secondary);flex-shrink:0;display:inline-flex}.am-label{color:inherit;line-height:1.2}.am-default{color:var(--vf-text-primary)}.am-default .am-icon{color:var(--vf-text-secondary)}.am-warning,.am-warning .am-icon,.am-warning .am-label{color:var(--vf-warning)}.am-positive,.am-positive .am-icon,.am-positive .am-label{color:var(--vf-primary)}.am-danger,.am-danger .am-icon,.am-danger .am-label{color:var(--vf-danger)}.vf-modal-backdrop{background:var(--vf-overlay);z-index:900;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.vf-modal{background:var(--vf-surface);border-radius:var(--vf-radius-lg);border:1px solid var(--vf-border-subtle);width:min(440px,100%);box-shadow:var(--vf-shadow-lg);padding:var(--vf-space-card-lg)}.vf-modal h2{font-size:var(--vf-fs-dialog);line-height:var(--vf-lh-dialog);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);margin:0 0 8px}.vf-modal-body{font-size:var(--vf-fs-body);line-height:var(--vf-lh-body);font-weight:var(--vf-fw-regular);color:var(--vf-text-secondary);margin-bottom:16px}.vf-modal-actions{justify-content:flex-end;gap:var(--vf-space-actions);display:flex}.eq-chart{width:100%;min-height:200px;position:relative}.eq-chart svg{cursor:crosshair;width:100%;height:auto;max-height:none;display:block}.eq-axis-label{fill:var(--vf-chart-axis);font-size:var(--vf-fs-chart);line-height:var(--vf-lh-chart);font-family:var(--vf-font-sans);font-weight:var(--vf-fw-regular)}.eq-axis-title{fill:var(--vf-text-secondary);font-size:var(--vf-fs-chart);line-height:var(--vf-lh-chart);font-family:var(--vf-font-sans);font-weight:var(--vf-fw-medium)}.eq-legend{font-size:var(--vf-fs-chart);line-height:var(--vf-lh-chart);font-weight:var(--vf-fw-regular);color:var(--vf-text-secondary);gap:16px;margin-top:8px;display:flex}.eq-legend i{vertical-align:middle;border-radius:2px;width:12px;height:3px;margin-right:6px;display:inline-block}.eq-tooltip{background:var(--vf-surface);border:1px solid var(--vf-border);border-radius:var(--vf-radius-sm);box-shadow:var(--vf-shadow);font-size:var(--vf-fs-tooltip);line-height:var(--vf-lh-tooltip);font-weight:var(--vf-fw-regular);pointer-events:none;z-index:2;flex-direction:column;gap:2px;min-width:140px;padding:8px 10px;display:flex;position:absolute;top:12px}.eq-tooltip strong{color:var(--vf-heading);font-weight:var(--vf-fw-semibold)}.ft{margin:0 0 14px}.ft-tabs{flex-wrap:wrap;gap:6px;margin:0 0 10px;display:flex}.ft-tab{border:1px solid var(--vf-border-subtle);background:var(--vf-surface);border-radius:var(--vf-radius);font-size:var(--vf-fs-md);font-weight:var(--vf-fw-semibold);cursor:pointer;color:var(--vf-text-primary);align-items:center;gap:8px;padding:7px 12px;display:inline-flex}.ft-tab.active{background:var(--vf-primary);color:var(--vf-on-primary);border-color:var(--vf-primary)}.ft-tab-count{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-medium);opacity:.85;text-align:center;background:#00000014;border-radius:999px;min-width:1.4em;padding:1px 7px}.ft-tab.active .ft-tab-count{background:#ffffff38}.ft-controls{margin-bottom:0}.ft-search{flex:1;align-items:center;min-width:180px;display:flex;position:relative}.ft-search input{width:100%;padding-right:28px}.ft-search-clear{cursor:pointer;color:var(--vf-text-secondary);font-size:var(--vf-fs-login-control);background:0 0;border:none;padding:4px 6px;line-height:1;position:absolute;right:6px}.ft-status-wrap,.ft-saved-wrap{position:relative}.ft-status-btn{height:var(--vf-control-height);border:1px solid var(--vf-border);border-radius:var(--vf-radius);background:var(--vf-surface);color:var(--vf-text-primary);cursor:pointer;min-width:140px;font-size:var(--vf-fs-md);justify-content:space-between;align-items:center;gap:8px;padding:0 10px;display:inline-flex}.ft-status-btn.has-value{border-color:var(--vf-primary)}.ft-caret{opacity:.6;font-size:var(--vf-fs-helper)}.ft-status-menu,.ft-saved-menu{z-index:40;background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius);min-width:200px;margin:0;padding:6px 0;list-style:none;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000001f}.ft-saved-menu{min-width:260px;left:auto;right:0}.ft-check-row{cursor:pointer;font-size:var(--vf-fs-md);align-items:center;gap:8px;padding:6px 12px;display:flex}.ft-check-row:hover{background:var(--vf-bg)}.ft-menu-link{text-align:left;cursor:pointer;width:100%;color:var(--vf-primary);font-size:var(--vf-fs-sm);background:0 0;border:none;padding:8px 12px;display:block}.ft-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.ft-dot{font-weight:var(--vf-fw-semibold)}.ft-chips{margin-top:8px;padding:0 2px}.ft-chip{background:var(--vf-surface)}.ft-chip-x{cursor:pointer;color:var(--vf-text-secondary);font-size:var(--vf-fs-body);line-height:var(--vf-lh-body);background:0 0;border:none;padding:0 2px;line-height:1}.ft-clear-all{color:var(--vf-primary);cursor:pointer;font-size:var(--vf-fs-sm);background:0 0;border:none;padding:4px 6px}.ft-count{margin-left:auto}.ft-saved-empty{color:var(--vf-text-secondary);font-size:var(--vf-fs-sm);padding:10px 12px}.ft-saved-item{align-items:center;gap:4px;display:flex}.ft-saved-name{text-align:left;cursor:pointer;font-size:var(--vf-fs-md);color:var(--vf-text-primary);background:0 0;border:none;flex:1;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.ft-saved-name:hover{background:var(--vf-bg)}.ft-default-mark{color:var(--vf-success);font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper)}.ft-saved-del{cursor:pointer;color:var(--vf-text-secondary);background:0 0;border:none;padding:4px 10px}.ft-saved-create{border-top:1px solid var(--vf-border-subtle);gap:6px;margin-top:4px;padding:8px 10px;display:flex}.ft-saved-create input{border:1px solid var(--vf-border);border-radius:var(--vf-radius);background:var(--vf-surface);height:32px;color:var(--vf-text-primary);flex:1;padding:0 8px}.ft-modal-backdrop{z-index:80;background:#0f172a66;justify-content:center;align-items:flex-start;padding:10vh 16px 16px;display:flex;position:fixed;inset:0}.ft-modal{width:min(640px,100%);max-height:80vh;margin:0;overflow:auto}.ft-modal-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.ft-modal-head h2{margin:0}.ft-modal-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.ft-modal-foot{justify-content:flex-end;margin-top:16px}.bulk-bar{background:var(--vf-bg);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius);font-size:var(--vf-fs-md);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;padding:8px 12px;display:flex}.bulk-bar .muted{margin-right:auto}.data-table th.col-check,.data-table td.col-check{text-align:center;width:36px;padding-left:10px;padding-right:4px}.btn-sm{height:32px;font-size:var(--vf-fs-sm);padding:0 10px}.vf-auth .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.vf-auth{--vf-auth-panel-max:500px;--vf-auth-control-h:50px;--vf-auth-submit-h:52px;--vf-auth-radius:22px;--vf-auth-pad:36px;--vf-auth-hero-max:34rem;isolation:isolate;box-sizing:border-box;background:var(--vf-auth-page-bg,var(--vf-bg));min-height:100dvh;color:var(--vf-text-primary);position:relative;overflow-x:hidden}:root{--vf-auth-page-bg:var(--vf-bg);--vf-auth-panel-bg:var(--vf-surface);--vf-auth-panel-border:color-mix(in srgb, var(--vf-primary) 18%, var(--vf-border));--vf-auth-panel-shadow:var(--vf-shadow-lg), 0 0 0 1px color-mix(in srgb, var(--vf-primary) 10%, transparent);--vf-auth-input-bg:var(--vf-bg-muted);--vf-auth-feature-bg:var(--vf-primary-soft);--vf-auth-visual-opacity:.5}[data-theme=dark]{--vf-auth-page-bg:var(--vf-bg);--vf-auth-panel-bg:color-mix(in srgb, var(--vf-surface) 92%, transparent);--vf-auth-panel-border:color-mix(in srgb, var(--vf-primary) 28%, var(--vf-border));--vf-auth-panel-shadow:var(--vf-shadow-glow), var(--vf-shadow-lg);--vf-auth-input-bg:color-mix(in srgb, var(--vf-bg) 72%, var(--vf-surface));--vf-auth-feature-bg:var(--vf-primary-soft);--vf-auth-visual-opacity:1}@supports ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){[data-theme=dark]{--vf-auth-panel-bg:#12161ec7}}.vf-auth-theme{top:var(--vf-space-4);right:var(--vf-space-4);z-index:5;position:absolute}.vf-auth-visual{z-index:0;pointer-events:none;opacity:var(--vf-auth-visual-opacity);position:absolute;inset:0;overflow:hidden}.vf-auth-visual-sweep{background:linear-gradient(118deg, transparent 0%, rgba(var(--vf-primary-rgb), .07) 38%, rgba(var(--vf-primary-rgb), .18) 50%, rgba(var(--vf-primary-rgb), .05) 62%, transparent 100%);filter:blur(2px);width:55%;height:48%;position:absolute;top:-12%;left:28%;transform:skew(-18deg)}.vf-auth-visual-glow{filter:blur(64px);border-radius:50%;position:absolute}.vf-auth-visual-glow--bl{background:rgba(var(--vf-primary-rgb), .16);width:42%;height:46%;bottom:-10%;left:-8%}.vf-auth-visual-glow--br{background:rgba(var(--vf-primary-rgb), .1);width:28%;height:36%;bottom:8%;right:-6%}.vf-auth-visual-svg{width:100%;height:min(58vh,560px);position:absolute;bottom:0;left:0;right:0}.vf-auth-stop-fill-start{stop-color:rgb(var(--vf-primary-rgb));stop-opacity:.22}.vf-auth-stop-fill-end,.vf-auth-stop-line-a{stop-color:rgb(var(--vf-primary-rgb));stop-opacity:0}.vf-auth-stop-line-b{stop-color:rgb(var(--vf-primary-rgb));stop-opacity:.85}.vf-auth-stop-line-c{stop-color:rgb(var(--vf-primary-rgb));stop-opacity:.15}.vf-auth-visual-grid{stroke:rgb(var(--vf-primary-rgb))}.vf-auth-visual-candles{stroke:rgb(var(--vf-primary-rgb));stroke-width:1.5px;fill:rgb(var(--vf-primary-rgb))}.vf-auth-visual-nodes{fill:rgb(var(--vf-primary-rgb))}.vf-auth-layout{z-index:1;box-sizing:border-box;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:center;gap:clamp(24px,4vw,64px);width:100%;max-width:1280px;min-height:100dvh;margin:0 auto;padding:clamp(48px,6vh,72px) clamp(24px,5vw,64px);display:grid;position:relative}.vf-auth-layout--centered{grid-template-columns:1fr;align-content:center;justify-items:center}.vf-auth--framed .vf-auth-layout{max-width:640px}.vf-auth-hero{max-width:var(--vf-auth-hero-max);padding-bottom:clamp(48px,12vh,120px)}.vf-auth-hero-heading{letter-spacing:-.03em;font-size:clamp(2.25rem,4.2vw,4rem);line-height:1.08;font-weight:var(--vf-fw-semibold);margin:0}.vf-auth-hero-line{color:var(--vf-heading);display:block}.vf-auth-hero-accent{color:var(--vf-primary);margin-top:.08em;display:block}.vf-auth-hero-desc{margin:var(--vf-space-5) 0 0;max-width:36em;color:var(--vf-text-secondary);font-size:18px;line-height:1.55;font-weight:var(--vf-fw-regular)}.vf-auth-features{margin:var(--vf-space-7) 0 0;gap:var(--vf-space-3) var(--vf-space-5);flex-wrap:wrap;padding:0;list-style:none;display:flex}.vf-auth-features li{align-items:center;gap:var(--vf-space-2);font-size:15px;line-height:1.3;font-weight:var(--vf-fw-medium);color:var(--vf-text-primary);pointer-events:none;-webkit-user-select:none;user-select:none;display:inline-flex}.vf-auth-feature-icon{background:var(--vf-auth-feature-bg);width:32px;height:32px;color:var(--vf-primary);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.vf-auth-panel-wrap{justify-content:flex-end;width:100%;display:flex}.vf-auth-layout--centered .vf-auth-panel-wrap{justify-content:center}.vf-auth-panel{width:100%;max-width:var(--vf-auth-panel-max);background:var(--vf-auth-panel-bg);border:1px solid var(--vf-auth-panel-border);border-radius:var(--vf-auth-radius);box-shadow:var(--vf-auth-panel-shadow);padding:var(--vf-auth-pad);box-sizing:border-box;-webkit-backdrop-filter:blur(16px)}@supports not ((-webkit-backdrop-filter:blur(12px)) or (backdrop-filter:blur(12px))){.vf-auth-panel{background:var(--vf-surface)}}.vf-auth-brand{margin-bottom:var(--vf-space-6);align-items:center;gap:12px;display:flex}.vf-auth-brand-mark-plate{background:var(--vf-brand-plate-bg);border:1px solid var(--vf-brand-plate-border);width:48px;height:48px;box-shadow:var(--vf-shadow-sm);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.vf-auth-brand-mark{object-fit:contain;width:32px;height:32px;display:block}.vf-auth-brand-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.vf-auth-brand-text strong{font-size:clamp(1.75rem,2.2vw,2.1rem);font-weight:var(--vf-fw-semibold);letter-spacing:-.02em;color:var(--vf-heading)}.vf-auth-brand-text em{font-style:normal;font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium);margin-top:2px}.vf-auth-title{letter-spacing:-.02em;color:var(--vf-heading);font-size:clamp(1.5rem,2vw,1.85rem);line-height:1.25;font-weight:var(--vf-fw-semibold);margin:0}.vf-auth-subtitle{margin:var(--vf-space-2) 0 0;color:var(--vf-text-secondary);font-size:15px;line-height:1.45;font-weight:var(--vf-fw-regular)}.vf-auth-form{margin-top:var(--vf-space-6)}.vf-auth-field{margin-top:var(--vf-space-field)}.vf-auth-field:first-child{margin-top:0}.vf-auth-label{font-size:var(--vf-fs-label);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-medium);color:var(--vf-text-primary);margin:0 0 var(--vf-space-label);display:block}.vf-auth-label span{color:var(--vf-danger)}.vf-auth-pass-head{justify-content:space-between;align-items:baseline;gap:var(--vf-space-2);display:flex}.vf-auth-pass-head .vf-auth-label{margin:0}.vf-auth-forgot{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-primary);font-weight:var(--vf-fw-medium);text-decoration:none}.vf-auth-forgot:hover{text-underline-offset:.15em;text-decoration:underline}.vf-auth-forgot:focus-visible{outline:2px solid var(--vf-primary);outline-offset:2px;border-radius:4px}.vf-auth-input-wrap{min-height:var(--vf-auth-control-h);border:1px solid var(--vf-border);border-radius:var(--vf-radius-sm);background:var(--vf-auth-input-bg);box-sizing:border-box;margin-top:var(--vf-space-label);align-items:center;gap:10px;padding:0 12px;display:flex}.vf-auth-input-wrap:focus-within{border-color:var(--vf-primary);box-shadow:0 0 0 3px var(--vf-primary-soft)}.vf-auth-input-wrap.invalid{border-color:var(--vf-danger)}.vf-auth-input-icon{color:var(--vf-primary);flex-shrink:0;place-items:center;display:grid}.vf-auth-input{min-width:0;color:var(--vf-heading);font-size:var(--vf-fs-login-control);line-height:var(--vf-lh-login-control);font-weight:var(--vf-fw-regular);background:0 0;border:none;outline:none;flex:1;padding:10px 0}.vf-auth-input::placeholder{color:var(--vf-text-tertiary)}.vf-auth-input[readonly]{color:var(--vf-text-secondary)}.vf-auth-input-wrap--pass{padding-right:4px}.vf-auth-eye{width:44px;height:44px;color:var(--vf-text-secondary);cursor:pointer;border-radius:var(--vf-radius-sm);background:0 0;border:none;flex-shrink:0;place-items:center;display:grid}.vf-auth-eye:hover{color:var(--vf-text-primary);background:var(--vf-primary-softer)}.vf-auth-eye:focus-visible{outline:2px solid var(--vf-primary);outline-offset:1px}.vf-auth-banner-ok{margin:var(--vf-space-4) 0 0;padding:var(--vf-space-2) var(--vf-space-3);border-radius:var(--vf-radius-sm);background:var(--vf-primary-soft);color:var(--vf-heading);font-size:var(--vf-fs-body);line-height:var(--vf-lh-body)}.vf-auth-field-error{margin-top:var(--vf-space-2);color:var(--vf-danger);font-size:var(--vf-fs-body);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-regular)}.vf-auth-field-error--form{margin-top:var(--vf-space-4)}.vf-auth-submit{width:100%;margin-top:var(--vf-space-6);min-height:var(--vf-auth-submit-h);border-radius:var(--vf-radius-sm);background:var(--vf-primary);color:#fff;font-size:var(--vf-fs-login-button);line-height:var(--vf-lh-login-button);font-weight:var(--vf-fw-semibold);cursor:pointer;box-shadow:0 8px 20px rgba(var(--vf-primary-rgb), .28);border:none;justify-content:center;align-items:center;gap:8px;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex}.vf-auth-submit:hover:not(:disabled){background:var(--vf-primary-hover);box-shadow:0 10px 24px rgba(var(--vf-primary-rgb), .34)}.vf-auth-submit:focus-visible{outline:2px solid var(--vf-primary);outline-offset:3px}.vf-auth-submit:active:not(:disabled){transform:translateY(1px)}.vf-auth-submit:disabled{opacity:.75;cursor:default;box-shadow:none}.vf-auth-submit-arrow{font-size:1.1em;line-height:1}.vf-auth-note{margin:var(--vf-space-5) 0 0;font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);color:var(--vf-text-secondary);font-weight:var(--vf-fw-regular);text-align:center}.vf-auth-footer{margin-top:var(--vf-space-5)}.vf-auth-back{font-size:var(--vf-fs-body);line-height:var(--vf-lh-body);color:var(--vf-text-secondary);margin:0}.vf-auth-back a{color:var(--vf-primary);font-weight:var(--vf-fw-semibold);text-decoration:none}.vf-auth-back a:hover{text-decoration:underline}.vf-auth-back a:focus-visible{outline:2px solid var(--vf-primary);outline-offset:2px;border-radius:4px}.vf-login-label{font-size:var(--vf-fs-label);line-height:var(--vf-lh-label);font-weight:var(--vf-fw-medium);color:var(--vf-text-primary);margin:var(--vf-space-field) 0 var(--vf-space-label);display:block}.vf-login-label:first-of-type,form>.vf-login-label:first-child{margin-top:var(--vf-space-5)}.vf-login-input{width:100%;min-height:var(--vf-auth-control-h);border:1px solid var(--vf-border);border-radius:var(--vf-radius-sm);padding:0 var(--vf-space-3);font-size:var(--vf-fs-login-control);line-height:var(--vf-lh-login-control);font-weight:var(--vf-fw-regular);background:var(--vf-auth-input-bg);color:var(--vf-heading);box-sizing:border-box}.vf-login-input:focus{border-color:var(--vf-primary);box-shadow:0 0 0 3px var(--vf-primary-soft);outline:none}.vf-login-pass-wrap{margin-top:var(--vf-space-label);position:relative}.vf-login-pass-wrap .vf-login-input{padding-right:72px}.vf-login-eye{right:var(--vf-space-2);color:var(--vf-text-secondary);font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-medium);cursor:pointer;padding:var(--vf-space-2);background:0 0;border:none;min-height:44px;position:absolute;top:50%;transform:translateY(-50%)}.vf-login-field-error{margin-top:var(--vf-space-2);color:var(--vf-danger);font-size:var(--vf-fs-body);line-height:var(--vf-lh-label)}.vf-login-banner-ok{margin:var(--vf-space-3) 0 0;padding:var(--vf-space-2) var(--vf-space-3);border-radius:var(--vf-radius-sm);background:var(--vf-primary-soft);color:var(--vf-heading);font-size:var(--vf-fs-body);line-height:var(--vf-lh-body)}.vf-login-submit{width:100%;margin-top:var(--vf-space-6);min-height:var(--vf-auth-submit-h);border-radius:var(--vf-radius-sm);background:var(--vf-primary);color:#fff;font-size:var(--vf-fs-login-button);line-height:var(--vf-lh-login-button);font-weight:var(--vf-fw-semibold);cursor:pointer;box-shadow:0 8px 20px rgba(var(--vf-primary-rgb), .28);border:none}.vf-login-submit:hover:not(:disabled){background:var(--vf-primary-hover)}.vf-login-submit:disabled{opacity:.75;cursor:default}.vf-login-sub{margin:var(--vf-space-2) 0 var(--vf-space-4);color:var(--vf-text-secondary);font-size:var(--vf-fs-body);line-height:var(--vf-lh-body)}@media (width<=1024px){.vf-auth--login .vf-auth-layout{align-content:start;gap:var(--vf-space-6);grid-template-columns:1fr;padding-top:clamp(64px,10vh,88px)}.vf-auth-hero{order:2;max-width:none;padding-bottom:0}.vf-auth-panel-wrap{order:1;justify-content:center}.vf-auth-hero-heading{font-size:clamp(1.85rem,6vw,2.5rem)}.vf-auth-hero-desc{font-size:16px}.vf-auth-visual-svg{opacity:.7;height:min(42vh,360px)}}@media (width<=640px){.vf-auth{--vf-auth-pad:24px;--vf-auth-radius:18px}.vf-auth-layout{padding:72px 16px 32px}.vf-auth-theme{top:12px;right:12px}.vf-auth-features{gap:var(--vf-space-3);flex-direction:column}.vf-auth-brand-text strong{font-size:1.65rem}.vf-auth-visual-sweep{opacity:.55}}@media (height<=720px){.vf-auth-layout{min-height:auto;padding-top:64px;padding-bottom:32px}.vf-auth-hero{padding-bottom:24px}}@media (prefers-reduced-motion:reduce){.vf-auth-submit{transition:none}}.home-dash{gap:var(--vf-space-section);flex-direction:column;display:flex}.home-empty-compact{padding:20px 22px}.home-empty-compact h2{font-size:var(--vf-fs-section);margin:0 0 6px}.home-action-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.home-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.home-hero-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.home-kicker{font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-medium);color:var(--vf-primary);margin:0 0 4px}.home-metrics{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px;display:grid}.home-metric{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-xl);background:var(--vf-surface);min-height:128px;box-shadow:var(--vf-shadow-sm);flex-direction:column;gap:8px;padding:18px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.home-metric:hover{border-color:color-mix(in srgb, var(--vf-primary) 28%, var(--vf-border-subtle));box-shadow:var(--vf-shadow)}.home-metric.featured{background:var(--vf-gradient-card), var(--vf-surface);border-color:color-mix(in srgb, var(--vf-primary) 35%, var(--vf-border-subtle));box-shadow:var(--vf-shadow-glow)}.home-metric-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.home-metric-top>span:first-child{font-size:var(--vf-fs-kpi-label);line-height:var(--vf-lh-kpi-label);color:var(--vf-text-secondary);font-weight:var(--vf-fw-medium)}.home-metric-badge{color:var(--vf-primary);font-size:var(--vf-fs-badge);line-height:var(--vf-lh-badge);font-weight:var(--vf-fw-medium)}.home-metric strong{font-size:var(--vf-fs-kpi);line-height:var(--vf-lh-kpi);letter-spacing:-.02em;color:var(--vf-heading);font-weight:var(--vf-fw-semibold);font-variant-numeric:tabular-nums}.home-metric strong.gain,.home-metric strong.loss{color:var(--vf-heading)}.home-metric-cta{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);color:var(--vf-primary);margin-top:auto}a.home-metric-link{color:inherit;cursor:pointer;text-decoration:none}a.home-metric-link:hover{color:inherit;border-color:color-mix(in srgb, var(--vf-primary) 40%, var(--vf-border-subtle));text-decoration:none}.home-metric-hint{font-size:var(--vf-fs-sm);color:var(--vf-text-tertiary)}.home-metric-hint.ok{color:var(--vf-pnl-positive);font-weight:var(--vf-fw-semibold)}.home-metric-hint.bad{color:var(--vf-pnl-negative);font-weight:var(--vf-fw-semibold)}.home-grid{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.home-panel-chart{flex-direction:column;min-height:340px;display:flex}.home-panel-chart .eq-chart{flex:1}.home-grid-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}.home-panel{border-radius:var(--vf-radius-xl);padding:16px 18px}.home-panel h2{font-size:var(--vf-fs-lg);margin:0}.home-panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.home-panel-head a{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);color:var(--vf-primary)}.home-run-list a,.home-run-pending{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);color:inherit;background:var(--vf-surface-elevated);justify-content:space-between;align-items:center;gap:12px;padding:12px;text-decoration:none;transition:background .12s,border-color .12s;display:flex}.home-run-pending{opacity:.85;cursor:default}.home-run-list a:hover{background:var(--vf-bg-muted);border-color:var(--vf-border);text-decoration:none}.home-run-list strong{font-size:var(--vf-fs-md);color:var(--vf-heading);display:block}.home-run-list span{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);margin-top:2px;display:block}.home-run-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.home-run-meta>span:last-child{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold)}.home-actions-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.home-action{border-radius:var(--vf-radius-lg);border:1px solid var(--vf-border-subtle);background:var(--vf-surface-elevated);color:inherit;flex-direction:column;gap:4px;padding:14px;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.home-action:hover{border-color:color-mix(in srgb, var(--vf-primary) 40%, var(--vf-border-subtle));background:var(--vf-primary-softer);text-decoration:none}.home-action strong{font-size:var(--vf-fs-md);color:var(--vf-heading)}.home-action span{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary)}.home-readiness-row{border-bottom:1px solid var(--vf-border-subtle);font-size:var(--vf-fs-md);justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.home-readiness-row span{color:var(--vf-text-secondary)}.home-readiness-reason{font-size:var(--vf-fs-sm);margin:8px 0 0}.home-empty{text-align:center;padding:28px 8px}@media (width<=960px){.home-grid,.home-grid-secondary{grid-template-columns:1fr}}.page-header-row{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.form-panel{margin-bottom:14px}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}@media (width<=900px){.form-grid{grid-template-columns:1fr}}.form-grid label{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);color:var(--vf-text-secondary);flex-direction:column;gap:6px;display:flex}.form-grid input,.form-grid select,.data-table select{border:1px solid var(--vf-border);border-radius:var(--vf-radius);background:var(--vf-surface);height:var(--vf-control-height);padding:9px 11px}.form-grid input:focus,.form-grid select:focus,.data-table select:focus{border-color:var(--vf-primary);box-shadow:0 0 0 3px var(--vf-primary-soft);outline:none}.table-wrap{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:var(--vf-fs-md)}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--vf-border-subtle);vertical-align:middle;padding:12px 14px}.data-table th{color:var(--vf-text-secondary);font-weight:var(--vf-fw-semibold);font-size:var(--vf-fs-sm);background:var(--vf-bg)}.data-table tbody tr:hover{background:var(--vf-bg-muted)}.data-table tbody tr:last-child td{border-bottom:none}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn-sm{font-size:var(--vf-fs-sm);height:auto;padding:6px 10px}.banner{border-radius:var(--vf-radius);font-size:var(--vf-fs-md);margin-bottom:12px;padding:10px 12px}.banner.error{background:var(--vf-danger-bg);border:1px solid var(--vf-danger-border);color:var(--vf-danger)}.banner.ok{background:var(--vf-success-bg);border:1px solid var(--vf-success-border);color:var(--vf-success)}.market-status-panel{margin-bottom:16px}.market-status-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.market-status-head h2{margin:0 0 4px}.market-status-head .muted{margin:0}.market-section-title{font-size:var(--vf-fs-lg);color:var(--vf-heading);margin:4px 0 10px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--vf-surface);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);box-shadow:var(--vf-shadow-sm);padding:14px 16px}.stat-card>.lbl{font-size:var(--vf-fs-base);color:var(--vf-heading);font-weight:var(--vf-fw-semibold)}.stat-sub{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);margin:4px 0 10px;line-height:1.4}.stat-card .val{font-size:var(--vf-fs-lg);font-weight:var(--vf-fw-bold);color:var(--vf-heading);margin-top:6px}.stat-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.market-kv{flex-direction:column;gap:2px;min-width:0;display:flex}.market-kv .lbl{font-size:var(--vf-fs-xs);font-weight:var(--vf-fw-semibold);color:var(--vf-text-secondary);text-transform:none}.market-kv strong{font-size:var(--vf-fs-md);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);word-break:break-word}.stat-note{font-size:var(--vf-fs-xs);color:var(--vf-text-tertiary);margin:8px 0 0}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid!important}.market-check-summary{margin-top:4px}.readiness-list{color:var(--vf-text-secondary);font-size:var(--vf-fs-md);margin:8px 0 0;padding-left:18px;line-height:1.5}@media (width<=900px){.form-grid-3{grid-template-columns:1fr}.stat-metrics{grid-template-columns:1fr 1fr}}.candle-chart{width:100%;position:relative}.candle-chart-title{font-size:var(--vf-fs-card-title);line-height:var(--vf-lh-card-title);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);margin-bottom:6px}.candle-chart svg{background:var(--vf-surface-elevated);border-radius:var(--vf-radius-sm);border:1px solid var(--vf-border-subtle);width:100%;display:block}.candle-axis{fill:var(--vf-chart-axis);font-size:var(--vf-fs-chart);font-family:var(--vf-font-sans);font-weight:var(--vf-fw-regular)}.candle-tip{font-size:var(--vf-fs-tooltip);line-height:var(--vf-lh-tooltip);color:var(--vf-text-secondary);font-family:var(--vf-font-mono);font-weight:var(--vf-fw-regular);margin-top:6px}.candle-legend{font-size:var(--vf-fs-chart);line-height:var(--vf-lh-chart);font-weight:var(--vf-fw-regular);flex-wrap:wrap;gap:12px;margin-top:6px;display:flex}.candle-legend span:before{content:"";vertical-align:middle;width:14px;height:2px;margin-right:5px;display:inline-block}.leg-sma20:before{background:var(--vf-primary)}.leg-sma50:before{background:var(--vf-text-tertiary)}.leg-sup:before{background:var(--vf-pnl-positive);border-top:1px dashed var(--vf-pnl-positive)}.leg-res:before{background:var(--vf-pnl-negative)}.leg-evt:before{background:var(--vf-warning);width:2px;height:10px}.pattern-page .home-panel-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.pattern-page .home-panel-head h2{margin:0}.pattern-cov-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:12px;display:grid}.pattern-cov-card{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);background:var(--vf-surface);box-shadow:var(--vf-shadow-sm);padding:14px 16px}.pattern-cov-card .lbl{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);color:var(--vf-text-secondary)}.pattern-cov-card .val{font-size:var(--vf-fs-lg);font-weight:var(--vf-fw-bold);color:var(--vf-heading);margin-top:6px}.pattern-cov-card .range{font-size:var(--vf-fs-xs);margin-top:8px;line-height:1.4}.pattern-cov-card .span-note{font-size:var(--vf-fs-xs);color:var(--vf-text-tertiary);margin:8px 0 0}.pattern-context{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.pattern-context strong{color:var(--vf-heading);margin-top:4px;display:block}.pattern-context ul{margin:6px 0 0;padding-left:18px}.pattern-fp-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:14px;display:grid}.pattern-fp-item{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius);background:var(--vf-surface-elevated);padding:10px 12px}.pattern-fp-item span{font-size:var(--vf-fs-xs);color:var(--vf-text-secondary);font-weight:var(--vf-fw-semibold);display:block}.pattern-fp-item strong{font-size:var(--vf-fs-md);color:var(--vf-heading);margin-top:4px;display:block}.pattern-compare{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:8px;display:grid}.pattern-compare-hero{min-height:320px}.pattern-auto-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:14px;display:grid}.pattern-auto-card{border:1px dashed var(--vf-border);border-radius:var(--vf-radius-lg);background:var(--vf-surface-elevated);padding:10px 12px}.pattern-auto-card span{font-size:var(--vf-fs-xs);color:var(--vf-text-secondary);font-weight:var(--vf-fw-semibold);display:block}.pattern-auto-card strong{font-size:var(--vf-fs-sm);color:var(--vf-heading);font-weight:var(--vf-fw-semibold);margin-top:4px;display:block}@media (width<=900px){.pattern-compare{grid-template-columns:1fr}}.pattern-compare h3{font-size:var(--vf-fs-base);margin:0 0 8px}.data-table tr.row-selected td{background:var(--vf-primary-softer)}.pattern-assessment{border-radius:var(--vf-radius-lg);border:1px solid var(--vf-border-subtle);background:var(--vf-surface-elevated);margin-top:14px;padding:12px 14px}.pattern-assessment h3{font-size:var(--vf-fs-base);color:var(--vf-heading);margin:0 0 8px}.pattern-assessment p{font-size:var(--vf-fs-md);color:var(--vf-text-secondary);margin:0;line-height:1.5}.pattern-saved-link{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-lg);background:var(--vf-surface-elevated);cursor:pointer;text-align:left;width:100%;color:inherit;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.pattern-saved-link:hover{border-color:var(--vf-border);background:var(--vf-bg-muted)}.pattern-saved-link strong{font-size:var(--vf-fs-md);display:block}.pattern-saved-link span{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);margin-top:2px;display:block}.home-run-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pattern-subhead{font-size:var(--vf-fs-base);color:var(--vf-heading);margin:0 0 8px}.pattern-explain{border-radius:var(--vf-radius-lg);border:1px solid var(--vf-border-subtle);background:var(--vf-bg);padding:12px 14px}.pattern-explain-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pattern-explain-grid ul{font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);margin:8px 0 0;padding-left:18px;line-height:1.45}.pattern-assumptions{border-top:1px solid var(--vf-border-subtle);font-size:var(--vf-fs-sm);color:var(--vf-text-secondary);margin-top:12px;padding-top:10px}.pattern-assumptions ul{margin:6px 0 0;padding-left:18px}@media (width<=720px){.pattern-explain-grid{grid-template-columns:1fr}}.help-tip{vertical-align:middle;margin-left:6px;display:inline-flex;position:relative}.help-tip-btn{border:1px solid var(--vf-border);background:var(--vf-bg-muted);width:18px;height:18px;color:var(--vf-text-secondary);font-size:var(--vf-fs-helper);font-weight:var(--vf-fw-semibold);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.help-tip-btn:hover,.help-tip-btn.open{background:var(--vf-primary);border-color:var(--vf-primary);color:var(--vf-on-primary)}.help-tip-pop{z-index:40;border-radius:var(--vf-radius);border:1px solid var(--vf-border);background:var(--vf-surface);min-width:220px;max-width:min(320px,70vw);box-shadow:var(--vf-shadow);color:var(--vf-text-primary);font-size:var(--vf-fs-helper);line-height:var(--vf-lh-helper);font-weight:var(--vf-fw-regular);white-space:normal;padding:10px 12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0}.wiz{flex-direction:column;gap:16px;width:100%;max-width:none;display:flex}.wiz-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.wiz-steps{background:var(--vf-bg);border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-xl);flex-wrap:wrap;gap:6px;padding:8px;display:flex}.wiz-step{border-radius:var(--vf-radius-pill);cursor:pointer;color:var(--vf-text-secondary);font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:6px 12px;display:inline-flex}.wiz-step:hover{background:var(--vf-surface);border-color:var(--vf-border-subtle)}.wiz-step.active{background:var(--vf-gradient-accent);color:var(--vf-on-primary);box-shadow:var(--vf-shadow-glow)}.wiz-step.done:not(.active){color:var(--vf-primary)}.wiz-step-num{width:20px;height:20px;font-size:var(--vf-fs-xs);background:#ffffff38;border-radius:50%;place-items:center;display:grid}.wiz-step:not(.active) .wiz-step-num{background:var(--vf-border-subtle);color:var(--vf-text-primary)}.wiz-step.done:not(.active) .wiz-step-num{background:var(--vf-primary-soft);color:var(--vf-primary)}.wiz-page{min-height:360px}.wiz-stack{flex-direction:column;gap:14px;display:flex}.wiz-card{border:1px solid var(--vf-border-subtle);border-radius:var(--vf-radius-xl);background:var(--vf-surface);padding:20px 22px 22px}.wiz-card h2{font-size:var(--vf-fs-xl);color:var(--vf-heading);margin:0 0 6px}.wiz-help{color:var(--vf-text-secondary);font-size:var(--vf-fs-md);margin:0 0 18px}.wiz-card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.wiz-review{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0;display:grid}.wiz-review>div{border-bottom:1px solid var(--vf-border-subtle);padding-bottom:8px}.wiz-review dt{font-size:var(--vf-fs-xs);color:var(--vf-text-secondary);font-weight:var(--vf-fw-semibold);margin:0 0 4px}.wiz-review dd{font-size:var(--vf-fs-md);color:var(--vf-heading);background:var(--vf-surface-readonly);border-radius:var(--vf-radius-sm);margin:0;padding:8px 10px}.wiz-footer{background:var(--vf-surface);border-top:1px solid var(--vf-border-subtle);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding:12px 0 4px;display:flex;position:sticky;bottom:0}.wiz-footer-left,.wiz-footer-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wiz-exit-block{border-top:1px solid var(--vf-border-subtle);margin-top:12px;padding-top:8px}.wiz-fields{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px 14px;display:grid}.wiz-fields.wiz-fields-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-error{font-size:var(--vf-fs-xs);color:var(--vf-danger);margin:4px 0 0}.wiz-leg{border-top:1px solid var(--vf-border-subtle);margin-top:12px;padding-top:12px}.wiz-leg-title{font-size:var(--vf-fs-sm);font-weight:var(--vf-fw-semibold);color:var(--vf-heading);margin-bottom:8px}@media (width<=1100px){.wiz-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=900px){.wiz-fields,.wiz-fields.wiz-fields-3{grid-template-columns:1fr}}@media (width<=720px){.wiz-review{grid-template-columns:1fr}}.wiz-readonly .field input:disabled,.wiz-readonly .field select:disabled,.wiz-readonly .field textarea:disabled,.wiz-readonly input:disabled,.wiz-readonly select:disabled{opacity:1;color:var(--vf-text-primary);background:var(--vf-bg);cursor:default;border-color:var(--vf-border-subtle)}.wiz-readonly .check-row input:disabled{cursor:default}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--vf-primary:#19a189;--vf-primary-hover:#0d8574;--vf-primary-active:#0a6e60;--vf-primary-rgb:25, 161, 137;--vf-primary-soft:#19a1891f;--vf-primary-softer:#19a1890f;--vf-accent-glow:#19a1892e;--vf-on-primary:#fff;--vf-primary-tint:#e7f7f3;--vf-brand-plate-bg:#fff;--vf-brand-plate-border:#10182814;--vf-brand-plate-muted:#f2f8f7;--vf-sidebar-bg:#fff;--vf-sidebar-text:#101828;--vf-sidebar-muted:#526277;--vf-sidebar-hover:#19a18912;--vf-sidebar-active:#19a18924;--vf-sidebar-border:#e2ebe9;--vf-sidebar-width:268px;--vf-text-primary:#101828;--vf-text-secondary:#526277;--vf-text-tertiary:#66758a;--vf-text-inverse:#fff;--vf-heading:#101828;--vf-bg:#f8fcfb;--vf-bg-muted:#f2f8f7;--vf-surface:#fff;--vf-surface-elevated:#fff;--vf-surface-readonly:#eef5f3;--vf-border:#e2ebe9;--vf-border-subtle:#e8f0ee;--vf-border-strong:#c5d4d0;--vf-success:#15803d;--vf-success-bg:#ecfdf3;--vf-success-border:#bbf7d0;--vf-danger:#dc2626;--vf-danger-bg:#fef2f2;--vf-danger-border:#fecaca;--vf-warning:#b45309;--vf-warning-bg:#fffbeb;--vf-warning-border:#fde68a;--vf-info:#0f766e;--vf-info-bg:#f0fdfa;--vf-pnl-positive:#15803d;--vf-pnl-negative:#dc2626;--vf-pnl-neutral:#526277;--vf-chart-grid:#e8f0ee;--vf-chart-axis:#66758a;--vf-chart-series:#19a189;--vf-chart-series-b:#101828;--vf-overlay:#10182866;--vf-font:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--vf-font-sans:var(--vf-font);--vf-font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Code", monospace;--vf-fs-helper:12px;--vf-lh-helper:18px;--vf-fs-kpi-label:13px;--vf-lh-kpi-label:20px;--vf-fs-table-header:13px;--vf-lh-table-header:20px;--vf-fs-body:14px;--vf-lh-body:22px;--vf-fs-label:14px;--vf-lh-label:20px;--vf-fs-control:14px;--vf-lh-control:20px;--vf-fs-nav:14px;--vf-lh-nav:20px;--vf-fs-button:14px;--vf-lh-button:20px;--vf-fs-card-title:16px;--vf-lh-card-title:24px;--vf-fs-reading:16px;--vf-lh-reading:24px;--vf-fs-login-control:16px;--vf-lh-login-control:24px;--vf-fs-login-button:16px;--vf-lh-login-button:24px;--vf-fs-section:20px;--vf-lh-section:28px;--vf-fs-dialog:20px;--vf-lh-dialog:28px;--vf-fs-page:28px;--vf-lh-page:36px;--vf-fs-kpi:28px;--vf-lh-kpi:36px;--vf-fs-page-sm:24px;--vf-lh-page-sm:32px;--vf-fs-kpi-sm:24px;--vf-lh-kpi-sm:32px;--vf-fs-chart:12px;--vf-lh-chart:18px;--vf-fs-tooltip:13px;--vf-lh-tooltip:20px;--vf-fs-badge:12px;--vf-lh-badge:18px;--vf-fs-xs:var(--vf-fs-helper);--vf-fs-sm:var(--vf-fs-helper);--vf-fs-md:var(--vf-fs-kpi-label);--vf-fs-base:var(--vf-fs-body);--vf-fs-lg:var(--vf-fs-card-title);--vf-fs-xl:var(--vf-fs-section);--vf-fs-2xl:var(--vf-fs-page);--vf-fs-3xl:var(--vf-fs-kpi);--vf-fw-regular:400;--vf-fw-medium:500;--vf-fw-semibold:600;--vf-fw-bold:600;--vf-space-1:4px;--vf-space-2:8px;--vf-space-3:12px;--vf-space-4:16px;--vf-space-5:20px;--vf-space-6:24px;--vf-space-7:28px;--vf-space-8:32px;--vf-space-workspace:28px;--vf-space-workspace-sm:16px;--vf-space-section:24px;--vf-space-card:20px;--vf-space-card-lg:24px;--vf-space-label:8px;--vf-space-field:16px;--vf-space-actions:8px;--vf-space-icon:8px;--vf-radius-sm:8px;--vf-radius:10px;--vf-radius-lg:14px;--vf-radius-xl:16px;--vf-radius-2xl:20px;--vf-radius-pill:999px;--vf-shadow-sm:0 1px 2px #1018280a;--vf-shadow:0 6px 20px #1018280f;--vf-shadow-lg:0 16px 40px #1018281a;--vf-shadow-glow:0 0 0 1px #19a18924, 0 10px 28px #19a1891f;--vf-control-height:40px;--vf-control-height-lg:44px;--vf-control-height-login:48px;--vf-table-row-height:48px;--vf-table-row-height-compact:40px;--vf-icon-action:16px;--vf-header-height:58px;--vf-logo-width:160px;--vf-logo-width-sm:140px;--vf-auth-card-width:500px;--vf-gradient-accent:linear-gradient(135deg, #2ec4a6 0%, #19a189 55%, #0d8574 100%);--vf-gradient-card:linear-gradient(160deg, #19a18912, transparent 58%);--vf-gradient-page:linear-gradient(180deg, #f8fcfb 0%, #f2f8f7 100%);--bg:var(--vf-bg);--surface:var(--vf-surface);--ink:var(--vf-text-primary);--muted:var(--vf-text-secondary);--line:var(--vf-border-subtle);--accent:var(--vf-primary);--accent-hover:var(--vf-primary-hover);--gain:var(--vf-pnl-positive);--loss:var(--vf-pnl-negative);--nav:var(--vf-sidebar-bg);--radius:var(--vf-radius)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--vf-primary:#2cc6ac;--vf-primary-hover:#49d6bf;--vf-primary-active:#19a189;--vf-primary-rgb:44, 198, 172;--vf-primary-soft:#2cc6ac29;--vf-primary-softer:#2cc6ac17;--vf-accent-glow:#2cc6ac38;--vf-on-primary:#fff;--vf-primary-tint:#123d3a;--vf-brand-plate-bg:#fff;--vf-brand-plate-border:#ffffff1f;--vf-brand-plate-muted:#f4f7fb;--vf-sidebar-bg:#101723;--vf-sidebar-text:#f4f7fb;--vf-sidebar-muted:#a8b6c8;--vf-sidebar-hover:#2cc6ac1a;--vf-sidebar-active:#2cc6ac2e;--vf-sidebar-border:#293647;--vf-text-primary:#f4f7fb;--vf-text-secondary:#a8b6c8;--vf-text-tertiary:#8494a9;--vf-text-inverse:#090e17;--vf-heading:#f4f7fb;--vf-bg:#090e17;--vf-bg-muted:#101723;--vf-surface:#151d2a;--vf-surface-elevated:#1b2533;--vf-surface-readonly:#121a26;--vf-border:#293647;--vf-border-subtle:#233041;--vf-border-strong:#3a4d63;--vf-success:#22c55e;--vf-success-bg:#22c55e1f;--vf-success-border:#22c55e47;--vf-danger:#ef4444;--vf-danger-bg:#ef44441f;--vf-danger-border:#ef444447;--vf-warning:#f59e0b;--vf-warning-bg:#f59e0b1f;--vf-warning-border:#f59e0b47;--vf-info:#2cc6ac;--vf-info-bg:#2cc6ac1f;--vf-pnl-positive:#22c55e;--vf-pnl-negative:#ef4444;--vf-pnl-neutral:#a8b6c8;--vf-chart-grid:#233041;--vf-chart-axis:#8494a9;--vf-chart-series:#2cc6ac;--vf-chart-series-b:#f4f7fb;--vf-overlay:#090e178c;--vf-shadow-sm:0 1px 2px #00000059;--vf-shadow:0 10px 28px #00000061;--vf-shadow-lg:0 20px 48px #0000007a;--vf-shadow-glow:0 0 0 1px #2cc6ac38, 0 12px 32px #2cc6ac24;--vf-gradient-accent:linear-gradient(135deg, #49d6bf 0%, #2cc6ac 50%, #19a189 100%);--vf-gradient-card:linear-gradient(160deg, #2cc6ac1f, transparent 60%);--vf-gradient-page:linear-gradient(180deg, #090e17 0%, #101723 100%)}@media (width<=640px){:root{--vf-fs-page:var(--vf-fs-page-sm);--vf-lh-page:var(--vf-lh-page-sm);--vf-fs-kpi:var(--vf-fs-kpi-sm);--vf-lh-kpi:var(--vf-lh-kpi-sm);--vf-fs-2xl:var(--vf-fs-page-sm);--vf-fs-3xl:var(--vf-fs-kpi-sm);--vf-space-workspace:var(--vf-space-workspace-sm);--vf-control-height:var(--vf-control-height-lg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{font-family:var(--vf-font);font-size:100%;line-height:var(--vf-lh-body);font-weight:var(--vf-fw-regular);color:var(--vf-text-primary);background:var(--vf-bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{background:var(--vf-bg);min-width:320px;min-height:100vh;color:var(--vf-text-primary);margin:0;transition:background-color .2s,color .2s}html{background:var(--vf-bg)}#root{min-height:100vh}a{color:var(--vf-primary);text-decoration:none}a:hover{color:var(--vf-primary-hover);text-decoration:underline}button,input,select,textarea{font:inherit}.mono{font-family:var(--vf-font-mono)}.muted{color:var(--vf-text-secondary)}.gain{color:var(--vf-pnl-positive)}.loss{color:var(--vf-pnl-negative)}:focus-visible{outline:2px solid var(--vf-primary);outline-offset:2px}
