.ao-field{display:grid;gap:var(--space-2);width:100%}.ao-label{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:600;line-height:1.25}.ao-input,.ao-select,.ao-textarea{width:100%;min-height:36px;border:1px solid var(--color-border-strong);border-radius:var(--radius-control);background:var(--color-background);color:var(--color-text-primary);font:inherit;font-size:var(--text-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.ao-input,.ao-select{padding:0 var(--space-3)}.ao-textarea{min-height:104px;resize:vertical;padding:var(--space-3);line-height:1.5}.ao-input::placeholder,.ao-textarea::placeholder{color:var(--color-text-tertiary)}.ao-input:focus-visible,.ao-select:focus-visible,.ao-textarea:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.ao-input:disabled,.ao-select:disabled,.ao-textarea:disabled{cursor:not-allowed;background:var(--color-surface-muted);color:var(--color-text-disabled)}.ao-field-error,.ao-field-help{margin:0;font-size:var(--text-xs);line-height:1.4}.ao-field-help{color:var(--color-text-secondary)}.ao-field-error{color:var(--color-danger)}.ao-input[aria-invalid=true],.ao-select[aria-invalid=true],.ao-textarea[aria-invalid=true]{border-color:var(--color-danger)}.ao-icon-button{display:inline-grid;width:36px;min-width:36px;height:36px;place-items:center;border:1px solid transparent;border-radius:var(--radius-control);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.ao-icon-button:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text-primary)}.ao-icon-button:focus-visible{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft);outline:none}.ao-icon-button:disabled{cursor:not-allowed;color:var(--color-text-disabled)}.ao-badge{display:inline-flex;min-height:24px;align-items:center;gap:var(--space-1);border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-text-secondary);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;line-height:1.2}.ao-badge[data-tone=accent]{border-color:color-mix(in srgb,var(--color-accent) 32%,transparent);background:var(--color-accent-soft);color:var(--color-accent-strong)}.ao-badge[data-tone=success]{background:var(--color-success-soft);color:var(--color-success)}.ao-badge[data-tone=warning]{background:var(--color-warning-soft);color:var(--color-warning)}.ao-badge[data-tone=danger]{background:var(--color-danger-soft);color:var(--color-danger)}.ao-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-muted);color:var(--color-text-primary);padding:var(--space-4)}.ao-alert[data-tone=accent]{border-color:color-mix(in srgb,var(--color-accent) 28%,var(--color-border));background:var(--color-accent-soft)}.ao-alert[data-tone=success]{background:var(--color-success-soft)}.ao-alert[data-tone=warning]{background:var(--color-warning-soft)}.ao-alert[data-tone=danger]{background:var(--color-danger-soft)}.ao-alert-content{min-width:0}.ao-alert-title{margin:0 0 var(--space-1);font-size:var(--text-sm);font-weight:700}.ao-alert-description{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.5}.ao-dialog-overlay{position:fixed;z-index:1000;inset:0;background:var(--color-overlay);animation:ao-fade-in var(--transition-base)}.ao-dialog-content{position:fixed;z-index:1001;top:50%;left:50%;width:min(calc(100vw - 32px),480px);max-height:min(85vh,720px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-background);box-shadow:var(--shadow-lg);padding:var(--space-6);transform:translate(-50%,-50%);animation:ao-dialog-in var(--transition-base)}.ao-dialog-title{margin:0;color:var(--color-text-primary);font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.ao-dialog-description{margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:1.6}.ao-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6)}.ao-input-dialog-field{margin-top:var(--space-5)}@keyframes ao-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ao-dialog-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 12px))}to{opacity:1;transform:translate(-50%,-50%)}}@media (max-width:640px){.ao-icon-button,.ao-input,.ao-select{min-height:44px}.ao-icon-button{width:44px;min-width:44px;height:44px}.ao-dialog-content{padding:var(--space-5)}.ao-dialog-actions{flex-direction:column-reverse}.ao-dialog-actions .btn{width:100%}}@media (prefers-reduced-motion:reduce){.ao-dialog-content,.ao-dialog-overlay{animation:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-body);font-weight:500;border-radius:var(--radius-control);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),opacity var(--transition-fast);user-select:none;text-decoration:none;white-space:nowrap;position:relative;border:none}.btn:active:not(:disabled){opacity:.86}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none!important}.btn-loading{cursor:wait}.btn-loading .btn-label{opacity:.7}.btn-sm{padding:6px 12px;font-size:13px;min-height:32px}.btn-md{padding:8px 16px;font-size:14px;min-height:36px}.btn-lg{padding:11px 22px;font-size:16px;min-height:44px}.btn-primary{background:var(--color-primary);color:var(--color-primary-foreground);border:1px solid var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background:var(--color-background);color:var(--color-text-primary);border:1px solid var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-primary);color:var(--color-primary-foreground);border-color:var(--color-primary)}.btn-ghost{background:transparent;color:var(--color-text-primary);border:1px solid transparent}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover);box-shadow:none}.btn-danger{background:var(--color-error);color:var(--ao-paper);border:1px solid var(--color-error)}.btn-danger:hover:not(:disabled){background:var(--color-error-hover);border-color:var(--color-error-hover)}.btn-icon{display:inline-flex;align-items:center;font-size:1.1em}.btn-spinner{position:absolute;left:12px;display:inline-flex}.spinner{width:16px;height:16px;animation:spin .8s linear infinite}.spinner-circle{stroke:currentColor;opacity:.3;stroke-dasharray:60;stroke-dashoffset:15;animation:spinnerDash 1.5s ease-in-out infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes spinnerDash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,200;stroke-dashoffset:-35px}to{stroke-dasharray:90,200;stroke-dashoffset:-125px}}@media (max-width:768px){.btn-lg,.btn-md,.btn-sm{min-height:44px}}