/* ============================================================
   AUDIOLOGIC — folha de estilos (extraída de index.html v2.2.0 sem alterações
   visuais; a única diferença é a imagem do hero, que passou a ficheiro).
   ============================================================ */
:root{
  --azul-profundo:#16215A;
  --azul-profundo-2:#222E77;
  --turquesa:#2FD4C4;
  --turquesa-escuro:#1AA99B;
  --lilas:#B6A6F6;
  --amarelo:#FBD273;
  --noite:#0D1338;
  --bg:#F5F7FC;
  --bg-card:#FFFFFF;
  --ink:#141B3C;
  --ink-soft:#57608A;
  --ink-faint:#8B92B8;
  --linha:#E4E8F6;
  --sucesso:#33C689;
  --erro:#F0648A;
  --radius:20px;
  --radius-sm:12px;
  --shadow:0 12px 30px -14px rgba(22,33,90,0.22);
  --shadow-sm:0 4px 14px -8px rgba(22,33,90,0.25);
  --font-display:'Space Grotesk',sans-serif;
  --font-body:'Inter',sans-serif;
  --font-mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;}
html.contraste{
  --ink-soft:#1a2140;
  --ink-faint:#3a4270;
  --linha:#141B3C;
}
body.reduce-motion *{animation:none !important;transition:none !important;}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
body{
  margin:0;font-family:var(--font-body);background:var(--bg);color:var(--ink);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-0.01em;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
:focus-visible{outline:3px solid var(--turquesa-escuro);outline-offset:3px;border-radius:6px;}

/* ---------- waveform signature ---------- */
.wave{display:inline-flex;align-items:flex-end;gap:3px;height:18px;}
.wave i{display:block;width:3px;border-radius:2px;background:currentColor;animation:wv 1.1s ease-in-out infinite;}
.wave i:nth-child(1){height:40%;animation-delay:0s}
.wave i:nth-child(2){height:100%;animation-delay:.12s}
.wave i:nth-child(3){height:65%;animation-delay:.24s}
.wave i:nth-child(4){height:85%;animation-delay:.36s}
.wave i:nth-child(5){height:50%;animation-delay:.48s}
@keyframes wv{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}
.wave.static i{animation:none;}
.wave.static i:nth-child(1){height:35%}.wave.static i:nth-child(2){height:75%}
.wave.static i:nth-child(3){height:50%}.wave.static i:nth-child(4){height:95%}
.wave.static i:nth-child(5){height:60%}

/* ---------- layout helpers ---------- */
.container{max-width:1180px;margin:0 auto;padding:0 24px;}
.hidden{display:none !important;}
.btn{border:none;border-radius:100px;padding:14px 26px;font-weight:600;font-size:15px;display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease, box-shadow .15s ease;}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--azul-profundo);color:#fff;box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--azul-profundo-2);}
.btn-turquesa{background:var(--turquesa);color:#04302B;box-shadow:var(--shadow-sm);}
.btn-turquesa:hover{background:var(--turquesa-escuro);color:#fff;}
.btn-ghost{background:transparent;color:var(--azul-profundo);border:2px solid var(--linha);}
.btn-ghost:hover{border-color:var(--azul-profundo);}
.btn-lg{padding:17px 34px;font-size:16px;}
.btn-block{width:100%;justify-content:center;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;}
.pill{display:inline-flex;align-items:center;gap:6px;background:#EDF1FC;color:var(--azul-profundo);font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:100px;}
.tag-turquesa{background:rgba(47,212,196,.15);color:#0B5C53;}
.tag-lilas{background:rgba(182,166,246,.2);color:#4A3B8F;}
.tag-amarelo{background:rgba(251,210,115,.25);color:#7A5A0B;}
.grid{display:grid;gap:20px;}

/* ---------- top public nav ---------- */
#public-nav{position:sticky;top:0;z-index:40;background:rgba(245,247,252,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--linha);}
#public-nav .bar{display:flex;align-items:center;justify-content:space-between;padding:16px 0;}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:19px;color:var(--azul-profundo);}
.logo .wave{color:var(--turquesa-escuro);}
#public-nav nav{display:flex;gap:28px;}
#public-nav nav a{font-size:14.5px;font-weight:600;color:var(--ink-soft);}
#public-nav nav a:hover{color:var(--azul-profundo);}
.nav-actions{display:flex;gap:10px;align-items:center;}

/* ---------- hero fotográfico ---------- */
.hero-photo{position:relative;height:580px;overflow:hidden;background-image:url(../img/hero-foto.jpg);background-size:cover;background-position:center center;background-repeat:no-repeat;}
@media (max-width:920px){.hero-photo{height:460px;background-position:25% center;}}
@media (max-width:560px){.hero-photo{height:320px;background-position:0% center;}}

.benefits-bar-wrap{position:relative;max-width:1180px;margin:0 auto;padding:0 24px;}
.benefits-bar{position:relative;z-index:3;margin-top:-64px;background:#fff;border-radius:22px;box-shadow:0 20px 50px -20px rgba(23,33,63,.25);padding:28px 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.benefit-item{display:flex;gap:12px;align-items:flex-start;}
.benefit-item .ic{width:40px;height:40px;border-radius:12px;background:rgba(47,212,196,.14);color:var(--turquesa-escuro);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.benefit-item h4{margin:0 0 3px;font-size:14px;color:var(--noite);}
.benefit-item p{margin:0;font-size:12.5px;color:var(--ink-soft);line-height:1.45;}
@media (max-width:920px){.benefits-bar{grid-template-columns:repeat(2,1fr);margin-top:-40px;padding:22px;}}
@media (max-width:560px){.benefits-bar{grid-template-columns:1fr;}}

.howto-section{padding-top:96px;}
.howto-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.prog-merge-grid{max-width:1180px;display:grid;grid-template-columns:1.5fr 1fr;gap:8px;align-items:center;}
.prog-merge-imgwrap{-webkit-mask-image:linear-gradient(to right, black 55%, transparent 92%);mask-image:linear-gradient(to right, black 55%, transparent 92%);}
.prog-merge-imgwrap img{width:100%;height:auto;display:block;border-radius:24px;}
.prog-merge-text{position:relative;z-index:2;margin-left:-70px;}
@media (max-width:760px){
  .prog-merge-grid{grid-template-columns:1fr;gap:24px;}
  .prog-merge-imgwrap{-webkit-mask-image:linear-gradient(to bottom, black 75%, transparent 100%);mask-image:linear-gradient(to bottom, black 75%, transparent 100%);}
  .prog-merge-text{margin-left:0;}
}
@media (max-width:920px){.howto-grid{grid-template-columns:1fr;gap:32px;}}
.howto-grid h2{font-size:32px;margin:10px 0 16px;color:var(--noite);}
.howto-grid p.lead{font-size:15.5px;color:var(--ink-soft);line-height:1.65;max-width:440px;margin:0 0 26px;}
.howto-links{display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.howto-links .link-arrow{font-weight:600;color:var(--turquesa-escuro);text-decoration:none;font-size:14.5px;}
.howto-links .link-arrow:hover{text-decoration:underline;}
.hero-visual{background:linear-gradient(160deg,var(--azul-profundo),var(--noite));border-radius:28px;padding:28px;box-shadow:var(--shadow);color:#fff;position:relative;}
.hero-visual .mock-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;}
.hero-visual .mock-top .wave{color:var(--turquesa);}
.mock-score-row{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;}
.mock-score{flex:1;min-width:80px;background:rgba(255,255,255,.08);border-radius:14px;padding:12px;}
.mock-score .num{font-family:var(--font-mono);font-size:20px;font-weight:600;}
.mock-score .lbl{font-size:11px;opacity:.75;margin-top:2px;}
.mock-cta{background:var(--turquesa);color:#04302B;border-radius:14px;padding:14px 16px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}

.trust-section{padding:48px 0 64px;text-align:center;}
.trust-section p.trust-lead{font-size:14px;color:var(--ink-soft);font-weight:600;margin:0 0 28px;}
.trust-grid{display:flex;justify-content:center;gap:56px;flex-wrap:wrap;}
.trust-item{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:14px;font-weight:600;}
.trust-item .ic{font-size:20px;}
@media (max-width:560px){.trust-grid{gap:28px 36px;}}

/* menu móvel (hambúrguer) */
.menu-toggle{display:none;background:none;border:none;padding:8px;font-size:22px;cursor:pointer;color:var(--noite);}
.mobile-nav-drawer{display:none;position:fixed;inset:0;background:rgba(23,33,63,.5);z-index:200;}
.mobile-nav-drawer.open{display:block;}
.mobile-nav-panel{position:absolute;top:0;right:0;bottom:0;width:78%;max-width:320px;background:#fff;padding:24px;display:flex;flex-direction:column;gap:4px;box-shadow:-10px 0 30px rgba(0,0,0,.15);}
.mobile-nav-panel a{padding:14px 6px;font-size:15.5px;font-weight:600;color:var(--noite);border-bottom:1px solid var(--linha);text-decoration:none;}
.mobile-nav-panel .nav-actions{margin-top:16px;flex-direction:column;}
.mobile-nav-panel .nav-actions .btn{width:100%;}
@media (max-width:920px){
  #public-nav nav{display:none;}
  #public-nav .nav-actions .btn-ghost{display:none;}
  .menu-toggle{display:block;}
}

section{padding:56px 0;}
.section-head{max-width:620px;margin:0 auto 36px;text-align:center;}
.section-head h2{font-size:30px;margin:0 0 10px;color:var(--noite);}
.section-head p{color:var(--ink-soft);font-size:15.5px;line-height:1.6;margin:0;}
.eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--turquesa-escuro);font-weight:600;display:block;margin-bottom:10px;}

.skills-grid{grid-template-columns:repeat(5,1fr);}
@media (max-width:920px){.skills-grid{grid-template-columns:repeat(2,1fr);}}
.skill-card{text-align:left;}
.skill-card .ic{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;background:var(--azul-profundo);color:#fff;}
.skill-card h3{font-size:16px;margin:0 0 6px;}
.skill-card p{font-size:13.5px;color:var(--ink-soft);margin:0;line-height:1.5;}

.steps{grid-template-columns:repeat(3,1fr);}
@media (max-width:760px){.steps{grid-template-columns:1fr;}}
.step-card{text-align:center;}
.step-card .wave{color:var(--turquesa-escuro);margin-bottom:14px;}
.step-card h3{margin:0 0 8px;font-size:17px;}
.step-card p{color:var(--ink-soft);font-size:14px;margin:0;}

.games-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.game-card{display:flex;flex-direction:column;gap:12px;transition:transform .25s ease,box-shadow .25s ease;}
.game-card:hover{transform:translateY(-4px);}
.game-card .thumb{height:96px;border-radius:14px;overflow:hidden;box-shadow:0 8px 20px -10px rgba(22,33,90,.4);}
.game-card h3{margin:0;font-size:16px;}
.game-card .meta{display:flex;gap:8px;flex-wrap:wrap;}
.game-card p{margin:0;font-size:13px;color:var(--ink-soft);line-height:1.5;}

.faq-item{border-bottom:1px solid var(--linha);padding:18px 0;}
.faq-item summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:15px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+";font-size:20px;color:var(--turquesa-escuro);}
.faq-item[open] summary::after{content:"–";}
.faq-item p{color:var(--ink-soft);font-size:14px;margin:10px 0 0;line-height:1.6;}

footer{background:var(--noite);color:#B9C0E6;padding:48px 0 30px;margin-top:20px;}
footer .foot-grid{display:flex;justify-content:space-between;flex-wrap:wrap;gap:24px;}
footer a{color:#B9C0E6;font-size:13.5px;}
footer .logo{color:#fff;}
footer small{color:#6C74A0;display:block;margin-top:30px;font-size:12px;}

/* ---------- auth / onboarding ---------- */
.centered-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 20px;background:radial-gradient(80% 60% at 50% 0%, #EAF0FF, var(--bg));}
.auth-card{max-width:400px;width:100%;}
.auth-card h2{font-size:22px;margin:6px 0 6px;}
.auth-card p.sub{color:var(--ink-soft);font-size:14px;margin:0 0 22px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;}
.field input,.field select{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--linha);font-size:14.5px;font-family:inherit;background:#fff;}
.field input:focus,.field select:focus{border-color:var(--turquesa-escuro);outline:none;}
.switch-line{text-align:center;font-size:13.5px;color:var(--ink-soft);margin-top:16px;}
.choice-check{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.45;color:var(--ink-soft);cursor:pointer;}
.choice-check input{margin-top:2px;flex-shrink:0;}
.choice-check a{color:var(--turquesa-escuro);font-weight:600;}
.switch-line button{background:none;border:none;color:var(--azul-profundo);font-weight:700;text-decoration:underline;}
.divider-text{display:flex;align-items:center;gap:10px;color:var(--ink-faint);font-size:12px;margin:18px 0;}
.divider-text::before,.divider-text::after{content:"";flex:1;height:1px;background:var(--linha);}

.onb-wrap{max-width:520px;width:100%;}
.onb-progress{display:flex;gap:6px;margin-bottom:22px;}
.onb-progress span{height:5px;flex:1;background:var(--linha);border-radius:100px;overflow:hidden;}
.onb-progress span i{display:block;height:100%;background:var(--turquesa);width:0;transition:width .3s ease;}
.choice-list{display:grid;gap:10px;margin:18px 0 26px;}
.choice{display:flex;align-items:center;gap:12px;border:2px solid var(--linha);border-radius:14px;padding:14px 16px;text-align:left;background:#fff;font-size:14.5px;font-weight:600;width:100%;}
.choice[aria-pressed="true"]{border-color:var(--turquesa-escuro);background:rgba(47,212,196,.08);}
.country-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;}
.country-choice{padding:12px 14px;font-size:13.5px;}
@media (max-width:480px){.country-grid{grid-template-columns:1fr;}}
.choice .ic{width:32px;height:32px;border-radius:9px;background:var(--azul-profundo);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;}
.obj-thumb{position:relative;width:56px;height:56px;flex-shrink:0;}
.obj-thumb-img{width:100%;height:100%;border-radius:14px;overflow:hidden;box-shadow:0 4px 10px -4px rgba(22,33,90,.4);}
.obj-thumb-img svg{width:100%;height:100%;display:block;}
.obj-priority{position:absolute;top:-9px;right:-9px;width:25px;height:25px;border-radius:50%;background:var(--turquesa-escuro);color:#fff;font-family:var(--font-mono);font-size:12.5px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(0,0,0,.35),0 0 0 3px #fff;z-index:2;}
.obj-row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1.5px solid var(--linha);border-radius:12px;background:#fff;cursor:pointer;text-align:left;font-family:var(--font-body);font-size:13.5px;color:var(--ink);transition:border-color .15s ease,background .15s ease;margin-bottom:8px;}
.obj-row:hover{border-color:var(--turquesa);}
.obj-row[aria-pressed="true"]{border-color:var(--turquesa-escuro);background:rgba(47,212,196,.07);}
.obj-row-icon{font-size:18px;flex-shrink:0;width:22px;text-align:center;}
.obj-row-label{flex:1;line-height:1.3;}
.obj-priority-inline{flex-shrink:0;width:24px;height:24px;border-radius:50%;background:var(--turquesa-escuro);color:#fff;font-family:var(--font-mono);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;}
.obj-priority-inline.empty{background:var(--fundo);color:var(--ink-faint);border:1.5px dashed var(--linha);font-size:13px;}
.onb-actions{display:flex;justify-content:space-between;gap:10px;margin-top:10px;}
.warn-box{background:rgba(251,210,115,.18);border:1px solid rgba(251,210,115,.5);border-radius:14px;padding:16px;font-size:13.5px;color:#6B4E08;line-height:1.6;margin:10px 0 20px;display:flex;gap:10px;}
.authz-highlight{background:rgba(182,166,246,.14);border:1.5px solid rgba(140,111,234,.4);border-radius:16px;padding:16px 18px;margin:18px 0;}
.authz-highlight h4{color:#4A3B8F;}

/* ---------- app shell ---------- */
#app-shell{display:none;min-height:100vh;}
#app-shell.active{display:flex;}
.sidebar{width:230px;flex-shrink:0;background:var(--noite);color:#fff;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;}
.side-group-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#6C74A0;padding:16px 14px 4px;}
.side-group-label:first-of-type{padding-top:4px;}
.sidebar .logo{color:#fff;margin-bottom:32px;padding:0 8px;}
.sidebar .logo .wave{color:var(--turquesa);}
.side-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;color:#B9C0E6;font-weight:600;font-size:14px;margin-bottom:4px;background:none;border:none;width:100%;text-align:left;}
.side-link .ic{width:20px;text-align:center;}
.side-link.active,.side-link:hover{background:rgba(255,255,255,.09);color:#fff;}
.side-foot{margin-top:auto;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);}
.side-user{display:flex;align-items:center;gap:10px;padding:8px;}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--turquesa);color:#04302B;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0;}
.side-user .nm{font-size:13.5px;font-weight:600;color:#fff;}
.side-user .rl{font-size:11px;color:#8990BE;text-transform:capitalize;}

.main-area{flex:1;min-width:0;padding-bottom:90px;}
.topbar-mobile{display:none;position:sticky;top:0;z-index:30;background:var(--bg);border-bottom:1px solid var(--linha);padding:14px 20px;align-items:center;justify-content:space-between;}
.view{padding:32px;max-width:1080px;}
@media (max-width:920px){
  .sidebar{display:none;}
  .topbar-mobile{display:flex;}
  .view{padding:20px 16px;}
  #app-shell.active{display:block;}
}
.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--linha);z-index:40;padding:6px 4px 10px;}
@media (max-width:920px){.bottom-nav{display:flex;justify-content:space-around;}}
.bn-link{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:none;color:var(--ink-faint);font-size:10.5px;font-weight:600;padding:6px 8px;border-radius:10px;}
.bn-link.active{color:var(--azul-profundo);}
.bn-link .ic{font-size:18px;}

.view-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:24px;}
.view-head h1{font-size:25px;margin:0 0 4px;}
.view-head p{margin:0;color:var(--ink-soft);font-size:14.5px;}

/* dashboard */
.dash-grid{grid-template-columns:2fr 1fr;align-items:start;}
@media (max-width:860px){.dash-grid{grid-template-columns:1fr;}}
.today-card{background:linear-gradient(135deg,var(--azul-profundo),var(--azul-profundo-2));color:#fff;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:18px;}
.today-card h3{margin:0 0 6px;font-size:19px;}
.today-card p{margin:0;color:#C4CBF2;font-size:13.5px;}
.stat-row{grid-template-columns:repeat(3,1fr);margin-top:18px;}
@media (max-width:560px){.stat-row{grid-template-columns:1fr 1fr;}}
.stat-box{text-align:center;padding:16px;}
.stat-box .num{font-family:var(--font-mono);font-size:24px;font-weight:600;color:var(--azul-profundo);}
.stat-box .lbl{font-size:12px;color:var(--ink-soft);margin-top:4px;}
.stat-box-streak{background:linear-gradient(160deg,var(--amarelo),#ffb84d);border:none;}
.stat-box-streak .num{font-size:32px;color:var(--azul-profundo);}
.stat-box-streak .num::after{content:' 🔥';font-size:22px;}
.stat-box-streak .lbl{color:var(--azul-profundo);font-weight:600;opacity:.85;}
.achievements-list-big li{padding:10px 0;}
.achievements-list-big .ic{width:48px;height:48px;font-size:24px;border-radius:14px;}
.skills-bars{display:grid;gap:16px;margin-top:6px;}
.skill-bar-row .top{display:flex;justify-content:space-between;font-size:13.5px;font-weight:600;margin-bottom:6px;}
.skill-bar-row .top .num{font-family:var(--font-mono);color:var(--ink-soft);font-weight:600;}
.bar-track{height:9px;background:var(--linha);border-radius:100px;overflow:hidden;}
.bar-fill{height:100%;border-radius:100px;background:var(--turquesa);}
.trend{font-size:11px;font-weight:700;padding:2px 8px;border-radius:100px;margin-left:8px;}
.trend.up{background:rgba(51,198,137,.15);color:#187C52;}
.trend.stable{background:rgba(139,146,184,.18);color:var(--ink-soft);}
.trend.down{background:rgba(240,100,138,.15);color:#B12B54;}
.skill-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--fundo);}
.skill-row .dot{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:13.5px;color:#fff;flex-shrink:0;}
.skill-row .dot.up{background:#2FD4C4;}
.skill-row .dot.stable{background:#5B7FDB;}
.skill-row .dot.record{background:linear-gradient(135deg,#B6A6F6,#8C6FEA);}
.skill-row .name{flex:1;font-size:13.5px;font-weight:600;}
.stat-box-fire{background:linear-gradient(160deg,#FFB84D,#FF7A59);color:#fff;}
.stat-box-fire .num,.stat-box-fire .lbl{color:#fff;}
.stat-box-gold{background:linear-gradient(160deg,#F6D67A,#E0A93F);color:var(--azul-profundo);}
.stat-box-evo{background:linear-gradient(160deg,#2FD4C4,#1FA99C);color:#fff;}
.stat-box-evo .num,.stat-box-evo .lbl{color:#fff;}
.mini-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;}
.mini-list li{display:flex;align-items:center;gap:12px;font-size:13.5px;}
.mini-list .ic{width:34px;height:34px;border-radius:10px;background:rgba(251,210,115,.25);color:#7A5A0B;display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* games list */
.games-list-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.play-card{display:flex;flex-direction:column;gap:10px;transition:transform .25s ease,box-shadow .25s ease;}
.play-card:hover{transform:translateY(-4px);}
.play-card .thumb{height:132px;border-radius:16px;position:relative;overflow:hidden;background:var(--azul-profundo);box-shadow:0 8px 20px -10px rgba(22,33,90,.4);}
.play-card .thumb::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);pointer-events:none;}
.card-art-svg{width:100%;height:100%;display:block;transform-origin:center;animation:artBreathe 7s ease-in-out infinite;}
@keyframes artBreathe{0%,100%{transform:scale(1);}50%{transform:scale(1.018);}}
@keyframes eyeBlink{0%,90%,100%{transform:scaleY(1);}95%{transform:scaleY(.12);}}
.mascot-eye{transform-box:fill-box;transform-origin:center;animation:eyeBlink 4.6s ease-in-out infinite;}
@keyframes earWiggle{0%,100%{transform:rotate(0deg);}50%{transform:rotate(-8deg);}}
.mascot-ear{transform-box:fill-box;transform-origin:center;animation:earWiggle 3.4s ease-in-out infinite;}
@keyframes headTilt{0%,100%{transform:rotate(0deg);}50%{transform:rotate(3deg);}}
.mascot-tilt{transform-box:fill-box;transform-origin:center;animation:headTilt 5.2s ease-in-out infinite;}
@keyframes gearSpin{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}
.mascot-gear{transform-box:fill-box;transform-origin:center;animation:gearSpin 9s linear infinite;}
@keyframes softPulse{0%,100%{opacity:.55;transform:translateY(0);}50%{opacity:1;transform:translateY(-3px);}}
.mascot-wisp{animation:softPulse 2.8s ease-in-out infinite;}
.play-card h3{margin:4px 0 2px;font-size:15.5px;}
.play-card p{font-size:12.5px;color:var(--ink-soft);margin:0 0 8px;line-height:1.5;}
/* v2.16.1 — hierarquia do cartão: nome (destaque) · competência (texto) · descrição */
.play-card .play-title{font-size:18px;line-height:1.25;margin:6px 0 0;color:var(--ink);overflow-wrap:anywhere;}
.game-intro-comp,.play-card .play-comp{display:inline-block;align-self:flex-start;font-size:12px;font-weight:600;line-height:1.35;color:#0B6259;background:#E2F4F1;border-radius:8px;padding:3px 9px;margin:0;}
.game-intro-comp .play-comp-lbl,.play-card .play-comp-lbl{font-weight:500;color:var(--ink-soft);}
.play-card .play-desc{margin:0 0 8px;}
.play-card > div:last-child{margin-top:auto;}
.game-intro-comp{align-self:center;}

/* game play screen */
.game-shell{max-width:640px;margin:0 auto;text-align:center;}
.game-shell-wide{max-width:min(1440px,98vw);}
.game-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;}
.level-pill{font-family:var(--font-mono);font-size:12.5px;}
.round-progress{height:4px;background:var(--linha);border-radius:100px;overflow:hidden;margin-bottom:20px;}
.round-progress-fill{height:100%;width:0%;border-radius:100px;background:linear-gradient(90deg,var(--turquesa),var(--azul-profundo));transition:width .5s cubic-bezier(.22,.61,.36,1);}
.audio-viz{display:flex;align-items:flex-end;gap:3px;height:22px;opacity:.3;transition:opacity .3s ease;flex-shrink:0;}
.audio-viz i{width:4px;border-radius:3px;background:var(--turquesa-escuro);height:28%;display:block;}
.audio-viz.playing{opacity:1;}
.audio-viz.playing i{animation:audioPulse .85s ease-in-out infinite;}
.audio-viz i:nth-child(1){animation-delay:0s;}
.audio-viz i:nth-child(2){animation-delay:.1s;}
.audio-viz i:nth-child(3){animation-delay:.2s;}
.audio-viz i:nth-child(4){animation-delay:.3s;}
.audio-viz i:nth-child(5){animation-delay:.15s;}
@keyframes audioPulse{0%,100%{height:25%;}50%{height:100%;}}
@keyframes stageIn{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}
.game-stage{background:var(--bg-card);border-radius:24px;box-shadow:var(--shadow);padding:0;min-height:340px;position:relative;overflow:hidden;animation:stageIn .45s cubic-bezier(.22,.61,.36,1) both;}
.stage-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:40px 28px;min-height:340px;}
.scene-backdrop{position:absolute;inset:0;z-index:0;}
.scene-backdrop svg{width:100%;height:100%;display:block;}
.game-stage.has-scene .stage-content{background:rgba(255,255,255,.87);margin:14px;border-radius:18px;min-height:auto;padding:26px 20px;}
@keyframes twinkle{0%,100%{opacity:.3;}50%{opacity:.95;}}
.scene-twinkle{animation:twinkle 2.3s ease-in-out infinite;}
@keyframes flagWave{0%,100%{transform:skewX(0deg);}50%{transform:skewX(5deg);}}
.scene-flag{transform-box:fill-box;transform-origin:left center;animation:flagWave 2.6s ease-in-out infinite;}
@keyframes lightFlicker{0%,100%{opacity:.45;}50%{opacity:.85;}}
.scene-glow{animation:lightFlicker 3.1s ease-in-out infinite;}
@keyframes driftSlow{0%,100%{transform:translateX(0);}50%{transform:translateX(6px);}}
.scene-drift{animation:driftSlow 6s ease-in-out infinite;}
@keyframes flashCorrect{0%{box-shadow:var(--shadow),inset 0 0 0 0 rgba(51,198,137,0);}30%{box-shadow:var(--shadow),inset 0 0 0 10px rgba(51,198,137,.28);}100%{box-shadow:var(--shadow),inset 0 0 0 0 rgba(51,198,137,0);}}
@keyframes flashWrong{0%{box-shadow:var(--shadow),inset 0 0 0 0 rgba(240,100,138,0);}30%{box-shadow:var(--shadow),inset 0 0 0 8px rgba(240,100,138,.22);}100%{box-shadow:var(--shadow),inset 0 0 0 0 rgba(240,100,138,0);}}
.game-stage.flash-correct{animation:flashCorrect .6s ease;}
.game-stage.flash-wrong{animation:flashWrong .45s ease;}
.big-wave{color:var(--turquesa-escuro);}
.game-instructions{color:var(--ink-soft);font-size:14.5px;line-height:1.6;max-width:400px;}
.option-row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:10px;}
@keyframes optIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
.opt-btn{min-width:56px;padding:14px 18px;border-radius:14px;border:2px solid var(--linha);background:#fff;font-weight:700;font-size:15px;font-family:var(--font-mono);transition:border-color .18s ease,transform .15s ease;animation:optIn .3s ease both;}
.opt-btn:hover{border-color:var(--azul-profundo);}
.opt-btn:active{transform:scale(.94);}
@keyframes correctPop{0%{transform:scale(1);}40%{transform:scale(1.09);}100%{transform:scale(1);}}
@keyframes wrongShake{0%,100%{transform:translateX(0);}25%{transform:translateX(-4px);}75%{transform:translateX(4px);}}
.opt-btn.correct{background:rgba(51,198,137,.15);border-color:var(--sucesso);color:#187C52;animation:correctPop .4s ease;}
.opt-btn.wrong{background:rgba(240,100,138,.15);border-color:var(--erro);color:#B12B54;animation:wrongShake .35s ease;}
/* v2.23.0 Onde Está a Pausa?: o botão de cada som acende enquanto esse som toca */
.opt-btn.oep-on{border-color:var(--turquesa-escuro);background:rgba(47,212,196,.16);}
html[data-view="jogo"] .oep-options .opt-btn,.oep-options .opt-btn{min-width:120px;}
.pad-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;max-width:380px;margin:0 auto;}
@keyframes padIn{from{opacity:0;transform:scale(.88);}to{opacity:1;transform:scale(1);}}
.pad{height:150px;border-radius:50%;aspect-ratio:1/1;border:none;opacity:.85;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease;animation:padIn .35s ease both;}
.pad:nth-child(1){animation-delay:.02s;}.pad:nth-child(2){animation-delay:.08s;}
.pad:nth-child(3){animation-delay:.14s;}.pad:nth-child(4){animation-delay:.2s;}
.pad:active,.pad.lit{opacity:1;transform:scale(.94);box-shadow:0 0 0 10px rgba(255,255,255,.55) inset;}
@media (max-width:480px){.pad{height:120px;}.pad-grid{max-width:300px;gap:18px;}}
.pad-1{background:var(--turquesa);}
.pad-2{background:var(--lilas);}
.pad-3{background:var(--amarelo);}
.pad-4{background:#F0648A;}
@keyframes reactPulse{0%,100%{box-shadow:0 0 0 0 rgba(47,212,196,.5);}50%{box-shadow:0 0 0 14px rgba(47,212,196,0);}}
.react-btn{width:180px;height:180px;border-radius:50%;background:var(--azul-profundo);color:#fff;font-size:17px;font-weight:700;border:none;transition:background .15s ease,transform .15s ease;}
.react-btn:active{transform:scale(.96);}
.react-btn.armed{background:var(--turquesa);color:#04302B;animation:reactPulse 1s ease-in-out infinite;}
.react-btn.correct{background:rgba(51,198,137,.9);animation:correctPop .4s ease;}
.react-btn.wrong{background:rgba(240,100,138,.85);animation:wrongShake .35s ease;}
.game-controls{display:flex;justify-content:center;gap:12px;margin-top:22px;}
.vol-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);justify-content:center;margin-top:14px;}
.vol-row input{accent-color:var(--turquesa-escuro);}
.result-grid{grid-template-columns:repeat(3,1fr);margin:20px 0;}
.level-table{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:10px;}
.level-table th{background:#EDF1FC;color:var(--azul-profundo);font-weight:700;padding:8px;text-align:center;}
.level-table td{padding:7px 8px;text-align:center;border-bottom:1px solid var(--linha);}
.level-table tr.current td{background:rgba(47,212,196,.15);font-weight:700;}
.countdown-num{font-family:var(--font-mono);font-size:64px;font-weight:700;color:var(--azul-profundo);}
.session-flags{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px;}
.status-badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:100px;}
.status-badge.ativa{background:rgba(51,198,137,.15);color:#187C52;}
.status-badge.pendente{background:rgba(251,210,115,.25);color:#7A5A0B;}
.status-badge.retirada{background:rgba(139,146,184,.18);color:var(--ink-soft);}
.patient-card{cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:8px;}
.patient-card:hover{box-shadow:var(--shadow);}
.patient-card .ph-top{display:flex;justify-content:space-between;align-items:flex-start;}
.patient-status{font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;}
.patient-status.melhorar{background:rgba(51,198,137,.15);color:#187C52;}
.patient-status.estavel{background:rgba(139,146,184,.18);color:var(--ink-soft);}
.patient-status.atencao{background:rgba(240,100,138,.15);color:#B12B54;}
.admin-table tbody tr.row-attention{background:rgba(240,100,138,.08);}
.admin-table tbody tr.row-improving{background:rgba(51,198,137,.07);}
.admin-table tbody tr.row-stable{background:transparent;}
.analysis-card{border-left:4px solid var(--turquesa);padding:16px 18px;}
.analysis-card.atencao{border-color:var(--erro);}
.analysis-card.baixa{border-color:var(--ink-faint);}
.note-card{border-left:4px solid var(--lilas);}
.ticket-card{cursor:pointer;padding:16px;text-align:left;}
.ticket-card.active{border:2px solid var(--turquesa-escuro);}
.ticket-status{font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;white-space:nowrap;}
.lang-status{font-size:11px;font-weight:700;padding:4px 10px;border-radius:100px;white-space:nowrap;display:inline-block;}
.lang-status.completo{background:rgba(51,198,137,.15);color:#187C52;}
.lang-status.desenvolvimento{background:rgba(251,210,115,.25);color:#7A5A0B;}
.lang-status.audio-em-falta{background:rgba(240,100,138,.15);color:#B12B54;}
.lang-card{cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;}
.lang-card-disabled{opacity:.55;}
.lang-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.lang-card.active-lang{border:2px solid var(--turquesa-escuro);}
.ticket-status.aberto{background:rgba(251,210,115,.25);color:#7A5A0B;}
.ticket-status.analise{background:rgba(47,212,196,.18);color:#0B5C53;}
.ticket-status.desenvolvimento{background:rgba(182,166,246,.22);color:#4A3B8F;}
.ticket-status.resolvido{background:rgba(51,198,137,.15);color:#187C52;}
.ticket-status.fechado{background:rgba(139,146,184,.18);color:var(--ink-soft);}
.ticket-msg{border-radius:14px;padding:12px 14px;margin-bottom:10px;max-width:85%;font-size:13.5px;line-height:1.5;}
.ticket-msg.mine{background:var(--azul-profundo);color:#fff;margin-left:auto;}
.ticket-msg.theirs{background:#EDF1FC;color:var(--ink);}
.ticket-msg .meta{font-size:10.5px;opacity:.7;margin-top:4px;}
@media (max-width:520px){.result-grid{grid-template-columns:1fr;}}

/* progress page */
.chart-wrap{overflow-x:auto;}
.filter-row{display:flex;gap:8px;margin-bottom:18px;}
.filter-btn{padding:8px 16px;border-radius:100px;border:1.5px solid var(--linha);background:#fff;font-size:13px;font-weight:600;}
.filter-btn.active{background:var(--azul-profundo);color:#fff;border-color:var(--azul-profundo);}
.radar-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.hist-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.hist-table th{text-align:left;color:var(--ink-faint);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;padding:8px 10px;border-bottom:1px solid var(--linha);}
.hist-table td{padding:12px 10px;border-bottom:1px solid var(--linha);}

/* achievements */
.ach-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));}
.ach-card{text-align:center;padding:22px 16px;}
.ach-card .badge{width:56px;height:56px;border-radius:16px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;font-size:24px;background:var(--linha);color:var(--ink-faint);}
.ach-card.unlocked .badge{background:linear-gradient(135deg,var(--amarelo),#F5A623);color:#fff;}
.ach-card.admin-card{text-align:left;}
.ach-card.admin-card .badge{margin:0 0 12px;}
.ach-card.admin-card.inactive{opacity:.55;}
.ach-card.admin-card .ach-meta{font-size:12px;color:var(--ink-soft);margin-top:8px;line-height:1.6;}
.ach-card.admin-card .ach-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.ach-card h3{font-size:14px;margin:0 0 4px;}
.ach-card p{font-size:12px;color:var(--ink-soft);margin:0;}

/* profile */
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-bottom:1px solid var(--linha);}
.toggle-row:last-child{border-bottom:none;}
.toggle-row .lbl{font-size:14px;font-weight:600;}
.toggle-row .sub{font-size:12.5px;color:var(--ink-soft);margin-top:2px;}
.switch{position:relative;width:44px;height:26px;border-radius:100px;background:var(--linha);border:none;flex-shrink:0;}
.switch.on{background:var(--turquesa-escuro);}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s ease;}
.switch.on::after{left:21px;}

/* admin */
.admin-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--linha);align-items:center;}
.admin-tab-group{width:100%;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);padding:10px 4px 2px;}
.admin-tab-group:first-child{padding-top:0;}
.admin-tab{padding:12px 16px;font-size:13.5px;font-weight:600;color:var(--ink-soft);background:none;border:none;border-bottom:2px solid transparent;}
.admin-tab.active{color:var(--azul-profundo);border-color:var(--azul-profundo);}
.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.kpi-compact-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
.kpi-compact{padding:12px 14px;text-align:left;}
.kpi-compact .top-row{display:flex;justify-content:space-between;align-items:center;}
.kpi-compact .ic{font-size:16px;}
.kpi-compact .num{font-family:var(--font-mono);font-size:19px;font-weight:700;color:var(--azul-profundo);margin-top:4px;}
.kpi-compact .lbl{font-size:10.5px;color:var(--ink-soft);margin-top:2px;}
.kpi-compact .trend-line{font-size:10px;font-weight:700;margin-top:5px;}
.kpi-compact .trend-line.up{color:#187C52;}
.kpi-compact .trend-line.down{color:#B12B54;}
.kpi-compact .trend-line.warn{color:#966F0D;}
.kpi-compact .trend-line.neutral{color:var(--ink-soft);}
.mini-alert-card{border-radius:12px;padding:10px;text-align:center;background:var(--fundo);}
.mini-alert-card .num{font-family:var(--font-mono);font-size:20px;font-weight:700;}
.mini-alert-card .lbl{font-size:10.5px;color:var(--ink-soft);margin-top:2px;}
.rank-medal{font-size:14px;width:22px;display:inline-block;text-align:center;}
.who-uses-row{display:flex;align-items:center;gap:10px;font-size:12.5px;}
.who-uses-row .bar-track{flex:1;height:8px;border-radius:6px;background:var(--fundo);overflow:hidden;}
.who-uses-row .bar-fill{height:100%;border-radius:6px;background:var(--turquesa);}
.who-uses-row .lbl{width:120px;flex-shrink:0;color:var(--ink-soft);}
.who-uses-row .val{width:36px;flex-shrink:0;text-align:right;font-family:var(--font-mono);font-weight:700;}
.qa-alert{border-radius:14px;padding:14px 16px;border:1.5px solid transparent;}
.qa-alert.critical{background:rgba(240,100,138,.10);border-color:rgba(240,100,138,.35);}
.qa-alert.warning{background:rgba(251,210,115,.16);border-color:rgba(251,210,115,.45);}
.qa-alert.opportunity{background:rgba(255,244,180,.35);border-color:rgba(230,200,80,.4);}
.qa-alert .qa-tag{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;display:inline-block;margin-bottom:6px;color:#fff;}
.qa-alert.critical .qa-tag{background:#B12B54;}
.qa-alert.warning .qa-tag{background:#966F0D;}
.qa-alert.opportunity .qa-tag{background:#8A7A1F;}
.qa-alert .qa-metric{font-size:21px;font-weight:700;font-family:var(--font-mono);margin:4px 0;}
.qa-alert .qa-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;}
.ex-card{border-radius:14px;padding:14px 16px;background:var(--fundo);border-left:4px solid var(--ink-faint);}
.ex-card.badge-excelente{border-left-color:#2FD4C4;}
.ex-card.badge-bom{border-left-color:#5B7FDB;}
.ex-card.badge-atencao{border-left-color:#E0A93F;}
.ex-card.badge-critico{border-left-color:#E0577A;}
.ex-badge{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;white-space:nowrap;}
.ex-badge.badge-excelente{background:rgba(47,212,196,.18);color:#0B5C53;}
.ex-badge.badge-bom{background:rgba(91,127,219,.18);color:#2C4A9E;}
.ex-badge.badge-atencao{background:rgba(224,169,63,.2);color:#7A5A0B;}
.ex-badge.badge-critico{background:rgba(224,87,122,.18);color:#B12B54;}
.ex-grid-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin-top:10px;font-size:11.5px;color:var(--ink-soft);}
.loc-card{border-radius:14px;padding:14px;background:var(--fundo);border:1px solid var(--linha);}
.loc-card.is-top{border-color:var(--turquesa);background:rgba(47,212,196,.06);}
.opp-card{border-radius:14px;padding:14px;border-left:4px solid var(--lilas);background:rgba(182,166,246,.08);}
.opp-card.priority-critical{border-left-color:#E0577A;background:rgba(240,100,138,.08);}
.opp-card.priority-info{border-left-color:#5B7FDB;background:rgba(91,127,219,.08);}
.rec-card{border-radius:14px;padding:14px;border:1px solid var(--linha);background:#fff;}
.kpi-card.kpi-positive{background:linear-gradient(160deg,rgba(47,212,196,.18),rgba(47,212,196,.05));border:1.5px solid rgba(47,212,196,.35);}
.kpi-card.kpi-positive .num{color:#0B5C53;}
.kpi-card.kpi-warn{background:linear-gradient(160deg,rgba(251,210,115,.28),rgba(240,100,138,.06));border:1.5px solid rgba(240,100,138,.3);}
.kpi-card.kpi-warn .num{color:#B12B54;}
.news-card-good{border-top:3px solid #2FD4C4;}
.news-card-warn{border-top:3px solid #FBD273;}
@media (max-width:760px){#prof-news-grid{grid-template-columns:1fr !important;}}
#pf-professional-summary .grid[style*="1fr 1fr"]{align-items:start;}
@media (max-width:820px){
  #pf-professional-summary > .grid{grid-template-columns:1fr !important;}
  #pf-clinic-form-wrap .grid{grid-template-columns:1fr !important;}
}
.clinic-summary-pill{font-size:12px;font-weight:600;padding:5px 12px;border-radius:100px;background:#fff;border:1px solid var(--linha);color:var(--ink-soft);}
.clinic-summary-pill.is-top{background:rgba(251,210,115,.28);border-color:rgba(251,210,115,.6);color:#7A5A0B;}
.clinic-card{padding:14px 16px;background:var(--fundo);border-radius:14px;border:1px solid var(--linha);display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap;}
.clinic-card.is-primary{border-color:var(--turquesa);background:rgba(47,212,196,.06);}
.clinic-card .clinic-icon{width:44px;height:44px;border-radius:12px;background:rgba(47,212,196,.18);color:var(--turquesa-escuro);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;}
.clinic-card .clinic-body{flex:1;min-width:180px;}
.clinic-card .clinic-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.clinic-card .clinic-name{font-weight:700;font-size:14px;}
.clinic-badge{font-size:10.5px;font-weight:700;padding:3px 9px;border-radius:100px;background:rgba(51,198,137,.16);color:#187C52;white-space:nowrap;}
.clinic-card .clinic-meta{font-size:12.5px;color:var(--ink-soft);margin-top:3px;}
.clinic-card .clinic-contact{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--ink-soft);min-width:160px;}
.clinic-card .clinic-actions{display:flex;gap:8px;align-self:center;flex-shrink:0;}
.prefs-row-compact{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start;margin-top:8px;}
.prefs-item{display:flex;flex-direction:column;gap:6px;min-width:150px;}
.prefs-item .lbl{font-size:13px;font-weight:600;}
.prefs-item .sub{font-size:11px;color:var(--ink-soft);}
.prefs-item-volume{flex:1;min-width:180px;}
.prefs-item-volume input[type="range"]{width:100%;margin-top:4px;}
.kpi-card .num{font-family:var(--font-mono);font-size:26px;font-weight:600;color:var(--azul-profundo);}
.kpi-card .lbl{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
.admin-table{width:100%;border-collapse:collapse;font-size:13.5px;}
.admin-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);padding:10px;border-bottom:1px solid var(--linha);}
.admin-table td{padding:12px 10px;border-bottom:1px solid var(--linha);vertical-align:middle;}
.role-select{padding:6px 10px;border-radius:8px;border:1.5px solid var(--linha);font-size:12.5px;}
.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px;}
.status-dot.on{background:var(--sucesso);}
.status-dot.off{background:var(--ink-faint);}
.empty-state{text-align:center;padding:50px 20px;color:var(--ink-soft);}

/* toast */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--noite);color:#fff;padding:13px 22px;border-radius:100px;font-size:13.5px;font-weight:600;z-index:80;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s ease, transform .2s ease;}
#toast.show{opacity:1;transform:translateX(-50%) translateY(-6px);}

/* ============================================================
   Fase C — notificações, chat, sugestões, alertas de qualidade
   (mesmos tokens e raios da identidade Audiologic)
   ============================================================ */
.comm-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 6px;margin-left:6px;border-radius:100px;background:var(--erro);color:#fff;font-size:10.5px;font-weight:700;line-height:1;}
.comm-badge.hidden{display:none;}
.comm-root .admin-tabs{margin-bottom:14px;}
.comm-body{min-height:60px;}
.comm-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.list-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px;}
.list-filters input,.list-filters select{padding:8px 12px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--ink);font:inherit;font-size:13px;}
.list-filters input{min-width:200px;flex:1;}
.list-foot{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap;margin-top:12px;font-size:12.5px;color:var(--ink-soft);}

.notif-list{display:flex;flex-direction:column;gap:8px;}
.notif-item{display:flex;gap:12px;align-items:flex-start;width:100%;text-align:left;padding:12px 14px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--ink);font:inherit;cursor:pointer;transition:box-shadow .15s,border-color .15s;}
.notif-item:hover,.notif-item:focus-visible{box-shadow:var(--shadow-sm);border-color:var(--turquesa);}
.notif-item.unread{border-left:4px solid var(--turquesa);background:#F2FBFA;}
.notif-ic{font-size:20px;line-height:1.2;flex:0 0 auto;}
.notif-body{display:flex;flex-direction:column;gap:3px;min-width:0;}
.notif-body span{font-size:13px;color:var(--ink-soft);white-space:pre-wrap;}
.notif-body small{font-size:11.5px;color:var(--ink-faint);}

.conv-list{display:flex;flex-direction:column;gap:8px;}
.conv-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;}
.conv-row:hover,.conv-row:focus-visible{box-shadow:var(--shadow-sm);border-color:var(--turquesa);outline:none;}
.conv-row.unread{border-left:4px solid var(--turquesa);}
.conv-main{display:flex;flex-direction:column;gap:3px;min-width:0;}
.conv-main span{font-size:13px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conv-side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto;font-size:11.5px;color:var(--ink-faint);}

.chat-card{display:flex;flex-direction:column;gap:10px;}
.chat-head{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap;}
.chat-sub{font-size:12.5px;color:var(--ink-soft);}
.chat-log{display:flex;flex-direction:column;gap:8px;max-height:52vh;overflow-y:auto;padding:12px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg);}
.chat-empty{color:var(--ink-faint);font-size:13px;text-align:center;padding:16px;}
.chat-msg{align-self:flex-start;max-width:78%;padding:9px 12px;border-radius:14px 14px 14px 4px;background:var(--bg-card);border:1px solid var(--linha);}
.chat-msg.mine{align-self:flex-end;border-radius:14px 14px 4px 14px;background:#E6F8F6;border-color:#C5EEEA;}
.chat-msg.hidden-msg{opacity:.7;font-style:italic;}
.chat-meta{font-size:11px;color:var(--ink-faint);margin-bottom:3px;}
.chat-text{font-size:14px;white-space:pre-wrap;word-break:break-word;}
.chat-hide{margin-top:4px;background:none;border:none;padding:0;color:var(--erro);font-size:11.5px;cursor:pointer;text-decoration:underline;}
.chat-compose{display:flex;gap:8px;align-items:flex-end;}
.chat-compose textarea{flex:1;min-height:44px;padding:10px 12px;border:1px solid var(--linha);border-radius:var(--radius-sm);font:inherit;resize:vertical;}

.sug-card{margin-bottom:10px;}
.sug-response{margin-top:10px;padding:10px 12px;border-radius:var(--radius-sm);background:#F2FBFA;border-left:4px solid var(--turquesa);font-size:13px;white-space:pre-wrap;}
.sug-counts{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.pill.sug-new{background:#EDF1FC;}
.pill.sug-reviewing{background:#FFF5DC;color:#7A5B00;}
.pill.sug-accepted{background:#E3F7EE;color:#136B45;}
.pill.sug-implemented{background:#D8F4EA;color:#0E5A39;}
.pill.sug-rejected{background:#FDE8EE;color:#9B1F43;}

.alert-card{border-left:5px solid var(--linha);margin-bottom:10px;}
.alert-card.sev-critical{border-left-color:#C2185B;}
.alert-card.sev-high{border-left-color:var(--erro);}
.alert-card.sev-medium{border-left-color:var(--amarelo);}
.alert-card.sev-low{border-left-color:var(--lilas);}
.pill.sev-critical{background:#C2185B;color:#fff;}
.pill.sev-high{background:#FDE8EE;color:#9B1F43;}
.pill.sev-medium{background:#FFF5DC;color:#7A5B00;}
.pill.sev-low{background:#F0ECFE;color:#4A3A9A;}
.alert-history{margin-top:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--bg);font-size:12.5px;color:var(--ink-soft);}

@media (max-width:640px){
  .chat-msg{max-width:92%;}
  .conv-row{flex-direction:column;align-items:stretch;}
  .conv-side{align-items:flex-start;flex-direction:row;flex-wrap:wrap;}
  .list-filters input{min-width:0;width:100%;}
}

/* ============================================================
   Fase D — versão da aplicação (discreta) e analytics
   ============================================================ */
.app-version{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.02em;opacity:.55;line-height:1.2;user-select:text;}
.sidebar .app-version{color:#fff;}
.sidebar .app-version-admin{margin:-26px 0 24px 46px;}
.sidebar .app-version-user{padding:4px 12px 0;}
.topbar-mobile .app-version{color:var(--ink-soft);text-align:right;margin-top:3px;}
.topbar-mobile .app-version.admin-only-link{text-align:left;margin-left:32px;}
.app-version-mobile{display:flex;flex-direction:column;align-items:flex-end;}
.app-version.hidden{display:none;}

.an-filters{padding:14px 16px;margin-bottom:16px;}
.an-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;}
.an-f{display:flex;flex-direction:column;gap:4px;font-size:11.5px;font-weight:600;color:var(--ink-soft);min-width:140px;flex:1 1 140px;max-width:220px;}
.an-f select,.an-f input{padding:8px 10px;border:1.5px solid var(--linha);border-radius:10px;font:inherit;font-size:13px;font-weight:400;color:var(--ink);background:#fff;}
.an-f select:focus,.an-f input:focus{border-color:var(--turquesa-escuro);outline:none;}
.an-reset{padding:8px 12px;font-size:12.5px;}
.an-period{font-size:12.5px;color:var(--ink-soft);margin:0 0 12px;}
.an-note{font-size:13px;color:var(--ink-soft);margin:10px 0 0;}
.an-kpis{margin-bottom:16px;}
.an-kpi-sub{font-size:10.5px;color:var(--ink-faint);margin-top:3px;}
.an-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;margin-bottom:16px;}
.an-grid-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.an-card{padding:16px 18px;margin-bottom:16px;}
.an-grid .an-card{margin-bottom:0;}
.an-card h3{margin:0 0 10px;font-size:14.5px;}
.an-card h3 small{font-weight:400;color:var(--ink-faint);font-size:11.5px;}
.an-svg{width:100%;height:auto;display:block;overflow:visible;}
.an-svg .an-hit:hover{fill:rgba(22,33,90,.05);}
.an-empty{padding:22px 10px;text-align:center;color:var(--ink-soft);font-size:13px;}
.an-bars{display:flex;flex-direction:column;gap:10px;}
.an-bar-top{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;}
.an-bar-label{color:var(--ink);}
.an-bar-val{font-family:var(--font-mono);font-weight:600;color:var(--ink);white-space:nowrap;}
.an-bar-track{height:8px;border-radius:4px;background:var(--bg);margin-top:4px;overflow:hidden;}
.an-bar-fill{height:100%;border-radius:4px;background:var(--azul-profundo);}
.an-bar-sub{font-size:11px;color:var(--ink-faint);margin-top:2px;}
.an-level-sum{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;margin-bottom:12px;color:var(--ink-soft);}
.an-level-sum strong{color:var(--ink);}
.an-ach,.an-alerts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;}
.an-ach li{display:flex;gap:8px;align-items:center;}
.an-ach li strong{margin-left:auto;font-family:var(--font-mono);}
.an-alerts li{line-height:1.45;}
.an-table-wrap{overflow-x:auto;}
.an-table td,.an-table th{white-space:nowrap;}
.an-table td.an-insufficient strong{color:var(--ink-soft);font-weight:600;}   /* v2.15.0 métricas por jogo */
#fe-controls .an-reset{align-self:flex-end;}
.an-link{display:flex;flex-direction:column;gap:4px;text-align:left;border:none;cursor:pointer;font:inherit;color:var(--ink);padding:14px 16px;}
.an-link:hover,.an-link:focus-visible{box-shadow:var(--shadow);outline:none;}
.an-link span{font-size:12.5px;color:var(--ink-soft);}
@media (max-width:640px){
  .an-grid{grid-template-columns:1fr;}
  .an-f{max-width:none;flex-basis:45%;}
}

/* ============================================================
   Fase E — Backoffice · Áudio dos estímulos
   ============================================================ */
.au-intro { font-size: 13px; color: var(--ink-soft); margin: 0 0 12px; max-width: 900px; }
.au-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 10px; }
.au-filters select, .au-filters input { padding: 7px 10px; border-radius: 10px; border: 1px solid var(--linha, #ddd); font-size: 13px; background: #fff; min-width: 150px; }
.au-filters input { flex: 1 1 200px; }
.au-counts { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.au-chip { border: 1px solid var(--linha, #ddd); background: #fff; border-radius: 100px; padding: 4px 11px; font-size: 12px; cursor: pointer; color: var(--ink-soft); }
.au-chip b { color: var(--ink, #222); }
.au-chip.active { border-color: var(--turquesa, #1aa39a); box-shadow: 0 0 0 2px rgba(26, 163, 154, .15); }
.au-chip.bad b { color: var(--erro, #c0392b); }
.au-chip.ok b { color: var(--turquesa, #1aa39a); }
.au-table td { vertical-align: top; font-size: 12.5px; }
.au-muted { color: var(--ink-faint, #888); font-size: 11.5px; }
.au-reason { margin-top: 3px; max-width: 260px; }
.au-bad { color: var(--erro, #c0392b); font-size: 11.5px; font-weight: 600; }
.au-req { color: var(--erro, #c0392b); font-weight: 600; font-size: 12px; }
.au-state { white-space: nowrap; font-weight: 600; }
.au-asset { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; max-width: 240px; word-break: break-all; }
.au-actions { display: flex; flex-wrap: wrap; gap: 4px; min-width: 150px; }
.au-sm { padding: 3px 9px !important; font-size: 11.5px !important; }
.au-danger { color: var(--erro, #c0392b) !important; }
.au-row.au-state-missing_required td:first-child, .au-row.au-state-file_missing td:first-child { box-shadow: inset 3px 0 0 var(--erro, #c0392b); }
.au-row.au-state-draft td:first-child { box-shadow: inset 3px 0 0 #c9a227; }
.au-hist td { background: var(--fundo, #f7f7f9); }
.au-hist-table { margin: 4px 0; }
.au-alerts ul { margin: 0 0 8px; padding-left: 18px; font-size: 12.5px; }
.au-alerts li { margin-bottom: 4px; }
.au-publish { display: flex; flex-direction: column; gap: 6px; font-size: 13px; margin-bottom: 10px; }
.au-pager { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 12px; }
@media (max-width: 720px) { .au-filters select, .au-filters input { min-width: 0; flex: 1 1 45%; } .au-actions { min-width: 0; } }

/* ============================================================
   v2.11.0 — Histórico, Proteção de Dados, Backups
   ============================================================ */
.aud-role{font-size:11.5px;padding:4px 10px;}
.aud-role-admin{background:rgba(22,33,90,.12);color:var(--azul-profundo);}
.aud-role-professional{background:rgba(47,212,196,.16);color:#0B5C53;}
.aud-role-guardian{background:rgba(182,166,246,.22);color:#4A3B8F;}
.aud-role-patient{background:rgba(251,210,115,.28);color:#7A5A0B;}
.aud-role-system{background:#EEF0F6;color:var(--ink-soft);}
.aud-diff{font-size:12.5px;background:var(--bg-card);border-radius:var(--radius-sm);}
.aud-diff td{padding:7px 10px;vertical-align:top;word-break:break-word;}
.aud-before{color:#8A2E4A;text-decoration:line-through;text-decoration-color:rgba(240,100,138,.5);}
.aud-after{color:#0B5C53;font-weight:600;}
.legal-editor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;align-items:start;}
.legal-preview{font-size:13.5px;line-height:1.6;max-height:560px;overflow-y:auto;}
.legal-preview ul{padding-left:20px;}
@media (max-width:900px){.legal-editor{grid-template-columns:1fr;}}
.backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-bottom:16px;}
.backup-card h4{margin:0 0 6px;font-size:13px;color:var(--ink-soft);font-weight:600;}
.backup-card .big{font-family:var(--font-display);font-size:19px;font-weight:700;color:var(--azul-profundo);}
.backup-status-ok{color:#0B5C53;}
.backup-status-bad{color:#A22D52;}
.backup-progress{height:8px;border-radius:100px;background:var(--linha);overflow:hidden;margin:10px 0 4px;}
.backup-progress > span{display:block;height:100%;width:0;background:var(--turquesa-escuro);transition:width .2s;}
.chat-head-actions{display:inline-flex;gap:6px;flex-wrap:wrap;}
.chat-hide.armed{background:var(--erro);color:#fff;padding:2px 8px;border-radius:8px;text-decoration:none;}
.comm-subtabs{margin:4px 0 10px;}

/* ============================================================
   v2.12.0 — teste de auscultadores (todos os jogos) e jogos de
   palavras / localização (Lista de Compras, Escuta Dicótica,
   Integração Binaural, Interação Binaural, Fala em Cenários de Ruído)
   ============================================================ */
.hp-check{width:100%;max-width:440px;border:2px dashed var(--linha);border-radius:16px;padding:12px 14px;text-align:center;}
.hp-check.done{border-style:solid;border-color:var(--sucesso);background:rgba(51,198,137,.08);}
.hp-title{margin:0 0 10px;font-size:14px;color:var(--ink-soft);}
.hp-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.hp-ear{min-width:150px;}
.hp-ear.heard{border-color:var(--sucesso);color:#187C52;}
#game-start-btn:disabled{opacity:.45;cursor:not-allowed;}

.wg-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;}
.wg-listen{font-size:34px;width:64px;height:64px;border-radius:50%;background:rgba(47,212,196,.16);display:flex;align-items:center;justify-content:center;}
.wg-answer{width:100%;max-width:520px;display:flex;flex-direction:column;align-items:center;gap:12px;}
.wg-answer:empty{display:none;}
.wg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;}
@media (min-width:601px){.wg-grid{grid-template-columns:repeat(4,minmax(0,1fr));}}
.wg-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:76px;padding:10px 6px;border-radius:14px;border:2px solid var(--linha);background:#fff;color:#16215A;font-family:var(--font-body);cursor:pointer;transition:border-color .15s ease,transform .12s ease;}
.wg-opt:hover:not(:disabled){border-color:#16215A;}
.wg-opt:active:not(:disabled){transform:scale(.96);}
.wg-opt:disabled{cursor:default;}
.wg-icon{font-size:28px;line-height:1;}
.wg-word{font-size:14px;font-weight:600;}
.wg-opt.selected{border-color:#C97C3D;background:#F4E3D1;}
.wg-opt.correct{border-color:var(--sucesso);background:rgba(51,198,137,.15);}
.wg-opt.wrong{border-color:var(--erro);background:rgba(240,100,138,.15);}
.wg-opt.missed{border-color:var(--erro);border-style:dashed;}
.wg-confirm{min-width:200px;}
.wg-free-label{font-size:14px;color:var(--ink-soft);font-weight:600;}
.wg-free-input{width:100%;padding:14px 16px;border-radius:14px;border:2px solid var(--linha);font:inherit;font-size:17px;background:#fff;color:#16215A;}
textarea.wg-free-input{min-height:90px;resize:vertical;}
.wg-free-input:focus{outline:3px solid var(--focus,#0B7F74);outline-offset:1px;border-color:#16215A;}
.wg-hint{font-size:12.5px;color:var(--ink-faint);margin:0;}
.wg-slots,.wg-palette{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;}
.wg-slot{width:84px;min-height:84px;border-radius:14px;border:2px dashed var(--linha);background:#fff;color:#16215A;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:var(--font-body);cursor:pointer;padding:4px;}
.wg-slot.filled{border-style:solid;border-color:#9AA6C4;}
.wg-num{font-size:11px;color:var(--ink-faint);}
.wg-token{width:84px;min-height:84px;}
.wg-token.used{opacity:.3;}
.wg-slot .wg-icon,.wg-token .wg-icon{font-size:22px;}
.wg-slot .wg-word,.wg-token .wg-word{font-size:12px;text-align:center;word-break:break-word;}
.wg-feedback{margin:4px 0 0;font-weight:700;font-size:16px;text-align:center;}
.wg-feedback.ok{color:#187C52;}
.wg-feedback.partial{color:#A1561C;}
.wg-feedback.bad{color:#B12B54;}
.wg-reveal{margin:4px 0 0;font-size:14px;color:var(--ink-soft);text-align:center;}
.wg-ear-cue{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 22px;border-radius:16px;font-size:20px;letter-spacing:.02em;}
.wg-ear-cue.left{background:rgba(74,144,226,.14);color:#1F4F8F;align-self:flex-start;}
.wg-ear-cue.right{background:rgba(201,124,61,.16);color:#8A4A17;align-self:flex-end;}
.wg-ear-label{font-size:12px;letter-spacing:0;font-weight:500;}
.wg-ears{display:flex;justify-content:space-between;width:100%;max-width:420px;font-size:13px;color:var(--ink-faint);font-weight:600;}

.ib-scene{position:relative;width:100%;max-width:520px;aspect-ratio:1/1;border-radius:16px;overflow:hidden;background:#ddd;}
.ib-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;user-select:none;}
.ib-spot{position:absolute;transform:translate(-50%,-50%);border-radius:10px;border:3px dashed rgba(255,255,255,.85);background:transparent;padding:0;cursor:pointer;color:#fff;font-weight:800;font-size:18px;text-shadow:0 1px 3px rgba(0,0,0,.6);min-width:44px;min-height:44px;}
.ib-spot.round{border-radius:50%;}
/* v2.23.1: 1.º som (em cima) vermelho, 2.º som (em baixo) azul */
.ib-spot.zone-a{border-color:rgba(220,38,38,.95);}
.ib-spot.zone-b{border-color:rgba(74,144,226,.95);}
.ib-spot:disabled{cursor:default;opacity:.7;}
.ib-spot:focus-visible{outline:3px solid #2FD4C4;outline-offset:2px;}
.ib-spot.picked{border-style:solid;border-color:#2FD4C4;background:rgba(47,212,196,.22);opacity:1;}
.ib-spot.correct{border-style:solid;border-color:#33C689;background:rgba(51,198,137,.3);opacity:1;}
.ib-spot.wrong{border-style:solid;border-color:#F0648A;background:rgba(240,100,138,.3);opacity:1;}
.ib-spot.missed{border-style:solid;border-color:#33C689;background:rgba(51,198,137,.15);opacity:1;}
.ib-legend{display:flex;gap:6px;align-items:center;justify-content:center;}
.ib-legend .sw{display:inline-block;width:14px;height:14px;border-radius:4px;border:3px dashed;}
.ib-legend .sw.a{border-color:rgba(220,38,38,.95);}
.ib-legend .sw.b{border-color:rgba(74,144,226,.95);}

/* v2.12.0 — acessibilidade: atributo hidden sempre respeitado, título só para leitores de ecrã, botões com aspeto de link */
[hidden]{display:none!important;}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.link-btn{background:none;border:none;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;text-align:left;}
.link-btn:hover{color:var(--azul-profundo);}
.auth-card h1{font-size:22px;margin:6px 0 6px;}
.pub-page{padding:0;}
footer .link-btn{color:#B9C0E6;font-size:13.5px;text-decoration:none;}
footer .link-btn:hover{color:#fff;text-decoration:underline;}
/* v2.13.0 — Fecho Auditivo: sítios da fotografia invisíveis (é preciso procurar); só o resultado aparece */
.fa-spot{border-color:transparent !important;border-style:solid;opacity:1 !important;}
.fa-spot:not(:disabled):hover{background:rgba(255,255,255,.12);}
.fa-spot.correct{border-color:#33C689 !important;}
.fa-spot.wrong{border-color:#F0648A !important;}
.fa-spot.missed{border-color:#33C689 !important;}
/* v2.13.0 — Painel Profissional "Quem precisa de ajuda" */
.pa-kpis{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
.pa-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit;border-left:4px solid transparent;}
.pa-kpi .num{font-size:30px;line-height:1.1;}
.pa-kpi .lbl{font-size:12.5px;color:var(--ink-soft);}
.pa-kpi.tone-bad{border-left:4px solid #C2410C !important;}
.pa-kpi.tone-warn{border-left:4px solid #B7791F !important;}
.pa-kpi.tone-ok{border-left:4px solid #1F7A55 !important;}
.pa-kpi.active{outline:2px solid var(--azul-profundo,#16215A);outline-offset:-2px;}
.pa-kpi:focus-visible{outline:3px solid #2FD4C4;outline-offset:2px;}
.pa-intro{margin:0 0 12px;color:var(--ink-soft);font-size:12.5px;line-height:1.5;}
.pa-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px;}
.pa-filters .filter-btn{padding:6px 12px;font-size:12.5px;min-height:36px;}
.pa-filters select{margin-left:auto;padding:6px 10px;font-size:12.5px;}
.pa-table td{vertical-align:top;}
.pa-table tr.pa-attn td:first-child{box-shadow:inset 3px 0 0 #C2410C;}
.pa-muted{color:var(--ink-soft);font-size:11.5px;}
.pa-tag{display:inline-block;font-size:11.5px;font-weight:600;border-radius:100px;padding:2px 9px;margin:0 4px 4px 0;white-space:nowrap;background:#EEF1F5;color:#3B4458;}
.pa-tag.ok{background:#E3F2EA;color:#1F7A55;}
.pa-tag.warn{background:#FBF0DC;color:#8A5A12;}
.pa-tag.bad{background:#FBE7DF;color:#9A3412;}
.pa-tag.muted{background:#EEF1F5;color:#5B6478;}
.pa-obj{display:inline-block;font-size:11.5px;font-weight:600;border-radius:6px;padding:2px 7px;margin:0 4px 4px 0;border:1px solid;}
.pa-obj.on{background:#E3F2EA;border-color:#9AD0B4;color:#1F7A55;}
.pa-obj.off{background:#fff;border-color:#E5C4B6;color:#9A3412;}
.pa-actions{white-space:nowrap;}
.pa-sm{padding:5px 10px !important;font-size:11.5px !important;min-height:32px !important;}
.pa-bar{display:inline-block;width:90px;height:8px;border-radius:4px;background:#EEF1F5;vertical-align:middle;margin-right:6px;overflow:hidden;}
.pa-bar span{display:block;height:100%;background:#C2410C;border-radius:4px;}
.pa-zones tr.pa-top td{background:#FFF7F2;}
.pa-h4{margin:18px 0 8px;font-size:13.5px;}
/* v2.14.0 — Missão Escuta (O Rei diz… · Repete a Ordem · A Regra Mudou · Detetive de Pistas) */
.me-big{font-size:58px;line-height:1;text-align:center;margin:4px 0;}
.me-ear{animation:me-pulse 1.1s ease-in-out infinite;}
@keyframes me-pulse{50%{transform:scale(1.12);}}
@media (prefers-reduced-motion:reduce){.me-ear{animation:none;}}
.me-cue{min-height:22px;text-align:center;}
.me-grid{display:grid;gap:10px;width:100%;max-width:440px;margin:10px auto;}
.me-grid.c2{grid-template-columns:repeat(2,1fr);max-width:300px;}
.me-grid.c3{grid-template-columns:repeat(3,1fr);}
.me-grid.c4{grid-template-columns:repeat(4,1fr);}
.me-opt{background:#fff;border:2px solid #E2DCF0;border-radius:16px;aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;font-size:40px;cursor:pointer;padding:0;font-family:inherit;color:inherit;}
.me-opt:active:not(:disabled){transform:scale(.96);}
.me-opt:disabled{cursor:default;}
.me-opt:focus-visible{outline:3px solid #2FD4C4;outline-offset:2px;}
.me-opt.ok{border-color:#3F7D5C;background:#E1EFE6;}
.me-opt.bad{border-color:#B5533C;background:#F6E2DB;}
.me-opt.off{opacity:.35;}
.me-opt.hint{border-color:#3F7D5C;background:rgba(63,125,92,.12);}
.me-slots{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;min-height:56px;}
.me-slot{width:52px;height:52px;border:2px dashed #E2DCF0;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;background:#fff;}
.me-slot.ok{border-style:solid;border-color:#3F7D5C;background:#E1EFE6;}
.me-slot.bad{border-style:solid;border-color:#B5533C;background:#F6E2DB;}
.me-fb{font-size:15px;font-weight:700;min-height:22px;text-align:center;margin:6px 0 0;}
.me-fb.ok{color:#3F7D5C;} .me-fb.bad{color:#B5533C;}
.me-target{width:110px;height:110px;background:#fff;border:2px solid #E2DCF0;border-radius:18px;padding:12px;margin:4px auto;}
.me-fig{width:100%;height:100%;display:block;}
.me-figbox{width:70%;height:70%;}
.me-badge{font-size:13px;font-weight:700;background:#EAE2F7;color:#5B3E99;border-radius:20px;padding:4px 14px;}
@media (max-width:420px){.me-opt{font-size:32px;}.me-big{font-size:48px;}}
/* v2.16.0 — Mente Ativa: legenda nos objetos, números (ordenar passos), botão grande "TOCAR" e regra escrita */
.me-opt{flex-direction:column;gap:2px;}
.me-opt small{font-size:11.5px;font-weight:600;color:var(--ink-soft,#566170);line-height:1.1;}
.me-opt.num{font-size:34px;font-weight:800;}
.me-rule{font-size:15px;font-weight:700;text-align:center;background:#EAE2F7;color:#5B3E99;border-radius:12px;padding:10px 14px;margin:4px auto;max-width:440px;}
.me-tap{display:block;width:200px;height:200px;margin:10px auto;border-radius:50%;border:none;background:#5B3E99;color:#fff;font-size:24px;font-weight:800;font-family:inherit;cursor:pointer;box-shadow:0 6px 0 #3E2A6B;}
.me-tap:active:not(:disabled){transform:translateY(4px);box-shadow:0 2px 0 #3E2A6B;}
.me-tap:disabled{background:#B7AECB;box-shadow:0 6px 0 #9A90B0;cursor:default;}
.me-tap.ok{background:#3F7D5C;box-shadow:0 6px 0 #2B5A41;}
.me-tap.bad{background:#B5533C;box-shadow:0 6px 0 #7F3820;}
.me-tap:focus-visible{outline:3px solid #2FD4C4;outline-offset:3px;}
.me-opt.hl{border-color:#5B3E99;box-shadow:0 0 0 3px #EAE2F7;}
@media (max-width:420px){.me-tap{width:170px;height:170px;font-size:21px;}.me-opt.num{font-size:28px;}}

/* v2.17.0 — «Ouve e encontra na sopa» (sopa de letras auditiva) */
.sopa{width:100%;max-width:620px;margin:0 auto;display:grid;gap:12px;}
.sopa-listen{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;text-align:left;}
.sopa-play{width:72px;height:72px;border-radius:50%;border:0;background:#0E6F7C;color:#fff;display:grid;place-items:center;font-size:26px;cursor:pointer;}
.sopa-play:disabled{opacity:.5;cursor:default;}
.sopa-play .sopa-bars{display:none;gap:4px;align-items:flex-end;height:30px;}
.sopa-play .sopa-bars i{display:block;width:6px;background:currentColor;border-radius:3px;height:10px;animation:sopaBar .8s ease-in-out infinite;}
.sopa-play .sopa-bars i:nth-child(2){animation-delay:.15s}.sopa-play .sopa-bars i:nth-child(3){animation-delay:.3s}.sopa-play .sopa-bars i:nth-child(4){animation-delay:.45s}
.sopa-play.on .sopa-ico{display:none}.sopa-play.on .sopa-bars{display:flex}
@keyframes sopaBar{0%,100%{height:8px}50%{height:28px}}
.sopa-h{margin:0;font-weight:800;font-size:18px;color:var(--ink);}
.sopa-sub{margin:2px 0 0;font-size:13px;color:var(--ink-soft);}
.sopa-errs{margin:0;font-size:13px;color:var(--ink-soft);font-variant-numeric:tabular-nums;}
.sopa-errs b{color:var(--ink);}
.sopa-slots{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;}
.sopa-slot{min-width:30px;height:30px;border-radius:999px;border:1.5px dashed #C9D1DD;display:grid;place-items:center;padding:0 10px;font-size:12.5px;font-weight:700;color:#5B6690;}
.sopa-slot.f{border:0;color:#fff;}
.sopa-gw{container-type:inline-size;position:relative;aspect-ratio:1;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;background:#fff;border:1px solid #E3E8F1;border-radius:14px;}
.sopa-gw.shake{animation:sopaShake .35s;}
@keyframes sopaShake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.sopa-cells{display:grid;grid-template-columns:repeat(var(--n),1fr);grid-template-rows:repeat(var(--n),1fr);position:absolute;inset:4px;z-index:1;}
.sopa-cell{display:grid;place-items:center;font-weight:700;font-size:calc(100cqw / var(--n) * .5);color:#13262D;border-radius:50%;}
.sopa-cell.f{color:#fff;}
.sopa-cell.pend{background:#D6EBEE;box-shadow:inset 0 0 0 2px #0E6F7C;}
.sopa-gw svg{position:absolute;inset:4px;width:calc(100% - 8px);height:calc(100% - 8px);z-index:0;pointer-events:none;}
.sopa-msg{min-height:1.5em;margin:0;text-align:center;font-weight:700;color:var(--ink-soft);}
.sopa-msg.bad{color:#B4452F}.sopa-msg.good{color:#2E7D5B}
@media (prefers-reduced-motion:reduce){.sopa-play .sopa-bars i,.sopa-gw.shake{animation:none}}
@media (max-width:420px){.sopa-listen{grid-template-columns:auto 1fr;}.sopa-errs{grid-column:1/-1;text-align:center;}.sopa-play{width:60px;height:60px;}}

/* v2.18.0 — exercícios recomendados (Hoje) e «O teu treino auditivo» (Perfil) */
.rec-list{flex-basis:100%;list-style:none;margin:4px 0 0;padding:0;display:grid;gap:6px;}
.rec-list:empty{display:none;}
.rec-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:12px;background:rgba(255,255,255,.08);}
.rec-item.next{background:rgba(47,212,196,.22);box-shadow:inset 0 0 0 1px rgba(47,212,196,.55);}
.rec-item.off{opacity:.6;}
.rec-pos{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:rgba(255,255,255,.16);flex-shrink:0;}
.rec-body{display:flex;flex-direction:column;min-width:0;flex:1;}
.rec-comp{font-weight:700;font-size:13.5px;}
.rec-game{font-size:12.5px;color:#C4CBF2;}
.today-card .rec-play{padding:4px 12px;color:#fff;border-color:rgba(255,255,255,.35);}
.plan-list{margin:0;padding:0;list-style:none;counter-reset:plan;display:grid;gap:8px;}
.plan-item{counter-increment:plan;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--fundo,#F4F6FA);}
.plan-item::before{content:counter(plan);width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;background:#E3E8F1;color:#16215A;flex-shrink:0;}
.plan-item.next{box-shadow:inset 0 0 0 2px #1AA99B;}
.plan-item.next::before{background:#1AA99B;color:#fff;}
.plan-name{font-weight:600;flex:1;}
.plan-next{font-size:11.5px;font-weight:700;color:#0B6259;background:#DDF3F0;border-radius:999px;padding:2px 9px;}
.plan-rhythm{font-size:12.5px;color:var(--ink-soft);margin:10px 0 0;}
/* v2.18.0 — ficha do paciente → Competências */
.comp-layout{display:grid;gap:16px;max-width:900px;}
.comp-rhythm{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:6px 0 12px;}
.comp-rhythm input{width:100%;}
.comp-sub{margin:10px 0 6px;font-size:13.5px;}
.comp-order{list-style:none;margin:0;padding:0;display:grid;gap:6px;}
.comp-order li{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--linha);border-radius:12px;background:#fff;}
.comp-order-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12.5px;background:#16215A;color:#fff;flex-shrink:0;}
.comp-order-name{flex:1;font-weight:600;}
.comp-order-act{display:flex;gap:4px;}
.comp-order-act .btn{padding:4px 10px;min-width:36px;}
.comp-save-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:12px;}
.comp-areas-title{margin:0 0 8px;font-size:15px;}
.comp-area{border:1px solid var(--linha);border-radius:14px;background:#fff;margin-bottom:8px;}
.comp-area summary{cursor:pointer;padding:12px 14px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-weight:700;}
.comp-area-meta{font-weight:400;font-size:12.5px;color:var(--ink-soft);}
.comp-area-body{padding:0 14px 12px;display:grid;gap:8px;}
.comp-row{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:10px 12px;border-radius:12px;background:var(--fundo,#F4F6FA);}
.comp-row.in-plan{box-shadow:inset 3px 0 0 #1AA99B;}
.comp-pick{display:flex;align-items:center;gap:8px;}
.comp-state{font-size:12px;color:var(--ink-soft);align-self:center;}
.comp-games,.comp-result{grid-column:1/-1;font-size:12.5px;color:var(--ink-soft);}
.comp-result strong{color:var(--ink);}
.comp-history{margin:0;padding-left:18px;display:grid;gap:8px;font-size:12.5px;}
@media (max-width:600px){.comp-row{grid-template-columns:1fr;}.comp-state{align-self:auto;}}

/* ---------- v2.19.0 — gestão de pacientes: vagas, ficha clínica, acompanhamento, alta ---------- */
.care-slots{font-size:13.5px;color:var(--ink);padding:10px 14px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);display:inline-block;}
.care-slots.full{border-color:var(--erro);}
.care-full-msg{margin-top:6px;font-size:12.5px;color:var(--erro);}
.np-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}
.np-order{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px;}
.np-order li{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);}
.np-order .np-pos{width:22px;height:22px;border-radius:50%;background:var(--azul-profundo);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;flex:none;}
.np-order .np-name{flex:1;font-weight:600;font-size:13px;}
.np-order .btn{padding:3px 9px;font-size:12px;}
.np-empty{font-size:12.5px;color:var(--ink-soft);margin:0 0 8px;}
.care-panel{padding:14px 16px;}
.care-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.care-state{font-weight:700;font-size:13px;padding:4px 12px;border-radius:100px;}
.care-state.care-on{background:color-mix(in srgb,var(--sucesso) 16%,transparent);color:var(--sucesso);}
.care-state.care-off{background:color-mix(in srgb,var(--erro) 14%,transparent);color:var(--erro);}
.care-state.care-none{background:var(--bg);color:var(--ink-soft);}
.care-resp{font-size:12.5px;color:var(--ink-soft);}
.care-tag{font-size:11.5px;color:var(--ink-soft);border:1px solid var(--linha);border-radius:100px;padding:2px 9px;}
.care-danger{color:var(--erro);}
.btn-primary.care-danger{background:var(--erro);border-color:var(--erro);color:#fff;}
.care-note{font-size:12.5px;color:var(--ink-soft);margin:10px 0 0;}
.care-box{margin-top:12px;padding:12px;border:1px dashed var(--linha);border-radius:var(--radius-sm);}
.care-games{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;}
.care-game{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:8px;border:1px solid var(--linha);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;font:inherit;color:var(--ink);}
.care-game:hover,.care-game:focus-visible{border-color:var(--turquesa);}
.care-game-art{width:40px;height:40px;border-radius:10px;overflow:hidden;display:block;}
.care-game-art svg{width:100%;height:100%;}
.care-game-t{font-weight:600;font-size:12.5px;}
.care-game-c{font-size:11px;color:var(--ink-soft);}
.care-hist{margin-top:12px;font-size:12.5px;}
.care-hist summary{cursor:pointer;color:var(--ink-soft);}
.care-periods{margin:8px 0 0;padding-left:18px;display:grid;gap:4px;}
.care-reason{color:var(--ink-soft);}
.care-sessions td{white-space:nowrap;font-size:12.5px;}
.care-sub{font-size:11px;color:var(--ink-faint);}
.clinic-banner{margin:0 0 8px;padding:8px 12px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--turquesa) 16%,transparent);color:var(--ink);font-weight:600;font-size:13px;}
.care-suspended{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;padding:12px 16px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--amarelo) 60%,var(--linha));background:color-mix(in srgb,var(--amarelo) 14%,var(--bg-card));color:var(--ink);font-size:13.5px;}

/* ============================================================
   v2.20.0 — Perfil do paciente (conta, perfis, documentos, profissional, segurança)
   ============================================================ */
.pf-page{display:grid;gap:18px;max-width:1080px;}
.pf-nav{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:8px;margin:-4px 0 0;background:rgba(245,247,252,.92);backdrop-filter:blur(6px);border-radius:100px;scrollbar-width:none;}
.pf-nav::-webkit-scrollbar{display:none;}
.pf-nav a{flex:0 0 auto;padding:8px 14px;border-radius:100px;font-size:13.5px;font-weight:600;color:var(--ink-soft);text-decoration:none;background:#fff;box-shadow:var(--shadow-sm);}
.pf-nav a:hover{color:var(--azul-profundo);}
.pf-sec{padding:22px 24px;scroll-margin-top:64px;}
.pf-sec-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;}
.pf-sec-ic{flex:0 0 40px;height:40px;border-radius:12px;background:rgba(47,212,196,.14);color:var(--turquesa-escuro);display:flex;align-items:center;justify-content:center;}
.pf-ic{width:20px;height:20px;flex:0 0 auto;}
.pf-sec-titles{flex:1;min-width:0;}
.pf-sec-head h2{font-family:var(--font-display);font-size:18px;margin:2px 0 3px;color:var(--azul-profundo);}
.pf-sec-head p{margin:0;font-size:13px;}
.pf-muted{color:var(--ink-soft);font-size:13px;}
.pf-faint{color:var(--ink-faint);font-size:12px;margin:6px 0 0;}
.pf-opt{font-weight:400;color:var(--ink-faint);}
.pf-type{flex:0 0 auto;font-size:12px;font-weight:700;padding:6px 12px;border-radius:100px;background:#EDF1FC;color:var(--azul-profundo);}
.pf-type[data-type="family"]{background:rgba(47,212,196,.16);color:#0E6D63;}
.pf-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 18px;}
.pf-form-grid .field{margin-bottom:12px;}
.pf-span2{grid-column:1/-1;}
.pf-page input[readonly]{background:var(--bg);color:var(--ink-soft);}
.pf-page textarea{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--linha);font:inherit;font-size:14.5px;resize:vertical;}
.pf-page textarea:focus{border-color:var(--turquesa-escuro);outline:none;}
.pf-sec-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding-top:14px;border-top:1px solid var(--linha);}
.pf-link{background:none;border:none;padding:4px 0;color:var(--turquesa-escuro);font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;cursor:pointer;}
.pf-link:hover{text-decoration:underline;}
.pf-link .pf-ic{width:16px;height:16px;}
.pf-danger{color:#C2416A;}
.pf-danger-btn{color:#C2416A;}
.btn-sm{padding:8px 14px;font-size:13px;}
.btn-sm .pf-ic{width:16px;height:16px;}
.pf-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}

/* perfis */
.pf-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px;}
.pf-pcard{border:1.5px solid var(--linha);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;background:#fff;}
.pf-pcard.is-sel{border-color:var(--turquesa);}
.pf-pcard.is-off{opacity:.62;}
.pf-pcard-top{display:flex;gap:12px;align-items:center;}
.pf-avatar{flex:0 0 46px;height:46px;border-radius:50%;background:var(--azul-profundo);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:18px;}
.pf-avatar.kid{background:var(--turquesa);color:#04302B;}
.pf-pcard-id{min-width:0;}
.pf-pcard h3{font-size:15.5px;margin:0 0 2px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.pf-pcard-id p{margin:0;}
.pf-tag{font-size:11px;font-weight:700;padding:2px 8px;border-radius:100px;background:#EDF1FC;color:var(--azul-profundo);}
.pf-tag.soft{background:var(--bg);color:var(--ink-soft);font-weight:600;}
.pf-pcard-facts{display:grid;gap:6px;justify-items:start;}
.pf-fact{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft);}
.pf-fact .pf-ic{width:16px;height:16px;color:var(--ink-faint);}
.pf-pcard-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:auto;}
.pf-pcard-add{border:1.5px dashed var(--linha);border-radius:16px;min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:transparent;color:var(--turquesa-escuro);font-weight:700;font-size:14.5px;cursor:pointer;padding:16px;text-align:center;}
button.pf-pcard-add:hover{border-color:var(--turquesa);background:rgba(47,212,196,.06);}
.pf-pcard-form{grid-column:1/-1;}
.pf-to-individual{margin-top:12px;}
.pf-warn{font-size:12.5px;color:#9A3412;background:#FFF4E5;border-radius:10px;padding:8px 10px;}
.pf-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;padding:4px 10px;border-radius:100px;}
.pf-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.pf-badge.st-active{background:rgba(51,198,137,.14);color:#167A52;}
.pf-badge.st-discharged{background:#EDF1FC;color:var(--azul-profundo-2);}
.pf-badge.st-none,.pf-badge.st-off{background:var(--bg);color:var(--ink-soft);}
.pf-dep-form{border-top:1px solid var(--linha);padding-top:14px;}
.pf-pcard-form .pf-dep-form{border-top:none;padding-top:0;}
.pf-dep-form h4{margin:0 0 12px;font-size:14.5px;}
.pf-dep-report{border:none;padding:0;margin:4px 0 0;}
.pf-dep-report legend{font-size:13px;font-weight:700;margin-bottom:8px;color:var(--azul-profundo);}
.pf-check{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;margin:12px 0 0;cursor:pointer;}
.pf-check input{margin-top:3px;}

/* seletor de perfil */
.pf-picker{margin:-4px 0 16px;}
.pf-picker-label{font-size:12px;font-weight:700;color:var(--ink-soft);margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em;}
.pf-picker-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;}
.pf-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:8px;padding:6px 14px 6px 6px;border-radius:100px;border:1.5px solid var(--linha);background:#fff;font-weight:600;font-size:13.5px;color:var(--ink);cursor:pointer;}
.pf-chip-av{width:26px;height:26px;border-radius:50%;background:var(--bg);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--azul-profundo);}
.pf-chip.on{border-color:var(--azul-profundo);background:var(--azul-profundo);color:#fff;}
.pf-chip.on .pf-chip-av{background:var(--turquesa);color:#04302B;}

/* documentos */
.pf-docs-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;}
.pf-upload{background:var(--bg);border-radius:16px;padding:16px;margin-bottom:14px;}
.pf-drop{position:relative;margin-bottom:14px;}
.pf-drop input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;}
.pf-drop label{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px;border:1.5px dashed #C9D0EA;border-radius:14px;background:#fff;color:var(--azul-profundo);font-weight:600;font-size:14px;text-align:center;}
.pf-drop label small{font-weight:400;color:var(--ink-faint);font-size:12px;}
.pf-drop input:focus-visible + label{outline:3px solid var(--turquesa-escuro);outline-offset:2px;}
.pf-doclist{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.pf-doc{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1.5px solid var(--linha);border-radius:14px;}
.pf-doc-ic{flex:0 0 38px;height:38px;border-radius:10px;background:#EDF1FC;color:var(--azul-profundo);display:flex;align-items:center;justify-content:center;}
.pf-doc-ic.img{background:rgba(47,212,196,.14);color:var(--turquesa-escuro);}
.pf-doc-main{flex:1;min-width:0;}
.pf-doc-title{font-weight:600;font-size:14.5px;overflow-wrap:anywhere;}
.pf-doc-notes{font-size:12.5px;color:var(--ink-soft);margin-top:4px;}
.pf-doc-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end;}
.pf-empty{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 16px;border-radius:14px;background:var(--bg);color:var(--ink-soft);}
.pf-empty .pf-ic{width:28px;height:28px;color:var(--ink-faint);}
.pf-empty p{margin:0;font-weight:600;font-size:14px;}
.pf-empty small{font-size:12px;color:var(--ink-faint);}

/* profissional */
.pf-care-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-radius:14px;background:var(--bg);margin-bottom:12px;}
.pf-care-label{font-size:12px;color:var(--ink-soft);font-weight:600;}
.pf-care-name{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--azul-profundo);}
.pf-care-share{margin:0 0 12px;}
.pf-clinics{list-style:none;margin:0 0 14px;padding:0;display:grid;gap:8px;}
.pf-clinics li{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:12px 14px;border:1.5px solid var(--linha);border-radius:14px;}
.pf-clinic-name{font-weight:600;}
.pf-empty-line{font-size:13px;color:var(--ink-soft);margin:0 0 14px;}
.pf-code{text-align:center;padding:16px;border-radius:14px;background:rgba(47,212,196,.10);margin-bottom:12px;}
.pf-code-label{font-size:12px;color:var(--ink-soft);}
.pf-code-value{font-family:var(--font-mono);font-size:30px;font-weight:700;letter-spacing:6px;color:var(--azul-profundo);margin:6px 0;}
.pf-code-hint{font-size:12px;color:var(--ink-soft);}
.pf-sub-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px;align-items:start;}
.pf-sub{border:1.5px solid var(--linha);border-radius:16px;padding:16px;}
.pf-sub h3{font-size:14.5px;margin:0 0 4px;}
.pf-sub h4{font-size:13px;margin:16px 0 6px;color:var(--azul-profundo);}
.pf-kvs{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:10px 0 0;}
.pf-kv dt{font-size:11.5px;color:var(--ink-soft);}
.pf-kv dd{margin:0;font-weight:600;font-size:13.5px;}

/* segurança */
.pf-rows{list-style:none;margin:0;padding:0;}
.pf-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 0;border-top:1px solid var(--linha);}
.pf-row:first-child{border-top:none;padding-top:0;}
.pf-row>div:first-child{flex:1;min-width:200px;}
.pf-row-label{font-weight:600;font-size:14px;}
.pf-row-value{font-size:13.5px;color:var(--ink-soft);overflow-wrap:anywhere;}
.pf-pw-form{flex-basis:100%;max-width:380px;padding-top:8px;}
.pf-dialog{border:none;border-radius:var(--radius);padding:22px;max-width:560px;width:calc(100% - 32px);box-shadow:var(--shadow);}
.pf-dialog::backdrop{background:rgba(13,19,56,.45);}
.pf-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.pf-dialog-head h2{font-family:var(--font-display);font-size:18px;margin:0;color:var(--azul-profundo);}
.pf-x{background:none;border:none;font-size:26px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:2px 8px;}
.pf-consents{list-style:none;margin:12px 0;padding:0;display:grid;gap:8px;}
.pf-consent{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border:1.5px solid var(--linha);border-radius:14px;}
.pf-consent-name{font-weight:600;font-size:13.5px;}

@media (max-width:760px){
  .pf-sec{padding:18px 16px;}
  .pf-form-grid,.pf-sub-grid,.pf-kvs{grid-template-columns:1fr;}
  .pf-sec-head{gap:10px;}
  .pf-sec-head h2{font-size:17px;}
  .pf-type{position:absolute;right:16px;top:18px;}
  .pf-sec{position:relative;}
  #pf-sec-conta .pf-sec-titles{padding-right:110px;}
  .pf-sec-foot .btn-primary{width:100%;justify-content:center;}
  .pf-pgrid{grid-template-columns:1fr;}
  .pf-doc{flex-wrap:wrap;}
  .pf-doc-actions{width:100%;justify-content:flex-start;padding-left:50px;}
  .pf-clinics li{flex-direction:column;}
  .pf-row .btn-sm{margin-left:auto;}
}
@media (max-width:920px){
  /* por baixo da barra superior do telemóvel/tablet (também fixa) */
  .pf-nav{top:76px;}
  .pf-sec{scroll-margin-top:140px;}
}

/* v2.21.0 — aviso da cédula profissional e clínicas em autosserviço */
.pvb{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:16px 32px 0;padding:14px 18px;border-radius:14px;background:#FFF7E6;border:1px solid #F5D9A0;color:#6B4A0E;font-size:13.5px;max-width:1016px;}
.pvb.pvb-rejected{background:#FDEEF2;border-color:#F3C3D1;color:#8A1F42;}
.pvb-text strong{display:block;margin-bottom:2px;}
@media (max-width:920px){.pvb{margin:12px 16px 0;}}
.pc-self{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px;}
.pc-card h3{margin:0 0 4px;font-size:15px;}
.pc-muted{color:var(--ink-soft);font-size:12.5px;}
.pc-title{font-size:15px;margin:0 0 4px;}
.pc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;}
.pc-result{border:1.5px solid var(--linha);border-radius:12px;margin-top:8px;padding:10px 14px;}
.pc-name{font-weight:600;}
.pc-results{max-height:340px;overflow:auto;margin-top:10px;}
#pc-search{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--linha);font:inherit;font-size:14.5px;margin-top:10px;}
.pc-form{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0 12px;margin-top:10px;}
@media (max-width:760px){.pc-self{grid-template-columns:1fr;}.pc-form{grid-template-columns:1fr;}}

/* v2.22.0 — catálogo de jogos no plano de treino */
.pcat{margin-top:16px;border:1.5px solid var(--linha);border-radius:16px;padding:16px;background:var(--bg);}
.pcat-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.pcat-head h4{margin:0;font-size:15px;color:var(--azul-profundo);}
.pcat-link{background:none;border:none;color:var(--turquesa-escuro);font-weight:600;font-size:13px;cursor:pointer;padding:2px 4px;}
.pcat-link:hover{text-decoration:underline;}
.pcat-search input{width:100%;padding:12px 14px;border-radius:12px;border:1.5px solid var(--linha);font:inherit;font-size:14.5px;background:#fff;}
.pcat-search input:focus{border-color:var(--turquesa-escuro);outline:none;}
.pcat-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 8px;}
.pcat-chip{border:1.5px solid var(--linha);background:#fff;border-radius:100px;padding:5px 11px;font-size:12.5px;font-weight:600;color:var(--ink);cursor:pointer;}
.pcat-chip .pcat-n{color:var(--ink-faint);font-weight:500;margin-left:2px;}
.pcat-chip.on{background:var(--azul-profundo);border-color:var(--azul-profundo);color:#fff;}
.pcat-chip.on .pcat-n{color:rgba(255,255,255,.7);}
.pcat-active{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;font-size:12.5px;}
.pcat-lbl{color:var(--ink-soft);font-weight:600;}
.pcat-tag{display:inline-flex;align-items:center;gap:4px;background:#EDF1FC;color:var(--azul-profundo);border-radius:100px;padding:3px 4px 3px 10px;font-size:12.5px;font-weight:600;}
.pcat-tag button{background:none;border:none;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0 5px;}
.pcat-ord{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--azul-profundo);color:#fff;font-size:10.5px;margin-right:2px;}
.pcat-count{font-size:12px;color:var(--ink-soft);margin:4px 0 8px;}
.pcat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;max-height:520px;overflow:auto;padding:2px;}
.pcat-card{display:grid;grid-template-columns:52px 1fr;grid-template-rows:auto auto;gap:4px 12px;background:#fff;border:1.5px solid var(--linha);border-radius:14px;padding:10px 12px;}
.pcat-card.sel{border-color:var(--turquesa);box-shadow:0 0 0 2px rgba(47,212,196,.25);}
.pcat-card.in-plan{background:#F7F9FD;}
.pcat-card.off{opacity:.6;}
.pcat-thumb{width:52px;height:52px;border-radius:12px;overflow:hidden;grid-row:1/3;background:var(--azul-profundo);}
.pcat-thumb svg{width:100%;height:100%;display:block;}
.pcat-thumb>*{width:100%;height:100%;}
.pcat-body h4{margin:0;font-size:14px;}
.pcat-desc{margin:2px 0 4px;font-size:12px;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pcat-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.pcat-comp{font-size:11px;font-weight:600;color:#0E6D63;background:rgba(47,212,196,.14);border-radius:100px;padding:2px 8px;}
.pcat-status{font-size:11px;color:var(--ink-faint);}
.pcat-lv{font-size:11px;font-weight:600;color:var(--ink-soft);background:var(--bg);border:1px solid var(--linha);border-radius:100px;padding:1px 8px;}
.pcat-status.off{color:#9A3412;}
.pcat-act{grid-column:2;display:flex;justify-content:flex-end;}
.pcat-pick{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--azul-profundo);cursor:pointer;}
.pcat-in{font-size:11.5px;font-weight:700;color:var(--azul-profundo-2);background:#EDF1FC;border-radius:100px;padding:3px 10px;}
.pcat-empty{grid-column:1/-1;text-align:center;padding:22px;color:var(--ink-soft);font-size:13px;background:#fff;border-radius:12px;}
.pcat-tray{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:12px;border-radius:12px;background:#fff;border:1.5px solid var(--turquesa);box-shadow:var(--shadow-sm);}
.pcat-tray-list{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px;}
.pcat-tray-act{display:flex;gap:8px;}
.pcat-warn{margin-top:12px;font-size:12.5px;color:#9A3412;background:#FFF4E5;border-radius:10px;padding:8px 12px;}
.comp-chosen{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px;font-weight:400;}
.comp-chosen.none{font-size:11.5px;color:var(--ink-faint);}
.comp-chosen-g{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;background:rgba(47,212,196,.14);color:#0E6D63;border-radius:100px;padding:2px 4px 2px 8px;}
.comp-chosen-g button{background:none;border:none;color:inherit;cursor:pointer;font-size:13px;line-height:1;padding:0 4px;}
.comp-order-name{display:flex;flex-direction:column;}
.plan-games{display:block;font-size:12px;font-weight:400;color:var(--ink-soft);margin-top:2px;}
@media (max-width:760px){.pcat{padding:12px;}.pcat-grid{grid-template-columns:1fr;max-height:none;}.pcat-tray{flex-direction:column;align-items:stretch;}.pcat-tray-act{justify-content:flex-end;}}
