:root{--vef-green-700: #166534;--vef-green-600: #1f7a5a;--vef-green-500: #22c55e;--vef-green-100: #dcfce7;--vef-bg: #ffffff;--vef-surface: #ffffff;--vef-text: #0f172a;--vef-text-muted: #64748b;--vef-border: #e5e7eb;--vef-border-strong: #d1d5db;--vef-danger: #dc2626;--vef-warning: #f59e0b;--vef-info: #0ea5e9;--vef-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--vef-shadow-md: 0 10px 30px rgba(15, 23, 42, .08);--vef-radius-sm: 10px;--vef-radius-md: 14px;--vef-radius-lg: 18px;--vef-ring: rgba(31, 122, 90, .28);--vef-font: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, "Apple Color Emoji", "Segoe UI Emoji";--vef-space-1: 4px;--vef-space-2: 8px;--vef-space-3: 12px;--vef-space-4: 16px;--vef-space-5: 20px;--vef-space-6: 24px;--vef-z-modal: 50}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--vef-font);color:var(--vef-text);background:var(--vef-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--vef-green-600);text-decoration:none}a:hover{text-decoration:underline}::selection{background:#22c55e2e}.vef-page{min-height:100%;background:var(--vef-bg)}.vef-auth-bg{background:radial-gradient(900px 500px at 15% -10%,rgba(31,122,90,.08),transparent 60%),radial-gradient(700px 400px at 100% 0%,rgba(34,197,94,.07),transparent 55%),var(--vef-bg)}.vef-h1{font-size:24px;line-height:1.2;letter-spacing:-.02em;margin:0}.vef-h2{font-size:18px;line-height:1.25;letter-spacing:-.015em;margin:0}.vef-subtitle{font-size:14px;line-height:1.5;color:var(--vef-text-muted);margin:0}.vef-field{display:grid;gap:6px}.vef-label{font-size:13px;color:var(--vef-text);font-weight:700}.vef-hint{font-size:12px;color:var(--vef-text-muted)}.vef-error{font-size:12px;color:var(--vef-danger)}.vef-divider{height:1px;background:var(--vef-border);width:100%}.vef-card{background:var(--vef-surface);border:1px solid var(--vef-border);border-radius:var(--vef-radius-lg);box-shadow:var(--vef-shadow-md)}.vef-card__content{padding:20px}.vef-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;border:1px solid var(--vef-border);background:#f8fafc;color:var(--vef-text)}.vef-badge--neutral{background:#f8fafc;border-color:var(--vef-border);color:var(--vef-text)}.vef-badge--info{background:#0ea5e91a;border-color:#0ea5e938;color:#075985}.vef-badge--success{background:#22c55e1f;border-color:#22c55e40;color:var(--vef-green-700)}.vef-badge--green{background:#1f7a5a1a;border-color:#1f7a5a33;color:var(--vef-green-700)}.vef-badge--danger{background:#dc26261a;border-color:#dc262640;color:#991b1b}.vef-input,.vef-textarea{width:100%;border:1px solid var(--vef-border);border-radius:var(--vef-radius-md);background:#fff;color:var(--vef-text);font-size:14px;line-height:1.4;padding:12px;transition:box-shadow .12s ease,border-color .12s ease,transform .12s ease;box-shadow:var(--vef-shadow-sm)}.vef-input::placeholder,.vef-textarea::placeholder{color:#94a3b8}.vef-input:hover,.vef-textarea:hover{border-color:var(--vef-border-strong)}.vef-input:focus,.vef-textarea:focus{outline:none;border-color:#1f7a5a8c;box-shadow:0 0 0 4px var(--vef-ring)}.vef-input:disabled,.vef-textarea:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed;box-shadow:none}.vef-input--md{height:48px}.vef-input--sm{height:40px;padding:10px 12px;border-radius:var(--vef-radius-sm)}.vef-input--error,.vef-textarea--error{border-color:#dc26268c}.vef-input--error:focus,.vef-textarea--error:focus{box-shadow:0 0 0 4px #dc26262e}.vef-textarea{min-height:120px;resize:vertical}.vef-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:48px;padding:0 16px;border-radius:var(--vef-radius-md);border:1px solid transparent;font-size:14px;font-weight:800;letter-spacing:-.01em;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}.vef-btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--vef-ring)}.vef-btn:active{transform:translateY(1px)}.vef-btn--primary{background:var(--vef-green-600);color:#fff;box-shadow:0 10px 24px #1f7a5a2e}.vef-btn--primary:hover{background:#1a6b52}.vef-btn--primary:disabled{background:#1f7a5a73;cursor:not-allowed;box-shadow:none}.vef-btn--secondary{background:#fff;border-color:var(--vef-border);color:var(--vef-text);box-shadow:var(--vef-shadow-sm)}.vef-btn--secondary:hover{border-color:#1f7a5a59;box-shadow:0 0 0 4px #1f7a5a14}.vef-btn--secondary:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.vef-btn--ghost{background:transparent;border-color:transparent;color:var(--vef-green-600);height:40px;padding:0 10px;font-weight:800}.vef-btn--ghost:hover{background:#1f7a5a12}.vef-btn--ghost:disabled{opacity:.6;cursor:not-allowed}.vef-btn--sm{height:40px;padding:0 12px;border-radius:var(--vef-radius-sm);font-weight:800}.vef-w-full{width:100%}.vef-alert{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;border-radius:var(--vef-radius-md);border:1px solid var(--vef-border);background:#f8fafc;padding:12px;box-shadow:var(--vef-shadow-sm)}.vef-alert__title{font-size:13px;font-weight:800;margin:0;line-height:1.2}.vef-alert__desc{font-size:13px;margin:4px 0 0;color:var(--vef-text-muted);line-height:1.4}.vef-alert__icon{margin-top:2px}.vef-alert--success{background:#22c55e1a;border-color:#22c55e38}.vef-alert--success .vef-alert__title{color:var(--vef-green-700)}.vef-alert--info{background:#0ea5e914;border-color:#0ea5e933}.vef-alert--warning{background:#f59e0b1a;border-color:#f59e0b40}.vef-alert--danger{background:#dc262614;border-color:#dc262633}.vef-alert--danger .vef-alert__title{color:#991b1b}.vef-spinner{width:18px;height:18px;border-radius:999px;border:2px solid rgba(15,23,42,.12);border-top-color:#1f7a5ad9;animation:vef-spin .9s linear infinite}.vef-spinner--sm{width:14px;height:14px;border-width:2px}.vef-spinner--lg{width:26px;height:26px;border-width:3px}@keyframes vef-spin{to{transform:rotate(360deg)}}.vef-loader-screen{min-height:240px;display:grid;place-items:center;color:var(--vef-text-muted);gap:10px}.vef-empty{border:1px dashed var(--vef-border-strong);border-radius:var(--vef-radius-lg);padding:18px;background:#fff;display:grid;gap:10px}.vef-empty__title{margin:0;font-size:14px;font-weight:900;letter-spacing:-.01em}.vef-empty__desc{margin:0;font-size:13px;color:var(--vef-text-muted);line-height:1.4}.vef-empty__actions{display:flex;flex-wrap:wrap;gap:10px}.vef-modal__overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:var(--vef-z-modal);display:grid;place-items:center;padding:16px}.vef-modal__panel{width:min(560px,100%);background:var(--vef-surface);border:1px solid var(--vef-border);border-radius:var(--vef-radius-lg);box-shadow:0 30px 80px #0f172a40}.vef-modal__header{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:16px 16px 10px}.vef-modal__title{margin:0;font-size:16px;font-weight:900;letter-spacing:-.01em}.vef-modal__desc{margin:6px 0 0;font-size:13px;color:var(--vef-text-muted);line-height:1.4}.vef-modal__content{padding:0 16px 16px}.vef-modal__footer{display:flex;justify-content:flex-end;gap:10px;padding:12px 16px 16px;border-top:1px solid var(--vef-border)}.vef-modal__close{height:36px;padding:0 10px;border-radius:10px}.vef-table-wrap{width:100%;overflow:auto;border:1px solid var(--vef-border);border-radius:var(--vef-radius-lg);background:#fff;box-shadow:var(--vef-shadow-sm)}.vef-table{width:100%;border-collapse:collapse;min-width:640px}.vef-th,.vef-td{padding:12px 14px;border-bottom:1px solid var(--vef-border);text-align:left;font-size:13px;white-space:nowrap}.vef-th{font-weight:900;color:var(--vef-text);background:#f8fafc}.vef-tr:hover .vef-td{background:#1f7a5a0a}.vef-td--muted{color:var(--vef-text-muted)}
