@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.518e079e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.ea323500.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.853d50a3.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.55554cd0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.56c1f21e.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3b336396.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.e3369375.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.a40b9a8b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.fe42ddf4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.29207c2f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
:root{--color-bg-primary:#0f0f0f;--color-bg-secondary:#1a1a1a;--color-bg-tertiary:#242424;--color-bg-input:#2a2a2a;--color-text-primary:#e8e8e8;--color-text-secondary:#a0a0a0;--color-text-tertiary:#6b6b6b;--color-accent-blue:#5b9fff;--color-accent-blue-hover:#7db3ff;--color-accent-blue-active:#3d85ff;--color-success:#4ade80;--color-warning:#fbbf24;--color-error:#f87171;--color-border:#2a2a2a;--color-border-focus:#5b9fff;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--font-sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--font-mono:"Consolas","Monaco","Courier New",monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080;--transition-fast:.15s cubic-bezier(.4,0,.2,1);--transition-base:.2s cubic-bezier(.4,0,.2,1);--transition-slow:.3s cubic-bezier(.4,0,.2,1)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-primary);min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin-bottom:var(--space-md)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-md);color:var(--color-text-primary)}a{color:var(--color-accent-blue);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-blue-hover);text-decoration:underline}a:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px;border-radius:var(--radius-sm)}strong,b{font-weight:var(--font-weight-bold)}code{font-family:var(--font-mono);font-size:var(--font-size-sm);background:var(--color-bg-tertiary);padding:var(--space-xs)var(--space-sm);border-radius:var(--radius-sm)}button,.btn{justify-content:center;align-items:center;gap:var(--space-sm);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);min-height:40px;padding:0 var(--space-lg);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;line-height:1;text-decoration:none;display:inline-flex}button,button.btn-primary,.btn,.btn.btn-primary{background:var(--color-accent-blue);color:#fff;box-shadow:0 1px 3px #0003}button:hover,button.btn-primary:hover,.btn:hover,.btn.btn-primary:hover{background:var(--color-accent-blue-hover);transform:translateY(-2px);box-shadow:0 4px 12px #5b9fff66}button:active,button.btn-primary:active,.btn:active,.btn.btn-primary:active{background:var(--color-accent-blue-active);transform:translateY(0);box-shadow:0 1px 3px #0003}button.btn-secondary,.btn.btn-secondary{color:var(--color-text-primary);border:1px solid var(--color-border);box-shadow:none;background:0 0}button.btn-secondary:hover,.btn.btn-secondary:hover{background:var(--color-bg-tertiary);border-color:var(--color-accent-blue);color:var(--color-accent-blue);transform:translateY(-2px);box-shadow:0 2px 8px #00000026}button.btn-secondary:active,.btn.btn-secondary:active{transform:translateY(0)}button.btn-ghost,.btn.btn-ghost{color:var(--color-text-secondary);box-shadow:none;background:0 0}button.btn-ghost:hover,.btn.btn-ghost:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);transform:translateY(-1px)}button.btn-ghost:active,.btn.btn-ghost:active{transform:translateY(0)}button.btn-danger,.btn.btn-danger{background:var(--color-error);color:#fff}button.btn-danger:hover,.btn.btn-danger:hover{background:#dc2626}button:disabled,.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}button:focus-visible,.btn:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.form-field{margin-bottom:var(--space-lg)}.form-field:last-child{margin-bottom:0}label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-sm);letter-spacing:.01em;display:block}label.required:after{content:"*";color:var(--color-error);margin-left:var(--space-xs)}input[type=text],input[type=email],input[type=password],input[type=url],input[type=tel],input[type=search],input[type=number],input[type=date],input[type=time],textarea,select{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-primary);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);width:100%;min-height:40px;transition:all var(--transition-fast)}input[type=text]::placeholder,input[type=email]::placeholder,input[type=password]::placeholder,input[type=url]::placeholder,input[type=tel]::placeholder,input[type=search]::placeholder,input[type=number]::placeholder,input[type=date]::placeholder,input[type=time]::placeholder,textarea::placeholder,select::placeholder{color:var(--color-text-tertiary);font-weight:var(--font-weight-normal)}input[type=text]:hover:not(:disabled),input[type=email]:hover:not(:disabled),input[type=password]:hover:not(:disabled),input[type=url]:hover:not(:disabled),input[type=tel]:hover:not(:disabled),input[type=search]:hover:not(:disabled),input[type=number]:hover:not(:disabled),input[type=date]:hover:not(:disabled),input[type=time]:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){background:#2a2a2acc;border-color:#5b9fff4d}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=url]:focus,input[type=tel]:focus,input[type=search]:focus,input[type=number]:focus,input[type=date]:focus,input[type=time]:focus,textarea:focus,select:focus{border-color:var(--color-accent-blue);background:var(--color-bg-input);outline:none;box-shadow:0 0 0 3px #5b9fff26}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=url]:disabled,input[type=tel]:disabled,input[type=search]:disabled,input[type=number]:disabled,input[type=date]:disabled,input[type=time]:disabled,textarea:disabled,select:disabled{opacity:.5;cursor:not-allowed;background:var(--color-bg-secondary)}input[type=text].input-sm,input[type=email].input-sm,input[type=password].input-sm,input[type=url].input-sm,input[type=tel].input-sm,input[type=search].input-sm,input[type=number].input-sm,input[type=date].input-sm,input[type=time].input-sm,textarea.input-sm,select.input-sm{padding:var(--space-sm)var(--space-md);font-size:var(--font-size-sm)}input[type=text].input-lg,input[type=email].input-lg,input[type=password].input-lg,input[type=url].input-lg,input[type=tel].input-lg,input[type=search].input-lg,input[type=number].input-lg,input[type=date].input-lg,input[type=time].input-lg,textarea.input-lg,select.input-lg{padding:var(--space-lg);font-size:var(--font-size-lg)}input[type=text].input-error,input[type=email].input-error,input[type=password].input-error,input[type=url].input-error,input[type=tel].input-error,input[type=search].input-error,input[type=number].input-error,input[type=date].input-error,input[type=time].input-error,textarea.input-error,select.input-error{border-color:var(--color-error)}input[type=text].input-error:focus,input[type=email].input-error:focus,input[type=password].input-error:focus,input[type=url].input-error:focus,input[type=tel].input-error:focus,input[type=search].input-error:focus,input[type=number].input-error:focus,input[type=date].input-error:focus,input[type=time].input-error:focus,textarea.input-error:focus,select.input-error:focus{box-shadow:0 0 0 3px #f871711a}input[type=text].input-success,input[type=email].input-success,input[type=password].input-success,input[type=url].input-success,input[type=tel].input-success,input[type=search].input-success,input[type=number].input-success,input[type=date].input-success,input[type=time].input-success,textarea.input-success,select.input-success{border-color:var(--color-success)}input[type=text].input-success:focus,input[type=email].input-success:focus,input[type=password].input-success:focus,input[type=url].input-success:focus,input[type=tel].input-success:focus,input[type=search].input-success:focus,input[type=number].input-success:focus,input[type=date].input-success:focus,input[type=time].input-success:focus,textarea.input-success:focus,select.input-success:focus{box-shadow:0 0 0 3px #4ade801a}input[type=text].input-warning,input[type=email].input-warning,input[type=password].input-warning,input[type=url].input-warning,input[type=tel].input-warning,input[type=search].input-warning,input[type=number].input-warning,input[type=date].input-warning,input[type=time].input-warning,textarea.input-warning,select.input-warning{border-color:var(--color-warning)}input[type=text].input-warning:focus,input[type=email].input-warning:focus,input[type=password].input-warning:focus,input[type=url].input-warning:focus,input[type=tel].input-warning:focus,input[type=search].input-warning:focus,input[type=number].input-warning:focus,input[type=date].input-warning:focus,input[type=time].input-warning:focus,textarea.input-warning:focus,select.input-warning:focus{box-shadow:0 0 0 3px #fbbf241a}textarea{resize:vertical;min-height:120px;line-height:var(--line-height-normal)}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23a0a0a0' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md)center;padding-right:var(--space-2xl);cursor:pointer}.help-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin-top:var(--space-sm);display:block}.help-text.error-text{color:var(--color-error)}.help-text.success-text{color:var(--color-success)}.help-text.warning-text{color:var(--color-warning)}input[type=checkbox]{appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-input);cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);flex-shrink:0;position:relative}input[type=checkbox]:hover:not(:disabled){border-color:var(--color-accent-blue)}input[type=checkbox]:checked{background:var(--color-accent-blue);border-color:var(--color-accent-blue)}input[type=checkbox]:checked:after{content:"";border:solid var(--color-bg-primary);border-width:0 2px 2px 0;width:6px;height:10px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]:focus{outline:2px solid var(--color-border-focus);outline-offset:2px}.checkbox-wrapper{align-items:center;gap:var(--space-sm);cursor:pointer;display:flex}.checkbox-wrapper input[type=checkbox]{margin:0}.checkbox-wrapper label{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}input[type=radio]{appearance:none;border:2px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-bg-input);cursor:pointer;width:20px;height:20px;transition:all var(--transition-fast);flex-shrink:0;position:relative}input[type=radio]:hover:not(:disabled),input[type=radio]:checked{border-color:var(--color-accent-blue)}input[type=radio]:checked:after{content:"";border-radius:var(--radius-full);background:var(--color-accent-blue);width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}input[type=radio]:disabled{opacity:.5;cursor:not-allowed}input[type=radio]:focus{outline:2px solid var(--color-border-focus);outline-offset:2px}.radio-wrapper{align-items:center;gap:var(--space-sm);cursor:pointer;display:flex}.radio-wrapper input[type=radio]{margin:0}.radio-wrapper label{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}.radio-group{gap:var(--space-md);flex-direction:column;display:flex}.toggle-switch{align-items:center;gap:var(--space-sm);cursor:pointer;display:inline-flex}.toggle-switch input[type=checkbox]{appearance:none;background:var(--color-bg-tertiary);border:2px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:all var(--transition-base);margin:0;position:relative}.toggle-switch input[type=checkbox]:after{content:"";background:var(--color-text-secondary);border-radius:var(--radius-full);width:16px;height:16px;transition:all var(--transition-base);position:absolute;top:2px;left:2px}.toggle-switch input[type=checkbox]:hover:not(:disabled){border-color:var(--color-accent-blue)}.toggle-switch input[type=checkbox]:checked{background:var(--color-accent-blue);border-color:var(--color-accent-blue)}.toggle-switch input[type=checkbox]:checked:after{background:var(--color-bg-primary);left:22px}.toggle-switch input[type=checkbox]:disabled{opacity:.5;cursor:not-allowed}.toggle-switch input[type=checkbox]:focus{outline:2px solid var(--color-border-focus);outline-offset:2px}.toggle-switch label{cursor:pointer;-webkit-user-select:none;user-select:none;margin:0}.input-group{width:100%;display:flex}.input-group input{border-radius:0}.input-group input:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.input-group input:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.input-group .input-addon{padding:var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap;align-items:center;display:flex}.input-group .input-addon:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);border-right:none}.input-group .input-addon:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);border-left:none}.input-group button{border-radius:0}.input-group button:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}.card:hover{border-color:var(--color-text-tertiary)}.container{width:100%;max-width:1200px;padding:0 var(--space-lg);margin:0 auto}.flex{display:flex}.flex-1{flex:1}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.p-xs{padding:var(--space-xs)}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.p-xl{padding:var(--space-xl)}.p-2xl{padding:var(--space-2xl)}.m-xs{margin:var(--space-xs)}.m-sm{margin:var(--space-sm)}.m-md{margin:var(--space-md)}.m-lg{margin:var(--space-lg)}.m-xl{margin:var(--space-xl)}.m-2xl{margin:var(--space-2xl)}.mt-xs{margin-top:var(--space-xs)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-xs{margin-bottom:var(--space-xs)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:var(--space-xl)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-accent-blue)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.bg-primary{background-color:var(--color-bg-primary)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-tertiary{background-color:var(--color-bg-tertiary)}.bg-accent{background-color:var(--color-accent-blue)}.bg-success{background-color:var(--color-success)}.bg-warning{background-color:var(--color-warning)}.bg-error{background-color:var(--color-error)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.border{border:1px solid var(--color-border)}.border-accent{border-color:var(--color-accent-blue)}.border-t{border-top:1px solid var(--color-border)}.border-b{border-bottom:1px solid var(--color-border)}.border-l{border-left:1px solid var(--color-border)}.border-r{border-right:1px solid var(--color-border)}.h-full{height:100%}.h-screen{height:100vh}.min-h-0{min-height:0}.w-full{width:100%}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-100{z-index:100}.z-1000{z-index:1000}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.hover\:bg-tertiary:hover{background-color:var(--color-bg-tertiary)}.hover\:bg-secondary:hover{background-color:var(--color-bg-secondary)}.hover\:text-accent:hover{color:var(--color-accent-blue)}.hover\:border-accent:hover{border-color:var(--color-accent-blue)}.transition-all{transition:all var(--transition-base)}.transition-fast{transition:all var(--transition-fast)}.transition-colors{transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.transition-transform{transition:transform var(--transition-base)}.word-break{word-break:break-word}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-nowrap{white-space:nowrap}.text-ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.alert{padding:var(--space-md)var(--space-lg);border-radius:var(--radius-md);border-left:4px solid}.alert.alert-success{border-color:var(--color-success);color:var(--color-success);background:#4ade801a}.alert.alert-warning{border-color:var(--color-warning);color:var(--color-warning);background:#fbbf241a}.alert.alert-error{border-color:var(--color-error);color:var(--color-error);background:#f871711a}.badge{padding:var(--space-xs)var(--space-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);background:var(--color-bg-tertiary);color:var(--color-text-secondary);align-items:center;display:inline-flex}.badge.badge-accent{color:var(--color-accent-blue);background:#5b9fff33}.divider{background:var(--color-border);height:1px;margin:var(--space-lg)0}.avatar{border-radius:var(--radius-full);background:var(--color-bg-tertiary);width:40px;height:40px;font-weight:var(--font-weight-medium);color:var(--color-text-primary);justify-content:center;align-items:center;display:flex}.avatar.avatar-sm{width:32px;height:32px;font-size:var(--font-size-sm)}.avatar.avatar-lg{width:56px;height:56px;font-size:var(--font-size-lg)}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn var(--transition-fast);padding:var(--space-lg);background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;animation:scaleIn var(--transition-base);overflow-y:auto}.modal.modal-sm{max-width:400px}.modal.modal-lg{max-width:700px}.modal.modal-xl{max-width:900px}.header{background:linear-gradient(to bottom,var(--color-bg-secondary),#1a1a1afa);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;flex-shrink:0;position:sticky;top:0;box-shadow:0 2px 8px #0000004d}.header .header-container{max-width:1280px;padding:var(--space-md)var(--space-lg);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.header .header-brand{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-accent-blue);transition:color var(--transition-fast);text-decoration:none}.header .header-brand:hover{color:var(--color-accent-blue-hover)}.header .header-nav{align-items:center;gap:var(--space-lg);display:flex}.header .header-nav-link{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--color-text-primary);border-radius:var(--radius-md);background:var(--color-bg-tertiary);transition:all var(--transition-fast);border:1px solid #0000;text-decoration:none;display:inline-flex}.header .header-nav-link:hover{background:var(--color-bg-input);color:var(--color-accent-blue);border-color:var(--color-accent-blue);transform:translateY(-1px)}.header .header-auth{align-items:center;gap:var(--space-md);display:flex}.header .header-user{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-bg-tertiary);border-radius:var(--radius-md);display:flex}.footer{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);flex-shrink:0}.footer-container{max-width:1280px;padding:var(--space-2xl)var(--space-lg);margin:0 auto}.footer-grid{gap:var(--space-xl);margin-bottom:var(--space-xl);grid-template-columns:repeat(3,1fr);display:grid}.footer-column{gap:var(--space-sm);flex-direction:column;display:flex}.footer-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-sm)}.footer-link{font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast);cursor:pointer;text-decoration:none}.footer-link:hover{color:var(--color-accent-blue)}.footer-bottom{padding-top:var(--space-lg);border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.footer-text{font-size:var(--font-size-sm);color:var(--color-text-tertiary);margin:0}.server-chat-page{grid-template-columns:1fr 300px;display:grid;position:absolute;inset:0;overflow:hidden}.chat-main-area{border-right:1px solid var(--color-border);background:var(--color-bg-primary);flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-sidebar{background:var(--color-bg-secondary);flex-direction:column;height:100%;display:flex;overflow:hidden}.server-info-header{padding:var(--space-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0}.server-info-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--space-xs)0}.server-info-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.back-button{align-items:center;gap:var(--space-xs);padding:var(--space-sm)var(--space-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);cursor:pointer;background:0 0;text-decoration:none;display:inline-flex}.back-button:hover{background:var(--color-bg-tertiary);color:var(--color-accent-blue);border-color:var(--color-accent-blue)}.chat-container{flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-feed{flex:1;min-height:0;overflow:hidden}.chat-input-wrapper{padding:var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-bg-secondary);flex-shrink:0}.message-input-form{gap:var(--space-sm);flex-direction:column;display:flex}.message-input-field{resize:vertical;flex:1;min-height:60px;max-height:150px}.message-list-container{height:100%;padding:var(--space-lg);gap:var(--space-md);flex-direction:column;display:flex;overflow-y:auto}.message-item{gap:var(--space-md);padding:var(--space-sm);margin-left:calc(-1*var(--space-sm));margin-right:calc(-1*var(--space-sm));border-radius:var(--radius-md);display:flex;position:relative}.message-item.message-own{justify-content:flex-end;max-width:80%;margin-left:auto}.message-item.message-other{justify-content:flex-start;max-width:80%;margin-right:auto}.message-avatar{flex-shrink:0}.message-content{flex:1;min-width:0}.message-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs);display:flex}.message-author{font-weight:var(--font-weight-semibold)}.message-timestamp{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.message-text{color:var(--color-text-primary);word-break:break-word;white-space:pre-wrap;margin:0}.message-actions{gap:var(--space-xs);align-self:center;display:flex}.message-edit-btn,.message-delete-btn{cursor:pointer;transition:color var(--transition-fast);border:none;justify-content:center;align-self:center;align-items:center;width:24px;height:24px;padding:0;font-size:1.25rem;font-weight:700;line-height:1;display:inline-flex;min-width:auto!important;min-height:auto!important;box-shadow:none!important;background:0 0!important;transform:none!important}.message-edit-btn:hover:not(:disabled),.message-delete-btn:hover:not(:disabled),.message-edit-btn:active,.message-delete-btn:active{box-shadow:none!important;background:0 0!important;transform:none!important}.message-edit-btn:disabled,.message-delete-btn:disabled{opacity:.5;cursor:not-allowed}.message-edit-btn{color:#60a5fa}.message-edit-btn:hover:not(:disabled){color:#3b82f6}.message-delete-btn{color:#f87171}.message-delete-btn:hover:not(:disabled){color:#dc2626}.message-edit-form{gap:var(--space-sm);flex-direction:column;width:100%;display:flex}.message-edit-textarea{background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-sans);font-size:var(--font-size-base);padding:var(--space-sm);resize:vertical;min-height:60px;max-height:200px;line-height:1.5}.message-edit-textarea:focus{border-color:var(--color-border-focus);outline:none}.message-edit-actions{gap:var(--space-sm);justify-content:flex-end;display:flex}.members-sidebar{padding:var(--space-lg);height:100%;overflow-y:auto}.member-item{border-radius:var(--radius-md);margin-bottom:var(--space-xs);background:0 0;overflow:hidden}.member-item.is-current-user{background:var(--color-bg-tertiary)}.member-row{align-items:center;gap:var(--space-sm);padding:var(--space-sm);display:flex}.member-row.clickable{cursor:pointer}.member-avatar{flex-shrink:0}.member-info{flex:1;min-width:0}.member-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.member-chevron{transition:transform var(--transition-fast);color:var(--color-text-secondary);font-size:var(--font-size-xl);flex-shrink:0;line-height:1}.member-chevron.expanded{transform:rotate(180deg)}.member-actions{align-items:center;gap:var(--space-sm);padding:var(--space-sm);padding-top:0;padding-left:calc(var(--space-sm) + 32px + var(--space-sm));animation:.2s ease-out slideDown;display:flex}.member-role-select{width:100%;padding:var(--space-sm);background:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:var(--font-size-xs);cursor:pointer;flex:1}.member-kick-btn{padding:var(--space-sm)var(--space-md);background:var(--color-error);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap;border:none}.member-kick-btn:disabled{opacity:.5;cursor:not-allowed}.new-messages-popup{bottom:var(--space-lg);padding:var(--space-sm)var(--space-lg);background:var(--color-accent-blue);color:#fff;border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;z-index:10;border:none;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 4px 12px #00000026}.layout-body{flex-direction:column;min-height:100vh;display:flex}.layout-main{background:var(--color-bg-primary);flex-direction:column;flex:1;display:flex;position:relative}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){:root{font-size:14px}.container{padding:0 var(--space-md)}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.debug-toggle-container{margin:0 var(--space-md);align-items:center;height:24px;padding:0;line-height:1;display:flex}.debug-toggle-label{align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;margin:0;padding:0;line-height:1;display:flex;margin-bottom:0!important}.debug-toggle-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);transition:color var(--transition-fast);font-weight:500;line-height:1}.debug-toggle-label:hover .debug-toggle-text{color:var(--color-text-primary)}.debug-toggle-switch{background:var(--color-bg-tertiary);border:2px solid var(--color-border);cursor:pointer;width:44px;transition:all var(--transition-base);vertical-align:middle;box-sizing:border-box;border-radius:12px;gap:0;position:relative;height:24px!important;min-height:24px!important;max-height:24px!important;padding:0!important}.debug-toggle-switch:hover{background:var(--color-bg-input);border-color:var(--color-text-tertiary)}.debug-toggle-switch.active{background:var(--color-accent-blue);border-color:var(--color-accent-blue)}.debug-toggle-switch.active:hover{background:var(--color-accent-blue-hover);border-color:var(--color-accent-blue-hover)}.debug-toggle-switch.active .debug-toggle-slider{background:var(--color-bg-primary);left:calc(100% - 22px)}.debug-toggle-switch:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}.debug-toggle-slider{background:var(--color-text-tertiary);width:20px;height:20px;transition:all var(--transition-base);border-radius:50%;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.debug-toggle-switch.active .debug-toggle-slider{transform:translateY(-50%)}.debug-console{background:var(--color-bg-secondary);width:100%;font-family:var(--font-mono);font-size:var(--font-size-xs);z-index:100;border-top:2px solid;position:sticky;bottom:0;left:0;right:0}.debug-console.debug-console-idle{border-top-color:var(--color-text-tertiary);background:#6b6b6b1a}.debug-console.debug-console-success{border-top-color:var(--color-success);background:#4ade801a}.debug-console.debug-console-error{border-top-color:var(--color-error);background:#f871711a}.debug-console-header{align-items:center;gap:var(--space-sm);padding:var(--space-sm)var(--space-md);border-bottom:1px solid var(--color-border);display:flex}.debug-console-icon{font-size:1rem}.debug-console-method{color:var(--color-accent-blue);text-transform:uppercase;font-weight:600}.debug-console-endpoint{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.debug-console-status{color:var(--color-text-primary);font-weight:600}.debug-console-message{padding:var(--space-sm)var(--space-md);color:var(--color-text-secondary);line-height:1.4}
