:root{--color-primary-50:#e8f0fe;--color-primary-100:#d2e3fc;--color-primary-200:#aecbfa;--color-primary-300:#8ab4f8;--color-primary-400:#669df6;--color-primary-500:#4285f4;--color-primary-600:#1a73e8;--color-primary-700:#1967d2;--color-primary-800:#185abc;--color-primary-900:#174ea6;--color-accent-50:#e6f4ea;--color-accent-100:#ceead6;--color-accent-200:#a8dab5;--color-accent-300:#81c995;--color-accent-400:#5bb974;--color-accent-500:#34a853;--color-accent-600:#1e8e3e;--color-accent-700:#188038;--color-accent-800:#137333;--color-accent-900:#0d652d;--color-success:#34a853;--color-success-light:#e6f4ea;--color-success-border:#ceead6;--color-warning:#f9ab00;--color-warning-light:#fef7e0;--color-warning-border:#fde293;--color-danger:#ea4335;--color-danger-light:#fce8e6;--color-danger-border:#f5c6c0;--color-info:#4285f4;--color-info-light:#e8f0fe;--white:#fff;--gray-25:#fdfdfd;--gray-50:#f8f9fa;--gray-100:#f1f3f4;--gray-200:#e8eaed;--gray-300:#dadce0;--gray-400:#bdc1c6;--gray-500:#9aa0a6;--gray-600:#80868b;--gray-700:#5f6368;--gray-800:#3c4043;--gray-900:#202124;--gray-950:#1a1a1a;--bg-primary:var(--white);--bg-secondary:var(--gray-50);--bg-tertiary:var(--gray-100);--bg-card:var(--white);--text-primary:var(--gray-900);--text-secondary:var(--gray-700);--text-tertiary:var(--gray-500);--border-color:var(--gray-200);--border-light:var(--gray-100);--font-family:"Google Sans","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;--font-xs:0.6875rem;--font-sm:0.8125rem;--font-base:0.875rem;--font-md:0.9375rem;--font-lg:1rem;--font-xl:1.125rem;--font-2xl:1.375rem;--font-3xl:1.75rem;--font-4xl:2.25rem;--font-5xl:2.75rem;--line-height-tight:1.2;--line-height-normal:1.5;--line-height-relaxed:1.625;--sp-0:0;--sp-0-5:0.125rem;--sp-1:0.25rem;--sp-1-5:0.375rem;--sp-2:0.5rem;--sp-2-5:0.625rem;--sp-3:0.75rem;--sp-3-5:0.875rem;--sp-4:1rem;--sp-5:1.25rem;--sp-6:1.5rem;--sp-7:1.75rem;--sp-8:2rem;--sp-10:2.5rem;--sp-12:3rem;--sp-16:4rem;--sp-20:5rem;--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--radius-2xl:1.75rem;--radius-3xl:2rem;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(60,64,67,.1);--shadow-sm:0 1px 3px 1px rgba(60,64,67,.15);--shadow-md:0 1px 2px rgba(60,64,67,.3),0 2px 6px 2px rgba(60,64,67,.15);--shadow-lg:0 4px 8px 3px rgba(60,64,67,.15),0 1px 3px rgba(60,64,67,.3);--shadow-xl:0 6px 10px 4px rgba(60,64,67,.15),0 2px 3px rgba(60,64,67,.3);--shadow-2xl:0 8px 12px 6px rgba(60,64,67,.15),0 4px 4px rgba(60,64,67,.3);--shadow-inner:inset 0 1px 2px rgba(60,64,67,.1);--shadow-primary:0 1px 3px 1px rgba(66,133,244,.2),0 1px 2px rgba(66,133,244,.3);--shadow-primary-lg:0 4px 8px 3px rgba(66,133,244,.2),0 1px 3px rgba(66,133,244,.3);--ease-out:cubic-bezier(0.2,0,0,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-standard:cubic-bezier(0.2,0,0,1);--duration-fast:150ms;--duration-base:200ms;--duration-slow:300ms;--duration-emphasis:500ms;--touch-min:48px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-base);line-height:var(--line-height-normal);background:var(--gray-50);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,h1,h2,h3,h4,h5,h6{color:var(--text-primary)}h1,h2,h3,h4,h5,h6{font-weight:400;line-height:var(--line-height-tight);letter-spacing:0}h1{font-size:var(--font-4xl);letter-spacing:-.01em}h1,h2{font-weight:400}h2{font-size:var(--font-3xl)}h3{font-size:var(--font-2xl)}h3,h4{font-weight:500}h4{font-size:var(--font-xl)}h5{font-size:var(--font-lg)}h5,h6{font-weight:500}h6{font-size:var(--font-base)}p{margin-bottom:var(--sp-3)}a{color:var(--color-primary-600);text-decoration:none;transition:color var(--duration-fast) var(--ease-in-out)}a:hover{color:var(--color-primary-700)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);padding:var(--sp-2-5) var(--sp-5);font-size:var(--font-base);font-weight:500;font-family:inherit;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-base) var(--ease-standard);min-height:42px;line-height:1.4;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;letter-spacing:.01em}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn:focus-visible{outline:2px solid var(--color-primary-400);outline-offset:2px}.btn-primary{background:linear-gradient(180deg,var(--color-primary-500) 0,var(--color-primary-700) 100%);color:var(--white);box-shadow:0 2px 4px rgba(26,115,232,.25),inset 0 1px 0 hsla(0,0%,100%,.15)}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,var(--color-primary-400) 0,var(--color-primary-600) 100%);box-shadow:0 4px 12px rgba(26,115,232,.35),inset 0 1px 0 hsla(0,0%,100%,.15);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background:linear-gradient(180deg,var(--color-primary-600) 0,var(--color-primary-800) 100%);box-shadow:0 1px 2px rgba(26,115,232,.2),inset 0 1px 3px rgba(0,0,0,.1);transform:translateY(0)}.btn-secondary{background:var(--white);color:var(--gray-800);border:1px solid var(--gray-300);box-shadow:0 1px 2px rgba(60,64,67,.08)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400);box-shadow:0 2px 6px rgba(60,64,67,.12);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){background:var(--gray-100);box-shadow:0 1px 2px rgba(60,64,67,.06);transform:translateY(0)}.btn-success{background:linear-gradient(180deg,var(--color-accent-400) 0,var(--color-accent-600) 100%);color:var(--white);box-shadow:0 2px 4px rgba(30,142,62,.25),inset 0 1px 0 hsla(0,0%,100%,.15)}.btn-success:hover:not(:disabled){background:linear-gradient(180deg,var(--color-accent-300) 0,var(--color-accent-500) 100%);box-shadow:0 4px 12px rgba(30,142,62,.3),inset 0 1px 0 hsla(0,0%,100%,.15);transform:translateY(-1px)}.btn-success:active:not(:disabled){background:linear-gradient(180deg,var(--color-accent-500) 0,var(--color-accent-700) 100%);transform:translateY(0)}.btn-danger{background:linear-gradient(180deg,#f87171 0,var(--color-danger) 100%);color:var(--white);box-shadow:0 2px 4px rgba(234,67,53,.25),inset 0 1px 0 hsla(0,0%,100%,.15)}.btn-danger:hover:not(:disabled){box-shadow:0 4px 12px rgba(234,67,53,.3);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-primary-600)}.btn-ghost:hover:not(:disabled){background:var(--color-primary-50)}.btn-lg{padding:var(--sp-3) var(--sp-6);font-size:var(--font-md);min-height:48px;border-radius:var(--radius-xl)}.btn-sm{padding:var(--sp-1-5) var(--sp-3);min-height:32px;border-radius:var(--radius-md)}.btn-compact,.btn-sm{font-size:var(--font-sm)}.btn-compact{padding:var(--sp-2) var(--sp-3);background:var(--gray-100);border:none;border-radius:var(--radius-md);color:var(--gray-700);cursor:pointer;font-family:inherit;font-weight:500;transition:all var(--duration-fast) var(--ease-in-out)}.btn-compact:hover{background:var(--gray-200);color:var(--gray-900)}.card{background:var(--bg-card);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);padding:var(--sp-6);border:none}.glass{background:hsla(0,0%,100%,.95);backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:none}.form-group{margin-bottom:var(--sp-5)}.form-label{display:block;margin-bottom:var(--sp-2);font-size:var(--font-sm);font-weight:500;color:var(--gray-700);letter-spacing:.01em}.form-input,.form-select,.form-textarea{width:100%;padding:var(--sp-3) var(--sp-4);font-size:var(--font-base);font-family:inherit;border:1px solid var(--gray-300);border-radius:var(--radius-sm);background:var(--white);color:var(--text-primary);transition:all var(--duration-fast) var(--ease-in-out);min-height:var(--touch-min);line-height:1.5}.form-input:hover{border-color:var(--gray-800)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary-600);border-width:2px;padding:calc(var(--sp-3) - 1px) calc(var(--sp-4) - 1px)}.form-input::placeholder{color:var(--gray-500)}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235f6368' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.auth-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-4);background:var(--white)}.auth-card{width:100%;max-width:450px;padding:48px 40px;border:1px solid var(--gray-300);border-radius:var(--radius-lg);box-shadow:none;background:var(--white)}.auth-header{text-align:center;margin-bottom:var(--sp-8)}.auth-logo{width:48px;height:48px;background:transparent;display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-5);box-shadow:none;border-radius:0}.auth-logo svg{stroke:var(--color-primary-600)}.auth-header h1{font-size:var(--font-3xl);font-weight:400;color:var(--gray-900);background:none;-webkit-background-clip:unset;-webkit-text-fill-color:unset;background-clip:unset}.auth-divider{display:flex;align-items:center;gap:var(--sp-3);margin:var(--sp-5) 0}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--gray-300)}.auth-divider span{color:var(--text-secondary);font-size:var(--font-xs);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.role-selector-3{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--sp-3);gap:var(--sp-3);margin-bottom:var(--sp-6)}.role-btn-3{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-3-5) var(--sp-2);border:1px solid var(--gray-300);border-radius:var(--radius-lg);background:var(--white);cursor:pointer;transition:all var(--duration-base) var(--ease-standard);font-family:inherit;position:relative;overflow:hidden}.role-btn-3:after{content:"";position:absolute;inset:0;background:var(--color-primary-600);opacity:0;transition:opacity var(--duration-fast)}.role-btn-3:hover:after{opacity:.04}.role-btn-3:hover{border-color:var(--color-primary-300)}.role-btn-3.active{border-color:var(--color-primary-600);background:var(--color-primary-50);border-width:2px;padding:calc(var(--sp-3-5) - 1px) calc(var(--sp-2) - 1px)}.role-btn-3 .role-icon{width:40px;height:40px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.25rem;background:var(--gray-100);transition:all var(--duration-fast) var(--ease-in-out);color:var(--gray-700)}.role-btn-3.active .role-icon{background:var(--color-primary-100);color:var(--color-primary-700)}.role-btn-3 .role-label{font-size:var(--font-xs);font-weight:500;text-align:center;color:var(--gray-700);position:relative;z-index:1}.role-btn-3.active .role-label{color:var(--color-primary-700);font-weight:600}.spinner{width:28px;height:28px;border:3px solid var(--gray-200);border-top-color:var(--color-primary-600);border-radius:50%;animation:spin .8s linear infinite}.spinner-small{width:18px;height:18px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;display:inline-block;margin-right:var(--sp-2)}@keyframes spin{to{transform:rotate(1turn)}}.toast{position:fixed;bottom:var(--sp-8);left:50%;transform:translateX(-50%);color:var(--white);padding:var(--sp-3-5) var(--sp-6);border-radius:var(--radius-sm);box-shadow:var(--shadow-xl);display:flex;align-items:center;gap:var(--sp-3);font-size:var(--font-base);font-weight:400;animation:snackbarIn .3s var(--ease-standard);z-index:1000;max-width:90%}.toast,.toast.success{background:var(--gray-900)}.toast.error{background:#b3261e}.toast.warning{background:var(--gray-900)}@keyframes snackbarIn{0%{transform:translateX(-50%) translateY(100%);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}.onboard-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:var(--sp-6);position:relative;overflow:hidden;background:var(--white)}.onboard-title{font-size:var(--font-4xl);color:var(--color-primary-600);margin-bottom:var(--sp-2);letter-spacing:-.01em}.onboard-tagline,.onboard-title{font-weight:400;text-align:center}.onboard-tagline{font-size:var(--font-lg);color:var(--text-secondary);margin-bottom:var(--sp-8)}.qr-scanner-wrapper{position:relative;width:280px;height:280px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--sp-8)}.phone-frame{width:200px;height:260px;border-radius:28px;padding:8px;box-shadow:var(--shadow-2xl);z-index:2}.phone-frame,.phone-screen{position:relative;background:var(--gray-900)}.phone-screen{width:100%;height:100%;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.phone-notch{position:absolute;top:8px;width:60px;height:6px;background:var(--gray-800);border-radius:3px}.qr-viewfinder{width:120px;height:120px;border:2px solid rgba(66,133,244,.6);border-radius:var(--radius-md);position:relative;display:flex;align-items:center;justify-content:center}.qr-viewfinder:after,.qr-viewfinder:before{content:"";position:absolute;background:var(--color-primary-500)}.qr-viewfinder:before{width:20px;height:2px;top:-1px;left:10px}.qr-viewfinder:after{width:2px;height:20px;top:10px;left:-1px}.qr-code-display{width:80px;height:80px;background:#fff;border-radius:var(--radius-sm);display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(5,1fr);grid-gap:2px;gap:2px;padding:4px}.qr-code-display span{background:var(--gray-900);border-radius:1px}.qr-code-display span:nth-child(12),.qr-code-display span:nth-child(14),.qr-code-display span:nth-child(17),.qr-code-display span:nth-child(19),.qr-code-display span:nth-child(23),.qr-code-display span:nth-child(3),.qr-code-display span:nth-child(7),.qr-code-display span:nth-child(9){background:transparent}.scan-line{position:absolute;width:110px;height:2px;background:linear-gradient(90deg,transparent,var(--color-primary-400),var(--color-primary-500),transparent);border-radius:2px;box-shadow:0 0 8px var(--color-primary-400);animation:scanMove 2s ease-in-out infinite}@keyframes scanMove{0%,to{top:15%;opacity:.4}50%{top:75%;opacity:1}}.wristband{position:absolute;right:-40px;top:50%;transform:translateY(-50%);width:60px;height:100px;background:var(--white);border-radius:8px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;z-index:1;border:1px solid var(--gray-200)}.wristband-qr{width:36px;height:36px;background:#fff;border-radius:4px;display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr);grid-gap:1px;gap:1px;padding:2px}.wristband-qr span{background:var(--gray-700);border-radius:1px}.wristband-qr span:nth-child(11),.wristband-qr span:nth-child(15),.wristband-qr span:nth-child(2),.wristband-qr span:nth-child(5),.wristband-qr span:nth-child(8){background:transparent}.wristband-label{font-size:6px;color:var(--gray-500);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.explosion-container{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;pointer-events:none}.explosion-particle{position:absolute;width:10px;height:10px;border-radius:50%;animation:explode .8s ease-out forwards}@keyframes explode{0%{transform:translate(0) scale(1);opacity:1}to{opacity:0}}.explosion-particle:first-child{background:var(--color-primary-400);animation-name:explode1}.explosion-particle:nth-child(2){background:var(--color-accent-400);animation-name:explode2;animation-delay:20ms}.explosion-particle:nth-child(3){background:var(--color-primary-500);animation-name:explode3;animation-delay:40ms}.explosion-particle:nth-child(4){background:var(--color-accent-500);animation-name:explode4;animation-delay:60ms}.explosion-particle:nth-child(5){background:#8ab4f8;animation-name:explode5;animation-delay:80ms}.explosion-particle:nth-child(6){background:#81c995;animation-name:explode6;animation-delay:.1s}.explosion-particle:nth-child(7){background:var(--color-primary-300);animation-name:explode7;animation-delay:.12s}.explosion-particle:nth-child(8){background:var(--color-accent-300);animation-name:explode8;animation-delay:.14s}@keyframes explode1{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-120px,-80px) scale(.2);opacity:0}}@keyframes explode2{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(100px,-100px) scale(.2);opacity:0}}@keyframes explode3{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-80px,110px) scale(.2);opacity:0}}@keyframes explode4{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(130px,70px) scale(.2);opacity:0}}@keyframes explode5{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-140px,20px) scale(.2);opacity:0}}@keyframes explode6{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(90px,-60px) scale(.2);opacity:0}}@keyframes explode7{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(-60px,-130px) scale(.2);opacity:0}}@keyframes explode8{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(110px,90px) scale(.2);opacity:0}}.family-circle-container{position:relative;width:320px;height:320px;margin:var(--sp-8) auto}.family-circle-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;background:var(--color-primary-600);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);z-index:2;animation:centerPulse 3s ease-in-out infinite}@keyframes centerPulse{0%,to{box-shadow:var(--shadow-lg)}50%{box-shadow:var(--shadow-xl),0 0 0 8px rgba(66,133,244,.1)}}.family-circle-center-icon{font-size:2rem}.family-circle-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:280px;height:280px;border:1.5px dashed var(--gray-300);border-radius:50%;animation:ringRotate 40s linear infinite}@keyframes ringRotate{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(1turn)}}.family-member{position:absolute;width:52px;height:52px;background:var(--white);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);border:2px solid var(--white);font-size:1.3rem;transition:all var(--duration-base) var(--ease-standard);cursor:pointer;animation:memberAppear .5s var(--ease-standard) forwards;opacity:0;transform:scale(0)}.family-member:hover{transform:scale(1.1);box-shadow:var(--shadow-lg)}@keyframes memberAppear{0%{opacity:0;transform:scale(0)}60%{transform:scale(1.12)}to{opacity:1;transform:scale(1)}}.family-member:first-child{animation-delay:.1s}.family-member:nth-child(2){animation-delay:.2s}.family-member:nth-child(3){animation-delay:.3s}.family-member:nth-child(4){animation-delay:.4s}.family-member:nth-child(5){animation-delay:.5s}.family-member:nth-child(6){animation-delay:.6s}.family-member.spokesperson{border-color:var(--color-primary-500);box-shadow:var(--shadow-md),0 0 0 3px rgba(66,133,244,.15)}.family-member.spokesperson:after{content:"";position:absolute;top:-6px;right:-4px;width:18px;height:18px;background:var(--color-warning);border-radius:50%;border:2px solid var(--white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='white'%3E%3Cpath d='M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z'/%3E%3C/svg%3E");background-size:11px;background-repeat:no-repeat;background-position:50%}.invite-btn{position:absolute;width:48px;height:48px;background:var(--white);border:2px dashed var(--gray-300);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:var(--gray-500);cursor:pointer;transition:all var(--duration-base) var(--ease-standard);font-family:inherit}.invite-btn:hover{border-color:var(--color-primary-400);color:var(--color-primary-600);background:var(--color-primary-50);transform:scale(1.08)}.success-check{width:72px;height:72px;background:var(--color-success);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;animation:successPop .5s var(--ease-standard);box-shadow:0 1px 3px 1px rgba(52,168,83,.3)}@keyframes successPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.hub-container{min-height:100vh;padding:var(--sp-5);max-width:540px;margin:0 auto;background:var(--gray-50)}.hub-header,.hub-patient-card{margin-bottom:var(--sp-5)}.hub-patient-card{background:var(--color-primary-600);color:var(--white);padding:var(--sp-6) var(--sp-6) var(--sp-5);border-radius:var(--radius-2xl);position:relative;overflow:hidden}.hub-patient-card:before{content:"";position:absolute;top:-40%;right:-20%;width:200px;height:200px;background:radial-gradient(circle,hsla(0,0%,100%,.1) 0,transparent 70%);pointer-events:none}.hub-tagline{display:inline-flex;align-items:center;gap:var(--sp-2);background:hsla(0,0%,100%,.2);padding:var(--sp-1-5) var(--sp-3);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:500;margin-top:var(--sp-3)}.hub-section{background:var(--white);border-radius:var(--radius-xl);padding:var(--sp-5);margin-bottom:var(--sp-4);box-shadow:var(--shadow-sm)}.hub-section-title{font-size:var(--font-sm);font-weight:500;margin-bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);color:var(--gray-700);text-transform:uppercase;letter-spacing:.06em}.status-update-card{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3-5);background:var(--gray-50);border-radius:var(--radius-lg);margin-bottom:var(--sp-2-5);border-left:3px solid var(--color-primary-500);transition:background var(--duration-fast)}.status-update-card:last-child{margin-bottom:0}.status-update-card:hover{background:var(--gray-100)}.status-update-icon{font-size:1.25rem;flex-shrink:0;margin-top:1px}.status-update-content{flex:1 1;min-width:0}.status-update-text{font-weight:500;margin-bottom:var(--sp-0-5);font-size:var(--font-sm)}.status-update-time{font-size:var(--font-xs);color:var(--text-secondary)}.nurse-dashboard{min-height:100vh;display:flex;flex-direction:column;background:var(--gray-50)}.nurse-header{background:var(--white);padding:var(--sp-3-5) var(--sp-4);border-bottom:1px solid var(--gray-200);position:-webkit-sticky;position:sticky;top:0;z-index:50}.nurse-header-content{display:flex;align-items:center;justify-content:space-between;max-width:540px;margin:0 auto}.nurse-logo{font-weight:500;font-size:var(--font-lg);color:var(--color-primary-600)}.room-selector-bar{background:var(--white);padding:var(--sp-2) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--gray-200);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.room-selector-bar::-webkit-scrollbar{display:none}.room-tabs{display:flex;gap:var(--sp-2);max-width:540px;margin:0 auto}.room-tab{display:flex;flex-direction:column;align-items:center;padding:var(--sp-2) var(--sp-3-5);background:var(--gray-100);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-base) var(--ease-standard);min-width:68px;flex-shrink:0;font-family:inherit;position:relative;overflow:hidden}.room-tab:after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--duration-fast)}.room-tab:hover:after{opacity:.04}.room-tab:hover{background:var(--gray-200)}.room-tab.active{background:var(--color-primary-600);color:#fff;box-shadow:var(--shadow-primary)}.room-tab.paused{opacity:.5}.room-number{font-size:var(--font-sm);font-weight:500;position:relative;z-index:1}.patient-name-short{font-size:var(--font-xs);opacity:.75;position:relative;z-index:1}.add-patient-tab{background:transparent!important;border:1.5px dashed var(--gray-300)!important;color:var(--gray-500)!important}.add-patient-tab:hover{background:var(--color-primary-50)!important;border-color:var(--color-primary-300)!important;color:var(--color-primary-600)!important}.add-patient-tab .room-number{font-size:var(--font-lg)}.patient-banner{background:var(--color-primary-600);color:#fff;padding:var(--sp-4) var(--sp-5)}.patient-banner.paused{background:var(--gray-600)}.patient-banner-top{display:flex;align-items:center;justify-content:space-between;max-width:540px;margin:0 auto}.patient-banner-name{font-size:var(--font-xl);font-weight:500}.patient-banner-room{font-size:var(--font-sm);opacity:.85;margin-top:var(--sp-0-5)}.pause-toggle{padding:var(--sp-2) var(--sp-3-5);background:hsla(0,0%,100%,.15);border:none;border-radius:var(--radius-full);color:#fff;font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:inherit}.pause-toggle:hover{background:hsla(0,0%,100%,.25)}.pause-toggle.paused{background:var(--white);color:var(--color-primary-700)}.pause-notice{margin-top:var(--sp-2);padding:var(--sp-2);background:hsla(0,0%,100%,.1);border-radius:var(--radius-sm);font-size:var(--font-xs);text-align:center;max-width:540px;margin-left:auto;margin-right:auto}.quick-status-section{flex:1 1;padding:var(--sp-5) var(--sp-4);max-width:540px;margin:0 auto;width:100%}.section-hint{text-align:center;color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:var(--sp-4);font-weight:400}.quick-status-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--sp-3);gap:var(--sp-3)}.quick-status-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-2-5);padding:var(--sp-5) var(--sp-3) var(--sp-3-5);min-height:100px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-2xl);cursor:pointer;font-family:inherit;position:relative;overflow:hidden}.quick-status-btn,.quick-status-btn:before{transition:all var(--duration-base) var(--ease-standard)}.quick-status-btn:before{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;border-radius:3px 3px 0 0;background:var(--gray-300)}.quick-status-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-lg);border-color:transparent}.quick-status-btn:hover:not(:disabled):before{left:0;right:0;height:4px}.quick-status-btn:active:not(:disabled){transform:scale(.97);box-shadow:var(--shadow-xs)}.quick-status-btn:disabled{opacity:.38;cursor:not-allowed}.quick-status-btn.sending{opacity:.6}.quick-status-btn.just-sent{animation:sentFlash .6s var(--ease-standard)}@keyframes sentFlash{0%{background:var(--white);transform:scale(1)}30%{background:var(--color-success-light);transform:scale(1.04)}to{background:var(--white);transform:scale(1)}}.quick-status-btn .status-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;line-height:1;border-radius:var(--radius-full);background:var(--gray-100);transition:all var(--duration-base) var(--ease-standard)}.quick-status-btn:hover .status-icon{transform:scale(1.1)}.quick-status-btn .status-label{font-size:var(--font-xs);font-weight:500;text-align:center;color:var(--gray-700);letter-spacing:.02em;text-transform:uppercase}.quick-status-btn.stable .status-icon{background:var(--color-success-light)}.quick-status-btn.stable:before{background:var(--color-success)}.quick-status-btn.stable:hover{border-color:var(--color-success-border)}.quick-status-btn.resting .status-icon{background:var(--color-primary-50)}.quick-status-btn.resting:before{background:var(--color-primary-400)}.quick-status-btn.resting:hover{border-color:var(--color-primary-200)}.quick-status-btn.eating .status-icon{background:var(--color-warning-light)}.quick-status-btn.eating:before{background:var(--color-warning)}.quick-status-btn.eating:hover{border-color:var(--color-warning-border)}.quick-status-btn.medication .status-icon{background:#faf5ff}.quick-status-btn.medication:before{background:#a855f7}.quick-status-btn.medication:hover{border-color:#ddd6fe}.quick-status-btn.doctor .status-icon{background:var(--color-accent-50)}.quick-status-btn.doctor:before{background:var(--color-accent-500)}.quick-status-btn.doctor:hover{border-color:var(--color-accent-200)}.quick-status-btn.hygiene .status-icon{background:#ecfeff}.quick-status-btn.hygiene:before{background:#06b6d4}.quick-status-btn.hygiene:hover{border-color:#a5f3fc}.quick-status-btn.family-ok .status-icon{background:#fdf2f8}.quick-status-btn.family-ok:before{background:#ec4899}.quick-status-btn.family-ok:hover{border-color:#fbcfe8}.quick-status-btn.call-station .status-icon{background:var(--color-danger-light)}.quick-status-btn.call-station:before{background:var(--color-danger)}.quick-status-btn.call-station{animation:escalationGlow 2s ease-in-out infinite}.quick-status-btn.urgent-call .status-icon{background:var(--color-danger-light)}.quick-status-btn.urgent-call:before{background:var(--color-danger);left:0;right:0;height:4px}.quick-status-btn.urgent-call{border-color:var(--color-danger-border);background:linear-gradient(180deg,var(--white) 60%,var(--color-danger-light) 100%);animation:urgentGlow 1.2s ease-in-out infinite}@keyframes escalationGlow{0%,to{box-shadow:none}50%{box-shadow:0 0 0 4px rgba(234,67,53,.08)}}@keyframes urgentGlow{0%,to{box-shadow:none;transform:scale(1)}50%{box-shadow:0 0 0 6px rgba(234,67,53,.1),0 0 20px rgba(234,67,53,.08);transform:scale(1.02)}}.escalation-section{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px solid var(--gray-200)}.escalation-label{font-size:var(--font-xs);font-weight:500;color:var(--color-danger);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-3);text-align:center}.escalation-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--sp-3);gap:var(--sp-3)}.nurse-footer{text-align:center;padding:var(--sp-4);color:var(--text-tertiary);font-size:var(--font-xs);font-weight:400}.family-page{min-height:100vh;display:flex;flex-direction:column;background:var(--gray-50)}.family-header{background:var(--white);padding:var(--sp-3-5) var(--sp-4);border-bottom:1px solid var(--gray-200);position:-webkit-sticky;position:sticky;top:0;z-index:50}.family-header-content{display:flex;align-items:center;justify-content:space-between;max-width:540px;margin:0 auto}.family-logo{font-weight:500;font-size:var(--font-lg);color:var(--color-primary-600)}.header-actions{display:flex;align-items:center;gap:var(--sp-2)}.spokesperson-badge{padding:var(--sp-1) var(--sp-3);background:var(--color-primary-50);color:var(--color-primary-700);font-size:var(--font-xs);font-weight:500;border-radius:var(--radius-full);letter-spacing:.01em}.family-patient-card{background:var(--color-primary-600);color:#fff;padding:var(--sp-4) var(--sp-5);display:flex;align-items:center;justify-content:space-between}.family-patient-card .patient-name{font-size:var(--font-xl);font-weight:500;margin:0}.family-patient-card .patient-room{opacity:.85;margin:var(--sp-0-5) 0 0;font-size:var(--font-sm)}.call-ward-btn{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-2-5) var(--sp-3);background:hsla(0,0%,100%,.15);border:none;border-radius:var(--radius-xl);color:#fff;font-size:var(--font-xs);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:inherit}.call-ward-btn:hover{background:hsla(0,0%,100%,.25)}.call-ward-btn span:first-child{font-size:1.25rem}.legend-toggle-bar{padding:var(--sp-2) var(--sp-4);background:var(--white);border-bottom:1px solid var(--gray-200)}.legend-toggle{width:100%;padding:var(--sp-2);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-primary-600);font-size:var(--font-sm);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:inherit;font-weight:500}.legend-toggle.active,.legend-toggle:hover{background:var(--color-primary-50)}.icon-legend-panel{background:var(--white);padding:var(--sp-4);border-bottom:1px solid var(--gray-200)}.icon-legend-panel h4{margin-bottom:var(--sp-3);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);font-weight:500}.legend-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--sp-2);gap:var(--sp-2)}.legend-item{display:flex;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2);background:var(--gray-50);border-radius:var(--radius-md)}.legend-icon{font-size:1.1rem;flex-shrink:0}.legend-text{display:flex;flex-direction:column}.legend-text strong{font-size:var(--font-xs);font-weight:500}.legend-text span{font-size:10px;color:var(--text-secondary);line-height:1.4}.tab-bar{display:flex;background:var(--white);border-bottom:1px solid var(--gray-200);padding:0 var(--sp-4)}.tab-btn{flex:1 1;padding:var(--sp-3-5);background:none;border:none;border-bottom:2px solid transparent;color:var(--gray-600);font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:inherit;position:relative}.tab-btn.active,.tab-btn:hover{color:var(--color-primary-600)}.tab-btn.active{border-bottom-color:var(--color-primary-600);font-weight:500}.tab-btn.active:after{content:"";position:absolute;bottom:-2px;left:20%;right:20%;height:3px;background:var(--color-primary-600);border-radius:3px 3px 0 0}.tab-content{flex:1 1;padding:var(--sp-4);max-width:540px;margin:0 auto;width:100%;padding-bottom:88px}.updates-feed{animation:fadeIn .3s ease}.empty-state{text-align:center;padding:var(--sp-10);color:var(--text-secondary)}.empty-icon{font-size:2.5rem;display:block;margin-bottom:var(--sp-3);opacity:.5}.empty-hint{font-size:var(--font-sm);color:var(--text-tertiary)}.timeline-date{font-size:var(--font-xs);font-weight:500;color:var(--text-secondary);padding:var(--sp-2) 0;margin-top:var(--sp-3);text-transform:uppercase;letter-spacing:.06em}.timeline-date:first-child{margin-top:0}.timeline-item{display:flex;gap:var(--sp-3);padding:var(--sp-3-5) 0;border-bottom:1px solid var(--gray-100)}.timeline-item.urgent{background:var(--color-danger-light);margin:var(--sp-1) calc(-1 * var(--sp-4));padding:var(--sp-3-5) var(--sp-4);border-radius:var(--radius-xl);border-bottom:1px solid var(--color-danger-border);border:1px solid var(--color-danger-border)}.timeline-item .timeline-dot{width:40px;height:40px;background:var(--gray-100);border:none;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0}.timeline-item .timeline-content{flex:1 1;min-width:0}.timeline-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-0-5)}.timeline-header strong{font-size:var(--font-sm);font-weight:500}.timeline-time{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:400}.timeline-message{font-size:var(--font-sm);color:var(--text-secondary);margin:var(--sp-0-5) 0;line-height:var(--line-height-relaxed)}.timeline-meta{display:flex;align-items:center;justify-content:space-between;font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--sp-1)}.faq-section{animation:fadeIn .3s ease}.faq-item{background:var(--white);border-radius:var(--radius-lg);margin-bottom:var(--sp-2-5);box-shadow:var(--shadow-xs);overflow:hidden}.faq-question{padding:var(--sp-4);cursor:pointer;font-weight:500;font-size:var(--font-sm);list-style:none;display:flex;align-items:center;justify-content:space-between;color:var(--gray-800)}.faq-question::-webkit-details-marker{display:none}.faq-question:after{content:"+";font-size:var(--font-xl);color:var(--gray-500);font-weight:300;transition:transform var(--duration-fast)}.faq-item[open] .faq-question:after{content:"\2212"}.faq-answer{padding:0 var(--sp-4) var(--sp-4);color:var(--text-secondary);font-size:var(--font-sm);line-height:var(--line-height-relaxed);margin:0}.faq-contact{text-align:center;padding:var(--sp-6);background:var(--white);border-radius:var(--radius-xl);margin-top:var(--sp-4);box-shadow:var(--shadow-xs)}.faq-contact p{margin-bottom:var(--sp-3);color:var(--text-secondary);font-size:var(--font-sm)}.family-section{animation:fadeIn .3s ease}.section-title{margin-bottom:var(--sp-4);font-size:var(--font-lg);font-weight:500;color:var(--gray-800)}.family-list{display:flex;flex-direction:column;gap:var(--sp-2-5)}.family-member-card{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3-5);background:var(--white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xs)}.member-avatar{width:44px;height:44px;background:var(--color-primary-50);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.member-info{display:flex;flex-direction:column}.member-info strong{font-size:var(--font-sm);font-weight:500}.member-role{font-size:var(--font-xs);color:var(--text-secondary)}.member-role.spokesperson{color:var(--color-primary-600);font-weight:500}.invite-btn-large{width:100%;margin-top:var(--sp-4)}.read-only-notice{text-align:center;color:var(--text-secondary);font-size:var(--font-sm);margin-top:var(--sp-4);padding:var(--sp-3);background:var(--gray-50);border-radius:var(--radius-lg)}.family-footer{position:fixed;bottom:0;left:0;right:0;background:var(--white);padding:var(--sp-3);border-top:1px solid var(--gray-200);z-index:50}.call-ward-footer{width:100%;max-width:540px;margin:0 auto;display:block;padding:var(--sp-3-5);background:var(--color-primary-600);border:none;border-radius:var(--radius-full);color:#fff;font-size:var(--font-base);font-weight:500;cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);font-family:inherit;box-shadow:var(--shadow-primary);letter-spacing:.01em}.call-ward-footer:hover{box-shadow:var(--shadow-primary-lg)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.32);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--sp-4);animation:fadeIn .15s ease}.modal-content{background:var(--white);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl);width:100%;max-width:400px;max-height:90vh;overflow-y:auto;animation:modalIn .25s var(--ease-standard)}@keyframes modalIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-6);border-bottom:none}.modal-header h3{margin:0;font-size:var(--font-2xl);font-weight:400}.modal-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:var(--radius-full);font-size:var(--font-base);cursor:pointer;transition:all var(--duration-fast) var(--ease-in-out);color:var(--gray-600)}.modal-close:hover{background:var(--gray-100);color:var(--gray-800)}.modal-body{padding:0 var(--sp-6) var(--sp-6)}.modal-hint{color:var(--text-secondary);font-size:var(--font-sm);margin-bottom:var(--sp-5);line-height:var(--line-height-relaxed)}.invite-success{text-align:center;padding:var(--sp-4) 0}.invite-success .success-icon{font-size:2.5rem;display:block;margin-bottom:var(--sp-2)}.invite-success h4{margin:0 0 var(--sp-1) 0;color:var(--color-success);font-weight:500}.invite-success p{color:var(--text-secondary);margin:0;font-size:var(--font-sm)}.invite-link-box{background:var(--gray-50);border-radius:var(--radius-xl);padding:var(--sp-4);margin-top:var(--sp-4)}.invite-link-box .form-input{font-size:var(--font-xs);background:#fff}.link-row{margin-bottom:var(--sp-3)}.link-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--sp-2);gap:var(--sp-2)}.fade-in{animation:fadeIn .4s var(--ease-standard) forwards}.fade-out{animation:fadeOut .3s ease forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}@media (max-width:400px){.quick-status-grid{gap:var(--sp-2)}.quick-status-btn{min-height:76px;padding:var(--sp-3)}.quick-status-btn .status-icon{font-size:1.5rem}.quick-status-btn .status-label{font-size:10px}.room-tab{min-width:60px;padding:var(--sp-2) var(--sp-3)}.auth-card{padding:32px 24px}}@media (max-width:280px){:root{font-size:14px}.quick-status-btn{min-height:60px;padding:var(--sp-2)}.quick-status-btn .status-icon{font-size:1.2rem}.quick-status-btn .status-label{font-size:9px}.patient-banner{padding:var(--sp-2)}.patient-banner-name{font-size:var(--font-base)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:2px}@media (prefers-contrast:high){:root{--border-color:var(--gray-700);--border-light:var(--gray-500)}.btn-primary,.btn-success{border:2px solid}}.install-banner{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:var(--color-surface);border-top:1px solid var(--border-light);box-shadow:var(--shadow-lg);padding:var(--sp-3) var(--sp-4);animation:slideUp .3s ease-out}.install-banner-content{display:flex;align-items:center;justify-content:space-between;max-width:600px;margin:0 auto;gap:var(--sp-3)}.install-banner-text{display:flex;flex-direction:column;gap:2px}.install-banner-text strong{font-size:var(--font-sm);color:var(--text-primary)}.install-banner-text span{font-size:var(--font-xs);color:var(--text-secondary)}.install-banner-actions{display:flex;align-items:center;gap:var(--sp-2);flex-shrink:0}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media print{.btn,.family-footer,.family-header,.header,.install-banner,.nurse-header,.status-grid{display:none}.timeline{page-break-inside:avoid}}