:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#0f172a;background-color:#f1f5f9;font-family:IBM Plex Sans,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}#root{min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:2rem 1.25rem 3rem}.app.narrow{max-width:480px}.header{margin-bottom:1.75rem}.header.row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.header h1{letter-spacing:-.02em;color:#0f172a;margin:0 0 .4rem;font-size:1.75rem;font-weight:700}.header p{color:#475569;max-width:40rem;margin:0;line-height:1.5}.header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.layout{grid-template-columns:1fr 1fr;align-items:start;gap:1.25rem;display:grid}.panel{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem}.panel-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:1rem;display:flex}.panel-heading h2{color:#0f172a;margin:0;font-size:1.1rem}.field{color:#334155;flex-direction:column;gap:.35rem;margin-bottom:.9rem;font-size:.85rem;font-weight:600;display:flex}.field input{font:inherit;color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:.65rem .75rem;font-weight:400}.field input:focus,textarea:focus{outline-offset:1px;background:#fff;outline:2px solid #0f766e}.input-type{border:none;flex-wrap:wrap;gap:1rem;margin:0 0 1rem;padding:0;display:flex}.input-type legend{color:#334155;margin-bottom:.5rem;padding:0;font-size:.85rem;font-weight:600}.input-type label{color:#1e293b;cursor:pointer;align-items:center;gap:.4rem;font-size:.95rem;display:inline-flex}.textarea-label{color:#334155;margin-bottom:.45rem;font-size:.85rem;font-weight:600;display:block}textarea{box-sizing:border-box;resize:vertical;width:100%;min-height:120px;font:inherit;color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:.85rem .9rem;line-height:1.5}textarea:disabled{opacity:.7}button,.button-link{font:inherit;color:#fff;cursor:pointer;background:#0f766e;border:none;border-radius:8px;justify-content:center;align-items:center;padding:.7rem 1rem;font-weight:600;text-decoration:none;display:inline-flex}button:hover:not(:disabled),.button-link:hover{background:#0d9488}button:disabled{opacity:.55;cursor:not-allowed}button.secondary,.button-link.secondary{color:#0f172a;background:#e2e8f0}button.secondary:hover:not(:disabled),.button-link.secondary:hover{background:#cbd5e1}button.danger{background:#b91c1c}button.danger:hover:not(:disabled){background:#dc2626}form>button[type=submit]{width:100%;margin-top:.9rem}.error{color:#b91c1c;margin:.85rem 0 0;font-size:.9rem}.hint{color:#64748b;margin:.85rem 0 0;font-size:.85rem}.empty{color:#64748b;margin:0;font-size:.95rem}.patient-list{flex-direction:column;gap:.5rem;display:flex}.patient-row{color:inherit;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;text-decoration:none;display:flex}.patient-row:hover{background:#f8fafc;border-color:#0f766e}.patient-row-name{flex-direction:column;gap:.15rem;display:flex}.patient-row-name strong{color:#0f172a;font-size:1rem}.patient-row-name span{color:#64748b;font-size:.85rem}.patient-row-meta{color:#475569;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:.15rem;font-size:.85rem;display:flex}.encounter-history-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.encounter-history-list li a{color:#1e293b;border:1px solid #e2e8f0;border-radius:8px;padding:.7rem .85rem;font-size:.9rem;text-decoration:none;display:block}.encounter-history-list li a:hover{background:#f8fafc;border-color:#0f766e}.soap-sections{flex-direction:column;gap:1rem;display:flex}.soap-section.edit{flex-direction:column;gap:.35rem;display:flex}.soap-section.edit>span{letter-spacing:.04em;text-transform:uppercase;color:#0f766e;font-size:.8rem;font-weight:700}.voice-live{color:#0f766e;margin:0 0 .75rem;font-size:.9rem;font-weight:600}.dictation-controls{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.dictation-live-badge{color:#0f766e;font-size:.8rem;font-weight:600}.dictation-partial{color:#64748b;margin:.5rem 0 0;font-size:.85rem;font-style:italic}.voice-heard{color:#64748b;margin:0 0 .75rem;font-size:.85rem;font-style:italic}.voice-summary{color:#334155;margin:0 0 .75rem;font-size:.9rem;font-style:italic}.versions{border-top:1px solid #e2e8f0;margin-top:1.5rem;padding-top:1rem}.versions h3{color:#0f172a;margin:0 0 .6rem;font-size:.95rem}.versions ul{color:#475569;margin:0;padding-left:1.1rem;font-size:.9rem}.versions li{margin-bottom:.35rem}button.small{padding:.35rem .6rem;font-size:.8rem}.icd-suggestions{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-top:.5rem;padding:.75rem .85rem}.icd-suggestions-heading{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.icd-suggestions-heading h4{letter-spacing:.04em;text-transform:uppercase;color:#334155;margin:0;font-size:.8rem;font-weight:700}.icd-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.icd-item{background:#fff;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:.6rem;padding:.45rem .6rem;font-size:.85rem;display:flex}.icd-item.icd-accepted{border-color:#0f766e}.icd-item.icd-rejected{opacity:.55}.icd-code{color:#0f766e;flex-shrink:0;font-weight:700}.icd-desc{color:#1e293b;flex:1}.icd-sim{color:#64748b;flex-shrink:0;font-size:.75rem}.icd-actions{flex-shrink:0;gap:.35rem;display:flex}.icd-status-badge{flex-shrink:0;font-size:.75rem;font-weight:600}.icd-status-badge.icd-accepted{color:#0f766e}.icd-status-badge.icd-rejected{color:#b91c1c}.icd-search-widget{margin-top:1.25rem}.icd-search-widget h3{color:#0f172a;margin:0 0 .6rem;font-size:.95rem}.icd-search-widget input{box-sizing:border-box;width:100%;font:inherit;color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;margin-bottom:.6rem;padding:.65rem .75rem}@media (width<=800px){.layout{grid-template-columns:1fr}.header.row{flex-direction:column}}
