:root{--ui-primary:#3b2d8f;--ui-primary-hover:#2c2170;--ui-primary-busy:#5b4fa8;--ui-primary-soft:#3b2d8f1a;--ui-primary-ring:#3b2d8f2e;--ui-text:#0a0f2b;--ui-muted:#4a4f6a;--ui-border:#8a8ea6;--ui-danger:#b3261e;--ui-surface:#fff}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-field{flex-direction:column;gap:8px;min-width:0;display:flex}.ui-label,.ui-legend{color:var(--ui-text);font-size:14px;font-weight:600}.ui-required{color:var(--ui-primary)}.ui-optional{color:var(--ui-muted);font-weight:400}.ui-hint{color:var(--ui-muted);margin:0;font-size:13px;line-height:1.45}.ui-error{color:var(--ui-danger);margin:0;font-size:13px}.ui-input{box-sizing:border-box;font:inherit;color:inherit;border:1.5px solid var(--ui-border);background:var(--ui-surface);border-radius:12px;outline:none;width:100%;min-height:50px;padding:0 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.ui-input.has-error{border-color:var(--ui-danger)}.ui-input:focus{border-color:var(--ui-primary);box-shadow:0 0 0 4px var(--ui-primary-ring)}.ui-input:disabled{opacity:.45}.ui-textarea{resize:vertical;min-height:120px;padding:12px 14px;line-height:1.5}.ui-group{border:0;flex-direction:column;flex:100%;gap:10px;min-width:0;margin:0;padding:0;display:flex}.ui-legend{margin-bottom:8px;padding:0}.ui-group-hint{margin-bottom:4px}.ui-pills{flex-wrap:wrap;gap:10px;display:flex}.ui-pill{border:1.5px solid var(--ui-border);background:var(--ui-surface);cursor:pointer;min-height:48px;color:var(--ui-text);border-radius:999px;align-items:center;gap:10px;padding:0 18px 0 14px;font-size:15px;font-weight:500;transition:background .15s,border-color .15s;display:flex}.ui-pill.has-error{border-color:var(--ui-danger)}.ui-pill.is-on{border-color:var(--ui-primary);background:var(--ui-primary-soft)}.ui-pill-input{width:18px;height:18px;accent-color:var(--ui-primary);margin:0}.ui-button{font:inherit;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;gap:12px;min-height:56px;padding:0 32px;font-size:15px;font-weight:600;transition:background .2s,transform .2s,box-shadow .2s,color .2s;display:inline-flex}.ui-button-primary{background:var(--ui-primary);color:#fff;border:0;box-shadow:0 4px 14px #3b2d8f38}.ui-button-primary.is-loading{background:var(--ui-primary-busy);cursor:progress}.ui-button-primary:hover{background:var(--ui-primary-hover);transform:translateY(-2px);box-shadow:0 12px 28px #3b2d8f57}.ui-button-outline{border:1.5px solid var(--ui-text);color:var(--ui-text);background:0 0;padding:0 24px}.ui-button-outline:hover{background:var(--ui-text);color:#fff}.ui-spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite ui-spin;display:block}.ui-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.ui-badge-info{color:#2b5a99;background:#e3ecf8}.ui-badge-primary{background:var(--ui-primary-soft);color:var(--ui-primary)}.ui-badge-success{color:#236347;background:#e1f2ea}.ui-badge-warning{color:#8a5a12;background:#faf0dc}.ui-badge-danger{color:#a32d21;background:#fbe6e3}.ui-badge-neutral{color:#5b6078;background:#eceef4}
