:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;color:#1c342b;background:#f5f7f3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow-x:hidden}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.65}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #2e806c;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1{font-size:1.55rem;line-height:1.2;margin-bottom:.2rem}h2{font-size:1.27rem;line-height:1.25;margin-bottom:.4rem}h3{font-size:1.12rem;line-height:1.35;margin-bottom:.3rem;overflow-wrap:anywhere}p{line-height:1.5}.muted{color:#55685f}.break-anywhere{overflow-wrap:anywhere}.small-muted{font-size:.95rem;color:#55665e;margin:1rem 0 0}.centre-screen{min-height:100vh;display:grid;place-items:center;padding:1.5rem}.login-panel{width:100%;max-width:420px;text-align:center}.brand-mark{font-size:2.4rem;color:#39775f;line-height:1;margin-bottom:.8rem}.stacked-form{display:flex;flex-direction:column;text-align:left;gap:.7rem;margin-top:1.5rem}.page-shell{min-height:100vh}.app-header{max-width:860px;margin:auto;padding:1.15rem 1.25rem;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem 1rem}.signout-error{flex:1 0 100%;margin:0}.header-title{display:flex;align-items:center;gap:.8rem}.header-title h1{font-size:1.3rem}.header-title p{font-size:.95rem;color:#4f655a;margin:0}.header-flower{background:#e1ece4;color:#31684e;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;font-size:1.7rem}.main-content{max-width:860px;margin:0 auto;padding:0 1.25rem 3rem}.intro-card{padding:1.5rem;border-radius:20px;background:#e6efe6;margin-bottom:1rem}.intro-card p{color:#4e6659;margin-bottom:1.1rem}.panel{background:#fff;border:1px solid #e5ebe5;border-radius:18px;padding:1.5rem;box-shadow:0 4px 18px #193c2b08}.form-panel{margin-bottom:1.5rem;border-top-width:6px}.form-panel.exposure{border-top-color:#6fa77a}.form-panel.symptom{border-top-color:#d98a5b}.form-intro{margin:-.5rem 0 1rem}.action-row,.form-actions{display:flex;flex-wrap:wrap;gap:.65rem}.centred-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem;margin-top:1.25rem}.centred-actions .error-message{flex:1 0 100%;margin:0;text-align:left}button.primary,button.secondary{min-height:48px;padding:.65rem 1rem;border-radius:11px;border:1px solid transparent;font-weight:650}button.primary{background:#2c684c;color:#fff}button.primary:hover:not(:disabled){background:#22533c}button.secondary{color:#2b6249;border-color:#b8d0c0;background:#fff}button.secondary:hover:not(:disabled){background:#f0f6f0}button.compact{min-height:44px;min-width:44px;font-size:1rem;white-space:nowrap}button.secondary.danger{color:#9a2f2b;border-color:#e0b4b1}button.secondary.danger:hover:not(:disabled){background:#fff3f1}button.text-button{border:0;background:transparent;min-height:44px;min-width:44px;padding:.5rem .75rem;color:#246849;text-decoration:underline;text-underline-offset:3px;font-weight:600}button.text-button.danger{color:#a43b38}.section-head{display:flex;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem}.section-head h2{margin-bottom:0}.entry-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.field{display:flex;flex-direction:column;gap:.38rem;min-width:0}.field:has(textarea),.form-actions{grid-column:1 / -1}label{color:#273f32;font-weight:630;font-size:1rem}.optional{color:#55665e;font-weight:400}input,select,textarea{width:100%;max-width:100%;font-size:max(16px,1rem);border:1px solid #8fa89a;border-radius:10px;min-height:48px;padding:.65rem .75rem;color:#233a2f;background:#fff}textarea{min-height:100px;resize:vertical}input::placeholder,textarea::placeholder{color:#6b7d73}input[type=datetime-local]{min-width:0;text-align:left}input[type=datetime-local]::-webkit-date-and-time-value{text-align:left;min-height:1.5em}.limit-hint{margin:0;font-size:.95rem;color:#6b4a14}.timeline-header{align-items:flex-start;margin-bottom:.8rem}.timeline-header p{margin:.25rem 0 0}.timeline-section{padding-top:.4rem}.search-label{display:block;margin-bottom:.35rem}.timeline-list{margin:1.15rem 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.8rem}.timeline-item{border:1px solid #e2e9e2;border-left-width:6px;border-radius:15px;padding:1.1rem 1.2rem;background:#fff}.timeline-item.exposure{border-left-color:#6fa77a}.timeline-item.symptom{border-left-color:#d98a5b}.entry-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.65rem}.entry-top time{color:#4d6157;font-size:1rem}.kind-badge{display:inline-block;padding:.25rem .75rem;border-radius:99px;font-size:.95rem;font-weight:700}.kind-badge.exposure{background:#e7f0e4;color:#315f38}.kind-badge.symptom{background:#ffeadf;color:#8a4623}.entry-meta{color:#485f52;margin:0 0 .3rem;font-size:1rem;overflow-wrap:anywhere}.entry-notes{white-space:pre-wrap;overflow-wrap:anywhere;color:#384f42;padding-top:.5rem}.entry-actions{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;margin-top:.75rem}.empty-state{background:#fff;border:1px dashed #b7cbbd;border-radius:14px;padding:2rem 1.25rem;color:#4f635a;margin-top:1rem;text-align:center}.success-message,.error-message{padding:.75rem 1rem;border-radius:10px;margin:.9rem 0}.success-message{color:#1a593a;background:#e0f0e3}.form-error{grid-column:1 / -1;margin:0}.load-error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem}.load-error p{margin:0;flex:1 1 14rem}.error-message{color:#85322e;background:#ffebe8}.medical-note{color:#44574c;background:#edf0ea;padding:1rem;border-radius:12px;margin-top:1.25rem;font-size:1rem;line-height:1.55}@media(max-width:620px){.app-header{padding:1rem}.main-content{padding:0 1rem 2.5rem}.intro-card,.panel{padding:1.15rem}.entry-form{grid-template-columns:1fr}.field,.form-actions{grid-column:1 / -1}.action-row{display:grid;grid-template-columns:1fr 1fr}.action-row button{padding:.6rem}h1{font-size:1.35rem}.header-title h1{font-size:1.18rem}.form-actions .primary,.entry-actions button{flex:1}.timeline-header{flex-wrap:wrap}}@media(max-width:390px){.action-row{grid-template-columns:1fr}}
