*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}html,body{max-width:100vw;overflow-x:hidden}body{font-family:var(--font-body);background-color:var(--bg-base);color:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(at 20%,#2d5a3d08 0%,#0000 50%),radial-gradient(at 80% 20%,#a082640a 0%,#0000 50%),radial-gradient(circle,#00000003 0%,#0000 70%);font-size:16px;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");width:100%;height:100%;position:fixed;top:0;left:0}img,svg{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{font-family:var(--font-body);cursor:pointer;background:0 0;border:none}input,textarea,select{font-family:var(--font-body);outline:none}ul,ol{list-style:none}:root{--bg-base:#f6f1eb;--bg-canvas:#f2ede5;--bg-surface:#ede7dc;--bg-surface-soft:#e6dfd4;--bg-surface-translucent:#f2ede5e0;--bg-overlay:#1a1a1a80;--bg-accent-soft:#2d5a3d14;--bg-sidebar:#eae4d8;--bg-sidebar-hover:#ddd5c7;--bg-sidebar-active:#2d5a3d1f;--color-primary:#2d5a3d;--color-primary-hover:#1e4a2f;--color-primary-light:#4a7c5c;--color-primary-muted:#2d5a3d1a;--color-accent:#b8860b;--color-accent-soft:#b8860b14;--color-success:#2d7a4f;--color-success-bg:#2d7a4f14;--color-warning:#c4841d;--color-warning-bg:#c4841d14;--color-danger:#c0392b;--color-danger-bg:#c0392b14;--color-info:#2b6cb0;--color-info-bg:#2b6cb014;--text-heading:#1a1a1a;--text-body:#4a4a4a;--text-muted:#8a8a8a;--text-inverse:#fff;--text-inverse-muted:#ffffffa6;--text-link:#2d5a3d;--border-subtle:#00000014;--border-medium:#0000001f;--border-focus:#2d5a3d;--font-heading:"Source Serif 4","Georgia",serif;--font-body:"DM Sans",system-ui,-apple-system,sans-serif;--radius-section:20px;--radius-card:16px;--radius-card-sm:12px;--radius-button:10px;--radius-pill:999px;--shadow-soft:0 2px 12px #0000000f;--shadow-elevated:0 8px 32px #0000001a;--shadow-float:0 16px 48px #0000001f;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--content-max-width:1200px;--outer-padding:32px;--header-height:68px;--sidebar-width:260px;--transition-fast:.2s ease;--transition-base:.4s ease;--transition-slow:.6s ease;--text-display-xl:52px;--text-display-lg:40px;--text-heading-lg:28px;--text-heading-sm:22px;--text-body-lg:18px;--text-micro:13px;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-display:1.15;--leading-heading:1.3;--leading-body:1.65;--leading-ui:1.35;--tracking-heading:-.02em;--tracking-tight:-.01em}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);line-height:var(--leading-heading);color:var(--text-heading);letter-spacing:var(--tracking-heading)}:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px;border-radius:4px}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,#0000000a 0%,#00000014 50%,#0000000a 100%) 0 0/200% 100%;border-radius:8px;animation:2.5s infinite skeleton-shimmer}.skeleton--text{border-radius:4px;height:16px}.skeleton--title{border-radius:6px;height:28px}.skeleton--card{border-radius:var(--radius-card);width:100%;height:180px}.skeleton--avatar{border-radius:50%;width:48px;height:48px}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.reveal{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(28px)}.reveal.revealed{opacity:1;transform:translateY(0)}.reveal-left{opacity:0;transition:opacity 1s,transform 1s;transform:translate(-30px)}.reveal-left.revealed{opacity:1;transform:translate(0)}.reveal-right{opacity:0;transition:opacity 1s,transform 1s;transform:translate(30px)}.reveal-right.revealed{opacity:1;transform:translate(0)}.reveal-scale{opacity:0;transition:opacity .9s,transform .9s;transform:scale(.95)}.reveal-scale.revealed{opacity:1;transform:scale(1)}.stagger-1{transition-delay:0s}.stagger-2{transition-delay:.12s}.stagger-3{transition-delay:.24s}.stagger-4{transition-delay:.36s}.stagger-5{transition-delay:.48s}.stagger-6{transition-delay:.6s}.animate-fade-up{animation:.9s forwards fadeUp}.animate-fade-in{animation:.8s forwards fadeIn}.animate-slide-up{animation:.85s forwards slideUp}.animate-delay-1{animation-delay:.12s}.animate-delay-2{animation-delay:.24s}.animate-delay-3{animation-delay:.36s}.animate-delay-4{animation-delay:.48s}.animate-delay-5{animation-delay:.6s}@keyframes pageEnter{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:.7s cubic-bezier(.22,1,.36,1) forwards pageEnter}@keyframes patientEnter{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.patient-page-enter{animation:.8s cubic-bezier(.22,1,.36,1) forwards patientEnter}@keyframes cardEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.card-enter{animation:.7s cubic-bezier(.22,1,.36,1) both cardEnter}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#00000026;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#00000040}.btn{font-family:var(--font-body);border-radius:var(--radius-button);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:12px 24px;font-size:15px;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex;position:relative}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover{background:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px #2d5a3d33}.btn--primary:active{transform:scale(.97)translateY(0)}.btn--secondary{background:var(--bg-surface);color:var(--text-heading);border:1.5px solid var(--border-subtle)}.btn--secondary:hover{background:var(--bg-surface-soft);border-color:var(--border-medium);box-shadow:var(--shadow-soft);transform:translateY(-1px)}.btn--ghost{color:var(--text-body);border:1.5px solid var(--border-subtle);background:0 0}.btn--ghost:hover{background:var(--bg-surface-soft);color:var(--text-heading)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover{background:#a93226;transform:translateY(-2px);box-shadow:0 6px 20px #c0392b33}.btn--success{background:var(--color-success);color:#fff}.btn--success:hover{background:#236b42;transform:translateY(-2px)}.btn--glass{color:var(--text-heading);border:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);background:#ffffffb3}.btn--glass:hover{box-shadow:var(--shadow-soft);background:#ffffffe6;transform:translateY(-1px)}.btn--pill{border-radius:var(--radius-pill)}.btn--xl{min-height:56px;padding:16px 36px;font-size:17px}.btn--lg{min-height:52px;padding:14px 32px;font-size:16px}.btn--sm{min-height:36px;padding:8px 16px;font-size:13px}.btn--full{width:100%}.btn--icon{border-radius:var(--radius-button);width:44px;height:44px;min-height:auto;padding:10px}.btn--patient{min-height:64px;padding:0 32px;font-size:18px;font-weight:700}.card{background:var(--bg-surface-translucent);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6);transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.card:hover{box-shadow:var(--shadow-elevated);border-color:var(--border-medium);transform:translateY(-3px)}.card--flat{background:var(--bg-surface-soft);border-color:#0000}.card--flat:hover{box-shadow:none;transform:none}.card--gradient{background:linear-gradient(135deg,#f0ebe3 0%,#e8e0d4 100%);border-color:#0000000f}.card--glass{background:var(--bg-surface-translucent);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle)}.card--glass-strong{border:1px solid var(--border-medium);-webkit-backdrop-filter:blur(12px);background:#ffffffe6}.card--urgent{border-left:4px solid var(--color-danger)}.card--warning{border-left:4px solid var(--color-warning)}.card--success{border-left:4px solid var(--color-success)}.card--done{border-left:4px solid var(--color-success);opacity:.75}.card--missed{border-left:4px solid var(--color-danger)}.card--sm{padding:var(--space-4);border-radius:var(--radius-card-sm)}.card--padded{padding:var(--space-8)}.card--no-hover:hover{box-shadow:none!important;transform:none!important}.badge{border-radius:var(--radius-pill);letter-spacing:.02em;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;line-height:1.3;display:inline-flex}.badge--success{background:var(--color-success-bg);color:var(--color-success)}.badge--warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge--danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge--info{background:var(--color-info-bg);color:var(--color-info)}.badge--purple,.badge--primary{background:var(--color-primary-muted);color:var(--color-primary)}.form-group{gap:var(--space-2);margin-bottom:var(--space-5);flex-direction:column;display:flex}.form-label{color:var(--text-heading);letter-spacing:.01em;font-size:13px;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--bg-surface);border:1.5px solid var(--border-subtle);border-radius:var(--radius-card-sm);width:100%;color:var(--text-heading);transition:border-color var(--transition-base),box-shadow var(--transition-base);min-height:48px;padding:12px 16px;font-size:15px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px #2d5a3d1a}.form-input::placeholder{color:var(--text-muted)}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--color-danger);align-items:center;gap:4px;font-size:13px;display:flex}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4)var(--space-5);border-radius:var(--radius-card-sm);font-size:15px;display:flex}.alert[role=alert]{animation:.3s fadeIn}.alert--info{background:var(--color-info-bg);color:var(--color-info)}.alert--success{background:var(--color-success-bg);color:var(--color-success)}.alert--warning{background:var(--color-warning-bg);color:var(--color-warning)}.alert--danger{background:var(--color-danger-bg);color:var(--color-danger)}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-button);color:var(--text-body);white-space:nowrap;text-overflow:ellipsis;border-left:2px solid #0000;min-width:0;min-height:44px;font-size:15px;font-weight:500;text-decoration:none;transition:background .18s,color .18s,transform .18s,box-shadow .18s,border-color .18s;display:flex;position:relative;overflow:hidden}.nav-item:hover{background:var(--bg-sidebar-hover);color:var(--text-heading);border-left-color:#2d5a3d59;transform:translate(3px)}.nav-item--active{background:var(--bg-sidebar-active);color:var(--color-primary);border-left-color:var(--color-primary);font-weight:600;box-shadow:inset 0 0 0 1px #2d5a3d1a}.nav-item--active:hover{background:var(--bg-sidebar-active);transform:none}.pill-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.app-header{z-index:100;height:var(--header-height);background:var(--bg-sidebar);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);padding:0 var(--space-8);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex;position:sticky;top:0}.app-shell{background:var(--bg-base);min-height:100vh;display:flex}.app-content{background:var(--bg-base);flex:1;min-width:0}.app-sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);top:var(--header-height);height:calc(100vh - var(--header-height));z-index:50;flex-shrink:0;transition:width .35s cubic-bezier(.22,1,.36,1),box-shadow .35s cubic-bezier(.22,1,.36,1),background .3s;position:sticky;overflow:hidden auto}.app-sidebar--collapsed{width:68px}.app-sidebar--collapsed:hover{width:var(--sidebar-width);z-index:100;box-shadow:4px 0 24px #0000001a}.sidebar-text{opacity:1;white-space:nowrap;max-width:200px;transition:opacity .25s 80ms,max-width .35s cubic-bezier(.22,1,.36,1);overflow:hidden}.app-sidebar--collapsed .sidebar-text{opacity:0;pointer-events:none;max-width:0;transition:opacity .15s,max-width .35s cubic-bezier(.22,1,.36,1)}.app-sidebar--collapsed:hover .sidebar-text{opacity:1;pointer-events:auto;max-width:200px;transition:opacity .25s .12s,max-width .35s cubic-bezier(.22,1,.36,1)}.sidebar-footer-profile{align-items:center;gap:10px;transition:gap .35s cubic-bezier(.22,1,.36,1);display:flex}.app-sidebar--collapsed .sidebar-footer-profile{gap:0}.app-sidebar--collapsed:hover .sidebar-footer-profile{gap:10px}@media (max-width:768px){.app-sidebar{display:none}}.bottom-tab-bar{background:var(--bg-surface-translucent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border-subtle);padding:var(--space-3)0;padding-bottom:max(10px,env(safe-area-inset-bottom));z-index:200;display:none;position:fixed;bottom:0;left:0;right:0}@media (max-width:768px){.bottom-tab-bar{align-items:stretch;display:flex}}.tab-item{min-height:72px;color:var(--text-muted);transition:color var(--transition-fast),transform var(--transition-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.tab-item--active{color:var(--color-primary);transform:scale(1.05)}@keyframes sosPulse{0%,to{box-shadow:0 4px 20px #c0392b59}50%{box-shadow:0 4px 32px #c0392b99,0 0 0 8px #c0392b1f}}.sos-fab{bottom:var(--space-8);right:var(--space-8);background:var(--color-danger);color:#fff;z-index:999;width:76px;height:76px;transition:all var(--transition-base);border-radius:50%;justify-content:center;align-items:center;animation:3s ease-in-out infinite sosPulse;display:flex;position:fixed;box-shadow:0 4px 20px #c0392b59}.sos-fab:hover{animation:none;transform:scale(1.1);box-shadow:0 6px 32px #c0392b80}.sos-fab:active{animation:none;transform:scale(.95)}@media (max-width:768px){.sos-fab{bottom:90px}}@media (max-width:480px){.app-header{padding:0 var(--space-4);gap:var(--space-2)}.sos-fab{width:64px;height:64px;bottom:80px;right:var(--space-4)}.sos-fab svg{width:26px;height:26px}.tab-item{gap:3px;min-height:60px;font-size:11px}.tab-item svg{width:24px;height:24px}.btn--patient{min-height:56px;padding:0 24px;font-size:16px}.stat-card{padding:var(--space-4)var(--space-5)}.stat-card__value{font-size:26px}.bottom-tab-bar{padding:var(--space-2)0}}.stat-card{background:var(--bg-canvas);border:1px solid var(--border-subtle);border-radius:var(--radius-card);padding:var(--space-6)var(--space-8);gap:var(--space-2);flex-direction:column;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.stat-card:hover{box-shadow:var(--shadow-elevated);border-color:#2d5a3d26;transform:translateY(-2px)}.stat-card__value{font-family:var(--font-heading);color:var(--text-heading);letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1}.stat-card__label{color:var(--text-muted);font-size:13px;font-weight:500}.divider{background:var(--border-subtle);width:100%;height:1px}.sr-only,.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.chat-bubble--own{background:var(--color-primary);color:#fff;border-radius:18px 18px 4px;max-width:75%;padding:10px 14px;font-size:14px;line-height:1.6;box-shadow:0 2px 8px #2d5a3d26}.chat-bubble--other{background:var(--bg-surface);color:var(--text-heading);border:1px solid var(--border-subtle);border-radius:18px 18px 18px 4px;max-width:75%;padding:10px 14px;font-size:14px;line-height:1.6}.gradient-text{background:linear-gradient(135deg,var(--color-primary)0%,var(--color-primary-light)100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.fade-up{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(24px)}.fade-up--visible{opacity:1;transform:translateY(0)}.fade-up--s1{transition-delay:0s}.fade-up--s2{transition-delay:80ms}.fade-up--s3{transition-delay:.16s}.fade-up--s4{transition-delay:.24s}.fade-up--s5{transition-delay:.32s}.fade-in{animation:.2s both fadeIn}.slide-in-left{animation:.3s both slideInLeft}.slide-in-right{animation:.3s both slideInRight}@keyframes checkmarkPop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}.checkmark-pop{animation:.4s both checkmarkPop}@keyframes revealDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.reveal-down{animation:.3s both revealDown}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tooltipFadeInUp{0%{opacity:0;transform:translateY(-6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes tooltipFadeInRight{0%{opacity:0;transform:translate(-6px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes tooltipFadeInLeft{0%{opacity:0;transform:translate(6px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);z-index:9999;font-family:var(--font-body);color:var(--text-heading);white-space:nowrap;white-space:normal;text-align:center;-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-medium);opacity:0;pointer-events:none;background:#f2ede5f5;border-radius:10px;max-width:290px;padding:10px 16px;font-size:13px;font-weight:500;line-height:1.55;transition:opacity .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1);position:absolute;bottom:calc(100% + 12px);left:50%;transform:translate(-50%)translateY(6px)scale(.97);box-shadow:0 8px 28px #0000001f,0 2px 8px #00000014,inset 0 1px #ffffff80}[data-tooltip]:before{content:"";z-index:10000;opacity:0;pointer-events:none;border-top:6px solid #f2ede5f7;border-left:6px solid #0000;border-right:6px solid #0000;width:0;height:0;transition:opacity .2s cubic-bezier(.22,1,.36,1);position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1;transition-delay:.3s;transform:translate(-50%)translateY(0)scale(1)}[data-tooltip]:hover:before{opacity:1;transition-delay:.3s}[data-tooltip][data-tooltip-pos=bottom]:after{top:calc(100% + 10px);bottom:auto;transform:translate(-50%)translateY(-6px)scale(.97)}[data-tooltip][data-tooltip-pos=bottom]:hover:after{transform:translate(-50%)translateY(0)scale(1)}[data-tooltip][data-tooltip-pos=bottom]:before{border-top:none;border-bottom:6px solid #f2ede5f7;top:calc(100% + 4px);bottom:auto}[data-tooltip][data-tooltip-pos=left]:after{inset:50% calc(100% + 10px) auto auto;transform:translateY(-50%)translate(6px)scale(.97)}[data-tooltip][data-tooltip-pos=left]:hover:after{transform:translateY(-50%)translate(0)scale(1)}[data-tooltip][data-tooltip-pos=left]:before{border:6px solid #0000;border-left-color:#f2ede5f7;border-right:none;inset:50% calc(100% + 4px) auto auto;transform:translateY(-50%)}[data-tooltip][data-tooltip-pos=right]:after{top:50%;bottom:auto;left:calc(100% + 10px);transform:translateY(-50%)translate(-6px)scale(.97)}[data-tooltip][data-tooltip-pos=right]:hover:after{transform:translateY(-50%)translate(0)scale(1)}[data-tooltip][data-tooltip-pos=right]:before{border:6px solid #0000;border-left:none;border-right-color:#f2ede5f7;top:50%;bottom:auto;left:calc(100% + 4px);transform:translateY(-50%)}@media (hover:none){[data-tooltip]:after,[data-tooltip]:before{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reveal,.reveal-left,.reveal-right,.reveal-scale{opacity:1;transform:none}.card:hover,.btn--primary:hover,.btn--secondary:hover,.btn--danger:hover{transform:none}}
