*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-success: #16a34a;--color-warning: #d97706;--color-bg: #f8fafc;--color-surface: #ffffff;--color-border: #e2e8f0;--color-text: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--radius: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}.app-layout{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 2rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.header-left{display:flex;align-items:baseline;gap:.75rem}.app-title{font-size:1.5rem;font-weight:700;color:var(--color-primary)}.app-subtitle{color:var(--color-text-muted);font-size:.875rem}.header-nav{display:flex;align-items:center;gap:1.5rem}.nav-link{color:var(--color-text-secondary);text-decoration:none;font-size:.9375rem;font-weight:500;padding:.375rem .75rem;border-radius:var(--radius);transition:all .15s}.nav-link:hover,.nav-link.active{color:var(--color-primary);background:#eff6ff}.header-right{display:flex;align-items:center;gap:1rem}.user-email{color:var(--color-text-secondary);font-size:.875rem}.app-main{flex:1;padding:2rem;max-width:1100px;margin:0 auto;width:100%}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#eff6ff,#f8fafc);padding:1rem}.login-card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:2.5rem;width:100%;max-width:420px}.login-brand{text-align:center;margin-bottom:2rem}.login-brand h1{color:var(--color-primary);font-size:1.75rem}.login-brand p{color:var(--color-text-muted);font-size:.875rem}.auth-form h2{font-size:1.25rem;margin-bottom:.25rem}.auth-subtitle{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1.5rem}.auth-toggle{text-align:center;margin-top:1rem;font-size:.875rem;color:var(--color-text-secondary)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-weight:500;font-size:.875rem;margin-bottom:.375rem;color:var(--color-text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.625rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9375rem;font-family:inherit;transition:border-color .15s;background:var(--color-surface)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.form-group textarea{resize:vertical}.form-group input:disabled,.form-group textarea:disabled,.form-group select:disabled{background:#f1f5f9;cursor:not-allowed}.form-error{background:#fef2f2;border:1px solid #fecaca;color:var(--color-danger);padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.field-hint{font-size:.75rem;color:var(--color-warning);margin-top:.25rem}.textarea-header{display:flex;justify-content:space-between;align-items:center}.char-count{font-size:.75rem;color:var(--color-text-muted)}.char-count.over-limit{color:var(--color-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.625rem 1.25rem;border:none;border-radius:var(--radius);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-outline{background:transparent;border:1px solid var(--color-border);color:var(--color-text)}.btn-outline:hover:not(:disabled){background:#f1f5f9}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-full{width:100%}.link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:inherit;font-family:inherit;text-decoration:underline;padding:0}.link-btn:hover{color:var(--color-primary-hover)}.optional-toggle{margin-bottom:1rem;font-size:.8125rem}.optional-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;padding:1rem;background:#f8fafc;border-radius:var(--radius);border:1px solid var(--color-border)}.dashboard{display:flex;flex-direction:column;gap:2.5rem}.dashboard-section h2{font-size:1.25rem;margin-bottom:.5rem}.section-description{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1rem}.input-mode-toggle{display:flex;gap:.75rem;margin-bottom:1rem}.toggle-btn{padding:.625rem 1.25rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text-secondary);font-size:.9375rem;font-weight:500;cursor:pointer;transition:all .15s;font-family:inherit}.toggle-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#eff6ff}.toggle-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.toggle-btn.active:hover{background:var(--color-primary-hover);color:#fff}.note-history{display:flex;flex-direction:column;gap:.75rem}.note-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;cursor:pointer;transition:box-shadow .15s,border-color .15s}.note-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary)}.note-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.note-card-date{font-size:.8125rem;color:var(--color-text-muted)}.status-badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;padding:.2rem .5rem;border-radius:9999px;letter-spacing:.025em}.status-badge.pending{background:#fef3c7;color:#92400e}.status-badge.reviewed{background:#d1fae5;color:#065f46}.note-card-body{display:flex;gap:1rem;margin-bottom:.375rem}.note-card-patient{font-weight:500;font-size:.9375rem}.note-card-visit{font-size:.8125rem;color:var(--color-text-secondary)}.note-card-footer{font-size:.8125rem;color:var(--color-text-muted)}.condition-count{font-weight:500}.note-detail{display:flex;flex-direction:column;gap:1.5rem}.back-btn{align-self:flex-start}.note-text-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.note-text-section h2{font-size:1.125rem;margin-bottom:.75rem}.note-meta{display:flex;gap:1.5rem;font-size:.8125rem;color:var(--color-text-secondary);margin-bottom:1rem}.note-text{white-space:pre-wrap;font-family:inherit;font-size:.9375rem;line-height:1.7;color:var(--color-text);background:#f8fafc;padding:1rem;border-radius:var(--radius);border:1px solid var(--color-border);max-height:400px;overflow-y:auto}.analysis-view{display:flex;flex-direction:column;gap:1.5rem}.analysis-status-bar{display:flex;flex-direction:column;gap:.5rem}.status-banner{padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500}.status-banner.pending{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.status-banner.reviewed{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.status-banner.failed{background:#fef2f2;color:var(--color-danger);border:1px solid #fecaca}.status-banner.warning{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa}.analysis-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.analysis-section h3{font-size:1rem;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.count-badge{background:var(--color-primary);color:#fff;font-size:.75rem;padding:.125rem .5rem;border-radius:9999px}.summary-text{font-size:.9375rem;line-height:1.7;color:var(--color-text)}.conditions-list{display:flex;flex-direction:column;gap:1rem}.condition-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem;background:#fafbfc}.condition-card.hallucinated{border-color:#fed7aa;background:#fff7ed}.condition-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.condition-name{font-size:1rem;font-weight:600}.status-pill{font-size:.6875rem;font-weight:600;padding:.2rem .625rem;border-radius:9999px;text-transform:uppercase}.status-pill.well_documented{background:#d1fae5;color:#065f46}.status-pill.ambiguous{background:#fef3c7;color:#92400e}.status-pill.mentioned_without_assessment{background:#e0e7ff;color:#3730a3}.condition-detail{margin-bottom:.75rem}.detail-label{font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);margin-right:.5rem}.evidence-quote{font-style:italic;font-size:.875rem;color:var(--color-text-secondary);border-left:3px solid var(--color-primary);padding:.5rem .75rem;margin-top:.375rem;background:#fff;border-radius:0 var(--radius) var(--radius) 0}.hallucination-warning{color:var(--color-danger);font-style:normal;font-weight:600;font-size:.75rem}.condition-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.icd-code{font-family:SF Mono,Fira Code,monospace;font-size:.8125rem;background:#e0e7ff;color:#3730a3;padding:.125rem .5rem;border-radius:4px;font-weight:500}.confidence-bar-container{display:flex;align-items:center;gap:.5rem;flex:1;min-width:120px}.confidence-bar{height:6px;background:var(--color-primary);border-radius:3px;transition:width .3s}.confidence-value{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.gaps-list{display:flex;flex-direction:column;gap:.625rem}.gap-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .875rem;border-radius:var(--radius);background:#fafbfc;border:1px solid var(--color-border)}.severity-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.severity-dot.severity-high{background:var(--color-danger)}.severity-dot.severity-medium{background:var(--color-warning)}.severity-dot.severity-low{background:var(--color-success)}.gap-description{flex:1;font-size:.875rem}.severity-label{font-size:.6875rem;font-weight:600;text-transform:uppercase;padding:.125rem .5rem;border-radius:9999px}.severity-label.severity-high{background:#fef2f2;color:var(--color-danger)}.severity-label.severity-medium{background:#fff7ed;color:var(--color-warning)}.severity-label.severity-low{background:#f0fdf4;color:var(--color-success)}.analysis-actions{display:flex;gap:.75rem}.review-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.review-editor h3{font-size:1.125rem;margin-bottom:.5rem}.review-description{color:var(--color-text-secondary);font-size:.875rem;margin-bottom:1.5rem}.review-section{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--color-border)}.review-section:last-of-type{border-bottom:none}.review-section h4{font-size:.9375rem;margin-bottom:1rem;color:var(--color-text)}.review-condition-card,.review-gap-card{border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem;margin-bottom:.75rem;background:#fafbfc}.review-field{margin-bottom:.75rem}.review-field label{display:block;font-size:.75rem;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.25rem}.review-field input,.review-field textarea,.review-field select{width:100%;padding:.5rem .625rem;border:1px solid var(--color-border);border-radius:4px;font-size:.875rem;font-family:inherit}.review-field input:focus,.review-field textarea:focus,.review-field select:focus{outline:none;border-color:var(--color-primary)}.review-field-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}.review-actions{display:flex;gap:.75rem;margin-top:1rem}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--color-text-secondary)}.loading-container{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem;color:var(--color-text-secondary)}.loading-message{font-size:.875rem}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:2rem;text-align:center}.error-icon{width:48px;height:48px;border-radius:50%;background:#fef2f2;color:var(--color-danger);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700}.error-message{color:var(--color-danger);font-size:.9375rem}.empty-state{text-align:center;padding:2rem;color:var(--color-text-muted);font-size:.9375rem;border:1px dashed var(--color-border);border-radius:var(--radius)}.note-form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.5rem}.document-upload{margin-top:.5rem}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius);padding:3rem 2rem;text-align:center;cursor:pointer;transition:all .2s;background:var(--color-surface)}.upload-zone:hover{border-color:var(--color-primary);background:#f8fafc}.upload-zone.drag-active{border-color:var(--color-primary);background:#eff6ff;border-style:solid}.upload-zone.uploading{cursor:wait;opacity:.8}.upload-icon{font-size:3rem;margin-bottom:1rem}.upload-title{font-size:1rem;color:var(--color-text);margin-bottom:.5rem}.upload-link{color:var(--color-primary);font-weight:500;text-decoration:underline}.upload-link:hover{color:var(--color-primary-hover)}.upload-hint{font-size:.8125rem;color:var(--color-text-muted)}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-progress .spinner{width:40px;height:40px}.upload-progress p{color:var(--color-text-secondary);font-size:.9375rem}.evidence-highlight{white-space:pre-wrap;font-family:inherit;font-size:.9375rem;line-height:1.7;color:var(--color-text);background:#f8fafc;padding:1rem;border-radius:var(--radius);border:1px solid var(--color-border);max-height:400px;overflow-y:auto}.evidence-match{background:#fef08a;padding:.125rem .25rem;border-radius:3px;font-weight:500}.highlight-hint{font-size:.75rem;color:var(--color-text-muted);margin-top:.75rem;font-style:italic}.condition-card.highlighted{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.metrics-page{display:flex;flex-direction:column;gap:1.5rem}.metrics-page h2{font-size:1.5rem;margin-bottom:.25rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.375rem;transition:box-shadow .15s}.metric-card:hover{box-shadow:var(--shadow-md)}.metric-value{font-size:2rem;font-weight:700;color:var(--color-primary);line-height:1.2}.metric-label{font-size:.8125rem;color:var(--color-text-secondary);font-weight:500}.metrics-section{margin-top:.5rem}.metrics-section h3{font-size:1.125rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.field-breakdown{display:flex;flex-direction:column;gap:.75rem}.field-row{display:flex;align-items:center;gap:1rem}.field-name{min-width:140px;font-size:.875rem;font-weight:500;color:var(--color-text)}.field-bar-container{flex:1;height:24px;background:#f1f5f9;border-radius:4px;position:relative;overflow:hidden}.field-bar{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s;min-width:2px}.field-count{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);font-size:.75rem;font-weight:600;color:var(--color-text)}@media (max-width: 768px){.app-header{padding:.75rem 1rem;flex-direction:column;gap:.5rem}.header-nav{gap:.5rem}.app-main{padding:1rem}.optional-fields,.review-field-row{grid-template-columns:1fr}.note-card-body,.note-meta{flex-direction:column;gap:.25rem}.metrics-grid{grid-template-columns:repeat(2,1fr)}.input-mode-toggle{flex-direction:column}.toggle-btn{width:100%;text-align:center}.field-row{flex-direction:column;align-items:flex-start;gap:.25rem}.field-name{min-width:auto}.field-bar-container{width:100%}}
