@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-lg);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);cursor:pointer;border:var(--border-width) solid transparent;white-space:nowrap;-webkit-user-select:none;user-select:none;position:relative}.btn:focus-visible{box-shadow:var(--shadow-focus)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--sm{height:32px;padding:0 var(--space-3);font-size:var(--font-size-xs)}.btn--md{height:40px;padding:0 var(--space-4);font-size:var(--font-size-sm)}.btn--lg{height:48px;padding:0 var(--space-6);font-size:var(--font-size-base)}.btn--primary{background-color:var(--color-primary);color:var(--text-inverse);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn--primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn--secondary{background-color:var(--color-gray-100);color:var(--text-primary);border-color:var(--color-gray-200)}.btn--secondary:hover:not(:disabled){background-color:var(--color-gray-200)}.btn--outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn--outline:hover:not(:disabled){background-color:var(--color-primary-50)}.btn--danger{background-color:var(--color-danger-600);color:var(--text-inverse);border-color:var(--color-danger-600)}.btn--danger:hover:not(:disabled){background-color:var(--color-danger-700)}.btn--danger:focus-visible{box-shadow:var(--shadow-focus-danger)}.btn--ghost{background-color:transparent;color:var(--text-secondary)}.btn--ghost:hover:not(:disabled){background-color:var(--color-gray-100);color:var(--text-primary)}.btn--success{background-color:var(--color-success-600);color:var(--text-inverse);border-color:var(--color-success-600)}.btn--success:hover:not(:disabled){background-color:var(--color-success-700)}.btn--warning{background-color:var(--color-warning-500);color:var(--text-inverse);border-color:var(--color-warning-500)}.btn--warning:hover:not(:disabled){background-color:var(--color-warning-600)}.btn--full{width:100%}.btn__icon{display:inline-flex;align-items:center;flex-shrink:0}.btn__spinner{animation:spin .6s linear infinite;flex-shrink:0}.btn__label{white-space:nowrap}.error-boundary{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-6);text-align:center;min-height:400px}.error-boundary__icon{color:var(--color-danger-500);margin-bottom:var(--space-4)}.error-boundary__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.error-boundary__message{font-size:var(--font-size-sm);color:var(--text-secondary);max-width:400px;margin-bottom:var(--space-6)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;object-fit:cover;flex-shrink:0;border:2px solid var(--color-white);box-shadow:var(--shadow-xs)}.avatar--initials{color:var(--color-white);-webkit-user-select:none;user-select:none;cursor:default;font-family:var(--font-family-base, inherit);flex-shrink:0}.avatar__text{display:flex;align-items:center;justify-content:center;width:100%;height:100%;line-height:1;letter-spacing:.02em}.avatar--xs{width:24px;height:24px}.avatar--xs .avatar__text{font-size:10px;font-weight:var(--font-weight-medium)}.avatar--sm{width:32px;height:32px}.avatar--sm .avatar__text{font-size:11px;font-weight:var(--font-weight-semibold)}.avatar--md{width:40px;height:40px}.avatar--md .avatar__text{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.avatar--lg{width:56px;height:56px}.avatar--lg .avatar__text{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold)}.avatar--xl{width:80px;height:80px}.avatar--xl .avatar__text{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip{position:absolute;z-index:var(--z-tooltip);padding:var(--space-1) var(--space-3);background:var(--bg-tooltip);color:var(--text-inverse);font-size:var(--font-size-xs);border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;animation:fadeIn .12s ease;box-shadow:var(--shadow-lg)}.tooltip--top{bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip--bottom{top:calc(100% + 6px);left:50%;transform:translate(-50%)}.tooltip--left{right:calc(100% + 6px);top:50%;transform:translateY(-50%)}.tooltip--right{left:calc(100% + 6px);top:50%;transform:translateY(-50%)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-width);background:var(--bg-sidebar);display:flex;flex-direction:column;z-index:var(--z-sticky);transition:width var(--transition-slow);overflow:hidden}.sidebar--collapsed{width:var(--sidebar-collapsed-width)}.sidebar__logo{padding:var(--space-5) var(--space-4);border-bottom:1px solid rgba(255,255,255,.1);min-height:var(--header-height);display:flex;align-items:center}.sidebar__logo-full{display:flex;align-items:center;gap:var(--space-3)}.sidebar__logo-img{height:42px;width:auto;object-fit:contain;flex-shrink:0}.sidebar__logo-img--collapsed{height:32px;margin:0 auto}.sidebar__logo-text{display:flex;flex-direction:column}.sidebar__logo-brand{display:flex;align-items:baseline;gap:1px;line-height:1}.sidebar__logo-scale{font-size:1.55rem;font-weight:300;color:#fff;letter-spacing:-.02em;text-shadow:none}.sidebar__logo-up{display:flex;align-items:flex-end;gap:1px;font-size:1.55rem;font-weight:800;color:#fff;letter-spacing:-.03em}.sidebar__logo-arrow{color:#fff;-webkit-text-fill-color:initial;filter:none;margin-bottom:2px;animation:sidebarArrowPulse 2s ease-in-out infinite}@keyframes sidebarArrowPulse{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.sidebar__logo-eval{font-size:.5rem;font-weight:600;color:#94a3b899;letter-spacing:.3em;margin-top:1px}.sidebar__logo-subtitle{color:#ffffff80;font-size:var(--font-size-xs)}.sidebar__nav{flex:1;overflow-y:auto;padding:var(--space-3) var(--space-2)}.sidebar__list{display:flex;flex-direction:column;gap:var(--space-1)}.sidebar__link{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);color:#ffffffa6;background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm);white-space:nowrap}.sidebar__link:hover{background:var(--bg-sidebar-hover);color:var(--color-white)}.sidebar__link--active{background:var(--bg-sidebar-active);color:var(--color-white);font-weight:var(--font-weight-medium)}.sidebar__link-icon{display:flex;align-items:center;flex-shrink:0}.sidebar__link-icon--with-indicator{position:relative}.sidebar__notif-dot{position:absolute;top:-2px;right:-4px;width:8px;height:8px;border-radius:50%;background:#ef4444;border:2px solid var(--bg-sidebar);box-sizing:content-box}.sidebar__notif-badge{margin-left:auto;min-width:20px;height:20px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;padding:0 6px;line-height:1}.sidebar__link-label{flex:1;text-align:left}.sidebar__link-chevron{transition:transform var(--transition-fast);flex-shrink:0}.sidebar__link-chevron--open{transform:rotate(90deg)}.sidebar--collapsed .sidebar__link{justify-content:center;padding:var(--space-2)}.sidebar__sublist{display:flex;flex-direction:column;gap:1px;padding-left:var(--space-6);margin-top:var(--space-1);margin-bottom:var(--space-1)}.sidebar__sublink{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:6px var(--space-3);border-radius:var(--radius-md);color:#ffffff80;background:transparent;border:none;cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-xs)}.sidebar__sublink:hover{color:#ffffffd9;background:var(--bg-sidebar-hover)}.sidebar__sublink--active{color:var(--color-white);background:var(--bg-sidebar-active)}.sidebar__sublink-icon{display:flex;align-items:center;flex-shrink:0}.sidebar__sublink-label{text-align:left}.sidebar__user{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-top:1px solid rgba(255,255,255,.1)}.sidebar--collapsed .sidebar__user{justify-content:center;padding:var(--space-3)}.sidebar__user-info{flex:1;min-width:0}.sidebar__user-name{display:block;color:var(--color-white);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__user-role{display:block;color:#ffffff80;font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__logout{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);background:transparent;border:none;cursor:pointer;color:#ffffff80;transition:all var(--transition-fast);flex-shrink:0}.sidebar__logout:hover{color:var(--color-danger-400);background:#ffffff0d}.sidebar__toggle{position:absolute;top:50%;right:-12px;transform:translateY(-50%);width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--bg-card);border:var(--border-width) solid var(--border-color);cursor:pointer;color:var(--text-secondary);box-shadow:var(--shadow-sm);transition:all var(--transition-fast);z-index:10}.sidebar__toggle:hover{background:var(--color-gray-100);color:var(--text-primary)}.sidebar__nav::-webkit-scrollbar{width:4px}.sidebar__nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.badge{display:inline-flex;align-items:center;gap:var(--space-1);font-weight:var(--font-weight-medium);border-radius:var(--radius-full);white-space:nowrap}.badge--sm{padding:2px var(--space-2);font-size:var(--font-size-xs)}.badge--md{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.badge--lg{padding:var(--space-1) var(--space-4);font-size:var(--font-size-sm)}.badge--default{background:var(--color-gray-100);color:var(--color-gray-700)}.badge--primary{background:var(--color-primary-50);color:var(--color-primary-700)}.badge--success{background:var(--color-success-50);color:var(--color-success-700)}.badge--warning{background:var(--color-warning-50);color:var(--color-warning-700)}.badge--danger{background:var(--color-danger-50);color:var(--color-danger-700)}.badge--info{background:var(--color-info-50);color:var(--color-info-700)}.badge--grade-a{background:var(--color-grade-a-bg);color:var(--color-grade-a);font-weight:var(--font-weight-bold)}.badge--grade-b{background:var(--color-grade-b-bg);color:var(--color-grade-b);font-weight:var(--font-weight-bold)}.badge--grade-c{background:var(--color-grade-c-bg);color:var(--color-grade-c);font-weight:var(--font-weight-bold)}.badge--grade-d{background:var(--color-grade-d-bg);color:var(--color-grade-d);font-weight:var(--font-weight-bold)}.badge__dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.header{position:sticky;top:0;z-index:var(--z-sticky);height:var(--header-height);background:var(--bg-header);border-bottom:var(--border-width) solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-6);box-shadow:var(--shadow-xs)}.header__left{display:flex;align-items:center}.header__right{display:flex;align-items:center;gap:var(--space-3)}.header__search-btn{display:flex;align-items:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border-radius:var(--radius-lg);background:var(--color-gray-100);color:var(--text-tertiary);border:var(--border-width) solid transparent;cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-size-sm)}.header__search-btn:hover{border-color:var(--border-color);background:var(--bg-card)}.header__search-text{margin-right:var(--space-4)}.header__search-kbd{padding:1px var(--space-2);border-radius:var(--radius-sm);font-size:10px;background:var(--bg-card);border:var(--border-width) solid var(--border-color);font-family:var(--font-mono);color:var(--text-tertiary)}.header__icon-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg);background:transparent;color:var(--text-secondary);cursor:pointer;border:none;transition:all var(--transition-fast)}.header__icon-btn:hover{background:var(--color-gray-100);color:var(--text-primary)}.header__notif-badge{position:absolute;top:4px;right:4px;min-width:18px;height:18px;border-radius:var(--radius-full);background:var(--color-danger-500);color:var(--color-white);font-size:10px;font-weight:var(--font-weight-bold);display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg-header)}.header__profile{position:relative}.header__profile-main{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);cursor:pointer;border:none;background:transparent;transition:background var(--transition-fast)}.header__profile-main:hover{background:var(--color-gray-100)}.header__avatar-wrap{position:relative;display:inline-flex}.header__avatar-edit-btn{position:absolute;right:-6px;bottom:-4px;width:20px;height:20px;border-radius:50%;border:2px solid var(--bg-header);background:var(--color-primary-500);color:var(--color-white);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.header__avatar-edit-btn:hover{background:var(--color-primary-600)}.header__avatar-edit-btn:disabled{opacity:.7;cursor:wait}.header__profile-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.header__profile-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--text-primary);white-space:nowrap}@media(max-width:768px){.header__search-text,.header__search-kbd,.header__profile-info{display:none}}.tour-overlay{position:fixed;inset:0;z-index:9998;pointer-events:none}.tour-overlay__backdrop{position:fixed;inset:0;background:#00000073;pointer-events:auto;animation:tourFadeIn .15s ease}.tour-tooltip{position:fixed;z-index:9999;pointer-events:auto;background:var(--color-white);border-radius:var(--radius-xl);box-shadow:0 20px 40px #0003,0 0 0 1px #0000000d;padding:var(--space-5);max-width:400px;min-width:300px;animation:tourSlideIn .15s ease}.tour-tooltip--center{top:50%;left:50%;transform:translate(-50%,-50%)}.tour-tooltip:before{content:"";position:absolute;width:12px;height:12px;background:var(--color-white);transform:rotate(45deg);box-shadow:-1px -1px 2px #0000000d}.tour-tooltip--arrow-top:before{top:-6px;left:50%;margin-left:-6px}.tour-tooltip--arrow-bottom:before{bottom:-6px;left:50%;margin-left:-6px;box-shadow:1px 1px 2px #0000000d}.tour-tooltip--arrow-left:before{left:-6px;top:50%;margin-top:-6px}.tour-tooltip--arrow-right:before{right:-6px;top:50%;margin-top:-6px;box-shadow:1px -1px 2px #0000000d}.tour-tooltip--no-arrow:before{display:none}.tour-tooltip__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-3)}.tour-tooltip__step-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px 10px;border-radius:var(--radius-full);background:var(--color-primary-100);color:var(--color-primary-700);font-size:11px;font-weight:var(--font-weight-semibold);white-space:nowrap;flex-shrink:0}.tour-tooltip__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;border:none;transition:all .15s;flex-shrink:0}.tour-tooltip__close:hover{background:var(--color-gray-100);color:var(--text-primary)}.tour-tooltip__title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-2);line-height:1.3}.tour-tooltip__desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-4)}.tour-tooltip__progress{display:flex;gap:3px;margin-bottom:var(--space-4)}.tour-tooltip__progress-dot{flex:1;height:3px;border-radius:var(--radius-full);background:var(--color-gray-200);transition:background .3s ease}.tour-tooltip__progress-dot--active{background:var(--color-primary-500)}.tour-tooltip__progress-dot--done{background:var(--color-primary-300)}.tour-tooltip__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.tour-tooltip__skip{padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:transparent;color:var(--text-tertiary);cursor:pointer;border:none;font-size:var(--font-size-sm);transition:color .15s}.tour-tooltip__skip:hover{color:var(--text-primary)}.tour-tooltip__nav{display:flex;gap:var(--space-2)}.tour-tooltip__btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;border:none;transition:all .15s}.tour-tooltip__btn--prev{background:var(--color-gray-100);color:var(--text-secondary)}.tour-tooltip__btn--prev:hover{background:var(--color-gray-200)}.tour-tooltip__btn--next{background:var(--color-primary);color:var(--color-white)}.tour-tooltip__btn--next:hover{background:var(--color-primary-hover)}.tour-highlight{position:fixed;z-index:9997;border-radius:var(--radius-lg);box-shadow:0 0 0 4px #2d519666,0 0 0 9999px #00000073;pointer-events:none;transition:all .15s ease}@keyframes tourFadeIn{0%{opacity:0}to{opacity:1}}@keyframes tourSlideIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tour-trigger{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);background:var(--color-primary-50);color:var(--color-primary-700);border:1px solid var(--color-primary-200);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all .15s;white-space:nowrap}.tour-trigger:hover{background:var(--color-primary-100);border-color:var(--color-primary-300)}.tour-trigger__icon{display:flex;align-items:center}.assistant-chat{position:fixed;right:var(--space-5);bottom:var(--space-5);z-index:950;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3)}.assistant-chat__toggle{width:54px;height:54px;border-radius:var(--radius-full);border:none;color:var(--color-white);background:linear-gradient(135deg,var(--color-primary-700),var(--color-primary-500));box-shadow:0 12px 24px #19376e47;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.assistant-chat__toggle:hover{transform:translateY(-1px);box-shadow:0 16px 30px #19376e54}.assistant-chat__panel{width:min(380px,calc(100vw - 28px));height:min(72vh,620px);max-height:min(72vh,620px);display:flex;flex-direction:column;border-radius:var(--radius-2xl);background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-xl);overflow:hidden;animation:assistantPanelIn .2s ease}.assistant-chat__header{flex-shrink:0;padding:var(--space-4);background:linear-gradient(135deg,var(--color-primary-50),var(--color-secondary-100));border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.assistant-chat__header-left{display:flex;align-items:center;gap:var(--space-3)}.assistant-chat__logo{width:34px;height:34px;border-radius:var(--radius-full);color:var(--color-primary-700);background:#ffffffd9;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.assistant-chat__title{font-size:var(--font-size-md);font-weight:var(--font-weight-bold);color:var(--text-primary);margin:0}.assistant-chat__subtitle{margin:0;font-size:var(--font-size-xs);color:var(--text-secondary)}.assistant-chat__close{width:30px;height:30px;border-radius:var(--radius-md);color:var(--text-secondary);background:transparent;border:none;display:inline-flex;align-items:center;justify-content:center}.assistant-chat__close:hover{background:var(--color-gray-100);color:var(--text-primary)}.assistant-chat__messages{flex:1 1 auto;min-height:0;padding:var(--space-4);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:var(--space-3);background:linear-gradient(180deg,#f1f5f973,#fff0)}.assistant-chat__message{display:flex;gap:var(--space-2);max-width:96%;animation:fadeInUp .16s ease}.assistant-chat__message--assistant{align-self:flex-start}.assistant-chat__message--user{align-self:flex-end;flex-direction:row-reverse}.assistant-chat__message-icon{width:24px;height:24px;border-radius:var(--radius-full);flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}.assistant-chat__message--assistant .assistant-chat__message-icon{background:var(--color-primary-100);color:var(--color-primary-700)}.assistant-chat__message--user .assistant-chat__message-icon{background:var(--color-secondary-200);color:var(--color-secondary-700)}.assistant-chat__message-text,.assistant-chat__typing{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;margin:0;line-height:1.5;font-size:var(--font-size-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--border-color)}.assistant-chat__message--assistant .assistant-chat__message-text,.assistant-chat__message--assistant .assistant-chat__typing{background:var(--color-white);color:var(--text-primary)}.assistant-chat__message--user .assistant-chat__message-text{background:var(--color-primary-700);color:var(--color-white);border-color:transparent}.assistant-chat__typing{color:var(--text-secondary);font-style:italic}.assistant-chat__suggestions{flex-shrink:0;padding:0 var(--space-4) var(--space-2);display:flex;gap:var(--space-2);overflow-x:auto;overflow-y:hidden}.assistant-chat__chip{flex:0 0 auto;border:1px solid var(--color-primary-200);background:var(--color-primary-50);color:var(--color-primary-700);border-radius:var(--radius-full);padding:6px 10px;font-size:var(--font-size-xs);transition:all var(--transition-fast);white-space:nowrap}.assistant-chat__chip:hover:not(:disabled){background:var(--color-primary-100);border-color:var(--color-primary-300)}.assistant-chat__chip:disabled{opacity:.6;cursor:not-allowed}.assistant-chat__form{flex-shrink:0;border-top:1px solid var(--border-color);padding:var(--space-3);padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px));display:flex;align-items:flex-end;gap:var(--space-2);background:var(--bg-card)}.assistant-chat__input{resize:none;width:100%;border:1px solid var(--border-color);border-radius:var(--radius-lg);background:var(--bg-input);color:var(--text-primary);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);line-height:1.45}.assistant-chat__input:focus{border-color:var(--color-primary-400);box-shadow:var(--shadow-focus)}.assistant-chat__send{width:38px;height:38px;border-radius:var(--radius-lg);border:none;background:var(--color-primary);color:var(--color-white);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.assistant-chat__send:disabled{opacity:.5;cursor:not-allowed}.assistant-chat__send:not(:disabled):hover{background:var(--color-primary-hover)}@keyframes assistantPanelIn{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:768px){.assistant-chat{right:var(--space-3);bottom:var(--space-3)}.assistant-chat__panel{width:min(96vw,360px);height:74vh;max-height:74vh}}.app-layout{display:flex;min-height:100vh;overflow:hidden}.app-layout__main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh;min-width:0;max-width:calc(100vw - var(--sidebar-width));overflow-x:hidden;transition:margin-left var(--transition-slow)}.app-layout__content{flex:1;overflow-y:auto;overflow-x:hidden}.sidebar--collapsed~.app-layout__main,.app-layout:has(.sidebar--collapsed) .app-layout__main{margin-left:var(--sidebar-collapsed-width);max-width:calc(100vw - var(--sidebar-collapsed-width))}@media(max-width:768px){.app-layout__main{margin-left:0;max-width:100vw}}.welcome-prompt{position:fixed;inset:0;z-index:9990;display:flex;align-items:center;justify-content:center;background:#0006;animation:welcomeFadeIn .3s ease}.welcome-prompt__card{position:relative;background:var(--color-white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);padding:var(--space-8) var(--space-6);max-width:440px;width:90%;text-align:center;animation:welcomeSlideUp .4s ease}.welcome-prompt__close{position:absolute;top:var(--space-3);right:var(--space-3);width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:transparent;color:var(--text-tertiary);cursor:pointer;border:none;transition:all .15s}.welcome-prompt__close:hover{background:var(--color-gray-100);color:var(--text-primary)}.welcome-prompt__icon{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--radius-full);background:var(--color-primary-100);color:var(--color-primary-700);margin-bottom:var(--space-4)}.welcome-prompt__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-2)}.welcome-prompt__desc{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6;margin-bottom:var(--space-6)}.welcome-prompt__actions{display:flex;gap:var(--space-3);justify-content:center}.welcome-prompt__btn{padding:var(--space-2) var(--space-5);border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;border:none;transition:all .15s;display:flex;align-items:center;gap:var(--space-2)}.welcome-prompt__btn--secondary{background:var(--color-gray-100);color:var(--text-secondary)}.welcome-prompt__btn--secondary:hover{background:var(--color-gray-200)}.welcome-prompt__btn--primary{background:var(--color-primary);color:var(--color-white)}.welcome-prompt__btn--primary:hover{background:var(--color-primary-hover)}@keyframes welcomeFadeIn{0%{opacity:0}to{opacity:1}}@keyframes welcomeSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.spinner{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-2);color:var(--color-primary)}.spinner--sm .spinner__svg{width:16px;height:16px}.spinner--md .spinner__svg{width:24px;height:24px}.spinner--lg .spinner__svg{width:36px;height:36px}.spinner--xl .spinner__svg{width:48px;height:48px}.spinner__svg{animation:spin .7s linear infinite}.spinner__track{opacity:.2}.spinner__arc{opacity:1}.spinner__label{font-size:var(--font-size-sm);color:var(--text-secondary)}:root{--color-primary-50: #e8edf5;--color-primary-100: #c5d0e6;--color-primary-200: #9eb1d4;--color-primary-300: #7791c2;--color-primary-400: #597ab5;--color-primary-500: #3b63a7;--color-primary-600: #355b9f;--color-primary-700: #2d5196;--color-primary-800: #26478c;--color-primary-900: #19376e;--color-primary: var(--color-primary-700);--color-primary-hover: var(--color-primary-800);--color-primary-active: var(--color-primary-900);--color-secondary-50: #f0f4f8;--color-secondary-100: #d9e2ec;--color-secondary-200: #bcccdc;--color-secondary-300: #9fb3c8;--color-secondary-400: #829ab1;--color-secondary-500: #627d98;--color-secondary-600: #486581;--color-secondary-700: #334e68;--color-secondary-800: #243b53;--color-secondary-900: #102a43;--color-success-50: #ecfdf5;--color-success-100: #d1fae5;--color-success-200: #a7f3d0;--color-success-300: #6ee7b7;--color-success-400: #34d399;--color-success-500: #10b981;--color-success-600: #059669;--color-success-700: #047857;--color-success-800: #065f46;--color-success-900: #064e3b;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-200: #fde68a;--color-warning-300: #fcd34d;--color-warning-400: #fbbf24;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-warning-800: #92400e;--color-warning-900: #78350f;--color-danger-50: #fef2f2;--color-danger-100: #fee2e2;--color-danger-200: #fecaca;--color-danger-300: #fca5a5;--color-danger-400: #f87171;--color-danger-500: #ef4444;--color-danger-600: #dc2626;--color-danger-700: #b91c1c;--color-danger-800: #991b1b;--color-danger-900: #7f1d1d;--color-info-50: #eff6ff;--color-info-100: #dbeafe;--color-info-200: #bfdbfe;--color-info-300: #93c5fd;--color-info-400: #60a5fa;--color-info-500: #3b82f6;--color-info-600: #2563eb;--color-info-700: #1d4ed8;--color-info-800: #1e40af;--color-info-900: #1e3a8a;--color-grade-a: #059669;--color-grade-a-bg: #ecfdf5;--color-grade-b: #2563eb;--color-grade-b-bg: #eff6ff;--color-grade-c: #d97706;--color-grade-c-bg: #fffbeb;--color-grade-d: #dc2626;--color-grade-d-bg: #fef2f2;--color-white: #ffffff;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-black: #030712;--bg-app: #f1f5f9;--bg-card: var(--color-white);--bg-sidebar: var(--color-primary-900);--bg-sidebar-hover: rgba(255, 255, 255, .08);--bg-sidebar-active: rgba(255, 255, 255, .15);--bg-header: var(--color-white);--bg-input: var(--color-white);--bg-input-disabled: var(--color-gray-100);--bg-overlay: rgba(0, 0, 0, .5);--bg-tooltip: var(--color-gray-800);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-tertiary: var(--color-gray-400);--text-inverse: var(--color-white);--text-link: var(--color-primary);--text-error: var(--color-danger-600);--text-success: var(--color-success-600);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .875rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--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.625;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-focus: 0 0 0 3px rgba(45, 81, 150, .3);--shadow-focus-danger: 0 0 0 3px rgba(239, 68, 68, .3);--border-color: var(--color-gray-200);--border-color-hover: var(--color-gray-300);--border-color-focus: var(--color-primary);--border-color-error: var(--color-danger-500);--border-width: 1px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-spring: .3s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--z-tooltip: 600;--sidebar-width: 260px;--sidebar-collapsed-width: 72px;--header-height: 64px;--content-max-width: 1280px}.dark{--bg-app: #0f172a;--bg-card: #1e293b;--bg-header: #1e293b;--bg-input: #0f172a;--bg-input-disabled: #334155;--bg-tooltip: #e2e8f0;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-tertiary: #94a3b8;--text-inverse: #020617;--text-link: var(--color-primary-300);--border-color: #334155;--border-color-hover: #475569;--color-grade-a-bg: rgba(16, 185, 129, .15);--color-grade-b-bg: rgba(59, 130, 246, .15);--color-grade-c-bg: rgba(245, 158, 11, .15);--color-grade-d-bg: rgba(239, 68, 68, .15);--color-white: #1e293b;--color-black: #f8fafc;--color-gray-50: #0f172a;--color-gray-100: #1e293b;--color-gray-200: #334155;--color-gray-300: #475569;--color-gray-400: #64748b;--color-gray-500: #94a3b8;--color-gray-600: #cbd5e1;--color-gray-700: #e2e8f0;--color-gray-800: #f1f5f9;--color-gray-900: #f8fafc}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--bg-app);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);letter-spacing:var(--letter-spacing-tight);color:var(--text-primary)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-md)}h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-4);color:var(--text-secondary)}a{color:var(--text-link);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover);text-decoration:underline}input,textarea,select,button{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit}button{cursor:pointer;border:none;background:none}input:focus,textarea:focus,select:focus,button:focus-visible{outline:none}img,svg{display:block;max-width:100%}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}::selection{background-color:var(--color-primary-100);color:var(--color-primary-900)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
