/* GATS Desktop 3.0 — responsive web app shell */
@media(min-width:1000px){body{background:#f4f5fb}#app{max-width:1180px;margin:0 auto;padding:24px 32px 70px}.screen:not(.hidden){max-width:1120px;margin:0 auto}.authScreen:not(.hidden){max-width:680px}.authPanel{max-width:560px;margin-inline:auto}.guestGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.card{max-width:none}button{cursor:pointer}}
:focus-visible{outline:3px solid #5145b9;outline-offset:3px}
#desktopHomeLink{position:fixed;right:18px;top:12px;z-index:15;background:white;color:#352e6c;padding:9px 14px;border-radius:999px;box-shadow:0 2px 14px #20204020;text-decoration:none;font:600 13px system-ui}
@media(max-width:650px){#desktopHomeLink{position:static;display:block;text-align:center;border-radius:0}}
/* GATS Desktop 3.1 — participant workspace enhancements (desktop app only) */
@media(min-width:850px){
 #gatsDesktopMain .screen:not(.hidden){max-width:1160px}
 #gatsDesktopMain #home:not(.hidden) .activities{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
 #gatsDesktopMain #home:not(.hidden) .activityCard{min-height:110px}
 #gatsDesktopMain #activity:not(.hidden){max-width:850px}
 #gatsDesktopMain #activity:not(.hidden) .guideSteps{grid-template-columns:repeat(2,minmax(0,1fr))}
 #gatsDesktopMain #guest:not(.hidden) .guestGrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.gatsDesktopSkip{position:fixed;top:-100px;left:12px;z-index:100;background:#fff;color:#29216b;padding:12px 18px;border:2px solid #5145b9;border-radius:10px}
.gatsDesktopSkip:focus{top:12px}
.gatsDesktopToolbar{display:flex;justify-content:flex-end;align-items:center;gap:8px;max-width:1180px;margin:18px auto 0;padding:0 24px;color:#4a4376}
.gatsDesktopToolbarTitle{font-weight:700;font-size:14px;margin-right:5px}
.gatsDesktopToolbar button{width:auto;margin:0;padding:9px 13px;font-size:14px;border-radius:10px}
.gatsDesktopJump{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 20px}
.gatsDesktopJump a{display:inline-flex;padding:12px 17px;border:1px solid #d9d1f6;border-radius:999px;background:white;color:#45389f;font-weight:750;text-decoration:none}
.gatsDesktopJump a:hover,.gatsDesktopJump a:focus-visible{background:#eeeaff}
#gatsDesktopMain{font-size:calc(1rem * var(--gats-desktop-scale,1))}
#gatsDesktopMain button,#gatsDesktopMain input,#gatsDesktopMain label,#gatsDesktopMain p{font-size:inherit}
#gatsDesktopMain .activityCard strong{font-size:1.2em}
#gatsDesktopMain .activityCard span{line-height:1.45}
#gatsDesktopMain .screen [id]{scroll-margin-top:20px}
@media(max-width:650px){.gatsDesktopToolbar{margin:10px auto;padding:0 16px}.gatsDesktopJump{gap:7px}.gatsDesktopJump a{padding:10px 12px;font-size:14px}}
@media(prefers-reduced-motion:reduce){#gatsDesktopMain *,#gatsDesktopMain *:before,#gatsDesktopMain *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* GATS Desktop 3.2: authenticated professional workspace only */
.gatsProWorkspace{max-width:1280px;margin:auto}.gatsProActions,.gatsProFooter{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.gatsProStats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gatsProStats .card{display:flex;flex-direction:column;gap:8px}.gatsProStats strong{font-size:clamp(1.8rem,3vw,2.6rem)}.gatsProColumns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.gatsProColumns .card{min-width:0}.gatsProList{display:grid;gap:10px;margin-top:12px;max-height:540px;overflow:auto}.gatsProItem{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:5px;width:100%;white-space:normal}.gatsProItem small{font-size:.85em;opacity:.8}.gatsProData{white-space:pre-wrap;overflow-wrap:anywhere;max-height:350px;overflow:auto;font-size:.85em}.gatsProWorkspace input[type=search]{width:100%;max-width:100%}@media(max-width:760px){.gatsProColumns{grid-template-columns:1fr}.gatsProStats{gap:10px}}

/* GATS Desktop 3.3 professional planning */
.gatsProTools{margin-top:1.25rem}.gatsProTools .gatsProList{max-height:22rem;overflow:auto}.gatsProTools input{width:100%;max-width:34rem}

/* GATS 3.3.2 — administrator workspace */
.gatsAdminWorkspace .card{max-width:780px;margin:2rem auto;padding:2rem}.gatsAdminWorkspace a{font-weight:700}

/* GATS Desktop 3.4 — administration console, scoped to authenticated app */
.gatsAdminShell{max-width:1200px;margin:0 auto;padding:1rem 1.25rem 3rem}.gatsAdminHeading{margin:1rem 0 1.5rem}.gatsAdminHeading h1{margin-bottom:.35rem}.gatsAdminStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.gatsAdminStats .card{display:flex;flex-direction:column;gap:.6rem}.gatsAdminStats strong{font-size:2rem;color:#5142b9}.gatsAdminGrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:1rem}.gatsAdminGrid .card{min-width:0}.gatsAdminGrid input,.gatsAdminGrid select{display:block;width:100%;margin:.35rem 0 1rem;box-sizing:border-box;padding:.75rem;border:1px solid #c7c7d9;border-radius:10px}.gatsAdminOrgList{max-height:420px;overflow:auto}.gatsAdminOrgRow{display:flex;justify-content:space-between;gap:1rem;padding:.85rem .2rem;border-bottom:1px solid #e6e5ef}.gatsAdminOrgRow span{color:#5b6073}.gatsAdminNote{margin-top:1.5rem;padding:1rem;background:#f5f3ff;border-radius:12px}.gatsAdminNote p{margin-bottom:0}@media(max-width:800px){.gatsAdminStats{grid-template-columns:repeat(2,minmax(0,1fr))}.gatsAdminGrid{grid-template-columns:1fr}.gatsAdminOrgRow{flex-direction:column;gap:.25rem}}

/* GATS Desktop 3.5: optional speech preferences; never obscure participant controls */
.gatsSpeechTools{position:fixed;right:1rem;bottom:1rem;z-index:35;max-width:min(360px,calc(100vw - 2rem));font:inherit}
.gatsSpeechTools>button{border:1px solid #c8baf1;border-radius:999px;background:#f1edff;color:#49309a;padding:.7rem 1rem;box-shadow:0 3px 14px #25204020;cursor:pointer;font-weight:700}
#gatsSpeechPanel{margin-top:.5rem;background:white;border:1px solid #ddd5ef;border-radius:1rem;padding:1rem;box-shadow:0 8px 28px #25204030;max-height:65vh;overflow:auto}
#gatsSpeechPanel[hidden]{display:none}#gatsSpeechPanel h2{font-size:1.1rem;margin:.1rem 0 .5rem}#gatsSpeechPanel p{font-size:.9rem}#gatsSpeechPanel select{display:block;width:100%;margin:.4rem 0 .8rem;padding:.6rem}#gatsSpeechPanel button{margin:.2rem;padding:.6rem}
@media(max-width:600px){.gatsSpeechTools{bottom:.5rem;right:.5rem}}

/* GATS Desktop 3.5.3 — compact tour and centered grown-up security dialog */
#gatsWelcome34{justify-content:center!important;gap:8px;padding:20px 20px 28px!important;box-sizing:border-box}
#gatsWelcome34 .gatsWelcomeSkip{align-self:flex-end;margin:0 0 8px!important;flex:none}
#gatsWelcome34 .gatsWelcomeBody{flex:0 1 auto!important;justify-content:center!important;max-width:490px!important;padding:12px 0 0!important;gap:4px}
#gatsWelcome34 .gatsWelcomeBody img{width:min(65vw,260px)!important;height:min(32vh,250px)!important;max-height:250px;object-fit:contain!important;object-position:center!important}
#gatsWelcome34 .gatsWelcomeCopy{min-height:0!important}
#gatsWelcome34 .gatsWelcomeCopy h1{margin:10px 0 8px!important}
#gatsWelcome34 .gatsWelcomeDots{margin:14px 0!important}
#gatsWelcome34 .gatsWelcomeBody>button{min-height:52px!important}
#pinModal:not(.hidden){position:fixed!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:20px!important;z-index:100100!important;background:rgba(23,19,54,.68)!important;overflow:auto!important}
#pinModal.hidden{display:none!important}
#pinModal .gatsPinDialog{position:relative!important;display:flex!important;flex-direction:column!important;gap:12px!important;width:min(100%,440px)!important;max-width:440px!important;max-height:calc(100dvh - 40px)!important;overflow-y:auto!important;margin:auto!important;padding:clamp(22px,4vw,34px)!important;border-radius:24px!important;background:#fff!important;color:#28243e!important;box-shadow:0 20px 70px rgba(17,14,50,.26)!important;box-sizing:border-box!important}
#pinModal .gatsPinDialog h2{margin:0!important;font-size:clamp(23px,3vw,29px)!important;line-height:1.2!important}
#pinModal .gatsPinHelp,#pinModal .gatsPinFootnote{margin:0!important;line-height:1.5!important;color:#5c5672!important}
#pinModal .gatsPinDialog label{font-weight:700!important}
#pinModal .gatsPinDialog input{width:100%!important;min-height:50px!important;box-sizing:border-box!important}
#pinModal .gatsPinDialog button{min-height:46px!important;width:100%!important}
#pinModal .gatsPinActions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#pinModal .gatsPinActions button{font-size:14px!important;white-space:normal!important}
#pinModal #pinMsg:empty{display:none}
@media(max-height:650px){#gatsWelcome34{justify-content:flex-start!important}#gatsWelcome34 .gatsWelcomeBody img{height:min(24vh,150px)!important}#gatsWelcome34 .gatsWelcomeCopy h1{font-size:24px!important}}
@media(max-width:430px){#pinModal .gatsPinActions{grid-template-columns:1fr}#pinModal .gatsPinDialog{padding:20px!important}}

/* GATS Desktop 3.5.4 — PIN anchored beside Grown-up button */
#home header{position:relative!important;overflow:visible!important;z-index:30}
#home .gatsGrownupAnchor{position:relative;flex:0 0 auto;z-index:40}
#pinModal:not(.hidden){position:absolute!important;inset:auto 0 auto auto!important;top:calc(100% + 12px)!important;display:block!important;width:min(410px,calc(100vw - 36px))!important;max-width:none!important;max-height:min(75vh,640px)!important;overflow:visible!important;padding:0!important;margin:0!important;background:transparent!important;z-index:50!important;box-shadow:none!important}
#pinModal .gatsPinDialog{width:100%!important;max-width:none!important;max-height:min(75vh,640px)!important;overflow-y:auto!important;margin:0!important;padding:22px!important;border:1px solid #e5defb!important;box-shadow:0 18px 55px rgba(25,18,68,.22)!important;border-radius:20px!important}
#pinModal:not(.hidden)::before{content:"";position:absolute;right:24px;top:-8px;width:16px;height:16px;transform:rotate(45deg);background:#fff;border-left:1px solid #e5defb;border-top:1px solid #e5defb;z-index:1}
#pinModal .gatsPinDialog label{margin:2px 0 0!important}
#pinModal .gatsPinDialog input{margin:0!important}
#pinModal .gatsPinDialog button{margin-top:2px!important}
@media(max-width:560px){#pinModal:not(.hidden){right:-2px!important;width:min(340px,calc(100vw - 28px))!important}#pinModal .gatsPinDialog{padding:18px!important}}
