*,::after,::before{box-sizing:border-box}blockquote,body,dd,dl,figure,h1,h2,h3,h4,p{margin:0}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}img,picture{max-width:100%;display:block}button,input,select,textarea{font:inherit}a{text-decoration:none;color:inherit}:root{--m-blue:#3b82f6;--m-blue-light:#dbeafe;--m-blue-dark:#1e3a8a;--m-red:#ef4444;--m-red-light:#fee2e2;--m-red-dark:#7f1d1d;--m-white:#ffffff;--m-black:#000000;--m-gray:#6b7280;--m-gray-light:#f3f4f6;--p-xs:4px;--p-sm:8px;--p-md:16px;--p-lg:24px;--p-xl:32px;--rounded-sm:4px;--rounded:8px;--rounded-lg:16px;--rounded-full:9999px;--shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1);--shadow-md:0 10px 15px -3px rgba(0, 0, 0, 0.1);--font-geist:'Geist',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-size-xs:12px;--font-size-sm:14px;--font-size-md:16px;--font-size-lg:18px;--font-weight-base:500;--font-lineHeight-base:20px;--color-surface-base:#000000;--color-surface-muted:rgba(0, 0, 0, 0.05);--color-text-primary:#09090b;--color-text-secondary:#ffffff;--color-border-default:rgba(0, 0, 0, 0.1);--color-border-muted:rgba(0, 0, 0, 0.15);--space-3:4px;--space-4:8px;--space-6:12px;--space-8:16px;--radius-xs:6px;--radius-sm:8px;--shadow-2:0 0 0 3px rgba(0, 0, 0, 0.1);--motion-instant:150ms}.btn{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--font-geist);font-size:var(--font-size-md);font-weight:var(--font-weight-base);line-height:var(--font-lineHeight-base);transition:background-color var(--motion-instant),opacity var(--motion-instant);cursor:pointer;border:1px solid transparent;outline:0;gap:var(--space-4);user-select:none}.btn-primary{background-color:var(--color-surface-base);color:var(--color-text-secondary)}.btn-secondary{background-color:var(--color-surface-muted);color:var(--color-text-primary)}.btn-outline{background-color:transparent;border-color:var(--color-border-default);color:var(--color-text-primary)}.btn-ghost{background-color:transparent;color:var(--color-text-primary)}.btn-sm{height:32px;padding:0 var(--space-6);font-size:var(--font-size-sm);border-radius:var(--radius-xs)}.btn-md{height:40px;padding:0 var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-sm)}.btn-lg{height:48px;padding:0 var(--space-8);font-size:var(--font-size-lg);border-radius:var(--radius-sm)}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-sm)}.btn:hover:not(:disabled){opacity:.9}.btn:active:not(:disabled){transform:scale(.98)}.btn:focus-visible{outline:2px solid var(--color-text-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading::after{content:"";position:absolute;width:16px;height:16px;top:50%;left:50%;margin-top:-8px;margin-left:-8px;border:2px solid rgba(255,255,255,.8);border-radius:50%;border-top-color:transparent;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.field-group{display:flex;flex-direction:column;gap:var(--space-3);width:100%}.label{font-family:var(--font-geist);font-size:var(--font-size-sm);font-weight:var(--font-weight-base);color:var(--color-text-primary);line-height:1;user-select:none}.input{width:100%;height:40px;padding:0 var(--space-6);background-color:transparent;color:var(--color-text-primary);font-family:var(--font-geist);font-size:var(--font-size-sm);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);transition:border-color var(--motion-instant),box-shadow var(--motion-instant)}.input::placeholder{color:var(--color-text-secondary);opacity:1}.input:hover:not(:disabled):not(.input-error){border-color:var(--color-border-muted)}.input:focus-visible{outline:0;border-color:var(--color-text-primary);box-shadow:var(--shadow-2)}.input:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-surface-muted)}.input-error{border-color:var(--m-red)!important}.field-error-message{font-size:var(--font-size-xs);color:var(--m-red);font-weight:500}.field-description{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.modal-overlay{position:fixed;inset:0;background-color:rgba(0,0,0,.5);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9000}.modal-content{background-color:var(--m-white);padding:24px;border-radius:var(--rounded-lg);border:1px solid var(--color-border-default);width:100%;max-width:450px;box-shadow:var(--shadow-md)}.modal-header{margin-bottom:16px}.modal-footer{margin-top:24px;display:flex;justify-content:flex-end;gap:8px}.toast{position:fixed;bottom:16px;left:16px;right:16px;padding:16px;background-color:var(--m-white);border:1px solid var(--color-border-default);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:12px;z-index:9999}.toast-title{font-weight:600;font-size:14px}.toast-desc{font-size:13px;color:var(--color-text-secondary)}.hidden{display:none}@media (min-width:768px){.toast{left:auto;right:24px;bottom:24px;min-width:300px}.md-flex{display:flex}.md-grid{display:grid}.md-block{display:block}.md-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg-flex{display:flex}.lg-grid{display:grid}}.dark{--m-bg:#09090b;--m-text:#fafafa;--m-border:#27272a;--m-muted:#27272a;--m-primary:#fafafa;--m-secondary:#27272a}body.dark{background-color:var(--m-bg);color:var(--m-text)}:root{--m-bg:#ffffff;--m-text:#09090b;--m-border:#e2e8f0;--m-muted:#f4f4f5;--m-primary:#18181b;--m-secondary:#f1f5f9}.bg-blue{background-color:var(--m-blue)}.bg-blue-light{background-color:var(--m-blue-light)}.bg-blue-dark{background-color:var(--m-blue-dark)}.bg-white{background-color:var(--m-white)}.bg-gray-light{background-color:var(--m-gray-light)}.text-white{color:var(--m-white)}.text-blue{color:var(--m-blue)}.text-gray{color:var(--m-gray)}.rounded-sm{border-radius:var(--rounded-sm)}.rounded{border-radius:var(--rounded)}.rounded-lg{border-radius:var(--rounded-lg)}.rounded-full{border-radius:var(--rounded-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow{box-shadow:var(--shadow)}.shadow-md{box-shadow:var(--shadow-md)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-100{opacity:1}.border{border:1px solid #e5e7eb}.border-b{border-bottom:1px solid #e5e7eb}.grid{display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.gap-xs{gap:var(--p-xs)}.gap-lg{gap:var(--p-lg)}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.flex{display:flex}.col{flex-direction:column}.row{flex-direction:row}.center{display:flex;justify-content:center;align-items:center}.between{display:flex;justify-content:space-between;align-items:center}.gap-sm{gap:var(--p-sm)}.gap-md{gap:var(--p-md)}.gap-xl{gap:var(--p-xl)}.flex-wrap{flex-wrap:wrap}.p-xs{padding:var(--p-xs)}.p-sm{padding:var(--p-sm)}.p-md{padding:var(--p-md)}.p-lg{padding:var(--p-lg)}.p-xl{padding:var(--p-xl)}.p-t-xs{padding-top:var(--p-xs)}.p-t-sm{padding-top:var(--p-sm)}.p-t-md{padding-top:var(--p-md)}.p-t-lg{padding-top:var(--p-lg)}.p-t-xl{padding-top:var(--p-xl)}.p-b-xs{padding-bottom:var(--p-xs)}.p-b-sm{padding-bottom:var(--p-sm)}.p-b-md{padding-bottom:var(--p-md)}.p-b-lg{padding-bottom:var(--p-lg)}.p-b-xl{padding-bottom:var(--p-xl)}.p-l-xs{padding-left:var(--p-xs)}.p-l-sm{padding-left:var(--p-sm)}.p-l-md{padding-left:var(--p-md)}.p-l-lg{padding-left:var(--p-lg)}.p-l-xl{padding-left:var(--p-xl)}.p-r-xs{padding-right:var(--p-xs)}.p-r-sm{padding-right:var(--p-sm)}.p-r-md{padding-right:var(--p-md)}.p-r-lg{padding-right:var(--p-lg)}.p-r-xl{padding-right:var(--p-xl)}.m-xs{margin:var(--p-xs)}.m-sm{margin:var(--p-sm)}.m-md{margin:var(--p-md)}.m-lg{margin:var(--p-lg)}.m-xl{margin:var(--p-xl)}.m-t-xs{margin-top:var(--p-xs)}.m-t-sm{margin-top:var(--p-sm)}.m-t-md{margin-top:var(--p-md)}.m-t-lg{margin-top:var(--p-lg)}.m-t-xl{margin-top:var(--p-xl)}.m-b-xs{margin-bottom:var(--p-xs)}.m-b-sm{margin-bottom:var(--p-sm)}.m-b-md{margin-bottom:var(--p-md)}.m-b-lg{margin-bottom:var(--p-lg)}.m-b-xl{margin-bottom:var(--p-xl)}.m-l-xs{margin-left:var(--p-xs)}.m-l-sm{margin-left:var(--p-sm)}.m-l-md{margin-left:var(--p-md)}.m-l-lg{margin-left:var(--p-lg)}.m-l-xl{margin-left:var(--p-xl)}.m-r-xs{margin-right:var(--p-xs)}.m-r-sm{margin-right:var(--p-sm)}.m-r-md{margin-right:var(--p-md)}.m-r-lg{margin-right:var(--p-lg)}.m-r-xl{margin-right:var(--p-xl)}.text-xs{font-size:12px}.text-sm{font-size:14px}.text-md{font-size:16px}.text-lg{font-size:20px}.text-xl{font-size:24px}.text-2xl{font-size:32px}.font-light{font-weight:300}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}