:root {
 --color-primary:#20948b; --color-primary-hover:#176c60; --color-primary-soft:#e1f2eb;
 --color-accent:#20948b; --color-background:#f2ede3; --color-surface:#f1f1f2; --color-surface-elevated:#fff;
 --color-text:#4a3c2e; --color-text-secondary:#53655f; --color-border:#d1ded7;
 --color-success:#0c7c3c; --color-warning:#825b19; --color-error:#b00020;
 --font-body:'Segoe UI',Tahoma,Verdana,sans-serif; --radius-sm:10px; --radius-md:18px; --radius-lg:26px;
 --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px;
 --shadow-card:0 8px 26px rgb(74 60 46 / .07); --shadow-dialog:0 24px 80px rgb(0 0 0 / .22);
}
button,input,select,textarea { font:inherit; } button { min-height:44px; } button,a,input,textarea,select { -webkit-tap-highlight-color:transparent; }
input,textarea,select { color:var(--color-text); background:var(--color-surface-elevated); border:1px solid var(--color-border); border-radius:var(--radius-sm); }
input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible { outline:3px solid var(--color-primary); outline-offset:3px; }
button { transition:background .15s,transform .15s; } button:active:not(:disabled) { transform:scale(.97); }
button:disabled { cursor:not-allowed; } dialog { border:0; border-radius:var(--radius-lg); box-shadow:var(--shadow-dialog); background:var(--color-background); color:var(--color-text); padding:32px; width:min(92vw,540px); max-height:85dvh; overflow:auto; } dialog::backdrop { background:rgb(21 46 42 / .65); backdrop-filter:blur(4px); }
.dialog-close { float:right; background:none; border:0; font-size:1.5rem; } .eyebrow { font-size:.7rem; letter-spacing:.16em; font-weight:700; color:var(--color-primary-hover); }
.empty-state { padding:40px 20px; text-align:center; color:var(--color-text-secondary); } .skeleton { min-height:120px; background:linear-gradient(90deg,var(--color-surface),var(--color-primary-soft),var(--color-surface)); background-size:200%; border-radius:var(--radius-md); animation:shimmer 1.5s linear infinite; }
@keyframes shimmer { to {background-position:-200% 0;} } @media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } }
