/* Aura Components — Apple HIG inspired
   Buttons, Cards, Modals, Toasts, Focus & Motion
*/
@import url('aura-design-tokens.css');

:root{ --btn-radius:12px; --card-radius:var(--radius); --btn-padding:12px 16px; }

/* Buttons */
.btn{ font-family:var(--font-family); display:inline-flex; align-items:center; justify-content:center; gap:8px; border-radius:var(--btn-radius); padding:var(--btn-padding); min-height:44px; cursor:pointer; transition:var(--transition); border:1px solid transparent; font-weight:600; font-size:1rem; }
.btn:focus{ outline: none; box-shadow: 0 0 0 3px rgba(199,140,64,0.22); }
.btn-primary{ background:var(--accent-gold); color:var(--text-primary); }
.btn-primary:hover, .btn-primary:focus{ background:var(--text-primary); color:var(--accent-gold); border:1px solid var(--accent-gold); }
.btn-secondary{ background:transparent; color:var(--text-primary); border:1px solid rgba(255,255,255,0.12); }
.btn-secondary:hover{ background: rgba(255,255,255,0.04); }
.btn:disabled, .btn.is-disabled{ opacity:0.4; cursor:default; pointer-events:none; }

/* Link-style button */
.btn-link{ background:transparent; border:none; padding:0; color:var(--accent-gold); cursor:pointer; min-height:0; }
.btn-link:hover{ text-decoration:underline; }

/* Small button variant (compact) */
.btn-sm{ padding:6px 10px; min-height:32px; font-size:0.875rem; border-radius:10px; }

/* Card */
.glass-card{ background:var(--glass-bg); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-radius:var(--card-radius); padding:calc(var(--gutter) / 1.5); border:1px solid rgba(255,255,255,0.06); box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.glass-card h3{ font-size:1.125rem; margin:0 0 8px; }

/* Forms */
.aura-form{ display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; }
.aura-form .form-group, .aura-form .filter-group{ display:flex; flex-direction:column; gap:6px; min-width:160px; }
.form-label{ font-size:0.875rem; color:var(--muted); }
.form-control, .aura-form input[type="text"], .aura-form input[type="date"], .aura-form select, .aura-form textarea{ padding:10px 12px; border-radius:10px; border:1px solid rgba(255,255,255,0.06); background:transparent; color:var(--text-primary); min-height:40px; }
.form-control:focus{ box-shadow:0 0 0 3px rgba(199,140,64,0.12); outline:none; }
.filter-actions{ display:flex; gap:8px; align-items:center; }

/* Tables */
.aura-table{ width:100%; border-collapse:collapse; background:transparent; }
.aura-table th, .aura-table td{ padding:12px 14px; border-bottom:1px solid rgba(255,255,255,0.04); }
.aura-table thead th{ text-align:left; font-weight:600; background:rgba(255,255,255,0.02); }
.aura-table tr.is-loading td{ text-align:center; color:var(--muted); }

/* Responsive table wrapper */
.aura-table-wrap{ overflow:auto; border-radius:12px; }

/* Compact input helper (used in tables for number inputs) */
.small-text{ width:80px; padding:8px 10px; }

/* Modal */
.modal{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background: rgba(0,0,0,0.36); z-index:9999; opacity:0; transform: translateY(10px); pointer-events:none; transition: opacity .25s var(--transition), transform .25s var(--transition); }
.modal.is-open{ opacity:1; transform:none; pointer-events:auto; }
.modal .modal-card{ width:520px; max-width:94vw; border-radius:18px; overflow:hidden; box-shadow:0 30px 80px rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.06); }
.modal .modal-body{ padding:20px; }
.modal .modal-footer{ padding:12px 18px; display:flex; justify-content:flex-end; gap:8px; }

/* Toast */
.aura-toast{ position: fixed; right: 20px; bottom: 20px; border-radius: 12px; padding:10px 14px; min-width: 160px; box-shadow:0 12px 34px rgba(0,0,0,0.25); color:var(--text-primary); background: rgba(10,10,10,0.88); opacity:0; transform: translateY(8px); transition: opacity .22s var(--transition), transform .22s var(--transition); z-index: 100000; }
.aura-toast.is-visible{ opacity:1; transform:none; }
.aura-toast.success{ background: var(--success); color: #082612; }
.aura-toast.error{ background: var(--danger); color: #fff5f5; }
.aura-toast.warn{ background: #FFB84D; color: #2b1700; }

/* Motion helpers */
.fade-in-up{ animation: fadeInUp .32s ease both; }
@keyframes fadeInUp{ from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

/* Accessibility: focus ring for keyboard users */
:focus{ outline-offset:3px; }

*** End Patch
