@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700&display=swap";:root,[data-theme=dark]{--bg-main:#080d1a;--bg-secondary:#0d1424;--surface:#111827;--surface-var:#1c2537;--surface-bright:#243044;--accent-primary:#3b82f6;--accent-secondary:#2563eb;--accent-tertiary:#10b981;--accent-purple:#8b5cf6;--accent-cyan:#06b6d4;--accent-orange:#f59e0b;--accent-red:#ef4444;--accent-green:#10b981;--accent-gradient:linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);--accent-gradient-green:linear-gradient(135deg, #10b981 0%, #06b6d4 100%);--accent-gradient-orange:linear-gradient(135deg, #f59e0b 0%, #ef4444 100%);--bg-gradient:linear-gradient(180deg, #080d1a 0%, #0d1424 100%);--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-dim:#64748b;--text:#94a3b8;--border:#ffffff14;--border-strong:#ffffff24;--border-accent:#3b82f659;--glass-bg:#1c2537b3;--glass-hover:#243044d9;--shadow-light:0 4px 24px #00000073;--shadow-dark:0 16px 56px #000000a6;--shadow-blue:0 8px 32px #3b82f640;--shadow-glow:0 0 0 1px #3b82f659, 0 4px 24px #3b82f633;--scrollbar-thumb:#64748b80;--scrollbar-track:transparent}[data-theme=light]{--bg-main:#f5f7fa;--bg-secondary:#eef2ff;--surface:#fff;--surface-var:#eef2ff;--surface-bright:#fff;--accent-primary:#4f46e5;--accent-secondary:#4338ca;--accent-tertiary:#059669;--accent-purple:#7c3aed;--accent-cyan:#0891b2;--accent-orange:#d97706;--accent-red:#dc2626;--accent-green:#059669;--accent-gradient:linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);--accent-gradient-green:linear-gradient(135deg, #059669 0%, #0891b2 100%);--accent-gradient-orange:linear-gradient(135deg, #d97706 0%, #dc2626 100%);--bg-gradient:linear-gradient(180deg, #f5f7fa 0%, #eef2ff 100%);--text-primary:#0f172a;--text-secondary:#475569;--text-dim:#94a3b8;--text:#475569;--border:#4f46e51a;--border-strong:#4f46e52e;--border-accent:#4f46e566;--glass-bg:#ffffffbf;--glass-hover:#fffffff2;--shadow-light:0 4px 24px #0000000f;--shadow-dark:0 16px 48px #0000001f;--shadow-blue:0 8px 32px #4f46e52e;--shadow-glow:0 0 0 1px #4f46e540, 0 4px 24px #4f46e51f;--scrollbar-thumb:#4f46e54d;--scrollbar-track:transparent}html{max-width:100vw;transition:background-color .3s,color .3s}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-gradient);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;min-height:100vh;font-family:Outfit,Inter,sans-serif;transition:background .35s,color .35s}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700}a{color:var(--accent-primary);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-secondary)}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary);opacity:.7}.neu-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow-light);border-radius:20px;min-width:0;max-width:100%;padding:2rem;transition:background .3s,border-color .3s,box-shadow .3s}.neu-button{background:var(--surface-var);border:1px solid var(--border);box-shadow:var(--shadow-light);color:var(--text-secondary);cursor:pointer;border-radius:14px;align-items:center;padding:1rem 1.5rem;font-family:Outfit,sans-serif;font-weight:600;text-decoration:none;transition:all .22s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.neu-button:before{content:"";background:var(--accent-gradient);opacity:0;border-radius:inherit;transition:opacity .22s;position:absolute;inset:0}.neu-button:hover{border-color:var(--border-accent);color:var(--accent-primary);box-shadow:var(--shadow-blue);transform:translateY(-1px)}.neu-button.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-blue);border-color:#0000}.neu-button.active:hover{color:#fff;box-shadow:var(--shadow-glow);transform:translateY(-1px)}.desktop-sidebar{display:flex}aside.neu-panel.desktop-sidebar{background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:var(--shadow-light), inset 0 1px 0 var(--border-strong);border-radius:24px;position:relative;overflow:hidden}aside.neu-panel.desktop-sidebar:before{content:"";background:var(--accent-gradient);border-radius:24px 24px 0 0;height:2px;position:absolute;top:0;left:0;right:0}aside.neu-panel.desktop-sidebar .neu-button{letter-spacing:.01em;box-shadow:none;color:var(--text-secondary);background:0 0;border-color:#0000;border-radius:12px;padding:.85rem 1.25rem;font-size:.925rem;font-weight:600}aside.neu-panel.desktop-sidebar .neu-button:hover{background:var(--surface-var);color:var(--text-primary);border-color:var(--border);box-shadow:none;transform:none}aside.neu-panel.desktop-sidebar .neu-button.active{color:var(--accent-primary);border-color:var(--border-accent);background:linear-gradient(135deg,#3b82f62e 0%,#8b5cf61f 100%);box-shadow:inset 0 0 0 1px #3b82f626}[data-theme=light] aside.neu-panel.desktop-sidebar .neu-button.active{border-color:var(--border-accent);background:linear-gradient(135deg,#4f46e51a 0%,#7c3aed12 100%);box-shadow:inset 0 0 0 1px #4f46e51f}.mobile-logo{display:none!important}.mobile-hamburger{display:none}.main-content{width:100%;min-width:0;max-width:100vw;padding:2rem 2rem 2rem 0}.top-header{height:80px;padding:0}.header-profile{transition:all .22s cubic-bezier(.4,0,.2,1)}.header-profile:hover{transform:translateY(-2px)scale(1.05)}.header-profile-wrapper{margin-left:auto;position:relative}.theme-toggle-btn{background:var(--surface-var);border:1px solid var(--border);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-light);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.theme-toggle-btn:hover{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-blue);border-color:#0000;transform:scale(1.08)}.theme-toggle-btn .theme-icon{justify-content:center;align-items:center;transition:transform .45s cubic-bezier(.34,1.56,.64,1),opacity .25s;display:flex}.theme-toggle-btn:active .theme-icon{transform:rotate(45deg)scale(.8)}.mobile-drawer-backdrop{z-index:1100;-webkit-backdrop-filter:blur();pointer-events:none;background:0 0;transition:background .3s;display:none;position:fixed;inset:0}.mobile-drawer-backdrop.open{-webkit-backdrop-filter:blur(4px);pointer-events:auto;background:#00000080;display:block}.mobile-drawer{z-index:1200;background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border);width:280px;max-width:85vw;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;transition:transform .32s cubic-bezier(.4,0,.2,1);display:none;position:fixed;top:0;bottom:0;left:0;overflow:hidden;transform:translate(-100%);box-shadow:8px 0 48px #0000004d}.mobile-drawer:before{content:"";background:var(--accent-gradient);height:2px;position:absolute;top:0;left:0;right:0}.mobile-drawer.open{transform:translate(0)}.mobile-drawer-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1.25rem 1rem 1rem 1.25rem;display:flex}.mobile-drawer-close{background:var(--surface-var);border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex}.mobile-drawer-close:hover{background:var(--accent-red);color:#fff;border-color:#0000}.mobile-drawer-nav{flex:1;padding:.75rem .75rem 0;overflow-y:auto}.mobile-drawer-item{color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:.9rem;width:100%;margin-bottom:.25rem;padding:.9rem 1rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:600;text-decoration:none;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex}.mobile-drawer-item:hover{background:var(--surface-var);color:var(--text-primary);border-color:var(--border)}.mobile-drawer-item.active{color:var(--accent-primary);border-color:var(--border-accent);background:linear-gradient(135deg,#3b82f626 0%,#8b5cf61a 100%)}[data-theme=light] .mobile-drawer-item.active{background:linear-gradient(135deg,#4f46e51a 0%,#7c3aed12 100%)}.mobile-drawer-item.logout{color:var(--accent-red)}.mobile-drawer-item.logout:hover{color:var(--accent-red);background:#ef44441a;border-color:#ef444440}.mobile-drawer-footer{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.5rem;padding:.75rem;display:flex}.mobile-hamburger{background:var(--surface-var);border:1px solid var(--border);cursor:pointer;width:42px;height:42px;color:var(--text-primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:none}.mobile-hamburger:hover{background:var(--accent-primary);color:#fff;border-color:#0000}@media (width<=768px){.desktop-sidebar{display:none!important}.mobile-logo{display:flex!important}.mobile-hamburger,.mobile-drawer{display:flex}.header-profile,.header-profile-wrapper{margin-left:0}.main-content{width:100%;min-width:0;max-width:100vw;padding:1rem;overflow-x:hidden}.activity-stats{gap:1rem!important}.dashboard-root{gap:1.25rem!important}.progress-rings{grid-template-columns:1fr 1fr;justify-items:center;gap:1.25rem!important;display:grid!important}.top-header{height:60px;padding:0 1rem}.search-bar{display:none!important}}svg:focus,svg:focus-visible,svg g:focus,svg g:focus-visible{border:none;outline:none}input[type=date]::-webkit-calendar-picker-indicator{display:none}input[type=date]::-webkit-inner-spin-button{display:none}.markdown-content{color:var(--text-primary);font-size:.95rem;line-height:1.75}.markdown-content h1{color:var(--text-primary);border-bottom:2px solid var(--border);letter-spacing:-.02em;margin:0 0 1.25rem;padding-bottom:.75rem;font-size:1.15rem;font-weight:700}.markdown-content h2{color:var(--accent-primary);align-items:center;gap:.5rem;margin:1.5rem 0 .6rem;font-size:1rem;font-weight:700;display:flex}.markdown-content h2:before{content:"";background:var(--accent-gradient);border-radius:2px;flex-shrink:0;width:3px;height:1em;display:inline-block}.markdown-content h3{color:var(--accent-primary);opacity:.85;margin:1.25rem 0 .5rem;font-size:.95rem;font-weight:700}.markdown-content p{color:var(--text-secondary);margin-bottom:.9rem}.markdown-content p strong{color:var(--text-primary)}.markdown-content ul{margin-bottom:1rem;padding-left:0;list-style:none}.markdown-content ul li{color:var(--text-secondary);margin-bottom:.5rem;padding-left:1.25rem;position:relative}.markdown-content ul li:before{content:"▸";color:var(--accent-primary);font-size:.8em;position:absolute;top:.15em;left:0}.markdown-content ol{counter-reset:list-counter;margin-bottom:1rem;padding-left:0;list-style:none}.markdown-content ol li{color:var(--text-secondary);counter-increment:list-counter;margin-bottom:.6rem;padding-left:2rem;position:relative}.markdown-content ol li:before{content:counter(list-counter);background:var(--accent-gradient);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:1.4rem;height:1.4rem;font-size:.72rem;font-weight:700;line-height:1;display:flex;position:absolute;top:0;left:0}.markdown-content strong{color:var(--text-primary);font-weight:700}.markdown-content em{color:var(--text-secondary);font-style:italic}.markdown-content code{background:var(--surface-var);border:1px solid var(--border);color:var(--accent-primary);border-radius:5px;padding:.1em .4em;font-family:Fira Code,Cascadia Code,monospace;font-size:.85em}.markdown-content pre{background:var(--surface-var);border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;padding:1rem 1.25rem;overflow-x:auto}.markdown-content pre code{color:var(--text-primary);background:0 0;border:none;padding:0;font-size:.9em}.markdown-content blockquote{border-left:3px solid var(--accent-primary);color:var(--text-secondary);background:#3b82f60d;border-radius:0 8px 8px 0;margin:0 0 1rem;padding:.75rem 1rem;font-style:italic}[data-theme=light] .markdown-content blockquote{background:#4f46e50a}.markdown-content hr{background:var(--border);border:none;height:1px;margin:1.25rem 0}.markdown-content p:last-child{margin-bottom:0}.tabs-container{justify-content:center;gap:1rem;margin-bottom:1.5rem;display:flex}.tab-btn{background:var(--surface-var);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;box-shadow:var(--shadow-light);border-radius:50px;padding:.6rem 2.5rem;font-family:Outfit,sans-serif;font-size:1rem;font-weight:600;transition:all .22s cubic-bezier(.4,0,.2,1)}.tab-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.tab-btn.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-blue);border-color:#0000}.bento-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:2rem;display:grid}.bento-card{flex-direction:column;width:100%;height:580px;display:flex}.bento-card.neu-panel{padding:0;overflow:hidden}.bento-card .bento-scroll-area{flex-direction:column;flex:1;padding:1.25rem 1.5rem 1.5rem;display:flex;overflow-y:auto}.bento-card .bento-scroll-area::-webkit-scrollbar{width:4px}.bento-card .bento-scroll-area::-webkit-scrollbar-track{background:0 0}.bento-card .bento-scroll-area::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}@media (width<=768px){.bento-grid{grid-template-columns:1fr}}.bento-header{background:var(--accent-gradient);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.5rem;display:flex}.bento-header h3{color:#fff;letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.bento-charts{background:var(--surface-var);border:1px solid var(--border);border-radius:16px;flex-shrink:0;margin-bottom:1.5rem;padding:1rem 0}.ai-badge{color:#fff;text-transform:uppercase;letter-spacing:.05em;background:#ffffff2e;border:1px solid #ffffff47;border-radius:50px;padding:.2rem .65rem;font-size:.72rem;font-weight:700}.metric-badge{background:var(--surface-var);border:1px solid var(--border);border-radius:8px;margin:0 .2rem;padding:.1rem .6rem;font-size:.95em;display:inline-block;color:var(--text-primary)!important;font-weight:700!important}.action-box{border:1px solid var(--border-accent);background:linear-gradient(135deg,#3b82f614 0%,#8b5cf60d 100%);border-radius:16px;margin-top:2rem;overflow:hidden}[data-theme=light] .action-box{background:linear-gradient(135deg,#4f46e50f 0%,#7c3aed0a 100%)}.action-box-header{background:linear-gradient(135deg,#3b82f626 0%,#8b5cf61a 100%);align-items:center;gap:.8rem;padding:1rem 1.5rem;display:flex}[data-theme=light] .action-box-header{background:linear-gradient(135deg,#4f46e51a 0%,#7c3aed12 100%)}.action-box-header h4{color:var(--accent-primary);letter-spacing:.5px;margin:0;font-size:1.1rem}.action-box-content p{font-size:1rem;line-height:1.7}.action-box-content ul{background:var(--surface);border-left:4px solid var(--accent-primary)}.action-box-content li{color:var(--text-primary)}.action-box-content .metric-badge{border-color:var(--border-accent);background:linear-gradient(135deg,#3b82f626,#8b5cf61a);color:var(--accent-primary)!important}.calendar-container{justify-content:center;margin-bottom:1.5rem;display:flex}.calendar-widget{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);box-shadow:var(--shadow-light);border-radius:20px;width:100%;max-width:380px;padding:1.5rem}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.calendar-header button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:10px;padding:.5rem;transition:all .2s}.calendar-header button:hover{background:var(--surface-var);color:var(--accent-primary)}.calendar-grid{border-radius:12px;flex-direction:column;gap:.5rem;padding:.5rem;transition:all .2s;display:flex}.calendar-row{text-align:center;border:1px solid #0000;border-radius:10px;grid-template-columns:repeat(7,1fr);gap:.5rem;transition:all .2s;display:grid}.calendar-day-header{color:var(--text-dim);justify-content:center;align-items:center;margin-bottom:.5rem;font-size:.8rem;font-weight:700;display:flex}.calendar-cell{aspect-ratio:1;cursor:pointer;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;font-size:.95rem;transition:all .2s;display:flex;position:relative}.calendar-grid.mode-daily .calendar-cell:hover:not(.empty){background:var(--surface-var);border-color:var(--border)}.calendar-grid.mode-weekly .calendar-row:hover:not(.header-row){background:var(--surface-var);border-color:var(--border);cursor:pointer}.calendar-grid.mode-weekly .calendar-row.selected-row{border-color:var(--border-accent);background:linear-gradient(135deg,#3b82f61f 0%,#8b5cf614 100%)}[data-theme=light] .calendar-grid.mode-weekly .calendar-row.selected-row{background:linear-gradient(135deg,#4f46e514 0%,#7c3aed0d 100%)}.calendar-grid.mode-weekly .calendar-row.selected-row .calendar-cell{color:var(--accent-primary);font-weight:700}.calendar-grid.mode-monthly:hover{background:var(--surface-var);cursor:pointer}.calendar-grid.mode-monthly:hover .calendar-cell{color:var(--accent-primary)}.calendar-cell.active-day{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-blue);border-color:#0000;font-weight:700}.calendar-cell .activity-dot{background:var(--accent-primary);border-radius:50%;width:5px;height:5px;margin-top:2px}.pagination-container{justify-content:center;align-items:center;gap:1.5rem;margin-top:3rem;padding-bottom:2rem;display:flex}.pagination-container button:disabled{opacity:.4;cursor:not-allowed}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shimmer{to{background-position:200%}}@keyframes recordPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes popoverFadeIn{0%{opacity:0;transform:scale(.95)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes typingPulse{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}@keyframes shine{0%{left:-100%}20%{left:200%}to{left:200%}}.shimmer-text{background:linear-gradient(90deg, var(--text-secondary) 0%, var(--accent-primary) 50%, var(--text-secondary) 100%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:2s linear infinite shimmer}.record-dot-pulse{animation:1.4s ease-in-out infinite recordPulse}.voice-control-cancel:hover{color:var(--accent-red)!important;background-color:#ef444414!important}.voice-control-done:hover{color:#15803d!important;background-color:#16a34a14!important}.chat-window{z-index:9999;background:var(--surface);border:1px solid var(--border);width:min(520px,100vw - 4rem);height:min(720px,100vh - 8rem);max-height:90vh;box-shadow:var(--shadow-dark);border-radius:20px;flex-direction:column;transition:inset .3s,width .3s,height .3s,border-radius .3s;animation:.25s chatSlideUp;display:flex;position:fixed;bottom:5rem;right:2rem;overflow:hidden}.chat-window.fullscreen{width:auto;height:auto;max-height:none;box-shadow:var(--shadow-dark);border-radius:20px;inset:1.5rem}.chat-header{background:var(--accent-gradient);color:#fff;flex-shrink:0;justify-content:space-between;align-items:center;padding:.85rem 1rem;display:flex}.chat-header-title{letter-spacing:-.01em;align-items:center;gap:.6rem;font-size:.95rem;font-weight:700;display:flex}.chat-header-title .online-dot{background:#4ade80;border-radius:50%;width:8px;height:8px;animation:2s infinite pulse;box-shadow:0 0 6px #4ade80}.model-select{appearance:none;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;text-overflow:ellipsis;background:#ffffff26 url("data:image/svg+xml;utf8,<svg fill='white' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>") right .4rem center/1.15rem no-repeat;border:1px solid #ffffff47;border-radius:20px;outline:none;max-width:130px;padding:.35rem 1.6rem .35rem .75rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:600;transition:all .2s;overflow:hidden}.model-select:hover{background-color:#ffffff40;border-color:#ffffff73}.model-select:focus{border-color:#ffffffb3;box-shadow:0 0 0 3px #ffffff1f}.model-select optgroup{background:var(--surface);color:var(--text-primary);font-family:Outfit,sans-serif;font-weight:700}.model-select option{background:var(--surface);color:var(--text-secondary);font-family:Outfit,sans-serif;font-weight:500}.icon-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;transition:background .2s;display:flex}.icon-btn:hover{background:#ffffff47}.chat-body{flex:1;min-width:0;display:flex;overflow:hidden}.chat-sidebar{background:var(--surface-var);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;padding:.5rem;transition:width .25s cubic-bezier(.4,0,.2,1),padding .25s cubic-bezier(.4,0,.2,1),border-right-color .25s;display:flex;position:relative;overflow:hidden}.chat-sidebar.collapsed{border-right-color:#0000!important;width:0!important;min-width:0!important;max-width:0!important;padding-left:0!important;padding-right:0!important}.chat-sidebar-content{flex-direction:column;width:100%;min-width:130px;height:100%;transition:opacity .15s;display:flex}.chat-sidebar.collapsed .chat-sidebar-content{opacity:0;pointer-events:none}.sidebar-resize-handle{cursor:col-resize;z-index:10;background:0 0;flex-shrink:0;width:4px;transition:background-color .2s;position:relative}.sidebar-resize-handle:hover,.sidebar-resize-handle:active{background:var(--accent-primary)}.sidebar-resize-handle:after{content:"";cursor:col-resize;position:absolute;inset:0 -4px}.chat-sidebar-backdrop{z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000073;animation:.2s fadeIn;position:absolute;inset:0}.new-chat-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;letter-spacing:.01em;box-shadow:var(--shadow-blue);border:none;border-radius:10px;justify-content:center;align-items:center;gap:.4rem;margin-bottom:.75rem;padding:.55rem .5rem;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700;transition:all .2s;display:flex}.new-chat-btn:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.thread-list-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:.4rem;padding:0 .25rem;font-size:.68rem;font-weight:700}.thread-item{cursor:pointer;color:var(--text-dim);border:1px solid #0000;border-radius:8px;align-items:center;gap:.45rem;margin-bottom:.15rem;padding:.45rem .5rem;font-size:.78rem;transition:all .15s;display:flex}.thread-item:hover{background:var(--surface);color:var(--text-primary);border-color:var(--border)}.thread-item.active{background:var(--surface);color:var(--accent-primary);border-color:var(--border-accent);font-weight:600}.thread-item:hover .thread-delete-btn{opacity:1!important}.thread-delete-btn:hover{background:#ef44441a;border-radius:4px;color:var(--accent-red)!important}.truncate{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.chat-messages-container{background:var(--surface);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.chat-messages{flex-direction:column;flex:1;gap:1rem;padding:1rem;display:flex;overflow:hidden auto}.message-row{align-items:flex-start;gap:.8rem;width:100%;min-width:0;display:flex}.message-row.user{flex-direction:row-reverse}.avatar{background:var(--surface-var);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:.5rem;display:flex}.message-bubble{word-break:break-word;overflow-wrap:break-word;border-radius:14px;min-width:0;max-width:78%;padding:.75rem 1rem;font-size:.88rem;line-height:1.5;overflow:hidden}.message-bubble.assistant{background:var(--surface-var);color:var(--text-primary);border:1px solid var(--border);border-top-left-radius:2px;width:100%;max-width:100%}.message-bubble.user{background:var(--accent-gradient);color:#fff;border-top-right-radius:2px}.message-bubble.assistant p,.message-bubble.assistant li,.message-bubble.assistant h1,.message-bubble.assistant h2,.message-bubble.assistant h3,.message-bubble.assistant code,.message-bubble.assistant pre{overflow-wrap:break-word;word-break:break-word;max-width:100%}.message-bubble.assistant pre{overflow-x:auto}.message-bubble.assistant table{table-layout:fixed;width:100%}.empty-chat{text-align:center;height:100%;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.chat-input-area{border-top:1px solid var(--border);background:var(--surface);gap:.5rem;padding:.75rem 1rem;display:flex}.chat-input{background:var(--surface-var);border:1px solid var(--border);min-width:0;color:var(--text-primary);resize:none;border-radius:20px;outline:none;flex:1;padding:.7rem 1rem;font-family:Outfit,sans-serif;font-size:.88rem;line-height:1.4;transition:border-color .2s,box-shadow .2s;overflow:hidden}.chat-input::placeholder{color:var(--text-dim)}.chat-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61f}[data-theme=light] .chat-input:focus{box-shadow:0 0 0 3px #4f46e51f}.send-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;width:42px;height:42px;box-shadow:var(--shadow-blue);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .22s;display:flex}.send-btn:hover:not(:disabled){box-shadow:var(--shadow-glow);transform:scale(1.08)}.send-btn:disabled{background:var(--surface-var);color:var(--text-dim);cursor:not-allowed;box-shadow:none}@media (width<=768px){.chat-window{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box;width:100vw!important;height:100svh!important;max-height:100svh!important;box-shadow:none!important;border:none!important;border-radius:0!important;inset:0!important}.chat-fullscreen-btn{display:none!important}.model-select{max-width:110px;padding:.3rem 1.4rem .3rem .5rem;font-size:.7rem}.chat-header{flex-wrap:nowrap;gap:.4rem;padding:.65rem .75rem}.chat-sidebar{z-index:100;height:100%;box-shadow:none;border-right:1px solid var(--border);background:var(--surface-var);transition:transform .3s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0;left:0;transform:translate(-100%);opacity:1!important;width:240px!important}.chat-sidebar.open{box-shadow:10px 0 30px #00000040;transform:translate(0)!important}.chat-sidebar.collapsed{width:240px!important;padding:.5rem!important;transform:translate(-100%)!important}.chat-input-area{padding-bottom:max(.75rem, env(safe-area-inset-bottom))}}.spin{animation:1s linear infinite spin}.discover-card{cursor:default;transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1)!important}.discover-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-dark)!important;border-color:var(--accent-primary)!important}.discover-grid{grid-template-columns:repeat(4,1fr);gap:1.75rem;display:grid}@media (width<=1200px){.discover-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.discover-grid{grid-template-columns:1fr}}.desktop-only-flex{display:flex!important}@media (width<=768px){.desktop-only-flex{display:none!important}}.premium-sync-btn{background:var(--accent-gradient);color:#fff;cursor:pointer;box-shadow:var(--shadow-blue);border:1px solid #ffffff26;border-radius:14px;align-items:center;gap:.6rem;padding:.7rem 1.6rem;font-size:.95rem;font-weight:700;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.premium-sync-btn:hover:not(:disabled){box-shadow:var(--shadow-glow);transform:translateY(-2px)}.premium-sync-btn:active:not(:disabled){transform:translateY(1px)}.premium-sync-btn:disabled{opacity:.7;cursor:not-allowed;filter:grayscale(.5)}.premium-sync-btn:after{content:"";background:linear-gradient(90deg,#0000,#ffffff40,#0000);width:50%;height:100%;animation:3s infinite shine;position:absolute;top:0;left:-100%;transform:skew(-20deg)}.goals-tab-bar{background:var(--surface-var);border:1px solid var(--border);width:fit-content;box-shadow:var(--shadow-light);border-radius:50px;gap:.5rem;margin:0 auto 2rem;padding:.35rem;display:flex}.goals-tab-btn{color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:50px;align-items:center;gap:.5rem;padding:.6rem 1.8rem;font-family:Outfit,sans-serif;font-size:.9rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.goals-tab-btn.active{background:var(--accent-gradient);color:#fff;box-shadow:var(--shadow-blue)}.goal-ring-card{background:var(--glass-bg);border:1px solid var(--border);box-shadow:var(--shadow-light);cursor:pointer;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;padding:2rem 1.5rem;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;position:relative;overflow:hidden}.goal-ring-card:hover{box-shadow:var(--shadow-dark);border-color:var(--border-strong);transform:translateY(-4px)}.goal-ring-card:before{content:"";border-radius:24px 24px 0 0;height:3px;transition:opacity .25s;position:absolute;top:0;left:0;right:0}.goal-ring-svg{filter:drop-shadow(0 0 12px #3b82f633);width:160px;height:160px;position:relative}@keyframes goalRingFill{0%{stroke-dashoffset:402px}}.status-badge{letter-spacing:.03em;text-transform:uppercase;border-radius:50px;align-items:center;gap:.35rem;padding:.3rem .85rem;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.on-track{color:var(--accent-green);background:#10b9811f;border:1px solid #10b98140}.status-badge.behind{color:var(--accent-orange);background:#f59e0b1f;border:1px solid #f59e0b40}.status-badge.achieved{color:var(--accent-primary);border:1px solid var(--border-accent);background:#3b82f61f}.status-badge.no-goal{background:var(--surface-var);color:var(--text-dim);border:1px solid var(--border)}.countdown-chip{border-radius:50px;align-items:center;gap:.4rem;padding:.3rem .8rem;font-size:.8rem;font-weight:700;display:inline-flex}.countdown-chip.urgent{color:var(--accent-red);background:#ef44441f;border:1px solid #ef444440}.countdown-chip.soon{color:var(--accent-orange);background:#f59e0b1f;border:1px solid #f59e0b40}.countdown-chip.upcoming{color:var(--accent-green);background:#10b9811f;border:1px solid #10b98140}.countdown-chip.taper{color:var(--accent-purple);background:#8b5cf61f;border:1px solid #8b5cf640}.race-timeline{flex-direction:column;gap:1.25rem;display:flex;position:relative}.race-timeline:before{content:"";background:linear-gradient(180deg, var(--accent-primary), var(--accent-purple), transparent);border-radius:2px;width:2px;position:absolute;top:20px;bottom:20px;left:20px}.race-timeline-item{align-items:flex-start;gap:1.25rem;display:flex;position:relative}.race-timeline-dot{z-index:1;border:2px solid var(--border-strong);background:var(--surface-var);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.75rem;font-weight:800;transition:all .2s;display:flex;position:relative}.race-timeline-card{background:var(--glass-bg);border:1px solid var(--border);box-shadow:var(--shadow-light);border-radius:20px;flex:1;padding:1.25rem 1.5rem;transition:all .25s}.race-timeline-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-dark);transform:translate(4px)}@keyframes firstRaceShimmer{0%{background-position:200%}to{background-position:-200%}}.race-timeline-card.is-first{border-color:var(--border-accent);background:linear-gradient(90deg, var(--glass-bg) 0%, #3b82f60d 50%, var(--glass-bg) 100%);background-size:200%;animation:4s linear infinite firstRaceShimmer}.phase-bar-container{border-radius:3px;gap:0;width:100%;height:6px;margin:.75rem 0;display:flex;overflow:hidden}.phase-bar-segment{opacity:.4;flex:1;transition:opacity .25s;position:relative}.phase-bar-segment.active{opacity:1}.phase-bar-segment.active:after{content:"";background:#ffffff4d;position:absolute;inset:0}.training-week-grid{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}@media (width<=768px){.training-week-grid{grid-template-columns:1fr}.goals-tab-bar{width:100%}.goals-tab-btn{flex:1;justify-content:center;padding:.6rem .75rem;font-size:.8rem}}.training-day-cell{background:var(--glass-bg);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;gap:.4rem;min-height:100px;padding:.75rem;transition:all .2s;display:flex;position:relative;overflow:hidden}.training-day-cell:hover{border-color:var(--border-accent);box-shadow:var(--shadow-blue);transform:translateY(-2px)}.training-day-cell.completed{opacity:.7}.training-day-cell.completed:after{content:"✓";color:var(--accent-green);font-size:.9rem;font-weight:800;position:absolute;top:.5rem;right:.5rem}.workout-type-badge{text-transform:uppercase;letter-spacing:.04em;border-radius:50px;align-items:center;gap:.3rem;width:fit-content;padding:.2rem .6rem;font-size:.7rem;font-weight:700;display:inline-flex}.wtype-easy{color:var(--accent-primary);background:#3b82f626}.wtype-tempo{color:var(--accent-orange);background:#f59e0b26}.wtype-long{color:var(--accent-purple);background:#8b5cf626}.wtype-intervals{color:var(--accent-red);background:#ef444426}.wtype-race{color:#fbbf24;background:#fbbf2426}.wtype-rest{background:var(--surface-var);color:var(--text-dim)}.wtype-cross{color:var(--accent-green);background:#10b98126}.btn-gradient-glow{background:var(--accent-gradient);color:#fff;cursor:pointer;box-shadow:var(--shadow-blue);border:none;border-radius:14px;align-items:center;gap:.6rem;padding:.85rem 1.75rem;font-family:Outfit,sans-serif;font-size:.95rem;font-weight:700;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex;position:relative;overflow:hidden}.btn-gradient-glow:hover{box-shadow:var(--shadow-glow);transform:translateY(-2px)scale(1.02)}.btn-gradient-glow:active{transform:translateY(0)scale(.98)}.goals-modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:3000;background:#080d1abf;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.goals-modal-box{background:var(--glass-bg);border:1px solid var(--border-strong);box-shadow:var(--shadow-dark);border-radius:28px;width:100%;max-width:480px;max-height:90vh;padding:2rem;animation:.28s cubic-bezier(.16,1,.3,1) popoverFadeIn;overflow-y:auto}.pb-sparkline-container{width:100%;position:relative}[data-theme=light] .goal-ring-card,[data-theme=light] .race-timeline-card,[data-theme=light] .training-day-cell,[data-theme=light] .goals-modal-box{background:var(--glass-bg)}
