.card{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-header{margin-bottom:var(--spacing-md)}.card-title{font-size:var(--text-xl);margin-bottom:var(--spacing-sm);font-weight:600}.card-description{color:var(--text-muted);font-size:var(--text-sm)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-lg);font-size:var(--text-base);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;border:none;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover{box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.btn:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.btn:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.btn-primary{background:var(--accent-primary);color:#fff}.btn-primary:hover{background:#1d4ed8}.btn-primary:active{background:#1e40af}.btn-secondary{background:var(--bg-elevated);color:var(--text-main);border:1px solid var(--border-subtle)}.btn-secondary:hover{background:var(--bg-soft);border-color:var(--accent-primary)}.btn-outline{color:var(--accent-primary);border:1px solid var(--accent-primary);background:0 0}.btn-outline:hover{background:var(--accent-soft)}.btn-ghost{color:var(--text-main);background:0 0}.btn-ghost:hover{background:var(--bg-soft)}.btn-sm{padding:var(--spacing-xs)var(--spacing-md);font-size:var(--text-sm)}.btn-lg{padding:var(--spacing-md)var(--spacing-xl);font-size:var(--text-lg)}.btn:disabled,.btn[aria-busy=true]{opacity:.5;cursor:not-allowed;box-shadow:none!important;transform:none!important}.btn:disabled:hover,.btn[aria-busy=true]:hover{box-shadow:none;transform:none}.badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--text-xs);border-radius:var(--radius-xl);background:var(--accent-soft);color:var(--accent-primary);font-weight:500;display:inline-flex}.badge-success{color:var(--success);background:#22c55e1a}.badge-danger{color:var(--danger);background:#ef44441a}.page-header{padding:var(--spacing-3xl)0 var(--spacing-2xl);text-align:center}.page-header-title{font-size:var(--text-5xl);margin-bottom:var(--spacing-md);text-wrap:balance}.page-header-subtitle{font-size:var(--text-xl);color:var(--text-muted);text-wrap:pretty;max-width:600px;margin:0 auto}@media (max-width:768px){.page-header-title{font-size:var(--text-4xl)}.page-header-subtitle{font-size:var(--text-lg)}}.input{width:100%;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--text-base);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-main);transition:border-color var(--transition-fast)}.input:focus{border-color:var(--accent-primary);outline:none}.input::placeholder{color:var(--text-muted)}.textarea{width:100%;min-height:100px;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--text-base);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-main);resize:vertical;font-family:inherit}.textarea:focus{border-color:var(--accent-primary);outline:none}.select{width:100%;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--text-base);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-main);cursor:pointer}.select:focus{border-color:var(--accent-primary);outline:none}.label{font-size:var(--text-sm);margin-bottom:var(--spacing-xs);color:var(--text-main);font-weight:500;display:block}
