
:root{
    --bg:#f6f1ed;
    --bg-deep:#efe8e2;
    --surface:rgba(255,255,255,.74);
    --surface-solid:#fff;
    --ink:#29282b;
    --muted:#8b8584;
    --line:rgba(229,74,120,.24);
    --line-soft:rgba(229,74,120,.10);
    --accent:#e54a78;
    --accent-deep:#b93f62;
    --blue:#347ef4;
    --shadow:0 18px 52px rgba(74,45,54,.10);
    --footer-bg:rgba(246,241,237,.86);
}
body[data-theme="dark"]{
    --bg:#101117;
    --bg-deep:#171923;
    --surface:rgba(27,29,39,.76);
    --surface-solid:#20232f;
    --ink:#f6f2ef;
    --muted:#a9a8b1;
    --line:rgba(255,103,148,.38);
    --line-soft:rgba(255,103,148,.12);
    --accent:#ff6794;
    --accent-deep:#d84d78;
    --blue:#72a4ff;
    --shadow:0 24px 62px rgba(0,0,0,.34);
    --footer-bg:rgba(16,17,23,.88);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--bg)}
body.tac-herd-login{overflow:hidden;color:var(--ink);font-family:Inter,"Segoe UI",Tahoma,Arial,sans-serif;-webkit-font-smoothing:antialiased;transition:background .45s,color .45s}
button,a{font:inherit}
.tac-herd-tools{position:fixed;z-index:80;top:max(18px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));display:flex;align-items:center;gap:8px}
.tac-theme-toggle,.tac-motion-toggle{border:1px solid color-mix(in srgb,var(--ink) 12%,transparent);background:var(--surface);color:var(--ink);box-shadow:0 10px 28px rgba(34,22,26,.07);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.tac-theme-toggle{height:40px;padding:0 10px;border-radius:999px;display:flex;align-items:center;gap:7px;cursor:pointer}
.tac-theme-icon{display:grid;place-items:center;width:18px;height:18px;color:var(--muted)}
.tac-theme-icon svg,.tac-motion-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tac-theme-track{position:relative;width:36px;height:19px;border-radius:999px;background:color-mix(in srgb,var(--ink) 13%,transparent);transition:.3s}
.tac-theme-thumb{position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:var(--surface-solid);box-shadow:0 2px 7px rgba(0,0,0,.18);transition:.32s cubic-bezier(.2,.8,.2,1)}
body[data-theme="dark"] .tac-theme-thumb{transform:translateX(17px)}
body[data-theme="dark"] .tac-theme-moon{color:#ffd889}
body[data-theme="light"] .tac-theme-sun{color:#d18a2f}
.tac-motion-toggle{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer}
.tac-motion-play{display:none}
body.tac-motion-paused .tac-motion-pause{display:none}
body.tac-motion-paused .tac-motion-play{display:block}
.tac-herd-stage{position:relative;width:100vw;height:100svh;min-height:640px;overflow:hidden;isolation:isolate;background:
    radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--surface-solid) 96%,transparent),transparent 30%),
    radial-gradient(circle at 10% 80%,color-mix(in srgb,var(--blue) 9%,transparent),transparent 28%),
    radial-gradient(circle at 90% 18%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 26%),
    linear-gradient(145deg,var(--bg),var(--bg-deep));
transition:background .45s}
.tac-herd-stage:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.32;background-image:radial-gradient(circle, color-mix(in srgb,var(--ink) 18%,transparent) 0 1px, transparent 1.4px);background-size:28px 28px;mask-image:radial-gradient(circle at center,black,transparent 70%);-webkit-mask-image:radial-gradient(circle at center,black,transparent 70%)}
.tac-herd-ambient{position:absolute;border-radius:50%;filter:blur(56px);opacity:.20;pointer-events:none;animation:tacAmbient 12s ease-in-out infinite alternate}
.tac-ambient-one{width:380px;height:380px;left:-120px;bottom:2%;background:var(--blue)}
.tac-ambient-two{width:330px;height:330px;right:-110px;top:3%;background:var(--accent);animation-delay:-5s}
.tac-herd-orbits{position:absolute;z-index:1;left:50%;top:50%;width:min(1000px,94vw);height:min(700px,84vh);transform:translate(-50%,-50%);overflow:visible;pointer-events:none}
.tac-herd-orbits ellipse,.tac-herd-orbits path{fill:none;stroke:var(--line-soft);stroke-width:1.15;stroke-dasharray:2 5}
.tac-herd-orbits ellipse:nth-child(2){stroke-dasharray:1 8}
.tac-herd-orbits ellipse:nth-child(3){stroke-dasharray:4 9}
.tac-float{position:absolute;z-index:12;left:var(--home-x,50%);top:var(--home-y,50%);width:var(--bubble-size);height:var(--bubble-size);will-change:transform;transform:translate(-50%,-50%);opacity:1;visibility:visible}
/* V6.2 — resilient doctor visibility and motion fallback */
.tac-herd-stage .tac-person-float,.tac-herd-stage .tac-node-float{opacity:1!important;visibility:visible!important}
.tac-herd-stage.tac-motion-ready .tac-float{left:0;top:0}
.tac-person-image img{opacity:1;visibility:visible}

.tac-person-card,.tac-node-card{position:relative;width:100%;height:100%;border:0;padding:0;background:transparent;color:var(--ink);cursor:pointer;overflow:visible}
.tac-person-image{position:absolute;inset:0;border-radius:50%;overflow:hidden;background:linear-gradient(145deg,color-mix(in srgb,var(--surface-solid) 90%,transparent),color-mix(in srgb,var(--accent) 5%,var(--surface-solid)));box-shadow:var(--shadow),0 0 0 1px var(--line),0 0 0 7px color-mix(in srgb,var(--surface-solid) 64%,transparent);transition:transform .28s,box-shadow .28s}
.tac-person-image img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:saturate(.94) contrast(1.02);transition:transform .38s cubic-bezier(.2,.8,.2,1),filter .35s}
.tac-person-halo{position:absolute;z-index:-1;inset:-10px;border-radius:50%;border:1px solid var(--line);opacity:.7;animation:tacHalo 4.6s ease-in-out infinite}
.tac-person-code{position:absolute;left:50%;top:calc(100% + 9px);transform:translateX(-50%);color:var(--muted);font-size:9px;font-weight:650;letter-spacing:.12em;white-space:nowrap}
.tac-person-card:hover .tac-person-image,.tac-person-card:focus-visible .tac-person-image{transform:scale(1.12);box-shadow:0 22px 56px color-mix(in srgb,var(--accent) 20%,transparent),0 0 0 2px var(--accent),0 0 0 8px color-mix(in srgb,var(--surface-solid) 70%,transparent)}
.tac-person-card:hover img,.tac-person-card:focus-visible img{transform:scale(1.06);filter:saturate(1.06) contrast(1.04)}
.tac-person-card:focus-visible,.tac-node-card:focus-visible{outline:none}
.tac-person-tooltip{position:absolute;z-index:30;direction:ltr;left:50%;top:calc(100% + 27px);width:max-content;max-width:200px;transform:translate(-50%,8px);padding:8px 11px;border-radius:10px;background:var(--ink);color:var(--bg);font-size:10px;line-height:1.35;opacity:0;visibility:hidden;pointer-events:none;box-shadow:0 12px 28px rgba(0,0,0,.18);transition:.22s}
.tac-person-tooltip:before{content:"";position:absolute;left:50%;top:-5px;width:10px;height:10px;background:inherit;transform:translateX(-50%) rotate(45deg)}
.tac-person-card:hover .tac-person-tooltip,.tac-node-card:hover .tac-person-tooltip,.tac-person-card:focus-visible .tac-person-tooltip,.tac-node-card:focus-visible .tac-person-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.tac-node-card{border-radius:50%;background:var(--surface);box-shadow:0 12px 34px rgba(54,35,42,.08),0 0 0 1px var(--line);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:transform .25s,background .35s}
.tac-node-card:before{content:"";position:absolute;inset:-5px;border-radius:inherit;border:1px dashed var(--line)}
.tac-node-icon{position:absolute;inset:20% 20% 37%;display:grid;place-items:center;color:var(--accent)}
.tac-node-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.tac-node-code{position:absolute;left:0;right:0;bottom:15%;font-size:8px;font-weight:750;letter-spacing:.05em}
.tac-node-card:hover,.tac-node-card:focus-visible{transform:scale(1.15);background:var(--surface-solid)}
.tac-node-card .tac-person-tooltip{top:calc(100% + 15px)}
.tac-herd-center{position:absolute;z-index:24;left:50%;top:49%;width:250px;height:250px;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;border-radius:50%;border:1px solid var(--line);background:var(--surface);box-shadow:0 28px 90px rgba(58,37,45,.13),inset 0 0 0 10px color-mix(in srgb,var(--surface-solid) 58%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:background .45s,transform .55s,box-shadow .45s}
.tac-herd-center:before,.tac-herd-center:after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.tac-herd-center:before{inset:-16px;border:1px dashed var(--line);animation:tacSpin 28s linear infinite}
.tac-herd-center:after{inset:16px;border:1px dotted color-mix(in srgb,var(--blue) 35%,transparent);animation:tacSpin 19s linear infinite reverse}
.tac-center-grid{position:absolute;inset:34px;border-radius:50%;opacity:.18;background-image:radial-gradient(circle,var(--accent) 0 1px,transparent 1.5px);background-size:22px 22px;mask-image:radial-gradient(circle,black,transparent 72%);-webkit-mask-image:radial-gradient(circle,black,transparent 72%)}
.tac-center-logo{position:relative;z-index:2;width:82px;height:34px;display:grid;place-items:center;margin-bottom:10px}
.tac-center-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.tac-herd-center h1{position:relative;z-index:2;margin:0 0 7px;padding-left:.38em;color:var(--ink);font-size:23px;font-weight:300;letter-spacing:.38em;line-height:1}
.tac-herd-center p{position:relative;z-index:2;margin:0;color:var(--muted);font-family:Tahoma,Arial,sans-serif;font-size:9px}
.tac-herd-login-button{position:relative;z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:118px;height:35px;margin-top:16px;padding:0 14px;border-radius:999px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;text-decoration:none;font-family:Tahoma,Arial,sans-serif;font-size:10px;font-weight:750;box-shadow:0 12px 26px color-mix(in srgb,var(--accent) 30%,transparent);transition:transform .22s,box-shadow .22s}
.tac-herd-login-button svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tac-herd-login-button:hover{transform:translateY(-2px);box-shadow:0 17px 32px color-mix(in srgb,var(--accent) 38%,transparent)}
.tac-gather-button{position:relative;z-index:3;margin-top:8px;padding:0;border:0;background:transparent;color:var(--muted);font-family:Tahoma,Arial,sans-serif;font-size:8px;cursor:pointer}
.tac-gather-button:hover{color:var(--accent)}
.tac-herd-instruction{position:absolute;z-index:18;left:50%;bottom:69px;transform:translateX(-50%);width:max-content;max-width:82%;margin:0;color:var(--muted);font-size:9px;letter-spacing:.10em;text-align:center}
.tac-herd-footer{position:fixed;z-index:60;left:0;right:0;bottom:0;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 30px;color:var(--muted);font-size:8px;background:linear-gradient(to top,var(--footer-bg),transparent);pointer-events:none}
.tac-herd-contact{direction:ltr;display:flex;align-items:center;gap:16px;pointer-events:auto}.tac-herd-contact a{color:inherit;text-decoration:none}.tac-herd-contact a:hover{color:var(--accent)}
.tac-herd-credit{direction:ltr}
body.tac-gathered .tac-herd-center{transform:translate(-50%,-50%) scale(1.04);box-shadow:0 36px 110px color-mix(in srgb,var(--accent) 18%,transparent)}
body.tac-motion-paused .tac-person-halo,body.tac-motion-paused .tac-herd-center:before,body.tac-motion-paused .tac-herd-center:after,body.tac-motion-paused .tac-herd-ambient{animation-play-state:paused}
@keyframes tacSpin{to{transform:rotate(360deg)}}
@keyframes tacHalo{0%,100%{transform:scale(.96);opacity:.45}50%{transform:scale(1.08);opacity:.9}}
@keyframes tacAmbient{from{transform:translate3d(-12px,-8px,0) scale(.94)}to{transform:translate3d(18px,12px,0) scale(1.08)}}
@media(max-width:980px){
    .tac-herd-stage{min-height:690px}.tac-herd-center{width:220px;height:220px;top:47%}.tac-center-logo{width:74px;height:31px}.tac-herd-center h1{font-size:20px}.tac-herd-tools{top:14px;right:14px}.tac-herd-instruction{bottom:74px;font-size:8px}.tac-herd-footer{padding:8px 15px;flex-direction:column;justify-content:flex-end;gap:3px}.tac-herd-contact{gap:10px;flex-wrap:wrap;justify-content:center}
}
@media(max-width:650px){
    body.tac-herd-login{overflow:hidden}.tac-herd-stage{min-height:680px}.tac-herd-center{top:44%;width:184px;height:184px}.tac-herd-center:before{inset:-11px}.tac-herd-center:after{inset:12px}.tac-center-logo{width:62px;height:27px;margin-bottom:7px}.tac-herd-center h1{font-size:16px;letter-spacing:.30em;padding-left:.30em}.tac-herd-center p{font-size:7px;max-width:125px;line-height:1.6}.tac-herd-login-button{min-width:104px;height:33px;margin-top:12px;font-size:9px}.tac-gather-button{font-size:7px;margin-top:6px}
    .tac-person-code{font-size:7px;top:calc(100% + 5px)}.tac-person-tooltip{display:none}.tac-node-code{font-size:7px}.tac-herd-instruction{bottom:68px;font-size:7px;letter-spacing:.04em}
    .tac-herd-footer{font-size:7px;padding-bottom:max(7px,env(safe-area-inset-bottom))}.tac-herd-contact span{display:none}
    .tac-theme-toggle{height:36px;padding:0 8px}.tac-motion-toggle{width:36px;height:36px}
    .tac-float[data-mobile="0"]{display:none}
}
@media(max-height:700px) and (min-width:651px){
    .tac-herd-center{width:216px;height:216px}.tac-herd-center h1{font-size:19px}.tac-herd-instruction{bottom:55px}.tac-herd-footer{min-height:42px}
}
@media(prefers-reduced-motion:reduce){
    .tac-person-halo,.tac-herd-center:before,.tac-herd-center:after,.tac-herd-ambient{animation:none!important}
}


/* V6.1 — Staff login modal on /staff-login/ */
.tac-herd-login-button{border:0;cursor:pointer}
.tac-login-modal{position:fixed;z-index:300;inset:0;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
.tac-login-modal.is-open{opacity:1;visibility:visible}
.tac-login-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(13,15,24,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer}
.tac-login-dialog{position:relative;z-index:2;width:min(430px,100%);padding:30px 30px 24px;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:28px;background:color-mix(in srgb,var(--surface-solid) 94%,transparent);color:var(--ink);box-shadow:0 34px 110px rgba(0,0,0,.24);text-align:right;transform:translateY(20px) scale(.97);transition:transform .32s cubic-bezier(.2,.8,.2,1),background .4s}
.tac-login-modal.is-open .tac-login-dialog{transform:translateY(0) scale(1)}
.tac-login-close{position:absolute;left:17px;top:17px;width:38px;height:38px;border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--surface-solid) 82%,transparent);color:var(--muted);cursor:pointer}
.tac-login-close svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.tac-login-dialog-logo{width:84px;height:38px;margin:0 0 16px auto;display:grid;place-items:center}
.tac-login-dialog-logo img{display:block;max-width:100%;max-height:100%;object-fit:contain}
.tac-login-eyebrow{display:block;color:var(--accent);font-size:9px;font-weight:800;letter-spacing:.18em;direction:ltr;text-align:right}
.tac-login-dialog h2{margin:7px 0 7px;font-family:Tahoma,Arial,sans-serif;font-size:24px;line-height:1.4;color:var(--ink)}
.tac-login-dialog>p{margin:0 0 20px;color:var(--muted);font-family:Tahoma,Arial,sans-serif;font-size:11px;line-height:1.8}
.tac-login-error{margin:0 0 14px;padding:11px 13px;border:1px solid rgba(217,53,80,.24);border-radius:12px;background:rgba(217,53,80,.08);color:#d53550;font-family:Tahoma,Arial,sans-serif;font-size:10px;line-height:1.7}
.tac-login-form{display:grid;gap:14px}
.tac-login-form>label>span:first-child{display:block;margin-bottom:7px;color:var(--ink);font-family:Tahoma,Arial,sans-serif;font-size:10px;font-weight:750}
.tac-login-input-wrap{position:relative;display:flex;align-items:center;height:49px;border:1px solid color-mix(in srgb,var(--ink) 13%,transparent);border-radius:14px;background:color-mix(in srgb,var(--surface-solid) 82%,transparent);transition:border-color .2s,box-shadow .2s}
.tac-login-input-wrap:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)}
.tac-login-input-wrap>svg{position:absolute;right:14px;width:18px;height:18px;fill:none;stroke:var(--muted);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.tac-login-input-wrap input{width:100%;height:100%;padding:0 43px 0 44px;border:0;outline:0;background:transparent;color:var(--ink);font:500 13px/1.2 Tahoma,Arial,sans-serif;direction:ltr;text-align:left}
.tac-password-toggle{position:absolute;left:8px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer}
.tac-password-toggle svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tac-login-options{display:flex;align-items:center;justify-content:space-between;gap:10px;font-family:Tahoma,Arial,sans-serif;font-size:9px}
.tac-login-options a{color:var(--accent);text-decoration:none}
.tac-login-remember{display:flex!important;align-items:center;gap:7px;color:var(--muted);cursor:pointer}
.tac-login-remember input{accent-color:var(--accent)}
.tac-login-submit{height:48px;border:0;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(135deg,var(--accent),var(--accent-deep));color:#fff;font-family:Tahoma,Arial,sans-serif;font-size:11px;font-weight:800;box-shadow:0 14px 30px color-mix(in srgb,var(--accent) 28%,transparent);cursor:pointer;transition:transform .2s,box-shadow .2s}
.tac-login-submit:hover{transform:translateY(-2px);box-shadow:0 18px 36px color-mix(in srgb,var(--accent) 34%,transparent)}
.tac-login-submit svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tac-login-security{display:block;margin-top:16px;text-align:center;color:var(--muted);font-family:Tahoma,Arial,sans-serif;font-size:8px}
@media(max-width:650px){.tac-login-modal{padding:14px}.tac-login-dialog{padding:25px 19px 20px;border-radius:23px}.tac-login-dialog h2{font-size:20px}.tac-login-dialog-logo{width:72px;height:32px}.tac-login-options{align-items:flex-start;flex-direction:column}.tac-login-submit{height:46px}}
.tac-patient-login-link{display:block;margin:12px auto 0;text-align:center;color:var(--accent);font-family:Tahoma,Arial,sans-serif;font-size:9px;font-weight:700;text-decoration:none}
.tac-patient-login-link:hover{text-decoration:underline}
