body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.messages-page{background:#f5f7fa;min-height:100vh;padding:20px}.messages-container{background:#fff;border-radius:10px;box-shadow:0 2px 10px #00000014;margin:0 auto;max-width:1000px;overflow:hidden}.messages-header{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;justify-content:space-between;padding:25px}.messages-header h1{font-size:28px;margin:0}.btn{padding:10px 20px}.btn-primary{background:#fff;color:#667eea}.btn-primary:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.btn-secondary:hover{background:#e0e0e0}.btn-back{font-size:12px;padding:8px 16px}.alert{margin:15px;padding:12px 15px}.messages-tabs{background:#fff;border-bottom:2px solid #eee;display:flex;gap:0}.tab{padding:15px 25px}.tab:hover{background:#f9f9f9}.messages-list{display:flex;flex-direction:column}.message-item{border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:15px 25px;transition:all .2s}.message-left{flex:1 1}.message-sender{margin-bottom:5px}.message-sender strong{font-weight:600}.message-sender small{color:#999;font-size:12px;font-weight:400}.message-subject{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.message-right{align-items:center;display:flex;gap:15px;margin-left:20px}.message-date{white-space:nowrap}.unread-dot{background:#667eea;border-radius:50%;height:8px;width:8px}.no-messages{color:#999;padding:50px 25px;text-align:center}.loading{color:#666;padding:40px 25px}.thread-view{padding:25px}.thread-header{border-bottom:2px solid #eee;margin-bottom:25px;padding-bottom:15px}.thread-header h2{color:#333;margin:0 0 8px}.thread-participants{color:#666;font-size:13px;margin:0}.thread-messages{background:#f9f9f9;margin-bottom:25px;padding:20px}.thread-message{background:#fff;border-left:3px solid #ddd;border-radius:5px;margin-bottom:12px;padding:15px}.thread-message.provider{border-left-color:#667eea}.thread-message.patient{border-left-color:#4caf50;margin-left:30px}.message-meta{align-items:center;display:flex;font-size:13px;gap:10px;margin-bottom:8px}.message-meta strong{color:#333}.sender-type{color:#999;font-size:11px;font-weight:400}.message-time{font-size:11px;margin-left:auto}.message-body{word-break:break-word}.reply-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px}.reply-section h4{color:#333;margin:0 0 15px}.reply-form{display:flex;flex-direction:column;gap:12px}.form-group label{margin-bottom:6px}.form-group input,.form-group textarea{border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .3s}.form-group input:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group small{margin-top:3px}.form-actions{justify-content:flex-start;margin-top:10px}.modal-close{padding:0}.compose-form{display:flex;flex-direction:column;gap:15px;padding:20px}@media (max-width:768px){.messages-header{flex-direction:column;gap:15px;text-align:center}.messages-header h1{font-size:20px}.btn-primary{width:100%}.message-item{align-items:flex-start;flex-direction:column}.message-right{justify-content:space-between;margin-left:0;margin-top:8px;width:100%}.thread-message.patient{margin-left:0}.modal-content{width:95%}.messages-tabs{flex-direction:column}.tab{border-bottom:1px solid #eee!important;border-right:3px solid #0000;padding:12px 20px}.tab.active{border-bottom-color:#eee;border-right-color:#667eea}}.portal-page{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh;padding:20px}.portal-container{background:#fff;border-radius:10px;box-shadow:0 10px 30px #0000001a;margin:0 auto;max-width:1200px;overflow:hidden}.portal-header,.portal-header-with-nav{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:40px 30px;text-align:center}.portal-header-with-nav{align-items:center;display:flex;justify-content:space-between;padding:20px 30px}.portal-logo h1{font-size:28px;font-weight:600;margin:0}.portal-nav ul{display:flex;gap:30px;list-style:none;margin:0;padding:0}.portal-nav a{border-bottom:2px solid #0000;color:#fff;font-weight:500;padding-bottom:5px;text-decoration:none;transition:opacity .3s}.portal-nav a.nav-active,.portal-nav a:hover{border-bottom-color:#fff;opacity:.8}.nav-logout{background:#fff3;border:none;border-radius:5px;color:#fff;cursor:pointer;font-weight:500;padding:8px 16px;transition:background .3s}.nav-logout:hover{background:#ffffff4d}.portal-content{grid-gap:30px;display:grid;gap:30px;grid-template-columns:1fr 1fr;padding:40px 30px}.portal-form-card,.portal-info-card{border:1px solid #e0e0e0;border-radius:10px;padding:30px}.portal-form-card{background:#fff}.portal-form-card h2{color:#333;margin-top:0}.portal-info-card{background:#f9f9f9}.portal-info-card h3{color:#667eea;margin-top:0}.portal-info-card h4{color:#555;margin-bottom:10px}.portal-info-card ul{padding-left:20px}.portal-info-card li{color:#666;margin-bottom:8px}.portal-form{gap:20px}.form-group,.portal-form{display:flex;flex-direction:column}.form-group label{color:#333;font-weight:600;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:14px;padding:12px;transition:border-color .3s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group small{color:#999;font-size:12px;margin-top:4px}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{flex:1 1}.toggle-password{background:none;border:none;cursor:pointer;font-size:18px;padding:0;position:absolute;right:12px}.form-subtitle{color:#666;margin-bottom:20px}.alert{border-radius:5px;font-weight:500;margin-bottom:20px;padding:15px}.alert-error{background:#fee;border:1px solid #fcc;color:#c00}.alert-success{background:#efe;border:1px solid #cfc;color:#060}.btn{border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:600;padding:12px 24px;transition:all .3s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover:not(:disabled){background:#5568d3;box-shadow:0 5px 15px #667eea4d;transform:translateY(-2px)}.btn-secondary{background:#f0f0f0;border:1px solid #ddd;color:#333}.btn-secondary:hover:not(:disabled){background:#e0e0e0}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover:not(:disabled){background:#c0392b}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-small{font-size:12px;padding:8px 16px}.btn-back{margin-bottom:20px}.portal-links{border-top:1px solid #eee;display:flex;gap:15px;justify-content:center;margin-top:20px;padding-top:20px}.link-button{background:none;border:none;color:#667eea;cursor:pointer;font-weight:500;text-decoration:none;transition:color .3s}.link-button:hover{color:#5568d3;text-decoration:underline}.divider{color:#ddd}.portal-dashboard{padding:40px 30px}.dashboard-section{border-bottom:1px solid #eee;margin-bottom:30px;padding-bottom:20px}.dashboard-section h2{color:#333;margin:0 0 10px}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:30px}.dashboard-card{background:#fff;border:1px solid #e0e0e0;border-radius:10px;padding:20px;transition:all .3s}.dashboard-card:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-3px)}.card-icon{font-size:32px;margin-bottom:10px}.dashboard-card h3{color:#333;margin:0 0 15px}.card-content{margin-bottom:15px;max-height:150px;overflow-y:auto}.list-item{background:#f9f9f9;border-radius:5px;margin-bottom:8px;padding:10px}.list-item strong{color:#667eea;display:block;margin-bottom:3px}.list-item p{color:#666;font-size:12px;margin:3px 0}.list-item small{color:#999;font-size:11px}.no-data{color:#999;font-style:italic;margin:20px 0}.card-button{background:#f0f0f0;border:1px solid #ddd;border-radius:5px;cursor:pointer;font-weight:500;padding:10px;transition:all .3s;width:100%}.card-button:hover{background:#667eea;border-color:#667eea;color:#fff}.message-count{color:#666;font-size:14px;margin:20px 0}.portal-content-area{padding:30px}.page-header{align-items:center;border-bottom:2px solid #eee;display:flex;justify-content:space-between;margin-bottom:30px;padding-bottom:20px}.page-header h2{color:#333;margin:0}.page-header p{color:#666;margin:5px 0 0}.tabs{border-bottom:1px solid #eee;display:flex;gap:10px;margin-bottom:20px}.tab{background:none;border:none;border-bottom:3px solid #0000;color:#666;cursor:pointer;font-weight:500;padding:12px 20px;transition:all .3s}.tab.active,.tab:hover{color:#667eea}.tab.active{border-bottom-color:#667eea}.appointments-list,.lab-results-list,.medications-list,.prescriptions-list{display:flex;flex-direction:column;gap:15px}.appointment-card,.lab-result-card,.medication-card,.prescription-card{align-items:flex-start;background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;justify-content:space-between;padding:20px;transition:all .3s}.appointment-card:hover,.lab-result-card:hover,.medication-card:hover,.prescription-card:hover{box-shadow:0 3px 10px #0000000d}.appointment-date{background:#f9f9f9;border-radius:5px;min-width:80px;padding:15px;text-align:center}.date{color:#333;font-size:14px;font-weight:600}.time{color:#667eea;font-size:12px;font-weight:500;margin-top:3px}.appointment-details,.med-header,.rx-header{flex:1 1;margin-left:20px}.appointment-details h4,.med-header h4,.rx-header h4{color:#333;margin:0 0 5px}.appointment-notes,.appointment-reason,.location-info,.provider-info{color:#666;font-size:13px;margin:5px 0}.status-badge{border-radius:20px;display:inline-block;font-size:11px;font-weight:600;margin-top:10px;padding:5px 10px;text-transform:uppercase}.status-active,.status-confirmed,.status-filled,.status-green,.status-scheduled{background:#d4edda;color:#155724}.status-cancelled,.status-discontinued,.status-red{background:#f8d7da;color:#721c24}.status-blue,.status-held,.status-pending,.status-requested{background:#d1ecf1;color:#0c5460}.abnormal-badge{background:#fff3cd;border-radius:4px;color:#856404;font-size:11px;font-weight:600;padding:4px 8px}.abnormal{color:#c0392b;font-weight:600}.result-detail{max-width:800px}.detail-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-top:20px;padding:30px}.detail-card h3{border-bottom:2px solid #667eea;color:#333;margin:0 0 20px;padding-bottom:10px}.detail-section{margin-bottom:25px}.detail-section h4{color:#667eea;font-size:14px;letter-spacing:.5px;margin-bottom:15px;text-transform:uppercase}.detail-row{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:10px 0}.detail-row .label{color:#666;font-weight:600}.detail-row .value{color:#333;flex:1 1;padding-left:20px;text-align:right}.detail-actions{border-top:1px solid #eee;display:flex;gap:10px;margin-top:20px;padding-top:20px}.no-data-message{color:#999;padding:40px 20px;text-align:center}.no-data-message p{margin:10px 0}.messages-list{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.message-item{grid-gap:15px;align-items:center;border-bottom:1px solid #e0e0e0;cursor:pointer;display:grid;gap:15px;grid-template-columns:1fr 2fr 150px;padding:15px 20px;position:relative;transition:background .3s}.message-item:hover{background:#f9f9f9}.message-item.unread{background:#f0f6ff;font-weight:500}.message-sender{color:#667eea}.message-subject{color:#333}.message-date{color:#999;font-size:12px;text-align:right}.unread-indicator{color:#667eea;font-size:16px;position:absolute;right:15px}.thread-view{margin-top:20px}.thread-messages{border:1px solid #e0e0e0;border-radius:8px;margin:20px 0;max-height:400px;overflow-y:auto}.thread-message{border-bottom:1px solid #e0e0e0;padding:20px}.thread-message:last-child{border-bottom:none}.message-header{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:10px}.message-header strong{color:#667eea}.message-time{color:#999;font-size:12px}.message-body{color:#333;line-height:1.6;white-space:pre-wrap}.reply-form{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-top:20px;padding:20px}.reply-form h4{color:#333;margin-top:0}.reply-form textarea{border:1px solid #ddd;border-radius:5px;font-family:inherit;padding:12px;resize:vertical;width:100%}.form-actions{display:flex;gap:10px;margin-top:15px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:10px;box-shadow:0 10px 40px #0003;max-height:90vh;max-width:500px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:20px}.modal-header h3{color:#333;margin:0}.modal-close{background:none;border:none;color:#999;cursor:pointer;font-size:24px}.modal-close:hover{color:#333}.compose-form,.request-form{display:flex;flex-direction:column;gap:15px;padding:20px}.modal-actions{border-top:1px solid #eee;display:flex;gap:10px;justify-content:flex-end;padding:20px}.history-timeline{padding:20px 0;position:relative}.history-entry{background:#fff;border:1px solid #e0e0e0;border-radius:8px;display:flex;gap:20px;margin-bottom:15px;padding:20px}.entry-date{color:#667eea;font-weight:600;min-width:100px;padding:5px}.entry-content h5{color:#333;margin:0 0 8px}.change-reason,.change-type,.changed-by{color:#666;font-size:13px;margin:5px 0}.loading{color:#999;font-size:16px;padding:40px;text-align:center}@media (max-width:768px){.portal-container{border-radius:0;margin:0}.portal-header-with-nav{flex-direction:column;gap:20px}.portal-nav ul{flex-direction:column;gap:10px}.portal-nav a{display:block}.portal-content{padding:20px}.dashboard-grid,.portal-content{grid-template-columns:1fr}.page-header{align-items:flex-start;flex-direction:column}.page-header .btn{width:100%}.message-item{gap:8px;grid-template-columns:1fr}.message-date{text-align:left}.appointment-card,.lab-result-card,.medication-card,.prescription-card{flex-direction:column}.appointment-details,.med-header,.rx-header{margin-left:0;margin-top:15px}.modal-content{width:95%}}