@tailwind base;@tailwind components;@tailwind utilities;:root{--background:255 255 255;--foreground:17 24 39;--muted:249 250 251;--muted-foreground:107 114 128;--accent:243 244 246;--accent-foreground:17 24 39;--border:229 231 235;--input:229 231 235;--ring:59 130 246;--primary:37 99 235;--primary-foreground:255 255 255;--destructive:220 38 38;--card:255 255 255;--card-foreground:17 24 39;--radius:0.75rem}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:DM Sans,sans-serif;background-color:#f8f9fc;color:#111827;-webkit-font-smoothing:antialiased;overscroll-behavior:none}[role=button],a,button,input,label,select,textarea{touch-action:manipulation}[role=button],[type=button],[type=submit],button{min-height:44px}input[type=checkbox],input[type=radio]{width:20px;height:20px;cursor:pointer}.bg-background{background-color:rgb(var(--background))}.bg-muted{background-color:rgb(var(--muted))}.bg-accent{background-color:rgb(var(--accent))}.bg-card{background-color:rgb(var(--card))}.text-foreground{color:rgb(var(--foreground))}.text-muted-foreground{color:rgb(var(--muted-foreground))}.text-accent-foreground{color:rgb(var(--accent-foreground))}.text-card-foreground{color:rgb(var(--card-foreground))}.text-primary{color:rgb(var(--primary))}.bg-primary{background-color:rgb(var(--primary))}.text-primary-foreground{color:rgb(var(--primary-foreground))}.text-destructive{color:rgb(var(--destructive))}.bg-destructive{background-color:rgb(var(--destructive))}.border-input{border-color:rgb(var(--input))}.font-serif{font-family:Cormorant Garamond,serif}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slideIn{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}.animate-fade-up{animation:fadeUp .4s ease both}.animate-shimmer{background:linear-gradient(90deg,#f3f4f6 25%,#e9ecef 50%,#f3f4f6 75%);background-size:600px 100%;animation:shimmer 1.6s ease infinite}.animate-spin{animation:spin 1s linear infinite}.animate-slide-in{animation:slideIn .25s ease both}:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}input:focus,select:focus,textarea:focus{border-color:#3b82f6!important;box-shadow:0 0 0 3px rgba(59,130,246,.1)!important;outline:none!important}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:99px}::-webkit-scrollbar-thumb:hover{background:#d1d5db}@media (max-width:640px){h1{font-size:clamp(1.5rem,5vw,2.25rem)!important}}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.modal-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(17,24,39,.45);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeUp .2s ease both;overflow-y:auto}.modal{position:relative;width:100%;max-width:540px;max-height:calc(100vh - 2rem);overflow-y:auto;background:rgb(var(--card));color:rgb(var(--card-foreground));border-radius:var(--radius);border:1px solid rgb(var(--border));box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);padding:1.5rem;animation:fadeUp .25s ease both}.modal.fu{max-width:640px}.btn-g,.btn-ghost,.btn-p,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:44px;padding:0 1rem;border-radius:var(--radius);font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background-color .15s ease,border-color .15s ease,opacity .15s ease;white-space:nowrap}.btn-p,.btn-primary{background:rgb(var(--primary));color:rgb(var(--primary-foreground))}.btn-p:hover,.btn-primary:hover{opacity:.9}.btn-g,.btn-ghost{background:transparent;color:rgb(var(--foreground));border-color:rgb(var(--border))}.btn-g:hover,.btn-ghost:hover{background:rgb(var(--accent))}.btn-g:disabled,.btn-ghost:disabled,.btn-p:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}