*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f5f7fa;color:#333;line-height:1.6}a{color:#4a90d9;text-decoration:none}a:hover{text-decoration:underline}.container{max-width:960px;margin:0 auto;padding:2rem 1rem}.page h1{margin-bottom:1.5rem;color:#2c3e50}.loading{display:flex;justify-content:center;padding:4rem;color:#888}.navbar{background:#fff;border-bottom:1px solid #e1e4e8;padding:0 1.5rem;display:flex;align-items:center;height:56px;gap:2rem;position:relative}.navbar-brand a{font-weight:700;font-size:1.1rem;color:#4a90d9}.navbar-brand a:hover{text-decoration:none}.navbar-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;background:none;border:none;cursor:pointer;padding:.5rem;margin-left:auto}.navbar-toggle span{display:block;width:20px;height:2px;background:#555;border-radius:1px}.navbar-menu{display:flex;align-items:center;gap:2rem;flex:1}.navbar-links{display:flex;gap:1.25rem;flex:1}.navbar-links a{color:#555;font-size:.9rem}.navbar-links a:hover{color:#4a90d9;text-decoration:none}.navbar-user{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:#666}.btn{display:inline-block;padding:.5rem 1rem;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#333;font-size:.875rem;cursor:pointer;transition:all .15s}.btn:hover{background:#f3f4f6;text-decoration:none}.btn-primary{background:#4a90d9;color:#fff;border-color:#4a90d9}.btn-primary:hover{background:#3a7bc8}.btn-primary:disabled{background:#93b8e4;cursor:not-allowed}.btn-danger{background:#e74c3c;color:#fff;border-color:#e74c3c}.btn-danger:hover{background:#c0392b}.btn-sm{padding:.25rem .625rem;font-size:.8rem}.btn-block{display:block;width:100%;text-align:center}.card{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:1.25rem}.cards-grid,.notes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.note-card .note-header{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem}.note-card .note-header h3{font-size:1rem;color:#2c3e50}.note-card .note-body{color:#555;font-size:.9rem;margin-bottom:.75rem;white-space:pre-wrap;word-break:break-word;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}.note-card .note-footer{display:flex;justify-content:space-between;align-items:center}.note-card .note-footer small{color:#888}.note-actions{display:flex;gap:.5rem}.tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.75rem}.tag{background:#eef2ff;color:#4a5cba;padding:.125rem .5rem;border-radius:12px;font-size:.75rem}.mood-rating{display:flex;align-items:center;gap:.25rem}.mood-btn{width:28px;height:28px;border:1px solid #d1d5db;border-radius:50%;background:#fff;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;color:#333}.mood-btn.active{color:#fff;border-color:transparent}.mood-btn:disabled{cursor:default}.mood-label{margin-left:.5rem;font-size:.8rem;color:#666}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.375rem;font-weight:500;font-size:.9rem;color:#444}.form-group input,.form-group textarea{width:100%;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926}.note-form{max-width:640px}.error-msg{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.9rem}.auth-page{display:flex;justify-content:center;align-items:center;min-height:80vh}.auth-card{background:#fff;border:1px solid #e1e4e8;border-radius:8px;padding:2rem;width:100%;max-width:400px}.auth-card h1{margin-bottom:.25rem;color:#2c3e50}.auth-card .subtitle{color:#888;margin-bottom:1.5rem;font-size:.9rem}.auth-link{text-align:center;margin-top:1rem;font-size:.9rem;color:#666}.role-selector{display:flex;gap:.5rem}.role-btn{flex:1;padding:.5rem;border:2px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer;font-size:.9rem;transition:all .15s}.role-btn.active{border-color:#4a90d9;background:#eef2ff;color:#4a90d9;font-weight:600}.dashboard-section{margin-bottom:2rem}.dashboard-section h2{font-size:1.1rem;color:#2c3e50;margin-bottom:.75rem}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.quick-note{background:#fff;border:1px solid #e1e4e8;border-radius:12px;padding:.75rem 1rem;transition:box-shadow .2s,border-color .2s}.quick-note--expanded{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926}.quick-note__input{width:100%;border:none;outline:none;font-size:.95rem;font-family:inherit;resize:none;line-height:1.6;color:#333;background:transparent}.quick-note__input::placeholder{color:#999}.quick-note__controls{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #f0f0f0;display:flex;flex-direction:column;gap:.75rem}.quick-note__options{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.quick-note__actions{display:flex;align-items:center;gap:.5rem}.quick-note__draft-label{font-size:.9rem;color:#dc2626;margin-right:auto}.patient-card h3{margin-bottom:.25rem;color:#2c3e50}.patient-card p{color:#666;font-size:.9rem;margin-bottom:.5rem}.invite-input-row{display:flex;align-items:flex-start;gap:.75rem;margin-top:.75rem}.invite-input-row .form-group{margin-bottom:0}.invite-code-input{width:7ch;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1.25rem;font-family:monospace;letter-spacing:.25em;text-align:center}.invite-code-input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926}.link-code{display:block;background:#f0f4ff;border:1px solid #d0d9ef;border-radius:6px;padding:.75rem 1rem;font-size:1.5rem;font-family:monospace;letter-spacing:.2em;text-align:center;color:#2c3e50;margin:.75rem 0;word-break:break-all}.success-msg{color:#16a34a;font-size:.9rem;margin-top:.75rem}.text-muted{color:#888;font-size:.9rem}.note-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.note-modal{background:#fff;border-radius:12px;width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;position:relative}.note-modal-close{position:absolute;top:.75rem;right:1rem;background:none;border:none;font-size:1.5rem;color:#888;cursor:pointer;line-height:1;padding:.25rem}.note-modal-close:hover{color:#333}.note-modal-header{padding:1.5rem 1.5rem 0;flex-shrink:0}.note-modal-header h2{font-size:1.25rem;color:#2c3e50;margin-bottom:.5rem;padding-right:2rem}.note-modal .tags{padding:.75rem 1.5rem 0;flex-shrink:0}.note-modal-body{padding:1rem 1.5rem;overflow-y:auto;flex:1;color:#444;font-size:.95rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}.note-modal-footer{padding:.75rem 1.5rem;border-top:1px solid #e1e4e8;flex-shrink:0;color:#888}@media(max-width:768px){.navbar{display:block;height:auto;padding:0 1rem}.navbar-brand{display:inline-flex;align-items:center;height:56px}.navbar-toggle{display:flex;position:absolute;right:1rem;top:0;height:56px}.navbar-menu{display:none;flex-direction:column;align-items:stretch;gap:0;padding-bottom:.75rem}.navbar-menu.open{display:flex}.navbar-links{flex-direction:column;gap:0}.navbar-links a{display:block;padding:.625rem 0;border-top:1px solid #f0f0f0;font-size:.95rem}.navbar-user{border-top:1px solid #e1e4e8;padding-top:.625rem;margin-top:.25rem;justify-content:space-between}.container{padding:1.25rem .75rem}.page h1{font-size:1.35rem;margin-bottom:1rem}.cards-grid,.notes-grid{grid-template-columns:1fr}.auth-page{align-items:flex-start;padding-top:2rem;min-height:auto}.auth-card{padding:1.5rem;border:none;border-radius:0;max-width:none}.note-form{max-width:none}.note-modal-overlay{padding:0;align-items:flex-end}.note-modal{max-width:none;max-height:95vh;border-radius:12px 12px 0 0}.note-modal-header{padding:1.25rem 1rem 0}.note-modal .tags{padding:.75rem 1rem 0}.note-modal-body{padding:1rem}.note-modal-footer{padding:.75rem 1rem}.invite-code-input{font-size:1.1rem}.link-code{font-size:1.25rem}}@media(max-width:480px){.container{padding:1rem .5rem}.card{padding:1rem}.dashboard-section{margin-bottom:1.5rem}.section-header{flex-direction:column;align-items:flex-start;gap:.5rem}.invite-input-row{flex-direction:column}.invite-code-input{width:100%}}
