:root{color-scheme:light;--paper:#faf9f6;--side:#f0eee8;--ink:#34332f;--muted:#7d7a72;--line:#e5e1d8;--accent:#c96442;--accent-hover:#b65536;--serif:Georgia,'Times New Roman',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans)}[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}button,a,input,[contenteditable]{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,[contenteditable]:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button{transition:background .15s,color .15s}a{color:inherit;text-decoration:none}h1,h2,h3,.brand{font-family:var(--serif);font-weight:400}h1,h2,h3,p{margin-top:0}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}input{min-width:0;width:100%;border:1px solid #d8d3c9;border-radius:8px;padding:12px 14px;background:#fdfcf9;color:var(--ink)}input::placeholder{color:#99948a}label{display:block;font-size:14px;font-weight:500;margin:18px 0 8px}.primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--accent);color:white;border:1px solid transparent;padding:11px 18px;border-radius:8px;font-size:14px;font-weight:500;white-space:nowrap}.primary:hover{background:var(--accent-hover)}.primary span{font-size:19px;line-height:1}.wide{width:100%;justify-content:space-between}.text-button{border:0;background:transparent;color:var(--muted);padding:7px 9px}.text-button:hover{color:var(--accent)}.icon-button{background:transparent;border:0;color:var(--muted);width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;font-size:26px;flex-shrink:0}.icon-button:hover{background:#e6e1d7;color:var(--ink)}.brand{display:flex;align-items:center;gap:11px;font-size:30px;letter-spacing:-1.2px}.eyebrow{display:block;font-size:10px;letter-spacing:2px;font-weight:600;color:#948b7b;margin-bottom:14px}.muted,.hint{color:var(--muted)}.hint{font-size:12px;margin:8px 0 20px}.error{color:#ad3c29;font-size:13px;margin:14px 0;white-space:pre-wrap}.error:empty{display:none}.mobile-only{display:none}.loading{height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center}.loading p{font:28px var(--serif);margin-top:15px}
.auth{min-height:100dvh;display:flex;flex-direction:column;align-items:center;padding:65px 24px 25px;background:radial-gradient(ellipse at 50% 35%,#f3eee4 0,transparent 60%),var(--paper)}.auth-brand{font-size:36px;gap:14px}.auth-card{width:100%;max-width:405px;margin:70px 0 40px}.auth-card h1{font-size:37px;line-height:1.2;letter-spacing:-1px;margin-bottom:18px}.auth-card>p{color:var(--muted);font-size:15px;line-height:1.8}.auth-card form{margin-top:28px}.auth-card .primary{margin-top:22px}.auth-foot{margin-top:auto;color:#9d9588;font-family:var(--serif);font-style:italic;font-size:14px}.auth-card .text-button{margin-top:10px;justify-content:center}
.workspace{display:flex;min-height:100dvh}.sidebar{width:286px;flex:0 0 286px;background:var(--side);border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:29px 20px 0;z-index:30}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;padding:0 7px}.sidebar-subtitle{font:italic 13px/1.5 var(--serif);color:#8e8779;margin:13px 7px 29px}.new-patient{width:100%;border:1px solid #d9d1c4;border-radius:7px;background:#f8f6f0;padding:10px;color:#625649;text-align:left;font-size:13px;display:flex;align-items:center;gap:10px}.new-patient span{font-size:22px;line-height:1}.new-patient:hover{background:#e9e2d6}.search-wrap{position:relative;margin:18px 0 16px}.search-wrap svg{position:absolute;top:11px;left:12px;width:17px;height:17px;color:#938e83;pointer-events:none}.search-wrap input{font-size:12px;padding:10px 10px 10px 37px;border-color:transparent;background:#e9e6df;border-radius:7px}.patient-list-divider{width:100%;border:0;border-top:1px solid #ded9cf;margin:0 0 12px;flex-shrink:0}.patients{overflow-y:auto;flex:1;padding-bottom:20px}.patient-item{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:0;background:transparent;border-radius:0;text-align:left;padding:7px 9px;margin:0;color:#a39f96;min-height:35px}.patient-item:hover{color:#68655e}.patient-item.active,.patient-item.active:hover{color:var(--ink)}.patient-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.patient-date{font-size:10px;white-space:nowrap;text-align:right;color:inherit;font-variant-numeric:tabular-nums}.no-patients{font-size:13px;color:var(--muted);padding:15px 9px}.sidebar-footer{display:flex;align-items:center;gap:10px;border-top:1px solid #ded9cf;padding:20px 4px 24px}.account-avatar{width:32px;height:32px;border-radius:50%;background:#ddd7cb;color:#827361;display:grid;place-items:center;font:14px var(--serif)}.sidebar-footer>div{min-width:0;flex:1}.sidebar-footer #account-label{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer small{font-size:10px;color:#969084}.sidebar-footer svg{width:18px}
.main{margin-left:286px;flex:1;min-width:0}.topbar{height:76px;display:flex;align-items:center;padding:0 42px;gap:12px;border-bottom:1px solid #eeebe4}.breadcrumb{flex:1;font-size:11px;color:#aaa194;display:flex;align-items:center;gap:12px;min-width:0;overflow:hidden;white-space:nowrap}.breadcrumb>span:last-child{color:#7c7467;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.save-status{flex-shrink:0;font-size:11px;color:#908c7f;max-width:270px;line-height:1.5}.save-status[data-state=error]{color:#ac422b;flex-shrink:1}.save-status[data-state=saved]::before{content:'✓';margin-right:6px;color:#8c947a}.patient-page{max-width:950px;margin:0 auto;padding:61px 65px 28px}.patient-heading{margin-bottom:48px}.patient-heading h1{font-size:48px;line-height:1.15;letter-spacing:-1.6px;margin-bottom:14px;overflow-wrap:anywhere}.topbar #new-note{flex-shrink:0;padding:9px 14px;font-size:12px}.notes{width:100%}.note{padding:0 0 36px;margin-bottom:35px}.note-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.note h2{font-size:25px;letter-spacing:-.5px;line-height:1.3;margin:0}.note-edit{font-size:11px;opacity:0;pointer-events:none;display:flex;align-items:center;gap:5px}.note-edit svg{width:13px;height:13px}.note:hover .note-edit,.note-edit:focus-visible{opacity:1;pointer-events:auto}.note-body,.editor{font-family:var(--sans);font-size:15px;line-height:1.95;overflow-wrap:anywhere;white-space:normal}.note-body p,.editor p{margin:0 0 15px}.note-body ul,.note-body ol,.editor ul,.editor ol{padding-left:24px}.note-body>:last-child,.editor>:last-child{margin-bottom:0}.empty-body{color:#aaa195;font-style:italic;font-size:14px}.editor-wrap{border:1px solid #d8c9b6;border-radius:8px;background:#fdfcf9;overflow:hidden}.toolbar{display:flex;align-items:center;gap:3px;padding:7px 9px;border-bottom:1px solid var(--line);background:#f4f1e9}.toolbar button{height:31px;min-width:34px;border:0;border-radius:4px;background:transparent;color:#786f60;font-size:14px;padding:4px 9px}.toolbar button:hover,.toolbar button[aria-pressed=true]{background:#e4dbcc;color:#765443}.toolbar button:nth-child(2){font-family:var(--serif);font-style:italic}.toolbar .finish-edit{margin-left:auto;font-size:11px}.editor{padding:20px 23px;min-height:240px;outline-offset:-3px}.editor:empty::before{content:attr(data-placeholder);color:#b3a99b;pointer-events:none}.note-date{width:auto;padding:6px 9px;font-size:14px;background:transparent;max-width:180px}.date-label{font-size:11px;color:var(--muted);margin:0 0 4px}.editing .note-heading{align-items:flex-end}.editor-help{font-size:10px;color:#9b9285;margin:8px 2px 0}.empty-notes{text-align:center;padding:42px 8px 70px;color:var(--muted)}.empty-notes h2{font-size:25px;margin:22px 0 12px;color:#8a7c67}.empty-notes p{font-size:13px}.empty-line{display:block;width:48px;height:1px;margin:auto;background:#d9cbb6}.page-footer{display:flex;align-items:center;justify-content:center;gap:8px;font:italic 12px var(--serif);color:#b2a696;margin-top:30px;padding-top:30px}.page-footer img{opacity:.6}.welcome{min-height:calc(100dvh - 76px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 30px;text-align:center}.welcome>img{margin-bottom:30px}.welcome h1{font-size:49px;line-height:1.15;letter-spacing:-1.5px;margin-bottom:22px}.welcome>p{font-size:14px;color:var(--muted);line-height:1.85}.welcome .primary{margin:15px 0}.welcome .welcome-note{font-size:11px;color:#a79e90;margin-top:16px}
dialog{width:calc(100% - 36px);max-width:430px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:30px;box-shadow:0 24px 100px #332d2026}dialog::backdrop{background:#322b2447;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-heading h2{font-size:28px;margin:0}.dialog-heading+p{color:var(--muted);font-size:13px;margin-top:15px}dialog .primary{margin-top:24px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:min(90vw,540px);padding:14px 20px;background:#51463b;color:#fffaf2;box-shadow:0 5px 24px #0002;border-radius:9px;font-size:13px;z-index:80}.sidebar-overlay{display:none}

.patient-title{display:flex;align-items:center;gap:12px;width:fit-content;max-width:100%;margin-bottom:14px}
.patient-heading .patient-title h1{margin-bottom:0;min-width:0}
#edit-patient{opacity:0;pointer-events:none}
.patient-title:hover #edit-patient,#edit-patient:focus-visible{opacity:1;pointer-events:auto}
#edit-patient svg{width:18px;height:18px}
.editor-footer{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:5px}
.editor-footer .editor-help{margin:4px 2px 0}
.editor-footer .delete-note{font-size:11px;flex-shrink:0}
.danger-text{color:#ad3c29}
.danger-text:hover{color:#842b1e}
#delete-patient{display:block;margin:16px auto 0}
.confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}
.confirm-actions .primary{margin:0}
.primary.danger{background:#ad3c29}
.primary.danger:hover{background:#842b1e}
#confirm-dialog h2{font-size:28px;line-height:1.3;margin-bottom:16px;overflow-wrap:anywhere}
#confirm-description{font-size:14px;color:var(--muted)}
@media(min-width:1500px){.patient-page{max-width:1050px;padding-top:75px;padding-left:90px;padding-right:90px}}
@media(max-width:1100px){.sidebar{width:250px;flex-basis:250px;padding-left:16px;padding-right:16px}.main{margin-left:250px}.patient-page{padding:45px 37px 28px}.patient-heading h1{font-size:40px}.patient-heading{gap:18px}.topbar{padding:0 28px}.breadcrumb>span:last-child{max-width:150px}.save-status{max-width:180px}}
@media(max-width:760px){.mobile-only{display:inline-flex}.sidebar{width:min(320px,87vw);transform:translateX(-100%);transition:transform .2s ease;padding-top:24px}.sidebar.open{transform:translateX(0)}.sidebar-overlay:not([hidden]){display:block;position:fixed;inset:0;border:0;background:#30292066;z-index:25}.main{margin-left:0}.topbar{display:grid;grid-template-columns:36px minmax(0,1fr) auto;min-height:65px;height:auto;padding:12px 17px;gap:0 7px}.topbar #open-sidebar{grid-column:1;grid-row:1}.topbar .breadcrumb{grid-column:2;grid-row:1}.topbar #new-note{grid-column:3;grid-row:1;padding:8px 10px;font-size:11px}.topbar .save-status{grid-column:2;grid-row:2;max-width:none;margin-top:4px}.topbar .save-status:empty{display:none}.topbar #retry-save{grid-column:3;grid-row:2}.breadcrumb{font-size:10px;gap:8px}.breadcrumb>span:last-child{max-width:145px}.save-status{font-size:10px;max-width:130px}.patient-page{padding:37px 25px 25px}.patient-heading{margin-bottom:40px}.patient-heading h1{font-size:42px;margin-bottom:10px}.note h2{font-size:24px}.note-body,.editor{font-size:16px;line-height:1.85}.note{margin-bottom:28px;padding-bottom:28px}.note-heading{margin-bottom:16px}.editor{padding:16px;min-height:260px}.toolbar{padding:6px}.editor-help{font-size:10px}.welcome{min-height:calc(100dvh - 65px)}.welcome h1{font-size:42px}.auth{padding-top:36px}.auth-card{margin-top:48px}.auth-card h1{font-size:34px}.auth-foot{font-size:12px}.sidebar-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}input{font-size:16px}.search-wrap input{font-size:16px;padding-top:9px;padding-bottom:9px}.note-date{font-size:16px}.page-footer{margin-top:10px}.topbar #retry-save{font-size:10px;padding:4px}.auth-card input{font-size:16px}}
.sidebar-heading{margin-bottom:28px}
@media(min-width:761px){
  .sidebar{padding-top:0}
  .sidebar-heading{height:76px;flex-shrink:0;margin-bottom:29px;padding-bottom:1px}
}
@media(min-width:761px) and (hover:hover) and (pointer:fine){
  .sidebar{--sidebar-opacity:.22;background:color-mix(in srgb,var(--side) 22%,var(--paper));border-right-color:color-mix(in srgb,var(--line) 22%,var(--paper));transition:background .2s,border-color .2s}
  .sidebar>:not(.sidebar-heading){opacity:var(--sidebar-opacity);transition:opacity .2s}
  .sidebar:hover,.sidebar:has(:focus-visible){--sidebar-opacity:1;background:var(--side);border-right-color:var(--line)}
}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.timeline{display:none}
@media(min-width:1024px){
  .main{--sidebar-width:286px;--page-width:950px}
  .patient-page{padding-left:177px}
  .timeline{--timeline-top:clamp(100px,22vh,220px);display:block;position:fixed;z-index:10;left:max(calc(var(--sidebar-width) + 12px),calc((100vw + var(--sidebar-width) - var(--page-width))/2 + 12px));top:var(--timeline-top);height:min(var(--timeline-height,600px),600px,max(1px,calc(100dvh - var(--timeline-top) - 48px)));width:108px;color:var(--ink);opacity:.22;transition:opacity .2s}
  .timeline:hover,.timeline:has(.timeline-track:focus-visible),.timeline.dragging{opacity:1}
  .timeline-track{position:relative;height:100%;cursor:ns-resize;touch-action:none;user-select:none;outline-offset:5px;border-radius:3px}
  .timeline-track::before{content:'';position:absolute;top:0;bottom:0;right:20px;width:1px;background:var(--line)}
  .timeline-tick,.timeline-label{position:absolute;top:var(--position);transform:translateY(-50%);pointer-events:none}
  .timeline-tick{right:17px;width:7px;height:1px;background:#a39b8e}
  .timeline-label{right:34px;max-width:74px;white-space:nowrap;font-size:10px;line-height:1.3;color:var(--muted);font-variant-numeric:tabular-nums}
  .timeline-label.year{font-weight:600;color:var(--ink)}
  .timeline-thumb{position:absolute;top:var(--position,0%);right:16px;width:9px;height:9px;border-radius:50%;transform:translateY(-50%);background:var(--accent);box-shadow:0 0 0 3px var(--paper);pointer-events:none}
  .timeline-preview{position:absolute;top:clamp(18px,var(--position,0%),calc(100% - 18px));left:100px;transform:translateY(-50%);padding:6px 10px;border:1px solid var(--line);border-radius:5px;background:var(--paper);box-shadow:0 3px 12px #34332f0d;white-space:nowrap;font-size:12px;color:var(--ink);pointer-events:none}
  .timeline:not(:hover) .timeline-preview{display:none}
}
@media(min-width:1024px) and (max-width:1100px){.main{--sidebar-width:250px}}
@media(min-width:1500px){.main{--page-width:1050px}.patient-page{padding-left:202px}}
@media(hover:none),(pointer:coarse){.patient-item{min-height:40px}.note-edit,#edit-patient{opacity:1;pointer-events:auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
