:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#333;background-color:#f5f5f5;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-height:100vh}#root{min-height:100vh;width:100%}.auth-layout{display:flex;height:100vh;overflow:hidden}.auth-form-pane{flex:1;display:flex;align-items:center;justify-content:center;padding:48px;background:#fff;overflow-y:auto}.auth-form-content{width:100%;max-width:360px}.auth-form-content h2{font-size:1.75rem;font-weight:700;color:#111;margin-bottom:8px;letter-spacing:-.02em}.auth-subtitle{font-size:.9rem;color:#6b7280;margin-bottom:32px}.auth-form-content .form-group{margin-bottom:16px}.auth-form-content .form-group label{display:block;font-size:.85rem;font-weight:500;color:#374151;margin-bottom:6px}.auth-form-content .form-group input{width:100%;padding:11px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:.95rem;background:#f9fafb;color:#111;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.auth-form-content .form-group input:focus{outline:none;border-color:#111;background:#fff;box-shadow:0 0 0 3px #1111110f}.auth-form-content .form-group input:disabled{opacity:.6;cursor:not-allowed}.auth-submit-btn{width:100%;padding:12px;margin-top:8px;background:#111;color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;letter-spacing:.01em}.auth-submit-btn:hover:not(:disabled){background:#333}.auth-submit-btn:active:not(:disabled){transform:scale(.99)}.auth-submit-btn:disabled{background:#9ca3af;cursor:not-allowed}.auth-error{padding:10px 14px;margin-bottom:16px;background:#fef2f2;color:#dc2626;border-radius:6px;font-size:.875rem;border:1px solid #fecaca}.auth-success{padding:10px 14px;margin-bottom:16px;background:#f0fdf4;color:#16a34a;border-radius:6px;font-size:.875rem;border:1px solid #bbf7d0}.auth-switch{margin-top:24px;text-align:center;font-size:.875rem;color:#6b7280}.auth-switch a{color:#111;font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.auth-brand-pane{flex:1;display:flex;align-items:center;justify-content:center;background:#111;padding:48px}.auth-brand-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:32px;width:100%;max-width:600px}.auth-brand-logo{width:auto;max-width:800px;height:auto;border:none;display:block}.auth-brand-tagline{font-size:1.35rem;font-weight:300;color:#ffffffb3;line-height:1.6;letter-spacing:-.01em}.auth-brand-tagline strong{color:#fff;font-weight:600}.onboarding-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:24px;background-color:#f5f5f5}.onboarding-card{background:#fff;padding:32px;border-radius:15px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:520px}.onboarding-header h2{margin:0 0 16px;color:#333}.step-indicator{display:flex;gap:8px;margin-bottom:24px}.step-dot{flex:1;text-align:center;padding:8px 0;font-size:13px;color:#999;border-bottom:3px solid #ddd}.step-dot.active{color:#333;font-weight:600;border-bottom-color:#333}.step-dot.done{color:#666;border-bottom-color:#999}.step-content{min-height:200px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.form-group input{width:100%;padding:12px;border:1px solid #ddd;border-radius:10px;font-size:16px;background-color:#f5f5f5;color:#000;transition:border-color .2s;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#555}.button-group{display:flex;gap:8px}.button-group.vertical{flex-direction:column}.button-group.wrap{flex-wrap:wrap}.option-button{padding:10px 16px;border:1px solid #ddd;border-radius:10px;background:#fff;color:#333;font-size:14px;cursor:pointer;transition:all .15s}.option-button:hover{border-color:#999}.option-button.selected{background-color:#333;color:#fff;border-color:#333}.review{display:flex;flex-direction:column;gap:12px}.review-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #eee;font-size:14px}.review-row span:first-child{color:#666;font-weight:500}.review-row span:last-child{color:#333}.onboarding-nav{display:flex;justify-content:space-between;margin-top:24px;gap:12px}.nav-button{padding:12px 24px;border:none;border-radius:10px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s}.nav-button.back{background-color:#eee;color:#333}.nav-button.back:hover{background-color:#ddd}.nav-button.next{background-color:#333;color:#fff;margin-left:auto}.nav-button.next:hover:not(:disabled){background-color:#555}.nav-button:disabled{background-color:#ccc;color:#999;cursor:not-allowed}.error-message{padding:12px;margin-bottom:16px;background-color:#fee;color:#c33;border-radius:4px;font-size:14px}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:600;line-height:1;flex-shrink:0;-webkit-user-select:none;user-select:none}.user-menu{position:relative}.user-menu-dropdown{position:absolute;bottom:calc(100% + 8px);left:0;right:0;background-color:#fff;border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 16px #0000001a;padding:4px;z-index:100;animation:menuSlideUp .15s cubic-bezier(.4,0,.2,1)}@keyframes menuSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.user-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:none;border:none;border-radius:7px;font-size:.875rem;color:var(--text-primary);cursor:pointer;text-align:left;transition:background .15s}.user-menu-item:hover{background-color:var(--hover-color)}.user-menu-item--danger{color:#dc2626}.user-menu-item--danger:hover{background-color:#fef2f2}.user-menu-divider{height:1px;background-color:var(--border-color);margin:4px 0}:root{--sidebar-width-open: 260px;--sidebar-width-closed: 68px;--bg-sidebar: #f9f9f8;--border-color: #e5e5e0;--hover-color: #efeee9;--text-primary: #1a1a1a;--text-secondary: #6b7280;--accent-color: #3b82f6;--transition-speed: .3s;--transition-curve: cubic-bezier(.4, 0, .2, 1)}.sidebar{height:100vh;display:flex;flex-direction:column;background-color:var(--bg-sidebar);border-right:1px solid var(--border-color);transition:width var(--transition-speed) var(--transition-curve);overflow:hidden;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sidebar.open{width:var(--sidebar-width-open)}.sidebar.closed{width:var(--sidebar-width-closed)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:64px;transition:padding var(--transition-speed)}.sidebar.closed .sidebar-header{justify-content:center;padding:0}.branding{display:flex;align-items:center;gap:12px;animation:slideIn .2s var(--transition-curve);white-space:nowrap;flex:1;min-width:0}.branding img{height:120px;width:auto;max-width:none;object-fit:contain;display:block}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.logo-text{font-weight:600;font-size:1.1rem;letter-spacing:-.01em}.icon-button{background:none;border:none;cursor:pointer;padding:8px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:var(--text-secondary);transition:background .2s,color .2s;flex-shrink:0}.icon-button:hover{background-color:var(--hover-color);color:var(--text-primary)}.action-group{padding:8px;display:flex;flex-direction:column;gap:4px}.action-button{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--text-primary);width:100%;transition:background .2s}.sidebar.closed .action-button{justify-content:center;padding:10px 0}.action-button:hover{background-color:var(--hover-color)}.action-button.primary{background-color:#fff;border-color:var(--border-color);box-shadow:0 1px 2px #0000000d;font-weight:500}.sidebar-content{flex:1;overflow-y:auto;padding:0 8px;margin-top:10px}.sidebar-content::-webkit-scrollbar{width:4px}.sidebar-content::-webkit-scrollbar-thumb{background:transparent;border-radius:10px}.sidebar-content:hover::-webkit-scrollbar-thumb{background:#d1d5db}.section-label{font-size:.7rem;font-weight:700;color:var(--text-secondary);margin:16px 0 8px 12px;text-transform:uppercase;letter-spacing:.05em}.history-item{width:100%;display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:8px;border:none;background:transparent;cursor:pointer;color:#4b5563;margin-bottom:2px;text-align:left}.sidebar.closed .history-item{justify-content:center;padding:10px 0}.history-item:hover{background-color:var(--hover-color)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.sidebar-footer{padding:12px;border-top:1px solid var(--border-color);background-color:var(--bg-sidebar)}.user-card{width:100%;display:flex;align-items:center;gap:12px;padding:8px;border-radius:8px;border:none;background:transparent;cursor:pointer;transition:background .2s}.sidebar.closed .user-card{justify-content:center;padding:8px 0}.user-card:hover{background-color:var(--hover-color)}.user-info{display:flex;flex-direction:column;align-items:flex-start;line-height:1.3;overflow:hidden}.user-name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.user-plan{font-size:.75rem;color:var(--text-secondary)}.search-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:9999}.search-modal-content{background-color:#fff;padding:24px;border-radius:15px;box-shadow:0 2px 10px #0000001a;width:100%;max-width:600px;font:inherit}.search-modal-input{position:relative;display:flex;align-items:center}.search-modal-icon{position:absolute;left:12px;color:#888;pointer-events:none;flex-shrink:0}.search-modal-input input{width:100%;padding:12px 12px 12px 36px;border:1px solid #ddd;border-radius:15px;font-size:16px;transition:border-color .2s;background-color:#f5f5f5;color:#000;box-sizing:border-box}.search-modal-input input:focus{outline:none;border-color:#555}.recent-chats{margin-top:16px}.recent-chats-label{display:block;font-size:12px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.recent-chats-list{display:flex;flex-direction:column;gap:2px}.recent-chat-item{display:block;width:100%;text-align:left;padding:8px 0;background:none;border:none;border-radius:8px;font-size:14px;font-weight:500!important;color:#333;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background-color .15s}.recent-chat-item:hover{background-color:#f0f0f0}.no-results{display:block;padding:8px 12px;font-size:14px;color:#aaa}.message-bubble-wrapper{display:flex;width:100%}.message-bubble-wrapper--user{justify-content:flex-end}.message-bubble-wrapper--assistant,.message-bubble-wrapper--system{justify-content:flex-start}.message-bubble{max-width:70%;padding:10px 14px;border-radius:16px;font-size:.95rem;line-height:1.5;white-space:pre-wrap;word-break:break-word}.message-bubble--user{background-color:#333;color:#fff;border-bottom-right-radius:4px}.message-bubble--assistant{background-color:var(--bg-sidebar, #f9f9f8);color:var(--text-primary, #1a1a1a);border:1px solid var(--border-color, #e5e5e0);border-bottom-left-radius:4px}.message-bubble--assistant>:first-child{margin-top:0}.message-bubble--assistant>:last-child{margin-bottom:0}.message-bubble--system{background-color:transparent;color:var(--text-secondary, #6b7280);font-style:italic;font-size:.85rem;border:none;max-width:100%;text-align:center}.message-bubble-actions{margin-top:6px;display:flex;flex-direction:column;align-items:flex-start;gap:6px;max-width:70%}.message-save-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border-color, #e5e5e0);border-radius:14px;background:#fff;font-size:.75rem;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .15s;opacity:0}.message-bubble-wrapper:hover .message-save-btn{opacity:1}.message-save-btn:hover{background-color:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a)}.message-save-btn--saved{opacity:1;color:#15803d;border-color:#86efac;background-color:#f0fdf4}.message-save-form{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--border-color, #e5e5e0);border-radius:10px;background:#fff;width:280px}.message-save-input{padding:7px 10px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;font-size:.85rem;outline:none;font-family:inherit}.message-save-input:focus{border-color:#6b7280}.message-save-types{display:flex;gap:6px}.message-save-type-btn{padding:4px 10px;border:1px solid var(--border-color, #e5e5e0);border-radius:12px;font-size:.75rem;background:#fff;cursor:pointer;transition:all .15s}.message-save-type-btn:hover{background-color:var(--hover-color, #efeee9)}.message-save-type-btn--selected{background-color:#000;color:#fff;border-color:#000}.message-save-error{font-size:.75rem;color:#ef4444;margin:0}.message-save-row{display:flex;justify-content:flex-end;gap:6px}.message-save-cancel{padding:5px 12px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;background:#fff;font-size:.8rem;cursor:pointer;transition:background .15s}.message-save-cancel:hover{background-color:var(--hover-color, #efeee9)}.message-save-confirm{padding:5px 12px;border:none;border-radius:6px;background-color:#000;color:#fff;font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .15s}.message-save-confirm:hover:not(:disabled){opacity:.8}.message-save-confirm:disabled{opacity:.4;cursor:not-allowed}.plan-create-card{display:flex;align-items:center;gap:12px;padding:10px 14px;margin-top:6px;background:#fff;border:1px solid var(--border-color, #e5e5e0);border-radius:10px;max-width:480px}.plan-create-card__meta{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.plan-create-card__title{font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plan-create-card__btn{padding:6px 14px;background:#000;color:#fff;border:none;border-radius:7px;font-size:.8rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:opacity .15s;flex-shrink:0}.plan-create-card__btn:hover:not(:disabled){opacity:.8}.plan-create-card__btn:disabled{opacity:.45;cursor:not-allowed}.plan-create-card__saved{font-size:.875rem;font-weight:500;color:#16a34a;flex:1}.plan-create-card__view{background:none;border:none;color:#3b82f6;font-size:.875rem;cursor:pointer;padding:0;white-space:nowrap}.plan-create-card__error{font-size:.8rem;color:#ef4444;margin:0}.message-thread{flex:1;overflow-y:auto;padding:24px max(16px,calc((100% - 800px)/2));display:flex;flex-direction:column;gap:8px}.message-thread__loading{display:flex;justify-content:flex-start;gap:6px;padding:8px 0}.message-thread__dot{width:8px;height:8px;border-radius:50%;background-color:var(--text-secondary, #6b7280);animation:message-thread-pulse 1.2s ease-in-out infinite}.message-thread__dot:nth-child(2){animation-delay:.2s}.message-thread__dot:nth-child(3){animation-delay:.4s}@keyframes message-thread-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.chatbox-container{display:flex;flex-direction:column;width:100%;max-width:720px;margin:0 auto;background-color:#eaeaea;border-radius:8px;border:1.5px solid transparent;transition:border-color .15s}.chatbox-container:hover,.chatbox-container:focus-within{border-color:#9d9d9d}.chatbox-input-area{display:flex;padding:10px}.chatbox-input{flex:1;padding:10px;border:none;border-radius:4px;font-size:14px;background:#eaeaea;outline:none;resize:none;overflow-y:auto;min-height:40px;max-height:200px;line-height:1.5;font-family:inherit}.chatbox-actions{display:flex;padding:10px}.actions-left{display:flex;gap:10px;margin-right:0}.actions-right{display:flex;gap:10px;margin-left:auto}.chatbox-actions .chatbox-action-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;padding:10px;border-radius:4px;transition:background-color .2s}.chatbox-actions .chatbox-action-btn:hover{background-color:#efefef}.paywall{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px;background:var(--hover-color, #f5f5f5);border:1px solid var(--border-color, #e5e5e5);border-radius:8px}.paywall__message{font-size:.95rem;color:var(--text-secondary, #6b7280);margin:0;text-align:center}.paywall__cta{padding:8px 18px;background:#333;color:#fff;border-radius:6px;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s}.paywall__cta:hover{background:#111}.chat-page{display:flex;flex-direction:column;height:100%;width:100%}.chat-page__input{padding:16px max(16px,calc((100% - 800px)/2))}.chat-page__status{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary, #6b7280);font-size:.95rem}.chat-page__error{padding:12px 16px;background-color:#fef2f2;color:#ef4444;font-size:.875rem;border-bottom:1px solid #fecaca}.chat-page__paywall{padding:16px max(16px,calc((100% - 800px)/2));border-bottom:1px solid var(--border-color, #e5e5e5)}.chats{display:flex;flex-direction:column;height:100%;width:100%;max-width:1000px;margin:0 auto;padding:24px;gap:12px;font:inherit}.chats-header{display:flex;justify-content:space-between;align-items:center}.new-chat-btn{display:flex;align-items:center;gap:6px;border-radius:8px;border:none;background-color:#000;color:#fff;padding:8px 14px;cursor:pointer;transition:background-color .2s;font:inherit;font-size:14px;font-weight:500}.new-chat-btn:hover{background-color:#333}.search-bar{display:flex;width:100%;padding:10px;border-radius:8px;background-color:#eaeaea;border:1.5px solid transparent;transition:border-color .15s}.search-bar svg{margin-top:6px;color:#6b7280}.search-bar input{flex:1;padding:8px;border:none;border-radius:4px;font-size:14px;background:#eaeaea;outline:none;resize:none;overflow-y:auto;font-family:inherit}.search-bar:hover,.search-bar:focus-within{border-color:#9d9d9d}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#6b7280}.empty-state p{font-size:1rem;font-weight:500;margin:0}.chat-list{flex:1;overflow-y:auto;padding:0 8px}.recents-nav{display:flex;width:100%;flex-direction:column;background:transparent;font:inherit}.recent-item{position:relative;border-bottom:1px solid #e5e5e0;background-color:transparent;padding:0 12px;display:flex;align-items:center;gap:10px;width:100%;height:52px;transition:background-color .2s;font:inherit;font-weight:600;cursor:pointer}.recent-item:first-child{border-top:1px solid #e5e5e0}.recent-item:last-child{border-bottom:none}.recent-item:hover{background-color:#efefef}.recent-item-title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.recent-item-right{position:relative;display:flex;align-items:center;min-width:80px;justify-content:flex-end}.timestamp{font-size:.875rem;color:#6b7280;transition:opacity .15s}.recent-item:hover .timestamp{opacity:0}.row-actions{position:absolute;right:0;display:flex;gap:4px;opacity:0;transition:opacity .15s}.recent-item:hover .row-actions{opacity:1}.row-action-btn{display:flex;align-items:center;justify-content:center;padding:4px;border:none;background:none;cursor:pointer;border-radius:4px;color:#6b7280;transition:background-color .15s,color .15s}.row-action-btn:hover{background-color:#e5e5e0;color:#1a1a1a}.app{display:flex;height:100vh}.app-content{flex:1;display:flex;flex-direction:column;justify-content:flex-start;overflow-y:auto}.new-chat{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:24px;gap:12px;width:100%;max-width:800px;margin:0 auto}.new-chat__title{font-size:1.75rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin:0 0 8px;letter-spacing:-.02em}.new-chat__error{color:#ef4444;font-size:.875rem}.new-chat__loading{color:var(--text-secondary, #6b7280);font-size:.875rem;margin:0}.new-chat__paywall{width:100%;max-width:400px}.settings-layout{display:flex;height:100%;width:100%}.settings-sidebar{background-color:#fff}.settings-sidebar-header{padding:24px 16px 8px}.settings-sidebar-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.settings-content{flex:1;display:flex;flex-direction:column;background-color:#fff;overflow-y:auto}.settings-index{flex:1;display:flex;align-items:center;justify-content:center}.settings-content-title{font-size:1.25rem;font-weight:600;color:var(--text-primary);margin:0}.settings-content-description{font-size:.9rem;color:var(--text-secondary);margin:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:10px;font-weight:500;cursor:pointer;transition:background-color .2s;line-height:1}.btn:disabled{background-color:#ccc;color:#999;cursor:not-allowed}.btn--small{padding:8px 14px;font-size:13px}.btn--medium{padding:10px 16px;font-size:14px}.btn--large{padding:12px 24px;font-size:16px}.btn--primary{background-color:#333;color:#fff}.btn--primary:hover:not(:disabled){background-color:#555}.btn--secondary{background-color:#eee;color:#333}.btn--secondary:hover:not(:disabled){background-color:#ddd}.btn--option{background-color:#fff;color:#333;border:1px solid #ddd;transition:all .15s}.btn--option:hover:not(:disabled){border-color:#999}.btn--option.btn--selected{background-color:#333;color:#fff;border-color:#333}.btn--full-width{width:100%}.grid-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.grid-layout-loading,.grid-layout-empty,.grid-layout-error{font-size:.875rem;color:var(--text-secondary);padding:8px 0}.grid-layout-error{color:#dc2626}.grid-card{display:flex;flex-direction:column;border:1px solid var(--border-color);border-radius:12px;background-color:#fff;overflow:hidden}.grid-card-image-container{width:100%;height:140px;display:flex;align-items:center;justify-content:center;overflow:hidden}.grid-card-image{width:100%;height:100%;object-fit:contain;padding:12px}.grid-card-body{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 16px;text-align:center}.grid-card-provider{font-size:.95rem;font-weight:600;color:var(--text-primary)}.grid-card-connected-date,.grid-card-last-sync{font-size:.78rem;color:var(--text-secondary);margin:0}.grid-card-actions{margin-top:8px;width:100%}.grid-card-actions .btn{width:100%}.connections-page{padding:24px 32px;display:flex;flex-direction:column;gap:24px;max-width:720px}.connections-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.connections-header-text{display:flex;flex-direction:column;gap:4px}.connections-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.connections-description{font-size:.875rem;color:var(--text-secondary);margin:0}.connections-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:8px;font-size:.875rem}.connections-banner--success{background-color:#f0fdf4;color:#15803d;border:1px solid #bbf7d0}.connections-banner--error{background-color:#fef2f2;color:#dc2626;border:1px solid #fecaca}.connections-banner-dismiss{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;color:inherit;padding:0 4px;opacity:.7}.connections-banner-dismiss:hover{opacity:1}.connections-loading{font-size:.875rem;color:var(--text-secondary)}.connections-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:56px 24px;border:1px dashed var(--border-color);border-radius:12px;text-align:center}.connections-empty-icon{color:var(--text-secondary);opacity:.5}.connections-empty-title{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.connections-empty-subtitle{font-size:.85rem;color:var(--text-secondary);margin:0 0 4px}.connections-section{display:flex;flex-direction:column;gap:12px}.connections-section-title{font-size:.75rem;font-weight:700;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.05em}.connections-modal-overlay{position:fixed;inset:0;background-color:#0006;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.connections-modal{background:#fff;border-radius:14px;padding:24px;width:100%;max-width:420px;box-shadow:0 20px 60px #00000026;display:flex;flex-direction:column;gap:16px}.connections-modal-header{display:flex;align-items:center;justify-content:space-between}.connections-modal-title{font-size:1rem;font-weight:600;color:var(--text-primary);margin:0}.connections-modal-close{background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s}.connections-modal-close:hover{background:var(--hover-color);color:var(--text-primary)}.connections-modal-subtitle{font-size:.85rem;color:var(--text-secondary);margin:0}.connections-modal-list{display:flex;flex-direction:column;gap:8px}.connections-modal-option{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border-color);border-radius:10px;background-color:#fff;cursor:pointer;text-align:left;transition:background .15s,border-color .15s;width:100%}.connections-modal-option:hover{background-color:var(--hover-color);border-color:var(--text-secondary)}.connections-modal-option-icon{width:40px;height:40px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.connections-modal-option-logo{width:26px;height:26px;object-fit:contain;filter:brightness(0) invert(1)}.connections-modal-option-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.connections-modal-option-name{font-size:.9rem;font-weight:600;color:var(--text-primary)}.connections-modal-option-desc{font-size:.8rem;color:var(--text-secondary)}.general-settings{padding:24px 32px;display:flex;flex-direction:column;gap:0;max-width:640px}.general-header{display:flex;flex-direction:column;gap:4px;padding-bottom:24px;border-bottom:1px solid var(--border-color);margin-bottom:24px}.general-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.general-description{font-size:.875rem;color:var(--text-secondary);margin:0}.general-section{display:flex;flex-direction:column;gap:16px;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--border-color)}.general-section-title{font-size:.7rem;font-weight:700;color:var(--text-secondary);margin:0;text-transform:uppercase;letter-spacing:.06em}.general-section-subtitle{font-size:.8rem;font-weight:600;color:var(--text-primary);margin:1rem 0 .5rem}.general-field{display:flex;flex-direction:column;gap:6px;flex:1}.general-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.general-input{height:36px;padding:0 10px;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;color:var(--text-primary);background-color:#fff;outline:none;font-family:inherit;transition:border-color .15s}.general-input:focus{border-color:#555}.general-input:disabled{background-color:#f5f5f5;color:var(--text-secondary);cursor:not-allowed}.general-field-hint{font-size:.75rem;color:var(--text-secondary);margin:0}.general-row{display:flex;gap:16px}.general-option-group{display:flex;gap:8px;flex-wrap:wrap}.general-option-group.vertical{flex-direction:column;flex-wrap:nowrap}.general-option-group.wrap{flex-wrap:wrap}.general-option-btn{padding:6px 14px;border:1px solid var(--border-color);border-radius:6px;font-size:.8rem;font-family:inherit;background-color:#fff;color:var(--text-primary);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s;white-space:nowrap}.general-option-btn:hover{background-color:var(--hover-color)}.general-option-btn.selected{background-color:#333;border-color:#333;color:#fff}.general-save-row{display:flex;align-items:center;gap:12px;justify-content:flex-end;padding-top:4px}.general-save-status{font-size:.875rem}.general-save-status.success{color:#15803d}.general-save-status.error{color:#dc2626}.general-save-btn{padding:8px 18px;background-color:#333;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background-color .15s}.general-save-btn:hover{background-color:#111}.general-save-btn:disabled{opacity:.5;cursor:not-allowed}.billing-settings{padding:24px 32px;display:flex;flex-direction:column;max-width:640px}.billing-header{display:flex;flex-direction:column;gap:4px;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--border-color)}.billing-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.billing-description{font-size:.875rem;color:var(--text-secondary);margin:0}.billing-redirect-message{font-size:.875rem;padding:12px 16px;background:#f0fdf4;color:#15803d;border-radius:6px;margin-bottom:20px}.billing-redirect-message--cancel{background:#fefce8;color:#854d0e}.billing-section{display:flex;flex-direction:column;gap:12px;padding-bottom:28px}.billing-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.billing-plan-card{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1px solid var(--border-color);border-radius:8px}.billing-plan-info{display:flex;flex-direction:column;gap:4px}.billing-plan-name{font-size:1rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:8px}.billing-plan-detail{font-size:.8rem;color:var(--text-secondary);margin:0}.billing-plan-actions{display:flex;gap:8px;flex-shrink:0}.billing-badge{font-size:.7rem;padding:2px 8px;background:var(--border-color);border-radius:10px;color:var(--text-secondary);font-weight:500}.billing-btn{padding:8px 18px;border-radius:6px;font-size:.875rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s}.billing-btn:disabled{opacity:.5;cursor:not-allowed}.billing-btn--primary{background:#333;color:#fff;border:none}.billing-btn--primary:hover:not(:disabled){background:#111}.billing-btn--secondary{background:transparent;color:var(--text-primary);border:1px solid var(--border-color)}.billing-btn--secondary:hover:not(:disabled){background:var(--hover-color)}.billing-loading{font-size:.875rem;color:var(--text-secondary);padding:16px 0;margin:0}.billing-error{font-size:.875rem;color:#dc2626;margin:8px 0 0}.account-settings{padding:24px 32px;display:flex;flex-direction:column;max-width:640px}.account-header{display:flex;flex-direction:column;gap:4px;padding-bottom:16px;margin-bottom:24px;border-bottom:1px solid var(--border-color)}.account-title{font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0}.account-description{font-size:.875rem;color:var(--text-secondary);margin:0}.account-section{display:flex;flex-direction:column;gap:12px;padding-bottom:28px}.account-section--last{padding-bottom:0}.account-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin:0}.account-info-card{padding:16px;border:1px solid var(--border-color);border-radius:8px}.account-email{font-size:.875rem;color:var(--text-primary);margin:0}.account-devices-card{display:flex;align-items:flex-start;gap:14px;padding:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--hover-color)}.account-devices-icon{color:var(--text-secondary);flex-shrink:0;margin-top:1px}.account-devices-text{display:flex;flex-direction:column;gap:3px}.account-devices-title{font-size:.875rem;font-weight:500;color:var(--text-primary);margin:0}.account-devices-subtitle{font-size:.8rem;color:var(--text-secondary);margin:0}.account-action-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border-color);border-radius:8px}.account-action-info{display:flex;flex-direction:column;gap:3px}.account-action-label{font-size:.875rem;font-weight:500;color:var(--text-primary);margin:0}.account-action-desc{font-size:.8rem;color:var(--text-secondary);margin:0}.account-action-desc--warning{color:#d97706}.account-confirm-row{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--hover-color)}.account-confirm-text{font-size:.875rem;color:var(--text-primary);margin:0}.account-confirm-actions{display:flex;gap:8px}.account-btn{padding:8px 18px;border-radius:6px;font-size:.875rem;font-family:inherit;font-weight:500;cursor:pointer;transition:background .15s,opacity .15s;white-space:nowrap;align-self:flex-start}.account-btn:disabled{opacity:.5;cursor:not-allowed}.account-btn--secondary{background:var(--hover-color);color:var(--text-primary);border:1px solid var(--border-color)}.account-btn--secondary:hover:not(:disabled){background:var(--border-color)}.account-btn--danger{background:#dc2626;color:#fff;border:none}.account-btn--danger:hover:not(:disabled){background:#b91c1c}.account-error{font-size:.875rem;color:#dc2626;margin:16px 0 0}.dashboard-page{padding:1.5rem 2rem;max-width:1100px}.dashboard-layout{display:grid;grid-template-columns:1fr 280px;gap:2rem;align-items:start}@media(max-width:768px){.dashboard-layout{grid-template-columns:1fr}}.dashboard-charts{min-width:0}.dashboard-logs{display:flex;flex-direction:column;gap:1.5rem;position:sticky;top:1.5rem}.dashboard-logs .dashboard-log-section{margin-bottom:0}.dashboard-log-hint{color:var(--color-text-muted, #64748b);font-size:.8rem;margin:0 0 .75rem}.dashboard-header{margin-bottom:1.5rem}.dashboard-title{display:flex;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:600;margin:0 0 .25rem}.dashboard-description{color:var(--color-text-muted, #64748b);margin:0;font-size:.9rem}.dashboard-section-title{font-size:1rem;font-weight:600;margin:0 0 .75rem}.dashboard-section-subtitle{font-size:.9rem;font-weight:600;margin:1rem 0 .5rem}.dashboard-macros-label{font-size:.9rem;color:var(--color-text-muted, #64748b);align-self:center}.dashboard-log-section{margin-bottom:2rem}.dashboard-log-form{display:flex;flex-direction:column;gap:.5rem}.dashboard-log-form .dashboard-input{width:100%;max-width:100%}.dashboard-input{padding:.5rem .75rem;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.9rem}.dashboard-input:focus{outline:none;border-color:var(--color-primary, #6366f1)}.dashboard-chart-section{margin-bottom:2rem}.dashboard-chart-container{background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:8px;padding:1rem}.dashboard-loading,.dashboard-empty,.dashboard-error{margin:1rem 0;font-size:.9rem}.dashboard-error{color:var(--color-error, #dc2626)}.dashboard-empty{color:var(--color-text-muted, #64748b)}.plans-page{display:flex;height:100%;overflow:hidden}.plans-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border-color, #e5e5e0);display:flex;flex-direction:column;overflow:hidden}.plans-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px 12px;border-bottom:1px solid var(--border-color, #e5e5e0)}.plans-sidebar-header h2{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a)}.plans-new-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;background-color:#000;color:#fff;border:none;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:opacity .15s}.plans-new-btn:hover{opacity:.8}.plans-nav{flex:1;overflow-y:auto;padding:8px 0}.plans-list-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:10px 16px;background:none;border:none;border-left:3px solid transparent;text-align:left;cursor:pointer;transition:background .15s}.plans-list-item:hover{background-color:var(--hover-color, #efeee9)}.plans-list-item--active{background-color:var(--hover-color, #efeee9);border-left-color:#000}.plans-list-item-header{display:flex;align-items:center;gap:6px}.plans-list-item-title{font-size:.875rem;font-weight:500;color:var(--text-primary, #1a1a1a);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.plans-list-item-date{font-size:.75rem;color:var(--text-secondary, #6b7280)}.plans-list-loading{padding:8px 16px;display:flex;flex-direction:column;gap:8px}.plans-skeleton-item{height:58px;background:var(--hover-color, #efeee9);border-radius:6px;animation:plans-pulse 1.5s ease-in-out infinite}@keyframes plans-pulse{0%,to{opacity:1}50%{opacity:.4}}.plans-list-empty{padding:24px 16px;text-align:center;color:var(--text-secondary, #6b7280);font-size:.875rem;display:flex;flex-direction:column;align-items:center;gap:12px}.plans-list-empty p{margin:0}.plans-list-empty-btn{background:none;border:none;color:#3b82f6;font-size:.875rem;cursor:pointer;padding:0;text-decoration:underline}.plans-list-error{padding:12px 16px;font-size:.875rem;color:#ef4444}.plans-type-badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.plans-type-badge--workout{background-color:#dbeafe;color:#1d4ed8}.plans-type-badge--nutrition{background-color:#dcfce7;color:#15803d}.plans-type-badge--general{background-color:#f3f4f6;color:#4b5563}.plans-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.plans-empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--text-secondary, #6b7280);padding:48px 32px;text-align:center}.plans-empty-state h2{font-size:1.4rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a)}.plans-empty-state p{font-size:.9rem;margin:0;max-width:380px}.plans-generate-form{max-width:680px;width:100%;padding:40px 48px;display:flex;flex-direction:column;gap:24px}.plans-generate-form h2{font-size:1.4rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a)}.plans-form-field{display:flex;flex-direction:column;gap:8px}.plans-form-label{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #6b7280)}.plans-form-input{padding:10px 12px;border:1px solid var(--border-color, #e5e5e0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #1a1a1a);background:#fff;outline:none;transition:border-color .15s}.plans-form-input:focus{border-color:#6b7280}.plans-form-textarea{padding:10px 12px;border:1px solid var(--border-color, #e5e5e0);border-radius:8px;font-size:.9rem;color:var(--text-primary, #1a1a1a);background:#fff;outline:none;resize:vertical;font-family:inherit;line-height:1.5;transition:border-color .15s}.plans-form-textarea:focus{border-color:#6b7280}.plans-type-selector{display:flex;gap:8px}.plans-type-btn{padding:7px 16px;border:1px solid var(--border-color, #e5e5e0);border-radius:20px;font-size:.875rem;font-weight:500;background:#fff;color:var(--text-primary, #1a1a1a);cursor:pointer;transition:all .15s}.plans-type-btn:hover{background-color:var(--hover-color, #efeee9)}.plans-type-btn--selected{background-color:#000;color:#fff;border-color:#000}.plans-form-actions{display:flex;justify-content:flex-end;gap:10px}.plans-form-cancel{padding:9px 18px;border:1px solid var(--border-color, #e5e5e0);border-radius:8px;background:#fff;font-size:.875rem;cursor:pointer;color:var(--text-primary, #1a1a1a);transition:background .15s}.plans-form-cancel:hover{background-color:var(--hover-color, #efeee9)}.plans-generate-submit{display:flex;align-items:center;gap:6px;padding:9px 20px;background-color:#000;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:opacity .15s}.plans-generate-submit:hover:not(:disabled){opacity:.8}.plans-generate-submit:disabled{opacity:.45;cursor:not-allowed}.plans-gen-error{color:#ef4444;font-size:.875rem;margin:0}.plans-paywall-link{color:#3b82f6;text-decoration:underline}.plans-detail{display:flex;flex-direction:column;height:100%}.plans-detail-header{padding:28px 40px 20px;border-bottom:1px solid var(--border-color, #e5e5e0);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.plans-detail-title-row{display:flex;align-items:center;gap:8px}.plans-detail-title{font-size:1.5rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a);cursor:pointer;border-radius:4px;padding:2px 4px;transition:background .15s}.plans-detail-title:hover{background-color:var(--hover-color, #efeee9)}.plans-title-edit{display:flex;align-items:center;gap:6px;flex:1}.plans-title-input{flex:1;font-size:1.4rem;font-weight:600;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;padding:4px 8px;outline:none;font-family:inherit;color:var(--text-primary, #1a1a1a)}.plans-title-input:focus{border-color:#6b7280}.plans-title-action{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;background:#fff;cursor:pointer;color:var(--text-secondary, #6b7280);transition:all .15s;flex-shrink:0}.plans-title-action:hover{background-color:var(--hover-color, #efeee9)}.plans-detail-meta{display:flex;align-items:center;gap:10px}.plans-detail-date{font-size:.8rem;color:var(--text-secondary, #6b7280)}.plans-detail-actions{display:flex;align-items:center;gap:8px}.plans-action-btn{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;background:#fff;font-size:.8rem;font-weight:500;cursor:pointer;color:var(--text-primary, #1a1a1a);transition:background .15s}.plans-action-btn:hover{background-color:var(--hover-color, #efeee9)}.plans-action-btn--danger{color:#dc2626;border-color:#fca5a5}.plans-action-btn--danger:hover{background-color:#fef2f2}.plans-delete-confirm{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--text-secondary, #6b7280)}.plans-detail-body{flex:1;overflow-y:auto;padding:28px 40px 40px}.plans-no-content{color:var(--text-secondary, #6b7280);font-style:italic}.plans-weekly{display:flex;flex-direction:column;gap:40px;max-width:860px}.plans-week-section{display:flex;flex-direction:column;gap:16px}.plans-week-heading{font-size:1.05rem;font-weight:700;color:var(--text-primary, #1a1a1a);margin:0;padding-bottom:10px;border-bottom:2px solid var(--border-color, #e5e5e0);text-transform:uppercase;letter-spacing:.04em}.plans-week-intro{font-size:.875rem;color:var(--text-secondary, #6b7280);line-height:1.6}.plans-week-intro p{margin:0}.plans-days-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.plans-day-card{background:#fff;border:1px solid var(--border-color, #e5e5e0);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;min-height:120px}.plans-day-card--rest{background:var(--hover-color, #f9f9f7);border-style:dashed;opacity:.8}.plans-day-header{display:flex;align-items:center;gap:5px}.plans-day-rest-icon{color:var(--text-secondary, #9ca3af);flex-shrink:0}.plans-day-heading{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-primary, #1a1a1a)}.plans-day-card--rest .plans-day-heading{color:var(--text-secondary, #9ca3af)}.plans-day-body{font-size:.825rem;line-height:1.55;color:var(--text-primary, #1a1a1a);flex:1}.plans-day-body p{margin:0 0 6px}.plans-day-body ul,.plans-day-body ol{margin:0;padding-left:1.25em;display:flex;flex-direction:column;gap:3px}.plans-day-body li{margin:0}.plans-day-body strong{font-weight:600}.plans-day-body h4{font-size:.775rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary, #6b7280);margin:8px 0 4px}.plans-day-empty{font-size:.8rem;color:var(--text-secondary, #9ca3af);font-style:italic;margin:0}.plans-markdown{font-size:.925rem;line-height:1.7;color:var(--text-primary, #1a1a1a);max-width:720px}.plans-markdown h1,.plans-markdown h2,.plans-markdown h3,.plans-markdown h4{margin:1.4em 0 .5em;font-weight:600;line-height:1.3}.plans-markdown h1{font-size:1.4rem}.plans-markdown h2{font-size:1.2rem}.plans-markdown h3{font-size:1rem}.plans-markdown h1:first-child,.plans-markdown h2:first-child,.plans-markdown h3:first-child{margin-top:0}.plans-markdown p{margin:0 0 .9em}.plans-markdown ul,.plans-markdown ol{margin:0 0 .9em;padding-left:1.5em}.plans-markdown li{margin-bottom:.3em}.plans-markdown strong{font-weight:600}.plans-markdown table{width:100%;border-collapse:collapse;margin:0 0 1em;font-size:.875rem}.plans-markdown th,.plans-markdown td{border:1px solid var(--border-color, #e5e5e0);padding:8px 12px;text-align:left}.plans-markdown th{background-color:var(--hover-color, #efeee9);font-weight:600}.plans-markdown code{background-color:var(--hover-color, #efeee9);padding:2px 5px;border-radius:3px;font-size:.875em;font-family:monospace}.plans-markdown hr{border:none;border-top:1px solid var(--border-color, #e5e5e0);margin:1.2em 0}.wls-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-color, #e5e5e0);display:flex;flex-direction:column;overflow:hidden;height:100%}.wls-header{display:flex;align-items:center;gap:8px;padding:18px 16px 14px;border-bottom:1px solid var(--border-color, #e5e5e0);font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a1a);flex-shrink:0}.wls-week-nav{display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--border-color, #e5e5e0);flex-shrink:0;gap:4px}.wls-week-label{flex:1;text-align:center;font-size:.82rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.wls-nav-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:none;border-radius:5px;cursor:pointer;color:var(--text-secondary, #666);transition:background .12s;flex-shrink:0}.wls-nav-btn:hover:not(:disabled){background-color:var(--hover-color, #efeee9)}.wls-nav-btn:disabled{opacity:.3;cursor:default}.wls-day-list{flex:1;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:3px}.wls-day-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px;background:none;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .1s,border-color .1s}.wls-day-row:hover{background-color:var(--hover-color, #efeee9)}.wls-day-row--active{background-color:#3b82f612;border-color:#3b82f6}.wls-day-label{display:flex;flex-direction:column;gap:1px;width:32px;flex-shrink:0}.wls-day-abbr{font-size:.65rem;color:var(--text-secondary, #888);letter-spacing:.03em;line-height:1}.wls-day-num{font-size:.95rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1}.wls-bar-area{flex:1;display:flex;align-items:center;min-width:0}.wls-bar-track{flex:1;height:6px;background-color:var(--border-color, #e0dfd9);border-radius:3px;overflow:hidden}.wls-bar-fill{height:100%;border-radius:3px;transition:width .3s ease;min-width:3px}.wls-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.wls-empty-dash{font-size:.85rem;color:var(--border-color, #ccc);line-height:1}.wls-value{width:40px;text-align:right;font-size:.8rem;font-weight:600;color:var(--text-primary, #1a1a1a);flex-shrink:0;white-space:nowrap}.wls-week-avg{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;border-top:1px solid var(--border-color, #e5e5e0);font-size:.75rem;color:var(--text-secondary, #888);flex-shrink:0}.wls-week-avg span:last-child{font-weight:600;color:var(--text-primary, #1a1a1a)}.wls-footer-slot{border-top:1px solid var(--border-color, #e5e5e0);flex-shrink:0}.wls-shimmer{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--hover-color, #efeee9) 25%,#e0dfd9 50%,var(--hover-color, #efeee9) 75%);background-size:200% 100%;animation:wls-shimmer 1.4s infinite}@keyframes wls-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.meals-page{display:flex;height:100%;overflow:hidden}.meals-loading{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, #888)}.meals-loading-spinner{animation:spin .8s linear infinite}.meals-sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border-color, #e5e5e0);display:flex;flex-direction:column;overflow:hidden}.meals-sidebar-header{display:flex;align-items:center;gap:8px;padding:18px 16px 14px;border-bottom:1px solid var(--border-color, #e5e5e0);font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.meals-date-list{flex:1;overflow-y:auto;padding:6px 0}.meals-date-row{display:flex;flex-direction:column;gap:3px;width:100%;padding:9px 16px;background:none;border:none;border-left:3px solid transparent;text-align:left;cursor:pointer;transition:background .12s}.meals-date-row:hover{background-color:var(--hover-color, #efeee9)}.meals-date-row--active{background-color:var(--hover-color, #efeee9);border-left-color:#000}.meals-date-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.meals-date-label{font-size:.825rem;font-weight:500;color:var(--text-primary, #1a1a1a);flex:1}.meals-date-kcal{font-size:.775rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap}.meals-date-count{font-size:.7rem;font-weight:500;padding:1px 6px;border-radius:10px;background-color:#e4e3de;color:var(--text-secondary, #555)}.meals-date-macros{display:flex;align-items:center;gap:4px;font-size:.72rem;color:var(--text-secondary, #999)}.meals-date-macros-sep{color:var(--border-color, #ccc)}.meals-date-macros-shimmer{height:10px;width:120px;border-radius:4px;background:linear-gradient(90deg,var(--hover-color, #efeee9) 25%,#e0dfd9 50%,var(--hover-color, #efeee9) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite}.meals-templates-section{border-top:1px solid var(--border-color, #e5e5e0);flex-shrink:0}.meals-templates-toggle{display:flex;align-items:center;gap:6px;width:100%;padding:10px 16px;background:none;border:none;text-align:left;cursor:pointer;font-size:.8rem;font-weight:500;color:var(--text-secondary, #666);transition:background .12s}.meals-templates-toggle:hover{background-color:var(--hover-color, #efeee9)}.meals-templates-chevron{margin-left:auto;font-size:.7rem;color:var(--text-secondary, #aaa)}.meals-templates-list{max-height:220px;overflow-y:auto;padding:4px 0 8px}.meals-templates-empty{font-size:.8rem;color:var(--text-secondary, #aaa);padding:8px 16px;margin:0}.meals-template-row{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 16px}.meals-template-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.meals-template-name{font-size:.8rem;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meals-template-apply{padding:3px 8px;background-color:#000;color:#fff;border:none;border-radius:5px;font-size:.72rem;font-weight:500;cursor:pointer;transition:opacity .15s;flex-shrink:0}.meals-template-apply:hover{opacity:.75}.meals-type-badge{display:inline-block;font-size:.65rem;font-weight:500;padding:1px 5px;border-radius:4px;width:fit-content}.meals-type-badge--breakfast{background-color:#fef9c3;color:#854d0e}.meals-type-badge--lunch{background-color:#dcfce7;color:#166534}.meals-type-badge--dinner{background-color:#dbeafe;color:#1e40af}.meals-type-badge--snack{background-color:#fce7f3;color:#9d174d}.meals-main{flex:1;overflow-y:auto;padding:28px 36px;display:flex;flex-direction:column;gap:20px;min-width:0}.day-nav{display:flex;align-items:center;gap:8px}.day-nav-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;cursor:pointer;color:var(--text-secondary, #555);transition:background .12s;flex-shrink:0}.day-nav-btn:hover{background-color:var(--hover-color, #efeee9)}.day-heading{font-size:1.25rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a);flex:1}.day-today-btn{padding:4px 10px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;background:none;font-size:.78rem;cursor:pointer;color:var(--text-secondary, #555);transition:background .12s}.day-today-btn:hover{background-color:var(--hover-color, #efeee9)}.day-macro-bar{display:flex;align-items:center;padding:14px 20px;background-color:var(--hover-color, #f7f6f1);border-radius:10px;flex-wrap:wrap;gap:0}.day-macro-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:0 20px}.day-macro-item:first-child{padding-left:0}.day-macro-sep{width:1px;height:28px;background-color:var(--border-color, #e5e5e0)}.day-macro-value{font-size:1.15rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.day-macro-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary, #888)}.day-slots{display:flex;flex-direction:column;gap:12px}.slot-card{border:1px solid var(--border-color, #e5e5e0);border-radius:10px;background-color:#fff;overflow:hidden}.slot-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid transparent}.slot-card:has(.slot-items) .slot-header,.slot-card:has(.day-add-form) .slot-header,.slot-card:has(.add-search-view) .slot-header,.slot-card:has(.add-confirm-view) .slot-header{border-bottom-color:var(--border-color, #f0efea)}.slot-title{display:flex;align-items:center;gap:8px}.slot-icon{color:var(--text-secondary, #666);flex-shrink:0}.slot-label{font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.slot-count{font-size:.72rem;color:var(--text-secondary, #888);background-color:var(--hover-color, #efeee9);padding:1px 6px;border-radius:10px}.slot-header-kcal{font-size:.82rem;font-weight:600;color:var(--text-secondary, #888)}.slot-header-actions{display:flex;align-items:center;gap:6px}.slot-add-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;background:none;font-size:.78rem;cursor:pointer;color:var(--text-secondary, #555);transition:background .12s}.slot-add-btn:hover{background-color:var(--hover-color, #efeee9)}.slot-menu-wrap{position:relative}.slot-menu-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;color:var(--text-secondary, #888);transition:background .12s}.slot-menu-btn:hover{background-color:var(--hover-color, #efeee9);border-color:var(--border-color, #e5e5e0)}.slot-menu-dropdown{position:absolute;top:calc(100% + 4px);right:0;z-index:20;background:#fff;border:1px solid var(--border-color, #e5e5e0);border-radius:8px;box-shadow:0 4px 16px #0000001a;min-width:160px;overflow:hidden}.slot-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:9px 14px;background:none;border:none;text-align:left;font-size:.825rem;color:var(--text-primary, #1a1a1a);cursor:pointer;transition:background .1s}.slot-menu-item:hover{background-color:var(--hover-color, #efeee9)}.slot-items{list-style:none;margin:0;padding:6px 0}.slot-item-row{display:flex;align-items:center;gap:10px;padding:10px 16px;transition:background .1s}.slot-item-row:hover{background-color:var(--hover-color, #f9f8f4)}.slot-item-left{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.slot-item-name{font-size:.875rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot-item-qty{font-size:.75rem;color:var(--text-secondary, #888)}.slot-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.slot-item-kcal{font-size:.875rem;font-weight:700;color:var(--text-primary, #1a1a1a)}.slot-item-compact-macros{font-size:.7rem;color:var(--text-secondary, #888)}.slot-item-delete{background:none;border:none;cursor:pointer;padding:3px;color:var(--text-secondary, #ccc);transition:color .12s;border-radius:4px;flex-shrink:0;display:flex;align-items:center}.slot-item-delete:hover{color:#dc2626}.day-add-form{padding:14px 16px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border-color, #f0efea);background-color:var(--hover-color, #faf9f5)}.day-search-row{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.day-search-input-wrap{position:relative;flex:1;min-width:180px;display:flex;align-items:center}.day-search-icon{position:absolute;left:8px;color:var(--text-secondary, #aaa);pointer-events:none}.day-search-input{width:100%;padding:7px 30px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.83rem;outline:none;box-sizing:border-box;background-color:#fff}.day-search-input:focus{border-color:#000}.day-search-spinner{position:absolute;right:8px;color:var(--text-secondary, #aaa);animation:spin .8s linear infinite}.day-source-toggle{display:flex;gap:4px;flex-shrink:0}.day-source-btn{padding:5px 8px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;background:none;font-size:.72rem;cursor:pointer;color:var(--text-secondary, #555);white-space:nowrap;transition:all .12s}.day-source-btn--active{background-color:#000;color:#fff;border-color:#000}.day-search-results{list-style:none;margin:0;padding:0;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;overflow:hidden;max-height:220px;overflow-y:auto;background:#fff}.day-search-result-btn{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;width:100%;padding:8px 12px;background:none;border:none;border-bottom:1px solid var(--border-color, #f0efea);text-align:left;cursor:pointer;transition:background .1s}.day-search-result-btn:last-child{border-bottom:none}.day-search-result-btn:hover{background-color:var(--hover-color, #efeee9)}.day-result-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.day-result-name{font-size:.8rem;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-result-meta{font-size:.7rem;color:var(--text-secondary, #aaa);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.day-result-kcal{font-size:.72rem;color:var(--text-secondary, #888);white-space:nowrap;flex-shrink:0;padding-top:1px}.day-form-fields{display:flex;flex-direction:column;gap:6px}.day-form-qty-row{display:flex;gap:6px;flex-wrap:wrap}.day-form-input{padding:6px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.83rem;background-color:#fff;color:var(--text-primary, #1a1a1a);outline:none;transition:border-color .12s;box-sizing:border-box}.day-form-input:focus{border-color:#000}.day-form-input:disabled{opacity:.6;cursor:not-allowed}.day-form-input--name{width:100%}.day-form-input--qty{width:72px}.day-form-input--unit{width:64px}.day-form-input--macro{width:72px}.day-form-error{font-size:.78rem;color:#dc2626;margin:0}.day-form-actions{display:flex;gap:6px;justify-content:flex-end}.day-form-done{padding:6px 14px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;background:none;font-size:.83rem;cursor:pointer;color:var(--text-secondary, #555);transition:background .12s}.day-form-done:hover{background-color:var(--hover-color, #efeee9)}.day-form-add{display:flex;align-items:center;gap:4px;padding:6px 14px;background-color:#000;color:#fff;border:none;border-radius:6px;font-size:.83rem;font-weight:500;cursor:pointer;transition:opacity .12s}.day-form-add:hover{opacity:.8}.day-form-add:disabled{opacity:.45;cursor:not-allowed}.add-search-view{padding:14px 16px;display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border-color, #f0efea);background-color:var(--hover-color, #faf9f5)}.add-search-header{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.add-search-footer{display:flex;align-items:center;justify-content:space-between}.add-search-manual-btn{background:none;border:none;font-size:.8rem;color:var(--text-secondary, #666);cursor:pointer;padding:2px 0}.add-search-manual-btn:hover{color:var(--text-primary, #1a1a1a);text-decoration:underline}.add-search-close-btn{background:none;border:none;font-size:.8rem;color:var(--text-secondary, #aaa);cursor:pointer;padding:2px 0}.add-search-close-btn:hover{color:var(--text-primary, #1a1a1a)}.add-confirm-view{padding:16px;display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--border-color, #f0efea);background-color:var(--hover-color, #faf9f5)}.add-confirm-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.add-confirm-name{font-size:1rem;font-weight:700;color:var(--text-primary, #1a1a1a);flex:1;min-width:0}.add-confirm-back{background:none;border:none;font-size:.8rem;color:var(--text-secondary, #666);cursor:pointer;white-space:nowrap;flex-shrink:0;padding:2px 0}.add-confirm-back:hover{color:var(--text-primary, #1a1a1a)}.add-confirm-qty-row{display:flex;gap:8px}.add-confirm-qty-input{width:80px;padding:8px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9rem;font-weight:600;background-color:#fff;color:var(--text-primary, #1a1a1a);outline:none;flex-shrink:0}.add-confirm-qty-input:focus{border-color:#000}.add-confirm-unit-select{flex:1;padding:8px 28px 8px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.85rem;background-color:#fff;color:var(--text-primary, #1a1a1a);outline:none;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.add-confirm-unit-select:focus{border-color:#000}.add-confirm-name-input{width:100%;padding:8px 10px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:.9rem;background-color:#fff;color:var(--text-primary, #1a1a1a);outline:none;box-sizing:border-box}.add-confirm-name-input:focus{border-color:#000}.add-confirm-macros{display:flex;gap:0;background-color:var(--border-color, #f0ede6);border-radius:10px;overflow:hidden}.add-confirm-macro-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px}.add-confirm-macro-val{font-size:1.2rem;font-weight:700;line-height:1}.add-confirm-macro-label{font-size:.68rem;color:var(--text-secondary, #888);text-transform:lowercase}.add-confirm-macro-input{width:100%;max-width:60px;padding:4px 6px;border:1px solid var(--border-color, #d1d5db);border-radius:4px;font-size:1rem;font-weight:700;text-align:center;background-color:#fff;color:var(--text-primary, #1a1a1a);outline:none}.add-confirm-submit{width:100%;padding:12px;background-color:#1a1a1a;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s;display:flex;align-items:center;justify-content:center;gap:6px}.add-confirm-submit:hover:not(:disabled){opacity:.85}.add-confirm-submit:disabled{opacity:.4;cursor:not-allowed}.day-modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.day-modal{background:#fff;border-radius:12px;padding:24px;width:340px;max-width:90vw;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;gap:8px}.day-modal-title{font-size:1rem;font-weight:600;margin:0;color:var(--text-primary, #1a1a1a)}.day-modal-hint{font-size:.825rem;color:var(--text-secondary, #888);margin:0 0 4px}.meals-nutrition-dashboard{display:flex;flex-direction:column;gap:12px;padding:20px 24px;background-color:var(--hover-color, #f7f6f1);border-radius:12px;border:1px solid var(--border-color, #e5e5e0)}.meals-cal-header{display:flex;justify-content:space-between;align-items:flex-start}.meals-cal-left{display:flex;flex-direction:column;gap:2px}.meals-cal-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.meals-cal-label{font-size:.78rem;color:var(--text-secondary, #888)}.meals-cal-value{font-size:2rem;font-weight:700;line-height:1}.meals-cal-goal-label{font-size:.72rem;color:var(--text-secondary, #888)}.meals-cal-goal-value{font-size:1rem;font-weight:700;color:var(--text-primary, #1a1a1a)}.meals-cal-track{height:10px;background-color:var(--border-color, #e0dfd9);border-radius:5px;overflow:hidden}.meals-cal-fill{height:100%;border-radius:5px;transition:width .3s ease;min-width:4px}.meals-cal-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.meals-remaining-hint{font-size:.78rem;margin:0}.meals-remaining-hint--ok{color:#16a34a}.meals-remaining-hint--near{color:#d97706}.meals-remaining-hint--over{color:#dc2626}.meals-streak-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background-color:#fff7ed;color:#c2410c;border-radius:20px;font-size:.75rem;font-weight:600;border:1px solid #fed7aa}.meals-macro-cols{display:flex;border-top:1px solid var(--border-color, #e5e5e0);padding-top:16px;margin-top:4px}.meals-macro-col{flex:1;display:flex;flex-direction:column;gap:6px;padding:0 16px;border-right:1px solid var(--border-color, #e5e5e0)}.meals-macro-col:first-child{padding-left:0}.meals-macro-col:last-child{border-right:none;padding-right:0}.meals-macro-col-header{display:flex;justify-content:space-between;align-items:center}.meals-macro-col-label{font-size:.78rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.meals-macro-col-pct{font-size:.72rem;color:var(--text-secondary, #888)}.meals-macro-col-value{font-size:1.5rem;font-weight:700;line-height:1}.meals-macro-col-unit{font-size:1rem;font-weight:500}.meals-macro-col-track{height:6px;background-color:var(--border-color, #e0dfd9);border-radius:3px;overflow:hidden}.meals-macro-col-fill{height:100%;border-radius:3px;transition:width .3s ease;min-width:2px}.meals-macro-col-goal{font-size:.7rem;color:var(--text-secondary, #888)}.meals-breakdown-pills{display:flex;flex-wrap:wrap;gap:8px;padding:4px 0 8px}.meals-breakdown-pill{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);background:var(--hover-color);border-radius:99px;padding:3px 10px}.meals-breakdown-pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.meals-weekly-trend{background-color:var(--hover-color, #f7f6f1);border:1px solid var(--border-color, #e5e5e0);border-radius:12px;padding:12px 16px 8px}.meals-trend-toggle{display:flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;background:none;font-size:.78rem;cursor:pointer;color:var(--text-secondary, #555);transition:background .12s;flex-shrink:0}.meals-trend-toggle:hover{background-color:var(--hover-color, #efeee9)}.meals-trend-toggle--active{background-color:#000;color:#fff;border-color:#000}.nutrition-hydration-section{margin-top:16px;padding:16px;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg, var(--bg-secondary));display:flex;flex-direction:column;gap:14px}.nutrition-hydration-top{display:flex;align-items:center;gap:16px}.nutrition-hydration-info{flex:1;display:flex;flex-direction:column;gap:4px}.nutrition-hydration-amount-row{display:flex;align-items:baseline;gap:6px}.nutrition-hydration-number{font-size:32px;font-weight:700;color:#3b82f6;line-height:1}.nutrition-hydration-unit{font-size:14px;font-weight:500;color:var(--text-secondary)}.nutrition-hydration-goal-label{font-size:13px;color:var(--text-secondary)}.nutrition-hydration-bar-track{width:100%;height:8px;background:var(--hover-color, rgba(255,255,255,.08));border-radius:99px;overflow:hidden;margin-top:4px}.nutrition-hydration-bar-fill{height:100%;background:#3b82f6;border-radius:99px;transition:width .3s ease;min-width:0}.nutrition-hydration-quick-add{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.nutrition-hydration-add-btn{padding:10px 0;border-radius:8px;border:1px solid var(--border-color);background:var(--hover-color, rgba(255,255,255,.06));color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;text-align:center}.nutrition-hydration-add-btn:hover:not(:disabled){background:#3b82f626;border-color:#3b82f6}.nutrition-hydration-add-btn:disabled{opacity:.5;cursor:not-allowed}.nutrition-hydration-undo-toast{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-radius:8px;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);font-size:13px;color:var(--text-secondary)}.nutrition-hydration-undo-btn{background:none;border:none;color:#3b82f6;font-size:13px;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}.nutrition-hydration-undo-btn:hover{opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.esm-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.esm-modal{background:#fff;border-radius:12px;width:560px;max-width:95vw;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000002e;overflow:hidden}.esm-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;border-bottom:1px solid var(--border-color, #e5e5e0)}.esm-title{font-size:.95rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.esm-close{background:none;border:none;cursor:pointer;color:var(--text-secondary, #6b7280);padding:4px;border-radius:6px;display:flex}.esm-close:hover{background:var(--hover-color, #efeee9)}.esm-filter-chips{display:flex;gap:6px;padding:10px 20px 8px;border-bottom:1px solid var(--border-color, #e5e5e0)}.esm-chip{padding:4px 12px;border-radius:20px;border:1px solid var(--border-color, #e5e5e0);background:none;font-size:.78rem;font-weight:500;cursor:pointer;color:var(--text-secondary, #6b7280);transition:all .15s}.esm-chip:hover{background:var(--hover-color, #efeee9)}.esm-chip--active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.esm-search-row{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid var(--border-color, #e5e5e0)}.esm-search-icon{color:var(--text-secondary, #6b7280);flex-shrink:0}.esm-input{flex:1;border:none;outline:none;font-size:.9rem;color:var(--text-primary, #1a1a1a);background:none}.esm-select-row{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid var(--border-color, #e5e5e0);position:relative}.esm-select-icon{color:var(--text-secondary, #6b7280);flex-shrink:0;pointer-events:none}.esm-select{flex:1;border:none;outline:none;font-size:.9rem;color:var(--text-primary, #1a1a1a);background:none;appearance:none;cursor:pointer;text-transform:capitalize}.esm-results{flex:1;overflow-y:auto;padding:4px 0}.esm-status,.esm-hint{padding:16px 20px;font-size:.85rem;color:var(--text-secondary, #6b7280)}.esm-error{padding:10px 20px;font-size:.82rem;color:#b45309;background:#fffbeb}.esm-result-row{width:100%;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 20px;background:none;border:none;border-bottom:1px solid var(--border-color, #e5e5e0);cursor:pointer;text-align:left;transition:background .12s}.esm-result-row:last-child{border-bottom:none}.esm-result-row:hover{background:var(--hover-color, #efeee9)}.esm-result-left{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.esm-result-name{font-size:.95rem;font-weight:600;color:var(--text-primary, #1a1a1a);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.esm-result-meta{display:flex;gap:4px;flex-wrap:wrap}.esm-meta-chip{font-size:.7rem;padding:2px 7px;border-radius:10px;background:#f1f5f9;color:#475569;text-transform:capitalize}.esm-meta-chip--equipment{background:#f0fdf4;color:#166534}.esm-history{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}.esm-history-last{font-size:.73rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.esm-history-best{font-size:.73rem;color:#16a34a;font-weight:600;white-space:nowrap}.esm-history-never{font-size:.73rem;color:var(--text-secondary, #6b7280);opacity:.6;white-space:nowrap}.esm-section-label{font-size:.68rem;font-weight:600;letter-spacing:.07em;color:var(--text-secondary, #6b7280);padding:12px 20px 6px;text-transform:uppercase}.esm-quick-pills{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 14px}.esm-recent-pill{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;background:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a);border:1px solid var(--border-color, #e5e5e0);cursor:pointer;font-size:.8rem;transition:background .12s}.esm-recent-pill:hover{background:#e0dfd9}.esm-freq-pill{display:flex;align-items:center;padding:5px 12px;border-radius:20px;background:#e8e7e2;color:var(--text-primary, #1a1a1a);border:1px solid var(--border-color, #e5e5e0);cursor:pointer;font-size:.8rem;transition:background .12s}.esm-freq-pill:hover{background:#dddcd7}.esm-no-results{padding:16px 20px;font-size:.85rem;color:var(--text-secondary, #6b7280)}.esm-custom-footer{padding:10px 20px 14px;border-top:1px solid var(--border-color, #e5e5e0);flex-shrink:0}.esm-custom-add{width:100%;background:none;border:1px dashed var(--border-color, #e5e5e0);border-radius:6px;padding:9px 12px;font-size:.82rem;color:var(--text-primary, #1a1a1a);cursor:pointer;text-align:left;transition:background .12s}.esm-custom-add:hover{background:var(--hover-color, #efeee9)}.el-root{display:flex;flex-direction:column}.el-empty{padding:12px 0 4px}.el-exercise{display:flex;flex-direction:column;gap:10px;padding:16px 0}.el-exercise--bordered{border-bottom:1px solid var(--border-color, #e5e5e0)}.el-exercise-header{display:flex;align-items:center;gap:8px}.el-exercise-name{font-size:1rem;font-weight:600;color:var(--text-primary, #1a1a1a);text-transform:capitalize;flex:1}.el-icon-btn{background:none;border:none;cursor:pointer;padding:5px;border-radius:5px;display:flex;align-items:center;color:var(--text-secondary, #6b7280);transition:background .12s,color .12s}.el-icon-btn:hover{background:var(--hover-color, #efeee9)}.el-delete-btn:hover{color:#dc2626;background:#fef2f2}.el-sets-row{display:flex;flex-wrap:wrap;gap:8px}.el-set-chip{display:flex;flex-direction:column;gap:3px;padding:8px 12px;border-radius:8px;background:var(--hover-color, #f4f3ef);border:1px solid var(--border-color, #e5e5e0);cursor:pointer;text-align:left;transition:all .12s;min-width:80px}.el-set-chip:hover{background:#eae9e4;border-color:#c8c7c2}.el-set-chip--editing{background:#eef2ff;border-color:#6366f1}.el-chip-label{font-size:.68rem;color:var(--text-secondary, #6b7280);font-weight:500}.el-chip-value{font-size:.85rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap}.el-set-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 10px;background:var(--hover-color, #f9f8f5);border-radius:8px;border:1px solid var(--border-color, #e5e5e0)}.el-form-input{width:72px;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;padding:5px 8px;font-size:.82rem;outline:none;background:#fff;transition:border-color .15s}.el-form-input:focus{border-color:#6366f1}.el-form-input::placeholder{color:#aaa}.el-form-save{padding:5px 12px;border-radius:6px;font-size:.8rem;font-weight:600;cursor:pointer;border:none;background:#1a1a1a;color:#fff;transition:background .12s}.el-form-save:hover:not(:disabled){background:#333}.el-form-save:disabled{background:#9ca3af;cursor:not-allowed}.el-form-cancel{padding:5px 10px;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;border:none;background:none;color:var(--text-secondary, #6b7280)}.el-form-cancel:hover{background:var(--hover-color, #efeee9)}.el-form-delete{padding:5px;border-radius:5px;background:none;border:none;cursor:pointer;display:flex;align-items:center;color:#dc2626;margin-left:auto}.el-form-delete:hover{background:#fef2f2}.el-add-exercise-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;background:none;border:1.5px dashed var(--border-color, #e5e5e0);border-radius:8px;padding:10px 14px;font-size:.84rem;font-weight:500;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .12s;margin-top:4px}.el-add-exercise-btn:hover{background:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a);border-color:#b0afa9}.wc-card{border:1px solid var(--border-color, #e5e5e0);border-radius:10px;overflow:hidden;margin-bottom:1rem;background:#fff}.wc-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:background .12s;gap:12px}.wc-header:hover{background:var(--hover-color, #efeee9)}.wc-header-left{display:flex;align-items:center;gap:10px;min-width:0}.wc-type-badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:12px;white-space:nowrap;flex-shrink:0}.wc-name{font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.wc-stat{display:flex;align-items:center;gap:4px;font-size:.78rem;color:var(--text-secondary, #6b7280);white-space:nowrap}.wc-icon-btn{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;color:var(--text-secondary, #6b7280);display:flex;align-items:center;transition:all .12s}.wc-icon-btn:hover{background:var(--hover-color, #efeee9)}.wc-delete-btn:hover{color:#dc2626;background:#fef2f2}.wc-icon-btn:disabled{opacity:.4;cursor:not-allowed}.wc-chevron{color:var(--text-secondary, #6b7280);display:flex;align-items:center}.wc-body{padding:0 16px 16px;border-top:1px solid var(--border-color, #e5e5e0)}.wc-notes{margin-top:12px;font-size:.82rem;color:var(--text-secondary, #6b7280);font-style:italic}.wc-cardio-grid{display:flex;gap:0;padding:12px 0 4px;flex-wrap:wrap}.wc-cardio-stat{display:flex;flex-direction:column;align-items:center;flex:1;min-width:80px;padding:10px;border-right:1px solid var(--border-color, #e5e5e0)}.wc-cardio-stat:last-child{border-right:none}.wc-cardio-val{font-size:1.2rem;font-weight:700;color:var(--text-primary, #1a1a1a)}.wc-cardio-label{font-size:.68rem;color:var(--text-secondary, #6b7280);margin-top:2px;text-align:center}.wch-root{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color, #e5e5e0)}.wch-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.wch-panel{background:#fff;border:1px solid var(--border-color, #e5e5e0);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:10px}.wch-panel--wide{grid-column:1 / -1}.wch-panel-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.wch-panel-title{font-size:.78rem;font-weight:600;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em}.wch-range-btns{display:flex;gap:4px}.wch-range-btn{padding:3px 8px;border-radius:5px;border:1px solid var(--border-color, #e5e5e0);background:none;font-size:.72rem;font-weight:500;cursor:pointer;color:var(--text-secondary, #6b7280);transition:all .12s}.wch-range-btn:hover{background:var(--hover-color, #efeee9)}.wch-range-btn--active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.wch-panel-footer{display:flex;align-items:center;justify-content:space-between;padding-top:4px;border-top:1px solid var(--border-color, #e5e5e0)}.wch-goal-text{font-size:.72rem;color:var(--text-secondary, #6b7280)}.wch-progress-text{font-size:.72rem;font-weight:600}.wch-muscle-grid{display:flex;gap:12px;align-items:flex-end;padding:8px 0 4px;overflow-x:auto}.wch-muscle-col{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:54px}.wch-muscle-bar-track{width:100%;height:100px;background:var(--hover-color, #f4f3ef);border-radius:6px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.wch-muscle-bar-fill{width:100%;border-radius:6px 6px 0 0;transition:height .4s ease;min-height:4px}.wch-muscle-name{font-size:.72rem;color:var(--text-secondary, #6b7280);text-align:center;white-space:nowrap}.wch-muscle-count{font-size:.75rem;font-weight:700;color:var(--text-primary, #1a1a1a);text-align:center}.workouts-page{display:flex;height:100%;overflow:hidden}.workouts-main{flex:1;overflow-y:auto;padding:1.5rem 2rem}.wo-day-nav{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}.wo-nav-btn{background:none;border:1px solid var(--border-color, #e5e5e0);border-radius:6px;padding:5px 8px;cursor:pointer;display:flex;align-items:center;color:var(--text-secondary, #6b7280);transition:all .12s}.wo-nav-btn:hover:not(:disabled){background:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a)}.wo-nav-btn:disabled{opacity:.35;cursor:default}.wo-day-heading{font-size:1.4rem;font-weight:700;color:var(--text-primary, #1a1a1a);margin:0;flex:1}.wo-charts-toggle{display:flex;align-items:center;gap:6px;font-size:.8rem;font-weight:500;padding:6px 12px;border-radius:6px;border:1px solid var(--border-color, #e5e5e0);background:none;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .12s;margin-left:auto}.wo-charts-toggle:hover{background:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a)}.wo-charts-toggle--active{background:#1a1a1a;color:#fff;border-color:#1a1a1a}.wo-summary-strip{display:flex;gap:10px;margin-bottom:1.25rem;flex-wrap:wrap}.wo-stat-card{display:flex;flex-direction:column;align-items:flex-start;flex:1;min-width:90px;padding:14px 18px;border:1px solid var(--border-color, #e5e5e0);border-radius:10px;background:#fff}.wo-stat-value{font-size:1.6rem;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1.1;white-space:nowrap}.wo-stat-label{font-size:.72rem;color:var(--text-secondary, #6b7280);margin-top:3px}.wo-empty-hero{border:1px solid var(--border-color, #e5e5e0);border-radius:14px;padding:2rem 2rem 1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff}.wo-empty-icon{width:56px;height:56px;border-radius:50%;background:var(--hover-color, #efeee9);display:flex;align-items:center;justify-content:center;color:var(--text-secondary, #6b7280);margin-bottom:14px}.wo-empty-title{font-size:1.15rem;font-weight:700;color:var(--text-primary, #1a1a1a);margin:0 0 4px}.wo-empty-sub{font-size:.88rem;color:var(--text-secondary, #6b7280);margin:0 0 14px}.wo-empty-pills{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap;justify-content:center}.wo-streak-pill{padding:5px 14px;border-radius:20px;background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0;font-size:.8rem;font-weight:500}.wo-suggest-pill{padding:5px 14px;border-radius:20px;background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe;font-size:.8rem;font-weight:500}.wo-quickstart-section{width:100%;border-top:1px solid var(--border-color, #e5e5e0);padding-top:18px;margin-top:2px}.wo-quickstart-label{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary, #6b7280);margin-bottom:12px}.wo-quickstart-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wo-quickstart-tile{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:1px solid var(--border-color, #e5e5e0);border-radius:10px;background:var(--hover-color, #f9f8f5);cursor:pointer;text-align:left;transition:all .15s}.wo-quickstart-tile:hover{background:var(--hover-color, #efeee9);border-color:#c5c4bf}.wo-quickstart-tile:disabled{opacity:.5;cursor:not-allowed}.wo-qs-title{font-size:.92rem;font-weight:600;color:var(--text-primary, #1a1a1a)}.wo-qs-desc{font-size:.78rem;color:var(--text-secondary, #6b7280)}.wo-loading{padding:2rem 0;color:var(--text-secondary, #6b7280);font-size:.88rem}.wo-log-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:8px;background:#1a1a1a;color:#fff;font-size:.88rem;font-weight:600;border:none;cursor:pointer;transition:background .15s;margin-top:4px}.wo-log-btn:hover{background:#333}.wo-add-form{border:1px solid var(--border-color, #e5e5e0);border-radius:10px;padding:16px;margin-top:4px;background:#fff}.wo-add-form-header{display:flex;align-items:center;justify-content:space-between;font-size:.9rem;font-weight:600;color:var(--text-primary, #1a1a1a);margin-bottom:14px}.wo-add-cancel-btn{background:none;border:none;cursor:pointer;color:var(--text-secondary, #6b7280);padding:4px;border-radius:5px;display:flex}.wo-add-cancel-btn:hover{background:var(--hover-color, #efeee9)}.wo-add-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.wo-field-group{display:flex;flex-direction:column;gap:4px}.wo-field-group--full{grid-column:1 / -1}.wo-field-group label{font-size:.78rem;font-weight:500;color:var(--text-secondary, #6b7280)}.wo-field-group input,.wo-field-group select{border:1px solid var(--border-color, #e5e5e0);border-radius:7px;padding:8px 10px;font-size:.88rem;color:var(--text-primary, #1a1a1a);background:#f9fafb;outline:none;transition:border-color .15s}.wo-field-group input:focus,.wo-field-group select:focus{border-color:#1a1a1a;background:#fff}.wo-add-form-actions{display:flex;gap:8px}.wo-save-btn{padding:9px 20px;background:#1a1a1a;color:#fff;border:none;border-radius:7px;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s}.wo-save-btn:hover:not(:disabled){background:#333}.wo-save-btn:disabled{background:#9ca3af;cursor:not-allowed}.wo-cancel-btn{padding:9px 16px;background:var(--hover-color, #efeee9);color:var(--text-primary, #1a1a1a);border:none;border-radius:7px;font-size:.88rem;font-weight:500;cursor:pointer}.wo-cancel-btn:hover{background:#e5e5de}
