@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&display=swap");:root{color-scheme:light;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background-color:#fdf9f2;color:#2a2110;--print-heading-font:"Cormorant Garamond","Georgia","Times New Roman",serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:#fdf9f2}.app-header{background:#fff;color:#8b6b1f;padding:1.125rem 2rem;box-shadow:0 10px 30px rgba(196,155,62,.12);position:-webkit-sticky;position:sticky;top:0;z-index:10}.header-inner{display:flex;align-items:center;justify-content:space-between;max-width:1100px;margin:0 auto}.brand{display:inline-flex;align-items:center;color:inherit;text-decoration:none}.brand-logo{height:auto;width:auto}.nav-links{display:flex;gap:1rem;align-items:center}.nav-links a{color:#bb872e;text-decoration:none;font-size:.97rem;font-weight:600;transition:color .15s ease}.nav-links a.primary,.nav-links a.primary:hover{color:#fff}.nav-links a:hover{color:#805b16}.app-main{max-width:1100px;margin:0 auto;padding:2rem 1.5rem 4rem}.card{background:#fff;border-radius:.75rem;padding:1.5rem;box-shadow:0 20px 40px rgba(196,155,62,.12);border:1px solid hsla(41,58%,65%,.35)}.form-grid{display:grid;grid-gap:1rem;gap:1rem}.field-group{display:flex;flex-direction:column;gap:.35rem}label{font-size:.85rem;color:#7a5d17;font-weight:600}input,select,textarea{border-radius:.5rem;border:1px solid hsla(41,58%,65%,.6);padding:.6rem .75rem;font-size:.95rem;background:#fff;color:inherit;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(187,135,46,.9);box-shadow:0 0 0 3px hsla(41,64%,73%,.35)}textarea{resize:vertical;min-height:90px}button{border:none;border-radius:.65rem;padding:.65rem 1.2rem;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button.primary{background:linear-gradient(135deg,#d6a041,#bb872e);color:#fff;box-shadow:0 15px 25px rgba(214,160,65,.28)}button.primary:hover{transform:translateY(-1px);box-shadow:0 18px 32px rgba(187,135,46,.35)}button.secondary{background:#f6eddd;color:#7a5d17;box-shadow:inset 0 0 0 1px hsla(41,58%,65%,.4)}button.secondary:hover{background:#f2e2c5}button.icon-button{padding:.45rem .6rem;min-width:2.25rem;display:inline-flex;align-items:center;justify-content:center}a.primary,a.secondary{border-radius:.65rem;padding:.55rem 1rem;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.4rem;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}a.primary{background:linear-gradient(135deg,#d6a041,#bb872e);color:#fff;box-shadow:0 15px 25px rgba(214,160,65,.28)}a.primary:hover{transform:translateY(-1px);box-shadow:0 18px 32px rgba(187,135,46,.35)}a.secondary{background:#f6eddd;color:#7a5d17;box-shadow:inset 0 0 0 1px hsla(41,58%,65%,.4)}a.secondary:hover{background:#f2e2c5}.template-grid{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.template-card{border:1px solid hsla(41,58%,65%,.45);border-radius:.75rem;background:#fff9ef;padding:1rem;display:flex;flex-direction:column;gap:.75rem;min-height:180px;box-shadow:inset 0 0 0 1px hsla(41,58%,65%,.15)}.template-snippet{font-size:.9rem;line-height:1.4;color:#5c4514;white-space:pre-wrap;max-height:140px;overflow-y:auto;padding-right:.35rem}.template-snippet-rest{display:block;color:rgba(92,69,20,.7);margin-top:.35rem}.template-meta{margin-top:auto;font-size:.85rem;color:#7a5d17;font-weight:600;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.aftercare-list{display:grid;grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.aftercare-card{border:1px solid hsla(41,58%,65%,.45);border-radius:.75rem;background:#fffaf0;padding:1rem;display:flex;flex-direction:column;gap:.75rem;min-height:140px;box-shadow:inset 0 0 0 1px hsla(41,58%,65%,.12)}.aftercare-text{margin:0;font-size:.92rem;line-height:1.5;color:#5c4514}.aftercare-procedures{display:flex;flex-wrap:wrap;gap:.4rem}.aftercare-procedures .badge{margin:0}button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.stack{display:flex;flex-direction:column;gap:1.5rem}.inline-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.table{width:100%;border-collapse:collapse}.table td,.table th{padding:.6rem .75rem;border-bottom:1px solid #e2e8f0;text-align:left}.badge{display:inline-flex;align-items:center;background:rgba(214,160,65,.15);border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:600;color:#805b16}@page{size:A4;margin:10mm 12mm}.print-wrapper{max-width:210mm;margin:0 auto;padding:12mm 0 18mm;background:#f8fafc;color:#0f172a}.print-controls{display:flex;align-items:center;justify-content:space-between;gap:4mm;margin-bottom:8mm}.print-page{background:#fff;border-radius:1.5mm;border:none;padding:12mm;color:inherit;position:relative}.print-sheet{display:flex;flex-direction:column;gap:6mm;min-height:calc(297mm - 24mm)}.print-letterhead{display:flex;justify-content:space-between;align-items:flex-start;gap:4mm;padding-bottom:4mm;border-bottom:.2mm solid #f8fafc}.print-letterhead-logo{width:45mm;height:auto;object-fit:contain}.print-letterhead-info{display:flex;flex-direction:column;gap:.8mm;font-size:9.2pt;color:#475569;align-items:flex-end;line-height:1.2;font-family:var(--print-heading-font);letter-spacing:.05em}.print-body{display:flex;flex-direction:column;gap:6mm;flex:1 1}.print-title{margin:0;font-size:21.6pt;color:#0f172a;font-family:var(--print-heading-font);letter-spacing:.06em}.print-header{display:flex;flex-direction:column;gap:1.2mm}.print-meta-bar{display:flex;justify-content:space-between;align-items:flex-start;gap:2mm}.print-meta-date{font-size:10.5pt;font-weight:700;color:#0f172a;letter-spacing:.04em}.print-meta-details{display:flex;flex-direction:column;gap:.6mm;font-size:8.2pt;color:#475569;text-align:right;line-height:1.25}.print-meta-details span{display:block;white-space:nowrap}.print-section{display:flex;flex-direction:column;gap:2mm;page-break-inside:avoid;break-inside:avoid}.print-section h2{margin:0;font-size:14.4pt;color:#111827;font-family:var(--print-heading-font);letter-spacing:.05em}.print-info-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(46mm,1fr));grid-gap:2mm 6mm;gap:2mm 6mm}.print-info-item{display:flex;flex-direction:column;gap:.6mm;font-size:10pt;color:#1f2937}.print-info-item span:first-child{font-size:8.5pt;text-transform:uppercase;letter-spacing:.05em;color:#64748b}.print-note{padding:3mm;border-radius:1.2mm;background:#f8fafc;border:.2mm solid transparent;color:#1f2937;line-height:1.5}.print-icd-table,.print-procedures{width:100%;border-collapse:collapse;font-size:10pt}.print-icd-table td,.print-icd-table th,.print-procedures td,.print-procedures th{border:none;border-bottom:.2mm solid #cbd5f5;padding:1.8mm 2.2mm;text-align:left;vertical-align:top}.print-icd-table thead th,.print-procedures thead th{background:transparent;font-weight:600;color:#0f172a}.print-total{margin-top:2mm;font-weight:600;text-align:right;color:#0f172a}.print-media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(45mm,1fr));grid-gap:3mm;gap:3mm}.print-media-grid figure{margin:0;display:flex;flex-direction:column;gap:1mm;color:#475569;page-break-inside:avoid;break-inside:avoid}.print-media-grid img{width:100%;height:45mm;object-fit:cover;border-radius:1mm;border:.2mm solid transparent}.print-signature{align-self:stretch;width:100%;margin-top:4mm;display:flex;justify-content:flex-end;padding-top:2mm}.print-signature p{text-align:center;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:9pt;letter-spacing:0;line-height:1.35;width:50%;margin:0 0 0 auto}.print-footer{display:flex;justify-content:space-between;gap:4mm;padding-top:2mm;border-top:.2mm solid transparent;font-size:8pt;color:#475569;margin-top:auto}.print-footer-column{display:flex;flex-direction:column;gap:1mm}.visit-print-notes-preview{background:#f8fafc;border:.2mm solid #e2e8f0;border-radius:1.2mm;padding:3mm;white-space:pre-wrap;color:#1f2937}.print-editor-panel{background:#fff;border:.2mm solid #e2e8f0}.print-editor-panel textarea[disabled]{background:#f3f4f6;color:#94a3b8}@media print{@page{size:A4;margin:10mm 12mm 22mm;@bottom-center{content:element(printFooter)}}@page:first{margin:10mm 12mm 12mm;@bottom-center{content:none}}body{background:#fff}.print-hidden{display:none!important}.print-wrapper{margin:0;padding:0;background:transparent}.print-page{border:none;border-radius:0;padding:0}.print-footer{position:running(printFooter);background:transparent}.print-sheet{padding:0 0 18mm;border:none}.app-header,.print-controls,.print-editor-panel{display:none!important}}.muted{color:#8f7d52;font-size:.9rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:1rem;gap:1rem}.media-grid img{width:100%;border-radius:.75rem;object-fit:cover;border:1px solid hsla(41,58%,65%,.4)}.time-popover{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:.85rem;padding:1rem;box-shadow:0 24px 60px rgba(187,135,46,.25);border:1px solid hsla(41,58%,65%,.55);min-width:220px;max-width:280px;z-index:20}.time-popover-header{font-weight:700;font-size:.95rem;color:#805b16;margin-bottom:.75rem}.time-popover-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:.45rem;gap:.45rem;max-height:200px;overflow-y:auto;padding-right:.25rem}.time-option{border:none;border-radius:.6rem;padding:.4rem .35rem;background:#fdf1d9;color:#7a5d17;font-weight:600;font-size:.85rem;cursor:pointer;transition:transform .12s ease,background .12s ease,color .12s ease}.time-option:hover{background:#f4e2be;transform:translateY(-1px)}.time-option.active{background:linear-gradient(135deg,#d6a041,#bb872e);color:#fff;box-shadow:0 8px 18px rgba(214,160,65,.25)}.time-popover-footer{margin-top:.9rem;display:flex;gap:.5rem;align-items:center}.time-popover-footer input[type=time]{flex:1 1 auto;border-radius:.6rem;border:1px solid hsla(41,58%,65%,.6);padding:.45rem .5rem;font-size:.9rem;background:#fffaf0;color:#2a2110}.time-popover-footer input[type=time]:focus{outline:none;border-color:rgba(187,135,46,.9);box-shadow:0 0 0 3px hsla(41,64%,73%,.35)}.alert{padding:.75rem 1rem;border-radius:.5rem;font-size:.9rem}.alert.error{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.alert.success{background:#dcfce7;color:#166534;border:1px solid #86efac}.icd-selector{display:flex;flex-direction:column;gap:.35rem}.icd-input-row,.icd-selector{position:relative}.icd-results{position:absolute;top:100%;left:0;right:0;margin-top:.25rem;background:#fff;border:1px solid hsla(41,58%,65%,.45);border-radius:.6rem;box-shadow:0 12px 30px rgba(196,155,62,.18);max-height:220px;overflow-y:auto;padding:.35rem;display:flex;flex-direction:column;gap:.25rem;z-index:5}.icd-result-item{display:flex;align-items:flex-start;gap:.5rem;border:none;background:transparent;padding:.45rem .6rem;border-radius:.5rem;text-align:left;font-size:.9rem;color:inherit}.icd-result-item:hover{background:#f6eddd}.icd-result-code{font-weight:600;color:#7a5d17;min-width:3.5rem}.icd-result-desc{display:flex;flex-direction:column;gap:.1rem}.icd-result-desc-lat{font-size:.8rem;color:#a0833b}.icd-selected-list{display:flex;flex-wrap:wrap;gap:.4rem}.icd-chip{display:inline-flex;align-items:center;gap:.4rem;background:#f6eddd;color:#7a5d17;border-radius:999px;padding:.3rem .6rem;box-shadow:inset 0 0 0 1px hsla(41,58%,65%,.6)}.icd-chip-code{font-weight:600}.icd-chip-desc{font-size:.88rem}.icd-chip-remove{background:none;border:none;color:#a26d1f;font-size:1rem;line-height:1;padding:0 .2rem;cursor:pointer}.icd-chip-remove:hover{color:#7a5d17}.error-text{color:#b94a48;font-size:.85rem}.system-dashboard{display:flex;flex-direction:column;gap:1.5rem}.dashboard-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.dashboard-header h1{margin:.25rem 0}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:#a17a2b;margin:0;font-weight:700}.timestamp{background:#f6eddd;color:#7a5d17;padding:.5rem .8rem;border-radius:.65rem;font-weight:600;align-self:center}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.metric-card{background:#fffaf3;border-radius:.85rem;border:1px solid hsla(41,58%,65%,.35);padding:1.1rem;box-shadow:0 12px 30px rgba(187,135,46,.15);display:flex;flex-direction:column;gap:.6rem}.metric-card header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.metric-card h2{margin:.15rem 0 0;font-size:1.2rem}.metric-value{font-size:1.2rem;color:#7a5d17}.metric-chart{width:100%;height:120px;border-radius:.65rem;background:linear-gradient(180deg,hsla(38,58%,92%,.8),hsla(38,73%,97%,.9));border:1px solid hsla(41,58%,65%,.35)}.progress{background:#f6eddd;border-radius:999px;padding:.15rem;border:1px solid hsla(41,58%,65%,.5)}.progress-bar{height:.85rem;border-radius:999px;background:linear-gradient(90deg,#d6a041,#bb872e)}.progress-meta{display:flex;justify-content:space-between;color:#8f7d52;font-weight:600}.pill-list{display:flex;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;list-style:none}.pill{background:#f6eddd;color:#7a5d17;border-radius:999px;padding:.35rem .75rem;border:1px solid hsla(41,58%,65%,.45);font-weight:600}.connections-card{grid-column:span 2}.connections-header{display:flex;justify-content:space-between;align-items:center}.table{border:1px solid hsla(41,58%,65%,.35);border-radius:.75rem;overflow:hidden;background:#fff}.table-head,.table-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:.75rem;gap:.75rem;align-items:center;padding:.8rem 1rem}.table-head{background:#f6eddd;font-weight:700;color:#7a5d17}.table-row:nth-child(odd){background:#fffbf5}.table-row span{word-break:break-all}.alert{background:#fff4e2;border:1px solid rgba(214,160,65,.35);color:#7a5d17;padding:.9rem 1rem;border-radius:.75rem;font-weight:600}@media (max-width:720px){.dashboard-header{flex-direction:column;align-items:flex-start}.connections-card{grid-column:span 1}.table-head,.table-row{grid-template-columns:repeat(3,minmax(0,1fr))}.table-head span:nth-child(n+4),.table-row span:nth-child(n+4){display:none}}