.session-banner[data-v-82994d59]{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--warning-bg);border-bottom:1px solid var(--warning);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500}.session-banner__action[data-v-82994d59]{padding:var(--spacing-xs) var(--spacing-sm-md);background:var(--warning);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:var(--transition)}.session-banner__action[data-v-82994d59]:hover:not(:disabled){opacity:.9}.session-banner__action[data-v-82994d59]:disabled{opacity:.6;cursor:not-allowed}.slide-down-enter-active[data-v-82994d59],.slide-down-leave-active[data-v-82994d59]{transition:all .3s var(--ease-out-quart)}.slide-down-enter-from[data-v-82994d59],.slide-down-leave-to[data-v-82994d59]{transform:translateY(-100%);opacity:0}.error-boundary[data-v-5cf8b2ad]{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--background)}.error-boundary__content[data-v-5cf8b2ad]{max-width:400px;text-align:center;padding:32px;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow-lg)}.error-boundary__icon[data-v-5cf8b2ad]{color:var(--error);margin-bottom:var(--spacing-md)}.error-boundary__title[data-v-5cf8b2ad]{font-size:var(--font-size-xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--spacing-sm)}.error-boundary__message[data-v-5cf8b2ad]{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md);word-break:break-word}.error-boundary__info[data-v-5cf8b2ad]{font-size:var(--font-size-xs);font-family:monospace;color:var(--text-muted);background:var(--surface-hover);padding:var(--spacing-sm);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md)}.error-boundary__actions[data-v-5cf8b2ad]{display:flex;gap:var(--spacing-sm-md);justify-content:center}.error-boundary__btn[data-v-5cf8b2ad]{min-height:44px;padding:var(--spacing-sm-md) var(--spacing-md-lg)}.toast-container[data-v-e2464fb9]{position:fixed;top:16px;right:16px;z-index:var(--z-toast, 700);display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px;width:calc(100vw - 32px);pointer-events:none}.toast[data-v-e2464fb9]{display:flex;align-items:flex-start;gap:var(--spacing-sm-md);padding:var(--spacing-sm-md) var(--spacing-md);background:var(--background);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);pointer-events:auto}.toast--success[data-v-e2464fb9]{border-left:4px solid var(--success)}.toast--success .toast__icon[data-v-e2464fb9]{color:var(--success)}.toast--error[data-v-e2464fb9]{border-left:4px solid var(--error)}.toast--error .toast__icon[data-v-e2464fb9]{color:var(--error)}.toast--warning[data-v-e2464fb9]{border-left:4px solid var(--warning)}.toast--warning .toast__icon[data-v-e2464fb9]{color:var(--warning)}.toast--info[data-v-e2464fb9]{border-left:4px solid var(--info)}.toast--info .toast__icon[data-v-e2464fb9]{color:var(--info)}.toast__icon[data-v-e2464fb9]{flex-shrink:0;margin-top:var(--spacing-2xs)}.toast__message[data-v-e2464fb9]{flex:1;font-size:var(--font-size-sm);color:var(--text-primary);line-height:1.5;margin:0}.toast__action[data-v-e2464fb9]{flex-shrink:0;padding:var(--spacing-xs) 10px;border:none;background:transparent;color:var(--primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition);white-space:nowrap}.toast__action[data-v-e2464fb9]:hover{background:var(--primary-bg)}.toast__action[data-v-e2464fb9]:focus{outline:none;box-shadow:0 0 0 2px var(--primary-bg)}.toast__dismiss[data-v-e2464fb9]{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition)}.toast__dismiss[data-v-e2464fb9]:hover{background:var(--surface-hover);color:var(--text-primary)}.toast__dismiss[data-v-e2464fb9]:focus{outline:none;box-shadow:0 0 0 2px var(--primary-bg)}.toast-enter-active[data-v-e2464fb9]{transition:all .3s var(--ease-out-quart)}.toast-leave-active[data-v-e2464fb9]{transition:all .2s var(--ease-in-out)}.toast-enter-from[data-v-e2464fb9],.toast-leave-to[data-v-e2464fb9]{opacity:0;transform:translate(100%)}.toast-move[data-v-e2464fb9]{transition:transform .3s var(--ease-out-quart)}@media(max-width:480px){.toast-container[data-v-e2464fb9]{top:auto;bottom:calc(80px + var(--safe-bottom));right:8px;left:8px;width:auto;max-width:none}.toast[data-v-e2464fb9]{padding:10px var(--spacing-sm-md)}}.feedback-button[data-v-415bcf24]{position:fixed;bottom:24px;right:24px;width:56px;height:56px;border-radius:var(--radius-full);background:var(--primary-color);color:var(--text-inverse);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all .2s var(--ease-out-quart);z-index:300}.feedback-button[data-v-415bcf24]:hover{background:var(--primary-dark);transform:scale(1.05)}.feedback-button[data-v-415bcf24]:active{transform:scale(.98)}.feedback-button[data-v-415bcf24]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}@media(max-width:767px){.feedback-button[data-v-415bcf24]{bottom:calc(80px + var(--safe-bottom));left:16px;right:auto;width:48px;height:48px}.feedback-button[data-v-415bcf24] svg{width:20px;height:20px}}#app{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;min-height:100dvh}*{margin:0;padding:0;box-sizing:border-box}.loading-screen{min-height:100vh;min-height:100dvh;background:var(--gradient-page-bg);display:flex;align-items:center;justify-content:center}.loading-content{text-align:center}.loading-logo{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;background:linear-gradient(135deg,var(--primary-color),var(--primary-dark));border-radius:var(--radius-lg);margin-bottom:var(--spacing-md);animation:pulse-loading 2s var(--ease-in-out) infinite}.loading-logo span{color:#fff;font-weight:700;font-size:var(--font-size-2xl)}.loading-text{color:var(--secondary-color);font-size:var(--font-size-base)}@keyframes pulse-loading{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(.95)}}html{scroll-behavior:smooth}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip-to-main{position:absolute;top:-100%;left:50%;transform:translate(-50%);z-index:9999;padding:var(--spacing-sm-md) 24px;background:var(--primary-color);color:#fff;text-decoration:none;font-weight:600;font-size:var(--font-size-sm);border-radius:0 0 var(--radius-sm) var(--radius-sm);box-shadow:0 2px 8px #00000026;transition:top .2s var(--ease-in-out),background-color .2s var(--ease-out-quart)}.skip-to-main:focus{top:0;outline:none}.skip-to-main:hover,.skip-to-main:focus-visible{background:var(--primary-color-dark)}#main-content:focus{outline:none}.bootstrap-error-banner{display:flex;align-items:center;gap:var(--spacing-sm-md);padding:var(--spacing-sm-md) var(--spacing-md-lg);background:var(--warning-bg);border-bottom:1px solid var(--warning);color:var(--text-primary)}.bootstrap-error-banner__icon{flex:0 0 auto;color:var(--warning)}.bootstrap-error-banner__content{min-width:0;flex:1}.bootstrap-error-banner__title{margin:0;font-size:var(--font-size-sm);font-weight:700}.bootstrap-error-banner__message{margin:var(--spacing-2xs) 0 0;color:var(--text-secondary);font-size:var(--font-size-xs);line-height:1.4}.bootstrap-error-banner__retry{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:36px;padding:var(--spacing-sm) var(--spacing-sm-md);background:var(--warning);color:var(--text-inverse);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:700}.bootstrap-error-banner__retry:hover:not(:disabled){filter:brightness(.95)}.bootstrap-error-banner__retry-icon{flex:0 0 auto}.bootstrap-error-banner__retry-icon--spinning{animation:bootstrap-retry-spin .8s linear infinite}@keyframes bootstrap-retry-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.bootstrap-error-banner{align-items:flex-start;flex-wrap:wrap;padding:var(--spacing-sm-md) var(--spacing-md)}.bootstrap-error-banner__retry{width:100%}}.route-fade-enter-active,.route-fade-leave-active{transition:opacity .18s var(--ease-out-quart)}.route-fade-enter-from,.route-fade-leave-to{opacity:0}@media(prefers-reduced-motion:reduce){.route-fade-enter-active,.route-fade-leave-active{transition:none}}
