:root{--color-primary: #784BF9;--color-primary-hover: #6634e0;--color-primary-glow: rgba(120, 75, 249, .35);--color-primary-bg: #ede8fe;--color-primary-border: #d4c9fb;--color-text: #111827;--color-text-secondary: #374151;--color-text-muted: #6b7280;--color-text-muted-accent: #8a8396;--color-bg: #fff;--color-bg-subtle: #f9fafb;--color-bg-muted: #f3f4f6;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-border-hover: #9ca3af;--color-danger: #dc2626;--color-danger-hover: #b91c1b;--color-danger-bg: #fee2e2;--color-danger-border: #fecaca;--color-success: #059669;--color-success-hover: #047857;--color-success-bg: #d1fae5;--color-success-border: #a7f3d0;--color-warning-bg: #fef3c7;--color-warning-text: #b45309;--color-overlay: rgba(0, 0, 0, .45);--shadow-dialog: 0 20px 40px rgba(0, 0, 0, .12), 0 0 1px rgba(0, 0, 0, .1);--shadow-banner: 0 4px 20px rgba(0, 0, 0, .2);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--font-sans: system-ui, -apple-system, sans-serif;--font-size-btn: .875rem;--font-size-btn-sm: .8125rem;--font-weight-btn: 500;--btn-padding-y: .5rem;--btn-padding-x: 1.25rem;--btn-padding-y-sm: .25rem;--btn-padding-x-sm: .5rem;--btn-padding-y-md: .4rem;--btn-padding-x-md: .75rem}#app{font-family:var(--font-sans);min-height:100vh}#app a{color:var(--color-text-secondary);transition:color .2s ease}#app a:hover{color:var(--color-primary)}.app-header{position:sticky;top:0;z-index:50;padding:1rem 1rem 1rem 1.5rem;border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex;align-items:center;justify-content:space-between}.app-header h1{margin:0;font-size:1.25rem}.app-header nav a,.app-header nav .user{margin-left:1rem}.app-header nav a{color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:600;transition:color .2s ease}.app-header nav a:hover{color:var(--color-primary)}.app-header nav a.router-link-active{color:var(--color-primary)}.app-header nav .user{color:var(--color-text-secondary)}.app-header nav .btn-link{margin-left:1rem;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:.875rem;font-weight:600;padding:0;transition:color .2s ease}.app-header nav .btn-link:hover{color:var(--color-primary);text-decoration:underline}.app-main{padding:1.5rem}.app-main.app-main--no-padding{padding:0}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;font-family:var(--font-sans)}.dialog-card{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog);min-width:500px;max-width:22rem;width:100%;font-family:inherit;display:flex;flex-direction:column;overflow:hidden}.dialog-body{padding:3.5rem 1.75rem 3rem}.dialog-body--content{padding:1.5rem 1.75rem}.dialog-body:has(.dialog-icon){display:flex;flex-direction:row;align-items:flex-start;gap:1rem;text-align:left;padding-left:3rem}.dialog-body-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.dialog-icon{flex-shrink:0;width:3rem;height:3rem;margin:0;background:var(--color-warning-bg);color:var(--color-warning-text);font-size:1.5rem;font-weight:700;line-height:3rem;border-radius:50%;text-align:center}.dialog-title{margin:0 0 .75rem;font-size:1.125rem;font-weight:600;color:var(--color-text);font-family:inherit}.dialog-text{margin:0;font-size:.9375rem;color:var(--color-text-muted);line-height:1.4;font-family:inherit}.dialog-footer{padding:1.25rem 1.75rem;border-top:1px solid var(--color-border);background:var(--color-bg-subtle);display:flex;justify-content:flex-end;gap:.75rem;flex-shrink:0}.dialog-btn{padding:var(--btn-padding-y) var(--btn-padding-x);border-radius:var(--radius-md);border:1px solid transparent;font:inherit;font-size:var(--font-size-btn);font-weight:var(--font-weight-btn);cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s,color .15s,box-shadow .2s}.dialog-btn--secondary{background:var(--color-bg);color:var(--color-text-secondary);border-color:var(--color-border-strong)}.dialog-btn--secondary:hover{background:var(--color-bg-subtle);border-color:var(--color-border-hover)}.dialog-btn--primary{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.dialog-btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 2px 10px #00000026,0 0 18px var(--color-primary-glow)}.dialog-btn--primary:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dialog-btn--primary:disabled{opacity:.6;cursor:not-allowed}.dialog-btn--danger{background:var(--color-danger);color:var(--color-bg);border-color:var(--color-danger)}.dialog-btn--danger:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover);box-shadow:0 2px 10px #dc262659}.dialog-btn--danger:focus-visible{outline:2px solid var(--color-danger);outline-offset:2px}.dialog-btn--danger:disabled{opacity:.6;cursor:not-allowed}.dialog-enter-active,.dialog-leave-active{transition:opacity .2s ease}.dialog-enter-active .dialog-card,.dialog-leave-active .dialog-card{transition:transform .2s ease}.dialog-enter-from,.dialog-leave-to{opacity:0}.dialog-enter-from .dialog-card,.dialog-leave-to .dialog-card{transform:scale(.95)}.preloader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem;padding:2rem}.preloader-spinner{width:48px;height:48px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:preloader-spin 1.5s linear infinite}@keyframes preloader-spin{to{transform:rotate(360deg)}}.preloader-text{margin:0;font-size:1rem;font-weight:500;color:var(--color-text-muted);letter-spacing:.02em}.preloader-dots{display:inline-block;width:.5em;text-align:left;animation:preloader-dots 1.4s steps(4,end) infinite}@keyframes preloader-dots{0%,20%{opacity:0}40%,to{opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--btn-padding-y-md) var(--btn-padding-x-md);border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:var(--font-size-btn);font-weight:var(--font-weight-btn);transition:background .15s,border-color .15s,color .15s,box-shadow .2s}.btn:disabled{opacity:.6;cursor:not-allowed}a.btn{text-decoration:none}.btn--sm{padding:var(--btn-padding-y-sm) var(--btn-padding-x-sm);font-size:var(--font-size-btn-sm)}.btn--md{padding:var(--btn-padding-y-md) var(--btn-padding-x-md)}.btn--lg{padding:var(--btn-padding-y) var(--btn-padding-x)}.btn--primary{background:var(--color-primary);color:var(--color-bg);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 2px 8px #0000001f,0 0 14px var(--color-primary-glow)}.btn--secondary{background:var(--color-bg);color:var(--color-text-secondary);border-color:var(--color-border-strong)}.btn--secondary:hover:not(:disabled){background:var(--color-bg-subtle);border-color:var(--color-border-hover)}.btn--muted{background:var(--color-bg-muted);color:var(--color-text-secondary);border-color:var(--color-border)}.btn--muted:hover:not(:disabled){background:var(--color-border);border-color:var(--color-border-hover)}.btn--danger{background:var(--color-danger);color:var(--color-bg);border-color:var(--color-danger)}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-link{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;font:inherit;padding:0;text-decoration:none;transition:color .2s ease}.btn-link:hover{color:var(--color-primary);text-decoration:underline}@keyframes btn-shine-sweep{0%{transform:translate(-100%) skew(-12deg)}to{transform:translate(200%) skew(-12deg)}}@keyframes btn-glow-pulse{0%,to{box-shadow:0 4px 14px #0000001f,0 0 25px #05966966,0 0 45px #05966940}50%{box-shadow:0 4px 14px #0000001f,0 0 45px #059669bf,0 0 80px #05966980}}.btn--special{position:relative;overflow:hidden;transition:transform .2s ease}.btn--special:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 0%,transparent 35%,rgba(255,255,255,.25) 45%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.25) 55%,transparent 65%,transparent 100%);pointer-events:none;opacity:0;transition:opacity .2s ease}.btn--special:hover:not(:disabled):before{opacity:1;animation:btn-shine-sweep .7s ease-out forwards}.btn--special:hover:not(:disabled){transform:scale(1.03);animation:btn-glow-pulse 2s ease-in-out infinite}.btn-grisha{background:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-grisha:hover:not(:disabled){background:var(--color-success-hover);border-color:var(--color-success-hover)}.btn-auth-submit{margin-top:.5rem}.update-banner{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:999;display:flex;align-items:center;gap:1rem;padding:.75rem 1.25rem;background:#1e293b;color:var(--color-bg);border-radius:10px;box-shadow:var(--shadow-banner);font-family:var(--font-sans);font-size:.9375rem}.update-banner__text{font-weight:500}.update-banner__btn{padding:.4rem 1rem;background:var(--color-primary);color:var(--color-bg);border:none;border-radius:var(--radius-md);font:inherit;font-size:var(--font-size-btn);font-weight:var(--font-weight-btn);cursor:pointer}.update-banner__btn:hover{background:var(--color-primary-hover)}.toast-container[data-v-af244d12]{position:fixed;bottom:1rem;left:1rem;z-index:60;display:flex;flex-direction:column-reverse;gap:.5rem;max-width:min(22rem,calc(100vw - 2rem));font-family:var(--font-sans);pointer-events:none}.toast-container[data-v-af244d12]>*{pointer-events:auto}.toast[data-v-af244d12]{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);box-shadow:0 4px 12px #00000026;font-size:.875rem;line-height:1.4}.toast--success[data-v-af244d12]{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.toast--error[data-v-af244d12]{background:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.toast__message[data-v-af244d12]{flex:1}.toast__close[data-v-af244d12]{flex-shrink:0;width:1.25rem;height:1.25rem;padding:0;margin:-.15rem -.15rem 0 0;border:none;background:transparent;color:inherit;font-size:1.25rem;line-height:1;cursor:pointer;opacity:.8;border-radius:2px}.toast__close[data-v-af244d12]:hover{opacity:1;background:#00000014}.toast-enter-active[data-v-af244d12]{transition:opacity .5s ease-out,transform .5s cubic-bezier(.22,1,.36,1)}.toast-leave-active[data-v-af244d12]{transition:opacity .4s ease-out,transform .4s cubic-bezier(.22,1,.36,1)}.toast-enter-from[data-v-af244d12]{opacity:0;transform:translateY(100%)}.toast-leave-to[data-v-af244d12]{opacity:0;transform:translateY(30%)}.toast-move[data-v-af244d12]{transition:transform .45s cubic-bezier(.22,1,.36,1)}
