:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#18352f;background:#f6f4ed;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f6f4ed}button,input,textarea,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d28b52;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}h1{font-size:clamp(2rem,8vw,3.4rem);line-height:1.02;margin-bottom:.5rem}h2{font-size:1.25rem;margin-bottom:.45rem}h3{font-size:1rem;margin-bottom:.35rem}button{border:0;border-radius:999px;padding:.75rem 1rem;color:#18352f;background:transparent;font-weight:650}button:hover{filter:brightness(.97)}input,textarea,select{width:100%;color:#18352f;border:1px solid #b9c7bb;border-radius:12px;background:#fffef9;padding:.8rem .9rem}textarea{resize:vertical;line-height:1.45}.voice-text-field{position:relative;display:block;width:100%}.voice-text-field>input,.voice-text-field>textarea{padding-right:4.35rem}.voice-entry-button{position:absolute;z-index:1;top:.43rem;right:.38rem;display:inline-flex;min-width:3.55rem;min-height:2.75rem;align-items:center;justify-content:center;gap:.22rem;border:1px solid #a9c3b3;padding:.35rem .42rem;background:#f8fcf7;color:#285e52;font-size:.68rem;font-weight:800}.voice-entry-button.recording{border-color:#bd694e;background:#fff0ea;color:#903c2e}.voice-text-area .voice-entry-button{top:.55rem}.voice-privacy-note{margin:-.25rem 0 .85rem;color:#66786f;font-size:.72rem;line-height:1.4}.app{min-height:100svh;max-width:780px;margin:auto;padding:max(1.1rem,env(safe-area-inset-top)) 1rem calc(9rem + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.65rem}.brand{display:flex;align-items:center;gap:.55rem;padding:0;font-family:Georgia,serif;font-size:1.8rem;letter-spacing:-.08em}.brand-mark{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50% 50% 50% 8%;background:#214b45;color:#f6f4ed;font-size:1.4rem;transform:rotate(-15deg)}.eyebrow,.label,.routine-type{color:#6b7568;font-size:.72rem;font-weight:750;letter-spacing:.1em;text-transform:uppercase}.lede{max-width:40rem;color:#587068;font-size:1.02rem;line-height:1.55}.small{color:#66786f;font-size:.8rem;line-height:1.45}.quiet-button{border:1px solid #c5d1c5;background:#ffffff80}.primary{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:1px solid #214b45;background:#214b45;color:#fffdf8;box-shadow:0 5px 15px #204b4424}.text-button{padding:.55rem 0;color:#285e52;text-decoration:underline;text-underline-offset:3px}.danger{color:#b4473c}.icon-button{width:2.35rem;height:2.35rem;padding:0;border-radius:50%;background:#ecf0e9;font-size:1.4rem}.check-in{margin:1.6rem 0;border:0;padding:0}.check-in legend{margin-bottom:.55rem;font-weight:700}.check-in legend span{color:#78877e;font-size:.8rem;font-weight:500}.check-in div{display:flex;flex-wrap:wrap;gap:.45rem}.check-in button{border:1px solid #c5d1c5;background:#fbfaf5;font-size:.88rem}.check-in button:nth-child(3),.check-in button:nth-child(4){border-color:#d6b678;background:#fffaf0}.capture-card,.routine-builder{border:1px solid #b5c7b9;border-radius:22px;padding:1.15rem;background:#e8efe7;box-shadow:0 14px 28px #1e483d12}.section-heading{display:flex;gap:.75rem;align-items:baseline;justify-content:space-between}.section-heading>span{color:#78877e;font-size:.78rem}.section-heading h2,.section-heading h3{margin-bottom:0}.private-label{border-radius:999px;padding:.35rem .55rem;background:#f9f5ea;color:#687064;font-size:.67rem;font-weight:700;white-space:nowrap}.capture-card .voice-text-field{margin:.9rem 0 .25rem}.capture-card textarea{margin:0;min-height:8.2rem;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #d2ddd0}.capture-actions,.modal-actions,.routine-actions,.insight-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.quick-section,.today-timeline,.routine-list,.episode-list,.insight-card,.feedback-card,.appointment-card,.question-list{margin-top:2.25rem}.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.quick-action{display:flex;justify-content:space-between;align-items:center;min-height:3.3rem;border:1px solid #d2d9ce;background:#fdfcf7;text-align:left}.quick-action span{color:#567267;font-size:1.2rem}.timeline-card{display:flex;gap:.85rem;padding:1rem .2rem;border-bottom:1px solid #d7ddd4}.timeline-card p{margin-bottom:.2rem;color:#78877e;font-size:.77rem}.timeline-card h3{margin-bottom:.23rem}.timeline-card span:last-child{color:#587068;font-size:.88rem}.timeline-dot{width:.65rem;height:.65rem;flex:none;margin-top:.3rem;border:3px solid #f6f4ed;border-radius:50%;background:#cf8654;box-shadow:0 0 0 2px #cf8654}.empty{margin:.7rem 0;padding:1rem;border-radius:12px;background:#eff1ea;color:#65766d;font-size:.92rem}.empty.large{margin-top:1.2rem;padding:1.35rem;text-align:center}.bottom-nav{position:fixed;z-index:5;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);gap:.1rem;padding:.55rem max(.65rem,env(safe-area-inset-right)) calc(.55rem + env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left));border-top:1px solid #d5ded4;background:#faf9f4f2;box-shadow:0 -8px 25px #1a3a3312;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.bottom-nav button{min-height:3rem;padding:.35rem;color:#6b776f;font-size:.7rem}.bottom-nav button.active{color:#17473f;font-weight:800}.capture-button{position:fixed;z-index:6;right:1rem;bottom:calc(4.2rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.3rem;border:1px solid #214b45;background:#214b45;color:#fffdf8;box-shadow:0 8px 20px #1e4b413d;font-size:.78rem}.capture-button span{font-size:1.05rem}.notice{position:relative;display:flex;justify-content:space-between;gap:.7rem;margin:0 0 1rem;border-radius:14px;padding:.8rem .9rem;font-size:.88rem;line-height:1.45}.notice.error{border:1px solid #e1b4a7;background:#fff3ef;color:#7f372d}.notice .icon-button{flex:none;width:1.7rem;height:1.7rem;background:transparent}.rough .quick-grid{grid-template-columns:1fr}.rough .capture-card{background:#f6ecdc;border-color:#debf93}.filter-bar{display:grid;gap:.6rem;margin:1.6rem 0 .8rem}.filter-select select{appearance:auto}.export-row{display:flex;justify-content:space-between;align-items:center;color:#708077;font-size:.82rem}.episode-list{margin-top:.35rem}.episode-card{width:100%;margin-top:.75rem;border:1px solid #d4ddd3;border-radius:17px;padding:1rem;background:#fffef9;text-align:left}.episode-card h2{margin:.3rem 0;font-size:1.1rem}.episode-card p{display:-webkit-box;overflow:hidden;margin-bottom:.75rem;color:#587068;font-size:.88rem;line-height:1.45;-webkit-line-clamp:2;-webkit-box-orient:vertical}.episode-date,.open-label{color:#6a7d72;font-size:.75rem}.open-label{display:block;margin-top:.8rem;color:#285e52;font-weight:750}.event-pills{display:flex;flex-wrap:wrap;gap:.35rem}.event-pill,.more-pill{display:inline-flex;max-width:100%;align-items:center;gap:.25rem;overflow:hidden;border-radius:999px;padding:.32rem .5rem;background:#eaf0e9;color:#33594f;font-size:.7rem;font-weight:650;white-space:nowrap;text-overflow:ellipsis}.event-pill span{color:#6f8378;font-size:.58rem;letter-spacing:.04em;text-transform:uppercase}.type-measurement{background:#e6edf5;color:#375879}.type-medication{background:#f5e7d6;color:#8a5531}.type-symptom,.type-flare{background:#f5e2dd;color:#873f36}.type-outcome{background:#dff0e5;color:#246342}.type-sleep{background:#e8e6f6;color:#534584}.privacy-card{margin-top:2rem;border-radius:16px;padding:1.1rem;background:#e7ede9}.privacy-card h2{font-size:1rem}.privacy-card p{color:#557167;font-size:.86rem;line-height:1.5}.removed-items{margin-top:1.25rem;border:1px solid #ead9ce;border-radius:14px;padding:.9rem;background:#fff9f6}.removed-items h2{font-size:1rem}.removed-items div{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-top:1px solid #f0e3dc;padding:.45rem 0;color:#674f44;font-size:.85rem}.modal-backdrop{position:fixed;z-index:10;inset:0;overflow-y:auto;background:#142f2973;padding:max(1rem,env(safe-area-inset-top)) 0}.modal{width:min(720px,calc(100% - 1.2rem));margin:0 auto;border-radius:23px;padding:1.1rem;background:#fdfcf7;box-shadow:0 24px 60px #112a244d}.modal-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.15rem}.modal-header h2{font-size:1.45rem}.original{margin:1rem 0;border-radius:12px;padding:.85rem;background:#f1efe7}.original blockquote{margin:.35rem 0 .5rem;color:#3c514a;font-family:Georgia,serif;font-size:1rem;line-height:1.45}.form-row{display:grid;gap:.65rem;margin:1rem 0}.form-row label,.routine-review label,.event-editor label{display:grid;gap:.35rem;color:#52675e;font-size:.78rem;font-weight:700}.form-row label span{font-weight:400}.review-events{display:grid;gap:.45rem;margin:.65rem 0}.review-event{display:grid;grid-template-columns:6.5rem minmax(0,1fr) minmax(0,.55fr) 2rem;gap:.35rem;align-items:center}.review-event input,.review-event select{min-width:0;padding:.55rem;font-size:.8rem}.remove{width:2rem;height:2rem;padding:0;color:#9a4036}.relationships,.uncertain,.clarification,.routine-suggestion,.audit{margin:1rem 0;border-left:3px solid #b7cabb;padding:.75rem .85rem;background:#f2f6f0}.relationships p,.uncertain p,.clarification p,.audit p{margin-bottom:.35rem;color:#4c665c;font-size:.86rem;line-height:1.4}.uncertain{border-color:#d7b576;background:#fff9ed}.uncertain span{color:#846b3d;font-size:.75rem}.clarification{border-color:#94b2d0;background:#eff6fc}.clarification div{display:flex;gap:.35rem;align-items:center}.clarification button:not(.text-button){background:#dcebf8}.routine-suggestion{border-color:#bdaedc;background:#f5f1fa}.safety-notice{margin-bottom:1rem;border:1px solid #d2775c;border-radius:12px;padding:.8rem;background:#fff3ed;color:#75372b;font-size:.88rem;line-height:1.4}.safety-notice p{margin:.25rem 0 0}.episode-time{color:#6f8077;font-size:.85rem}.detail-event{margin-top:.65rem;border:1px solid #dde3db;border-radius:13px;padding:.8rem}.detail-event p{margin:.5rem 0;color:#597067;font-size:.86rem}.source-label{color:#72827a;font-size:.72rem}.detail-actions{display:flex;gap:1rem}.event-editor{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}.event-editor div{grid-column:1 / -1;display:flex;gap:.6rem}.event-editor input,.event-editor select{padding:.55rem}.routine-builder{margin-top:1.5rem}.routine-builder h2{margin-bottom:.55rem}.routine-builder .voice-text-field{margin-bottom:.6rem}.routine-review{margin-top:1rem;border-radius:13px;padding:.85rem;background:#fffdf7}.routine-review ol{padding-left:1.3rem;color:#486257;line-height:1.7}.routine-card{margin-top:.75rem;border:1px solid #d4ddd3;border-radius:18px;padding:1rem;background:#fffef9}.routine-card h2{margin:.15rem 0 .4rem}.routine-card>p:not(.routine-type){color:#587068;font-size:.88rem}.routine-open{margin-top:.85rem;border-top:1px solid #e0e5dd;padding-top:.8rem}.routine-open ol{padding-left:1.35rem}.routine-open li{padding:.3rem 0}.routine-open label{display:flex;gap:.6rem;align-items:start}.routine-open input{width:1.1rem;height:1.1rem;flex:none;margin-top:.1rem}.rating-row{display:flex;flex-wrap:wrap;gap:.35rem}.rating-row button{border:1px solid #cedacd;padding:.5rem .65rem;background:#fff;font-size:.75rem}.rating-row button.selected{border-color:#30705f;background:#dff0e5}.insight-card,.feedback-card,.appointment-card,.question-list{border:1px solid #d0dbd0;border-radius:20px;padding:1.15rem;background:#fffef9}.insight-top{display:flex;justify-content:space-between;gap:.5rem;align-items:center}.confidence{border-radius:999px;padding:.32rem .55rem;background:#edf0ec;color:#5e7267;font-size:.68rem;font-weight:800}.confidence.possible_pattern,.confidence.repeated_pattern{background:#f6ead9;color:#8b5d27}.confidence.strong_repeated_association{background:#dcefe1;color:#236242}.insight-card section{margin-top:1.1rem}.insight-card section p{color:#506960;font-size:.9rem;line-height:1.5}.insight-card dl{display:grid;grid-template-columns:1fr;gap:.5rem}.insight-card dl div{border-radius:10px;padding:.65rem;background:#f1f5f0}.insight-card dt{color:#73837a;font-size:.67rem;font-weight:700;text-transform:uppercase}.insight-card dd{margin:.15rem 0 0;color:#365349;font-size:.8rem}.confounders{display:flex;flex-wrap:wrap;gap:.35rem}.confounders span{border-radius:99px;padding:.35rem .5rem;background:#edf0ec;color:#5e7267;font-size:.72rem}.feedback-card p,.appointment-card p,.question-list p{color:#557067;font-size:.88rem;line-height:1.45}.feedback-card div{display:flex;flex-wrap:wrap;gap:.45rem}.feedback-card button{border:1px solid #d5ddd3;background:#fff;font-size:.78rem}.appointment-card{display:grid;gap:1rem;background:#e8efe7}.appointment-card h2{font-size:1.2rem}.question-list p{padding:.6rem 0;border-bottom:1px solid #e0e5dd}.report textarea{background:#fbfaf5;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;line-height:1.5}.loading,.fatal{display:grid;min-height:100svh;place-content:center;padding:2rem;text-align:center}.fatal{background:#fff4f0;color:#6e312a}.fatal button{margin:0 auto;background:#6e312a;color:#fff}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:620px){.app{padding-right:1.8rem;padding-left:1.8rem}.quick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-bar{grid-template-columns:1fr 11rem}.form-row{grid-template-columns:1fr 1fr}.modal{padding:1.5rem}.appointment-card{grid-template-columns:1fr auto;align-items:center}.insight-card dl{grid-template-columns:repeat(3,1fr)}.bottom-nav{right:auto;bottom:1rem;left:50%;width:520px;max-width:calc(100% - 2rem);transform:translate(-50%);border:1px solid #d5ded4;border-radius:18px;padding:.45rem}.capture-button{right:calc(50% - 360px);bottom:1.5rem}.app{padding-bottom:7rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@media print{.topbar,.bottom-nav,.capture-button,.modal-header button,.modal-actions,.notice{display:none!important}.modal-backdrop{position:static;background:#fff;padding:0}.modal{width:100%;box-shadow:none}.report textarea{height:auto;border:0}}.voice-text-field>input,.voice-text-field>textarea{padding-right:5.35rem}.voice-text-field .voice-entry-button{min-width:4.5rem;overflow:hidden;font-size:.75rem;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}.voice-text-field .voice-entry-button.starting{border-color:#c58f47;background:#fff6e6;color:#7a511f}.voice-text-field .voice-entry-button.listening{border-color:#8e352a;background:#a94134;color:#fff;box-shadow:0 0 0 4px #a941342e,0 5px 14px #6c2b2333}.voice-text-field .voice-entry-button.stopping{border-color:#bd8b7d;background:#f7e5df;color:#75483e}.voice-mic-icon{width:1rem;height:1rem;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8}.voice-live-dot{width:.66rem;height:.66rem;flex:none;border-radius:50%;background:currentColor}.voice-entry-button.listening .voice-live-dot,.voice-recording-status.listening .voice-live-dot{animation:faci-voice-pulse 1.15s ease-out infinite}.voice-recording-status{display:flex;min-height:2.25rem;align-items:center;gap:.5rem;margin:.45rem .2rem 0;border:1px solid #d7b576;border-radius:11px;padding:.48rem .65rem;background:#fff8eb;color:#755126;font-size:.76rem;font-weight:750;line-height:1.35}.voice-recording-status.listening{border-color:#d59a8b;background:#fff0eb;color:#8e352a}.voice-recording-status.stopping{border-color:#d6c1ba;background:#f8f1ee;color:#6f554e}.review .form-row>label,.review .form-row input[type=datetime-local],.review-event>.voice-text-field{width:100%;min-width:0;max-width:100%}.review .form-row input[type=datetime-local]{min-inline-size:0;max-inline-size:100%}.review-event .voice-text-field>input{padding-right:3.4rem}.review-event .voice-entry-button{width:2.75rem;min-width:2.75rem;padding-right:.35rem;padding-left:.35rem}.review-event .voice-entry-button>span:last-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:619px){.review .form-row{gap:.9rem}.review-event{grid-template-columns:minmax(0,1fr) 2.75rem;gap:.5rem;border:1px solid #d8e0d6;border-radius:14px;padding:.65rem;background:#fbfaf5}.review-event>select{grid-column:1;grid-row:1}.review-event>.remove{grid-column:2;grid-row:1;width:2.75rem;height:2.75rem}.review-event>.voice-text-field{grid-column:1 / -1}.review-event input,.review-event select{min-height:2.75rem}.review-event .voice-recording-status{margin-right:0;margin-left:0}}@keyframes faci-voice-pulse{0%{box-shadow:0 0 #ffffffbf;transform:scale(.9)}65%{box-shadow:0 0 0 .42rem #fff0;transform:scale(1)}to{box-shadow:0 0 #fff0;transform:scale(.9)}}@media(prefers-reduced-motion:reduce){.voice-text-field .voice-entry-button{transition:none}.voice-entry-button.listening .voice-live-dot,.voice-recording-status.listening .voice-live-dot{animation:none}}.routine-review h3{margin-bottom:.35rem}.routine-proposal-description{margin:0 0 .85rem;color:#526b61;font-size:.84rem;line-height:1.45}.routine-review>label+label{margin-top:.7rem}.routine-review ol{display:grid;gap:.5rem;margin:.75rem 0}.routine-review li{display:grid;grid-template-columns:minmax(0,1fr) 2rem;gap:.4rem;align-items:center}.routine-review li .voice-text-field{min-width:0}.routine-proposal-actions{display:flex;justify-content:flex-end;gap:.6rem;margin-top:.8rem}@media(max-width:420px){.routine-proposal-actions{align-items:stretch;flex-direction:column-reverse}.routine-proposal-actions button{width:100%}}
