:root{--color-primary:#5B2A86;--color-primary-light:#8B5FBF;--color-accent:#D4AF37;--color-accent-light:#E8C766;--color-neutral-bg:#F7F6F4;--color-neutral-surface:#FFFFFF;--color-neutral-border:#E2E0DC;--color-text-primary:#2B2530;--color-text-secondary:#6B6570;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-display:"Georgia","Times New Roman",serif;--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px rgba(0,0,0,0.1);--shadow-lg:0 10px 15px rgba(0,0,0,0.1)}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--color-neutral-bg);color:var(--color-text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:600;line-height:1.2;margin-bottom:var(--spacing-md)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--color-primary-light);text-decoration:underline}input,select,textarea{font-family:var(--font-sans);font-size:1rem;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-neutral-border);border-radius:var(--radius-sm);background-color:var(--color-neutral-surface);color:var(--color-text-primary);transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px rgba(212,175,55,.1)}input::placeholder,textarea::placeholder{color:var(--color-text-secondary)}textarea{resize:vertical;min-height:100px}button{font-family:var(--font-sans);font-size:1rem;font-weight:600;padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-primary);color:white;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s,transform .1s;box-shadow:var(--shadow-sm)}button:hover{background-color:var(--color-primary-light)}button:active{transform:scale(.98)}button:disabled{background-color:var(--color-text-secondary);cursor:not-allowed;opacity:.6}button.secondary{background-color:var(--color-neutral-surface);color:var(--color-primary);border:2px solid var(--color-primary)}button.secondary:hover{background-color:var(--color-neutral-bg)}button.accent{background-color:var(--color-accent);color:var(--color-text-primary)}button.accent:hover{background-color:var(--color-accent-light)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--color-neutral-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.toast{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-neutral-surface);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:1000;animation:slideIn .3s ease-out}.toast.success{border-left-color:#10b981}.toast.error{border-left-color:#ef4444}.toast.info{border-left-color:var(--color-accent)}@keyframes slideIn{0%{transform:translateX(400px);opacity:0}to{transform:translateX(0);opacity:1}}.card{background-color:var(--color-neutral-surface);border:1px solid var(--color-neutral-border);border-radius:var(--radius-md);padding:var(--spacing-lg);box-shadow:var(--shadow-sm)}.card:hover{box-shadow:var(--shadow-md)}@media (max-width:640px){h1{font-size:2rem}h2{font-size:1.5rem}body{font-size:.95rem}}#nprogress{pointer-events:none}#nprogress .bar{background:#29d;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #29d,0 0 5px #29d;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#29d transparent transparent #29d;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}