*{box-sizing:border-box;margin:0;padding:0}body{background:#f3f4f6;color:#1f2937;display:flex;flex-direction:column;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.6;min-height:100vh}.demo-banner{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-size:13px;font-weight:500;padding:10px 20px;text-align:center}.header{background:linear-gradient(135deg,#1e40af,#3b82f6);box-shadow:0 2px 8px rgba(0,0,0,.12);color:#fff;height:64px;justify-content:space-between;padding:0 32px;position:relative;z-index:100}.header,.header-left .logo{align-items:center;display:flex}.header-left .logo{gap:12px}.header h1{font-size:20px;font-weight:600;letter-spacing:-.02em}.header-subtitle{font-size:11px;margin-top:-2px;opacity:.7}.header-right{gap:16px}.header-right,.patient-info{align-items:center;display:flex}.patient-info{gap:10px}.patient-name{font-size:14px;font-weight:500}.avatar{align-items:center;background:hsla(0,0%,100%,.2);border:2px solid hsla(0,0%,100%,.4);border-radius:50%;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:36px;justify-content:center;width:36px}.header-btn{background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.25);border-radius:6px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 16px;transition:background .2s}.header-btn:hover{background:hsla(0,0%,100%,.25)}.mobile-menu-btn{background:none;border:none;color:#fff;cursor:pointer;display:none;padding:4px}.mobile-menu{background:#1e40af;box-shadow:0 4px 12px rgba(0,0,0,.2);display:none;flex-direction:column;gap:12px;left:0;padding:16px 32px;position:absolute;right:0;top:64px;z-index:99}.mobile-menu.open{display:flex}.mobile-menu-patient{align-items:center;display:flex;font-size:14px;font-weight:500;gap:10px}.main-content{flex:1;margin:0 auto;max-width:1280px;padding:24px 24px 40px;width:100%}.welcome-banner{background:#fff;border-left:4px solid #3b82f6;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);margin-bottom:24px;padding:24px 28px}.welcome-banner h2{color:#1f2937;font-size:20px;font-weight:600;margin-bottom:4px}.welcome-banner .welcome-sub{color:#6b7280;font-size:14px}.welcome-banner .welcome-sub strong{color:#3b82f6}.welcome-meta{display:flex;flex-wrap:wrap;gap:24px;margin-top:12px}.welcome-meta .meta-item{align-items:center;color:#6b7280;display:flex;font-size:13px;gap:6px}.welcome-meta .meta-item svg{height:16px;stroke:#9ca3af;width:16px}.dashboard-grid{display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.card{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);display:flex;flex-direction:column;overflow:hidden}.card-header{border-bottom:1px solid #f3f4f6;justify-content:space-between;padding:16px 20px}.card-header,.card-header h2{align-items:center;display:flex}.card-header h2{color:#1f2937;font-size:15px;font-weight:600;gap:8px}.card-icon{flex-shrink:0;height:18px;stroke:#3b82f6;width:18px}.card-body{flex:1;padding:16px 20px}.careplan-status{align-items:center;display:flex;gap:8px;margin-bottom:12px}.careplan-status .diagnosis{color:#6b7280;font-size:13px}.badge{align-items:center;border-radius:9999px;display:inline-flex;font-size:11px;font-weight:600;letter-spacing:.03em;padding:2px 10px;text-transform:uppercase}.badge-active{background:#dcfce7;color:#166534}.badge-completed{background:#e0e7ff;color:#3730a3}.badge-comfort{background:#fef3c7;color:#92400e}.goal-item{border-bottom:1px solid #f3f4f6;cursor:pointer;padding:10px 0;transition:background .15s}.goal-item:last-child{border-bottom:none}.goal-item:hover{background:#f9fafb;margin:0 -20px;padding-left:20px;padding-right:20px}.goal-header{align-items:center;display:flex;gap:8px;justify-content:space-between}.goal-title{color:#1f2937;font-size:14px;font-weight:500}.goal-chevron{flex-shrink:0;height:16px;stroke:#9ca3af;transition:transform .2s;width:16px}.goal-item.expanded .goal-chevron{transform:rotate(180deg)}.goal-detail{color:#6b7280;display:none;font-size:13px;line-height:1.5;margin-top:8px;padding-left:4px}.goal-item.expanded .goal-detail{display:block}.careplan-footer{color:#9ca3af;font-size:12px;margin-top:12px}.visit-item{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;gap:14px;padding:12px 0}.visit-item:last-child{border-bottom:none}.visit-date-badge{align-items:center;background:#eff6ff;border-radius:8px;display:flex;flex-direction:column;flex-shrink:0;height:52px;justify-content:center;width:48px}.visit-date-badge .month{color:#3b82f6;font-size:10px;font-weight:600;text-transform:uppercase}.visit-date-badge .day{color:#1e40af;font-size:18px;font-weight:700;line-height:1.1}.visit-info{flex:1;min-width:0}.visit-type{color:#1f2937;font-size:14px;font-weight:500}.visit-provider{color:#6b7280;font-size:13px}.visit-time{color:#9ca3af;font-size:12px;margin-top:2px}.med-count{background:#f3f4f6;border-radius:9999px;color:#6b7280;font-size:12px;padding:2px 10px}.med-item{align-items:flex-start;border-bottom:1px solid #f3f4f6;display:flex;gap:12px;justify-content:space-between;padding:10px 0}.med-item:last-child{border-bottom:none}.med-name{color:#1f2937;font-size:14px;font-weight:500}.med-dosage{color:#6b7280;font-size:12px;margin-top:1px}.med-purpose{align-self:center;background:#f9fafb;border-radius:4px;color:#9ca3af;font-size:11px;padding:2px 8px;white-space:nowrap}.team-member{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;gap:12px;padding:10px 0}.team-member:last-child{border-bottom:none}.team-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:40px;justify-content:center;width:40px}.team-info{flex:1;min-width:0}.team-name{color:#1f2937;font-size:14px;font-weight:500}.team-role{color:#6b7280;font-size:12px}.team-phone{align-items:center;color:#3b82f6;display:flex;font-size:13px;font-weight:500;gap:4px;text-decoration:none;white-space:nowrap}.team-phone:hover{color:#1d4ed8}.team-phone svg{height:14px;width:14px}.message-item{border-bottom:1px solid #f3f4f6;padding:12px 0}.message-item:last-child{border-bottom:none}.message-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.message-from{color:#1f2937;font-size:13px;font-weight:600}.message-time{color:#9ca3af;font-size:11px}.message-subject{color:#374151;font-size:13px;font-weight:500;margin-bottom:2px}.message-preview{color:#6b7280;display:-webkit-box;font-size:13px;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.unread-dot{background:#3b82f6;border-radius:50%;display:inline-block;height:8px;margin-right:6px;width:8px}.timeline{padding-left:24px;position:relative}.timeline:before{background:#e5e7eb;bottom:8px;content:"";left:7px;position:absolute;top:8px;width:2px}.timeline-item{padding:8px 0;position:relative}.timeline-item:before{background:#3b82f6;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #e5e7eb;content:"";height:10px;left:-20px;position:absolute;top:14px;width:10px}.timeline-item:nth-child(2n):before{background:#10b981}.timeline-item:nth-child(3n):before{background:#8b5cf6}.timeline-text{color:#374151;font-size:13px;font-weight:500}.timeline-date{color:#9ca3af;font-size:11px;margin-top:2px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s}.btn-sm{border-radius:6px;font-size:12px;padding:5px 12px}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#f3f4f6;color:#374151}.btn-secondary:hover{background:#e5e7eb}.modal-overlay{align-items:center;background:rgba(0,0,0,.5);display:none;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-overlay.open{display:flex}.modal{animation:modalIn .2s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.2);max-width:520px;width:100%}@keyframes modalIn{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{align-items:center;border-bottom:1px solid #f3f4f6;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h3{color:#1f2937;font-size:17px;font-weight:600}.modal-close{align-items:center;background:none;border:none;border-radius:6px;color:#9ca3af;cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:all .15s;width:32px}.modal-close:hover{background:#f3f4f6;color:#374151}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid #f3f4f6;display:flex;gap:10px;justify-content:flex-end;padding:16px 24px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{color:#374151;display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1f2937;font-family:inherit;font-size:14px;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.form-group textarea{resize:vertical}.footer{background:#fff;border-top:1px solid #e5e7eb;color:#9ca3af;font-size:12px;padding:20px;text-align:center}.toast{animation:toastIn .3s ease-out;background:#1f2937;border-radius:10px;bottom:24px;box-shadow:0 8px 24px rgba(0,0,0,.2);color:#fff;font-size:14px;font-weight:500;padding:12px 20px;position:fixed;right:24px;z-index:2000}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.header{padding:0 16px}.logout-btn,.patient-info{display:none}.mobile-menu-btn{display:block}.main-content{padding:16px 16px 32px}.dashboard-grid{gap:16px;grid-template-columns:1fr}.welcome-banner{padding:18px 20px}.welcome-banner h2{font-size:17px}.welcome-meta{gap:12px}}@media (max-width:480px){.header h1{font-size:16px}.header-subtitle{display:none}.card-header h2{font-size:14px}.modal{border-radius:12px;margin:8px}}