.auth-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-md)}.auth-card{width:100%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-lg)}.auth-card h2{margin-bottom:var(--spacing-xs)}.auth-card .auth-subtitle{opacity:.5;font-size:14px;margin-bottom:var(--spacing-md)}.auth-card .field{margin-bottom:var(--spacing-sm)}.auth-card .btn{width:100%;margin-top:var(--spacing-xs)}.auth-card .auth-switch{text-align:center;margin-top:var(--spacing-sm);font-size:14px;opacity:.6}.auth-card .auth-switch a{color:var(--accent);cursor:pointer}.auth-error{color:var(--emphasis);font-size:14px;margin-top:var(--spacing-xs)}.auth-logo{font-family:var(--font-heading);font-size:1.4rem;letter-spacing:-1px;margin-bottom:var(--spacing-md)}.auth-logo em{font-style:italic;color:var(--accent)}.app-nav{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border);background:var(--bg-secondary);position:sticky;top:0;z-index:100}.app-nav-logo{font-family:var(--font-heading);font-size:1.2rem;letter-spacing:-1px}.app-nav-logo em{font-style:italic;color:var(--accent)}.app-nav-actions{display:flex;gap:var(--spacing-xs);align-items:center}.app-content{max-width:800px;margin:0 auto;padding:var(--spacing-md)}.charts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.chart-list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs);cursor:pointer;transition:border-color .2s ease;background:var(--bg-secondary)}.chart-list-item:hover{border-color:var(--accent)}.chart-mode-badge{font-size:12px;padding:3px 12px;border-radius:var(--radius-pill);background:var(--accent);color:#fff}.chart-list-item .chart-concern{font-size:14px;opacity:.6;margin-top:2px}.chart-list-item .chart-date{font-size:12px;opacity:.4}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#1a16124d;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--spacing-md)}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-lg);width:100%;max-width:400px}.modal h3{margin-bottom:var(--spacing-md)}.mode-option{padding:var(--spacing-sm);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-xs);cursor:pointer;transition:all .2s ease}.mode-option:hover,.mode-option.selected{border-color:var(--accent);background:#7b9e870d}.mode-option h4{font-family:var(--font-heading);margin-bottom:2px}.mode-option p{font-size:13px;opacity:.6}.chart-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border)}.chart-header h2{font-size:1.5rem}.chart-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--border);padding-bottom:var(--spacing-xs)}.chart-tab{padding:6px 18px;border-radius:var(--radius-pill);border:none;background:none;cursor:pointer;font-family:var(--font-body);font-size:14px;font-weight:300;opacity:.5;transition:all .2s ease}.chart-tab.active{opacity:1;background:var(--ink);color:var(--bg-primary)}.conversation{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.msg{max-width:85%;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:15px;line-height:1.6}.msg-user{align-self:flex-end;background:var(--ink);color:var(--bg-primary);border-bottom-right-radius:4px}.msg-assistant{align-self:flex-start;background:var(--bg-secondary);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-input-wrap{display:flex;gap:var(--spacing-xs);position:sticky;bottom:var(--spacing-md);background:var(--bg-primary);padding:var(--spacing-sm) 0}.chat-input-wrap input{flex:1}.chat-input-wrap .btn{flex-shrink:0}.question-cards{width:100%;align-self:stretch}.question-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-sm)}.q-label{font-family:var(--font-heading);font-size:1.05rem;letter-spacing:-.5px;margin-bottom:var(--spacing-sm);line-height:1.4}.q-options{display:flex;flex-wrap:wrap;gap:8px}.q-option{padding:8px 20px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:#fff;font-family:var(--font-body);font-weight:300;font-size:14px;cursor:pointer;transition:all .15s ease;color:var(--ink)}.q-option:hover{border-color:var(--accent);background:#7b9e870d}.q-option.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.q-number-wrap{display:flex;align-items:center;gap:8px}.q-number-input{width:120px;text-align:center;font-size:18px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff}.q-unit{font-size:14px;opacity:.5}.q-text-wrap{width:100%}.q-text-input{width:100%;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:#fff;font-family:var(--font-body);font-weight:300;font-size:15px}.q-text-input:focus,.q-number-input:focus{outline:none;border-color:var(--accent)}.q-submit{margin-top:var(--spacing-sm)}.body-map{width:100%}.body-map-controls{display:flex;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.body-map-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-pill);overflow:hidden}.bm-toggle{padding:6px 16px;border:none;background:none;font-family:var(--font-body);font-weight:300;font-size:13px;cursor:pointer;transition:all .15s ease;color:var(--ink);opacity:.5}.bm-toggle.active{background:var(--ink);color:var(--bg-primary);opacity:1}.body-map-svg-wrap{display:flex;justify-content:center;padding:var(--spacing-sm) 0}.body-map-svg{height:360px;width:auto;max-width:100%}.bm-part{cursor:pointer;transition:fill .15s ease}.bm-part:hover{fill:#7b9e8740!important}.body-map-selected{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:32px;padding:var(--spacing-xs) 0}.bm-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 14px;border-radius:var(--radius-pill);background:var(--accent);color:#fff;font-size:13px}.bm-pill-x{background:none;border:none;color:#fff;font-size:16px;cursor:pointer;padding:0 2px;opacity:.7;line-height:1}.bm-pill-x:hover{opacity:1}.bm-hint{font-size:13px;opacity:.4}.bm-tooltip{position:fixed;display:none;background:var(--ink);color:var(--bg-primary);font-size:12px;padding:4px 10px;border-radius:6px;pointer-events:none;transform:translate(-50%,-100%);z-index:1000;white-space:nowrap}.chart-section{margin-bottom:var(--spacing-md)}.chart-section h3{margin-bottom:var(--spacing-xs);color:var(--accent);font-size:1.1rem}.chart-section p,.chart-section .entry-item{font-size:15px;line-height:1.6;opacity:.8}.entry-item{padding:var(--spacing-xs) 0;border-bottom:1px solid var(--border)}.entry-item:last-child{border-bottom:none}.entry-meta{font-size:12px;opacity:.4;margin-top:2px}.empty-state{text-align:center;padding:var(--spacing-xl) var(--spacing-md);opacity:.5}.empty-state h3{margin-bottom:var(--spacing-xs)}.search-bar{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.search-bar input{flex:1}.search-filters{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.search-filters select{font-family:var(--font-body);font-weight:300;font-size:14px;padding:8px 14px;border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-secondary);color:var(--ink);outline:none}.upload-area{border:2px dashed var(--border);border-radius:var(--radius-md);padding:var(--spacing-lg);text-align:center;cursor:pointer;transition:border-color .2s ease;margin-bottom:var(--spacing-md)}.upload-area:hover,.upload-area.dragover{border-color:var(--accent)}.upload-area p{opacity:.5;font-size:14px}.loading-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pulse 1.4s ease-in-out infinite;margin:0 2px}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}.back-link{display:inline-block;font-size:14px;opacity:.5;margin-bottom:var(--spacing-sm);cursor:pointer;transition:opacity .2s}.back-link:hover{opacity:1}
