:root{--bg: #f3efe6;--bg-deep: #e7e0d2;--ink: #1c2421;--muted: #5c6b64;--line: #c9c0b0;--panel: rgba(255, 252, 246, .88);--accent: #0f6a5b;--accent-soft: #d7ebe6;--warn: #8a3b12;--shadow: 0 18px 40px rgba(28, 36, 33, .08);--radius: 14px;font-family:IBM Plex Sans,sans-serif;color:var(--ink);background:radial-gradient(circle at 10% 0%,#fff8ea 0%,transparent 40%),radial-gradient(circle at 90% 10%,#d9ebe4 0%,transparent 35%),linear-gradient(180deg,var(--bg),var(--bg-deep));line-height:1.45}*{box-sizing:border-box}body{margin:0;min-height:100vh}h1,h2,h3{font-family:"IBM Plex Serif",serif;font-weight:600;letter-spacing:-.02em;margin:0 0 .4rem}a{color:var(--accent);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer;border:0;border-radius:999px;background:var(--accent);color:#fff;padding:.65rem 1.1rem;font-weight:500}button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}button.danger{background:var(--warn)}input,select,textarea{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:10px;padding:.7rem .85rem}label{display:grid;gap:.35rem;font-size:.92rem;color:var(--muted)}.app-shell{max-width:1100px;margin:0 auto;padding:1.25rem 1.25rem 3rem}.topbar{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1.5rem;flex-wrap:wrap}.brand{font-family:"IBM Plex Serif",serif;font-size:1.55rem;font-weight:600;color:var(--ink);display:inline-block;line-height:1.15}a.brand:hover,a.brand.active{color:var(--accent);background:transparent}.nav{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.nav-grouped{gap:1rem;justify-content:flex-end}.nav-group{display:flex;flex-direction:column;gap:.35rem;padding:.45rem .55rem;border-radius:12px;background:#ffffff59;border:1px solid rgba(201,192,176,.45)}.nav-group-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-left:.35rem}.nav-group-links{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center}.nav a{color:var(--muted);padding:.35rem .55rem;border-radius:8px;transition:background .15s ease,color .15s ease}.nav a.active,.nav a:hover{color:var(--ink);background:#ffffffb3}.nav-group button.secondary{padding:.35rem .7rem;font-size:.85rem}.panel{background:var(--panel);border:1px solid rgba(201,192,176,.7);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.25rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@keyframes fade-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes chart-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}.chart-line-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:chart-draw .9s ease forwards}.compare-picks{display:flex;flex-wrap:wrap;gap:.45rem}.compare-chip{background:#ffffffa6;color:var(--ink);border:1px solid var(--line);padding:.4rem .75rem;font-size:.88rem}.compare-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.compare-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.compare-legend-item{display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:600}.compare-swatch{width:10px;height:10px;border-radius:999px}.chart-wrap{overflow-x:auto}.chart-tick{font-size:11px;fill:var(--muted)}.stack{display:grid;gap:1rem}.row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.grid-2{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.muted{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em}.type-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .65rem;border-radius:999px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border:1px solid transparent}.type-pill svg{flex:0 0 auto}.type-lab_test{background:#dcefea;color:#0f6a5b;border-color:#b9d8d0}.type-prescription{background:#e8e4f6;color:#4a3d8f;border-color:#cdc4ea}.type-doctor_note{background:#e3eef8;color:#1d4f91;border-color:#bfd3ea}.type-illness{background:#f7e4df;color:#8a3b12;border-color:#e7c3b4}.type-other{background:#ece7dc;color:#4a524c;border-color:#d5cec0}.type-tabs{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem;border:1px solid var(--line);border-radius:999px;background:#fffdf8e6}button.type-tab{width:2.15rem;height:2.15rem;padding:0;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);display:inline-grid;place-items:center;flex:0 0 auto}button.type-tab:hover{color:var(--ink);background:#1c24210d}button.type-tab.active.type-all{background:var(--accent-soft);color:var(--accent);border-color:#b9d8d0}button.type-tab.active.type-lab_test{background:#dcefea;color:#0f6a5b;border-color:#b9d8d0}button.type-tab.active.type-prescription{background:#e8e4f6;color:#4a3d8f;border-color:#cdc4ea}button.type-tab.active.type-doctor_note{background:#e3eef8;color:#1d4f91;border-color:#bfd3ea}button.type-tab.active.type-illness{background:#f7e4df;color:#8a3b12;border-color:#e7c3b4}button.type-tab.active.type-other{background:#ece7dc;color:#4a524c;border-color:#d5cec0}button.type-tab.active.type-flagged{background:#f6e0e0;color:#a12d36;border-color:#e4b6b9}.type-pill.type-flagged{background:#f6e0e0;color:#a12d36}.timeline-item{display:grid;gap:.35rem;padding:1rem 0;border-bottom:1px solid var(--line);animation:fade-rise .35s ease both}.timeline-item:last-child{border-bottom:0}.timeline-item h2{margin-top:.25rem}.login-page{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-card{width:min(420px,100%)}.error{color:var(--warn);font-size:.92rem}.card-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}.card-row:last-child{border-bottom:0}.row.gap{display:flex;flex-wrap:wrap;gap:.5rem}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:.65rem .4rem;border-bottom:1px solid var(--line);vertical-align:top}.empty{padding:1.5rem 1rem;color:var(--muted);text-align:center;border:1px dashed rgba(201,192,176,.8);border-radius:12px;background:#ffffff59}.profile-switcher{display:grid;gap:.65rem;margin-bottom:1.25rem;padding:.9rem 1rem;background:var(--panel);border:1px solid rgba(201,192,176,.7);border-radius:var(--radius);box-shadow:var(--shadow)}.profile-switcher-meta{display:flex;flex-wrap:wrap;gap:.4rem .55rem;align-items:baseline;font-size:.95rem}.profile-chips{display:flex;flex-wrap:wrap;gap:.5rem}.profile-chip{border:1px solid var(--line);background:#fffdf8;color:var(--ink);border-radius:999px;padding:.45rem .9rem;font-weight:500}.profile-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.profile-chip.manage{display:inline-flex;align-items:center;background:transparent;color:var(--muted)}.member-grid{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.member-card{display:flex;gap:.85rem;align-items:center;text-align:left;border-radius:12px;border:1px solid var(--line);background:#fffdf8;color:inherit;padding:.9rem 1rem}.member-card-edit{display:grid;gap:.75rem;align-items:stretch}.member-card.active{border-color:var(--accent);background:var(--accent-soft)}.member-meta{flex:1;min-width:0}.member-avatar{flex:0 0 2.5rem;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;line-height:1}.member-avatar-letter{display:block;font-size:1rem;font-weight:600;line-height:1;transform:translateY(.5px)}.icon-actions{display:inline-flex;gap:.35rem;margin-left:auto}.icon-btn{width:2.15rem;height:2.15rem;padding:0;border-radius:999px;border:1px solid var(--line);background:#fffdf8;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease}.icon-btn:hover{border-color:var(--accent);color:var(--accent);background:#fff}.icon-btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.icon-btn.accent:hover{color:#fff;filter:brightness(1.05)}.flag{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.flag.high{background:#f3d7c8;color:#8a3b12}.flag.low{background:#d9e4f5;color:#1d4f91}.flag.ok{background:var(--accent-soft);color:var(--accent)}.param-link{color:inherit;text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--accent) 45%,transparent)}.param-link:hover{color:var(--accent);border-bottom-color:var(--accent)}.param-chart-wrap{width:100%}.param-chart{width:100%;height:auto;display:block;background:linear-gradient(180deg,#fffdf8f2,#f3f7f5e6);border:1px solid rgba(201,192,176,.75);border-radius:12px}.param-chart-plot{fill:#ffffff73}.param-chart-grid{stroke:#1c242114;stroke-width:1}.param-chart-ref{stroke:#2f7d57;stroke-width:1.25;stroke-dasharray:4 4;opacity:.55}.param-chart-visit{stroke:#2d6a5a;stroke-width:1.5;stroke-dasharray:3 4;opacity:.65}.param-chart-visit-label{fill:#2d6a5a;font-size:11px;font-weight:600;text-anchor:middle}.param-chart-area{fill:url(#paramArea)}.param-chart-line{fill:none;stroke:#1f4f45;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.param-chart-halo{fill:transparent;pointer-events:none}.param-chart-point.in .param-chart-halo{fill:#2f7d571f}.param-chart-point.out .param-chart-halo{fill:#b423181f}.param-chart-dot{fill:#6b7c7c;stroke:#fff;stroke-width:2}.param-chart-point.in .param-chart-dot{fill:#2f7d57}.param-chart-point.out .param-chart-dot{fill:#b42318}.param-chart-point.neutral .param-chart-dot{fill:#5c6b64}.param-chart-value{fill:#314040;font-size:11px;font-weight:600;text-anchor:middle}.param-chart-axis{fill:#5c6b64;font-size:11px;text-anchor:end}.param-chart-axis.x{text-anchor:middle}.param-chart-legend{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.85rem;align-items:center}.param-chart-legend .swatch{display:inline-block;width:.65rem;height:.65rem;border-radius:999px;margin-right:.35rem;vertical-align:middle}.param-chart-legend .swatch.in{background:#2f7d57}.param-chart-legend .swatch.out{background:#b42318}.med-course-chart .med-course-bar{fill:#4a3d8f;opacity:.85}.med-course-chart .med-course-bar.status-prescribed{fill:#6b7c7c}.med-course-chart .med-course-bar.status-taking{fill:#0f6a5b}.med-course-chart .med-course-bar.status-taken{fill:#4a3d8f}.med-course-label{fill:#fff;font-size:10px;font-weight:600;pointer-events:none}.filter-pills{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}button.filter-pill{padding:.4rem .85rem;border-radius:999px;border:1px solid var(--line);background:#fffdf8f2;color:var(--muted);font-size:.82rem;font-weight:600}button.filter-pill:hover{color:var(--ink);border-color:color-mix(in srgb,var(--ink) 25%,var(--line))}button.filter-pill.active{background:var(--accent-soft);color:var(--accent);border-color:#b9d8d0}.search-form{display:flex;gap:.6rem;align-items:flex-start;flex-wrap:wrap}.search-box{position:relative;flex:1;min-width:220px}.search-box input{width:100%}.search-suggest{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 4px);margin:0;padding:.35rem;list-style:none;background:#fffdf8;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px #1c24211f;max-height:280px;overflow:auto}.search-suggest button{width:100%;display:flex;justify-content:space-between;gap:.75rem;text-align:left;border:0;background:transparent;padding:.55rem .65rem;border-radius:8px;color:var(--ink)}.search-suggest button:hover{background:#0f6a5b14}button.linkish{border:0;background:transparent;color:var(--accent);padding:0;font:inherit;text-decoration:underline;cursor:pointer}button.filter-pill.active.status-prescribed{background:#ece7dc;color:#4a524c;border-color:#d5cec0}button.filter-pill.active.status-taking{background:#dcefea;color:#0f6a5b;border-color:#b9d8d0}button.filter-pill.active.status-taken{background:#e8e4f6;color:#4a3d8f;border-color:#cdc4ea}.med-status{display:inline-flex;gap:.2rem;padding:.15rem;border-radius:999px;background:#fffdf8f2;border:1px solid var(--line)}button.med-status-btn{padding:.28rem .55rem;border-radius:999px;border:1px solid transparent;background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}button.med-status-btn:hover:not(:disabled){color:var(--ink);background:#1c24210d}button.med-status-btn.active.status-prescribed{background:#ece7dc;color:#4a524c;border-color:#d5cec0}button.med-status-btn.active.status-taking{background:#dcefea;color:#0f6a5b;border-color:#b9d8d0}button.med-status-btn.active.status-taken{background:#e8e4f6;color:#4a3d8f;border-color:#cdc4ea}.med-status-badge{display:inline-flex;padding:.2rem .55rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase}.med-status-badge.status-prescribed{background:#ece7dc;color:#4a524c}.med-status-badge.status-taking{background:#dcefea;color:#0f6a5b}.med-status-badge.status-taken{background:#e8e4f6;color:#4a3d8f}button.pdf-link{display:inline;padding:0;border:0;border-radius:0;background:none;color:var(--accent);font:inherit;font-weight:500;text-align:left}button.pdf-link:hover{text-decoration:underline}.pdf-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#141c1a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:1rem}.pdf-modal{width:min(1100px,100%);height:min(92vh,920px);display:grid;grid-template-rows:auto 1fr;background:#fffdf8;border:1px solid rgba(201,192,176,.85);border-radius:16px;box-shadow:0 28px 80px #141c1a47;overflow:hidden}.pdf-modal-bar{display:flex;gap:.75rem;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:.85rem 1rem;border-bottom:1px solid var(--line);background:#fffcf6f5}.pdf-modal-title{font-family:"IBM Plex Serif",serif;font-weight:600;font-size:1.05rem;min-width:0;flex:1 1 180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-modal-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.pdf-modal-actions button{padding:.45rem .8rem}.pdf-zoom-label{min-width:3.2rem;text-align:center;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.9rem}.pdf-modal-body{position:relative;overflow:auto;background:radial-gradient(circle at 20% 0%,rgba(215,235,230,.45),transparent 40%),#ece7dc}.pdf-modal-status{padding:2rem;text-align:center}.pdf-frame-scaler{min-height:100%;transform-origin:top center}.pdf-frame{display:block;width:100%;height:calc(92vh - 5.5rem);min-height:480px;border:0;background:#fff}.pdf-image-wrap{display:grid;place-items:start center;padding:1rem;min-height:100%}.pdf-image{max-width:none;height:auto;display:block;border-radius:4px;box-shadow:0 8px 28px #141c1a2e;background:#fff}.today-panel h2{font-size:1.15rem}.today-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem}.today-card{display:block;text-decoration:none;color:inherit;padding:.85rem 1rem;border-radius:14px;background:#ffffff8c;border:1px solid rgba(30,50,45,.08);transition:transform .15s ease,box-shadow .15s ease}a.today-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px #141c1a14}.today-card-label{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted, #6b736f);margin-bottom:.35rem}.today-card-value{font-size:.95rem;font-weight:600;line-height:1.3}.today-flags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.55rem}.today-flags .flag{font-size:.75rem;text-decoration:none}.labs-attention{padding:.65rem .85rem;border-radius:10px;background:#c83c3c1a;color:#a12828;font-weight:600;font-size:.9rem}.lab-spark{color:#1a8c92;vertical-align:middle}.lab-spark-cell{color:#1a8c92}
