/* === Fontes alojadas localmente (carregam sempre, mesmo no 4G de Angola) === */
@font-face{font-family:'Manrope';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/manrope-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/manrope-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/manrope-latin-700-normal.woff2') format('woff2')}
@font-face{font-family:'Manrope';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/manrope-latin-800-normal.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/fraunces-latin-500-normal.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/fraunces-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Fraunces';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/fraunces-latin-700-normal.woff2') format('woff2')}
/* ===================================================================
   BUANGA KUDILONGA SCHOOL — Design System "Sankofa Premium" (v5)
   Tinta + marfim + dourado âmbar · Fraunces (display) + Manrope (corpo)
   Temas claro/escuro reais · mobile-first · editorial e premium
   =================================================================== */
:root{
  /* Paleta: branco · preto · azul (profissional) */
  --blue:#2563EB; --blue-d:#1D4ED8; --blue-soft:#E9EFFD; --blue-bright:#5B8DEF;
  --black:#0B0B10;
  /* tema claro (branco dominante) — default */
  --bg:#FFFFFF; --bg-2:#F4F6FB; --surface:#FFFFFF; --surface-2:#FAFBFE;
  --ink:#0C0E16; --text:#33384A; --muted:#6B7280; --soft:#A2A8B6;
  --line:#E9ECF3; --line-2:#DEE2EC;
  --gold:var(--blue); --gold-bright:var(--blue-bright); --gold-soft:var(--blue-soft);
  --terra:var(--blue); --teal:var(--black); --green:#16A34A; --red:#DC2626;
  --disp:'Fraunces',Georgia,serif; --body:'Manrope',system-ui,sans-serif;
  --r:18px; --r-sm:12px; --r-lg:26px; --tap:52px;
  --shadow:0 1px 2px rgba(12,14,22,.05),0 14px 34px rgba(12,14,22,.08);
  --shadow-lg:0 24px 60px rgba(12,14,22,.16);
  --grad-gold:linear-gradient(135deg,#3B82F6,#1D4ED8);
  --grad-yellow:linear-gradient(135deg,#60A5FA,#2563EB);
  --hero-overlay:linear-gradient(180deg,rgba(6,7,10,.28),rgba(6,7,10,.88));
  --navy:var(--black); --cyan:var(--blue); --card:var(--surface); --orange:var(--blue);
}
[data-theme="dark"]{
  --blue:#3B82F6; --blue-d:#2563EB; --blue-soft:#13213F; --blue-bright:#7AA7FB;
  --black:#000000;
  --bg:#0A0B11; --bg-2:#101218; --surface:#14161F; --surface-2:#181B24;
  --ink:#FFFFFF; --text:#D5D8E2; --muted:#9097A6; --soft:#6A7080;
  --line:#222631; --line-2:#2A2F3B;
  --gold:var(--blue); --gold-bright:var(--blue-bright); --gold-soft:var(--blue-soft);
  --terra:var(--blue); --teal:#000000; --green:#22C55E; --red:#EF4444;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 16px 40px rgba(0,0,0,.5);
  --shadow-lg:0 26px 64px rgba(0,0,0,.65);
  --grad-gold:linear-gradient(135deg,#3B82F6,#1D4ED8);
  --grad-yellow:linear-gradient(135deg,#60A5FA,#3B82F6);
  --hero-overlay:linear-gradient(180deg,rgba(6,7,10,.25),rgba(6,7,10,.85));
  --card:var(--surface);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{font-family:var(--body);background:var(--bg);color:var(--text);line-height:1.55;-webkit-font-smoothing:antialiased;overscroll-behavior-y:contain;transition:background .4s ease,color .3s ease}
button,input,textarea,select{font-family:var(--body)}
h1,h2,h3,h4{font-family:var(--disp);color:var(--ink);font-weight:600;letter-spacing:-.01em}
.hidden{display:none!important}
@media (prefers-reduced-motion:no-preference){.screen.active{animation:fade .4s cubic-bezier(.22,.8,.3,1)}@keyframes fade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}

#app{max-width:520px;margin:0 auto;min-height:100vh;background:var(--bg);position:relative;padding-bottom:calc(92px + env(safe-area-inset-bottom));transition:background .4s}
.wrap{padding:0 0 8px}
#app.landing{padding-bottom:0}
#app.landing .topbar,#app.landing .nav{display:none}

/* ---------- Top bar ---------- */
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;padding:13px 18px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--line)}
.topbar .logo{display:flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:600;font-size:17px;color:var(--ink)}
.topbar .mark-img{width:30px;height:30px;border-radius:9px;object-fit:cover;box-shadow:0 0 0 1px var(--line)}
.topbar .screen-title{font-family:var(--disp);font-weight:600;font-size:17px;color:var(--ink)}
.topbar .spacer{flex:1}
.topbar .back{display:none;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:21px;line-height:1;cursor:pointer}
.topbar.sub .back{display:flex;align-items:center;justify-content:center}
.topbar.sub .logo{display:none}
.topbar .acct{border:0;background:var(--ink);color:var(--bg);font-weight:700;font-size:12.5px;padding:10px 16px;border-radius:30px;cursor:pointer}
.topbar .bell,.topbar .themebtn{position:relative;background:var(--surface);border:1px solid var(--line);color:var(--ink);height:38px;width:40px;border-radius:50%;font-size:15px;cursor:pointer}
.topbar .bell .bcount{position:absolute;top:-4px;right:-4px;background:var(--terra);color:#fff;font-size:10px;font-weight:800;min-width:17px;height:17px;border-radius:9px;display:none;align-items:center;justify-content:center;padding:0 4px;line-height:1}

/* ---------- Screens & headings ---------- */
.screen{display:none}.screen.active{display:block}
.section-label,.subhead{font-family:var(--body);font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:22px 18px 12px}
.screen > .card,.screen > .news,.screen > #newsList,.screen > .doc-page,.screen > #vagasList,.screen > #comunidadeList,
.screen > #empVagas,.screen > #empPublicar,.screen > #empMinhas,.screen > #planosWrap,.screen > #admUsers,.screen > #admVagas,
.screen > .seg,.screen > .grid,.screen > .preview-shell,.screen > .crop-stage,.screen > #sheetWrap,.screen > .footer{margin-left:18px;margin-right:18px}

/* ===================================================================
   LANDING — primeira impressão (hero editorial + secções resumidas)
   =================================================================== */
.lp-hero{position:relative;min-height:92vh;display:flex;flex-direction:column;justify-content:flex-end;
  background:#0b0e14;color:#F4EFE4;overflow:hidden}
.lp-hero .lp-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:18px 20px;z-index:3}
.lp-hero .lp-brand{display:flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:600;font-size:15px;color:#F4EFE4;letter-spacing:.02em}
.lp-hero .lp-brand img{width:30px;height:30px;border-radius:9px}
.lp-hero .lp-theme{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);color:#F4EFE4;width:40px;height:40px;border-radius:50%;font-size:16px;cursor:pointer}
.lp-hero .lp-mark{position:relative;z-index:2;align-self:center;margin-bottom:8px}
.lp-hero .lp-mark img{width:128px;height:auto;border-radius:26px;box-shadow:0 24px 60px rgba(0,0,0,.55),0 0 0 1px rgba(232,176,75,.25);background:#0b0e14;padding:6px}
.lp-hero .lp-ct{position:relative;z-index:2;padding:0 26px 42px;text-align:center}
.lp-hero .eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright);border:1px solid rgba(232,176,75,.35);padding:6px 14px;border-radius:30px;margin-bottom:18px}
.lp-hero h1{font-family:var(--disp);font-weight:600;font-size:40px;line-height:1.04;letter-spacing:-.02em;margin:0;color:#FFFCF4}
.lp-hero h1 em{font-style:italic;color:var(--gold-bright)}
.lp-hero .lp-sub{margin:16px auto 0;max-width:340px;color:rgba(244,239,228,.74);font-size:15px;line-height:1.6}
.lp-hero .lp-cta{margin-top:26px;display:flex;flex-direction:column;gap:11px}
.lp-hero .lp-cta .b1{background:var(--grad-gold);color:#0c0c0f;border:0;padding:16px;border-radius:15px;font-weight:800;font-size:15.5px;cursor:pointer;box-shadow:0 16px 34px rgba(232,176,75,.3)}
.lp-hero .lp-cta .b2{background:rgba(255,255,255,.06);color:#F4EFE4;border:1.5px solid rgba(255,255,255,.28);padding:15px;border-radius:15px;font-weight:700;font-size:15px;cursor:pointer}
.lp-hero .lp-scroll{position:relative;z-index:2;text-align:center;color:rgba(244,239,228,.5);font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding-bottom:18px;animation:bob 2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

.lp-section{padding:34px 22px}
.lp-kicker{font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);text-align:center}
.lp-h2{font-family:var(--disp);font-weight:600;font-size:27px;line-height:1.12;text-align:center;color:var(--ink);margin:10px 0 6px;letter-spacing:-.01em}
.lp-lead{text-align:center;color:var(--muted);font-size:14.5px;max-width:360px;margin:0 auto 22px}
.lp-mods{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.lp-mod{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:var(--shadow)}
.lp-mod .mi{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;background:var(--gold-soft);margin-bottom:12px}
.lp-mod h3{font-family:var(--disp);font-size:16px;margin:0 0 4px;color:var(--ink)}
.lp-mod p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.lp-band{background:var(--teal);color:#EAF3F2;border-radius:var(--r-lg);padding:30px 24px;text-align:center;margin:8px 0}
.lp-band .lp-h2{color:#FFFCF4}
.lp-band p{color:rgba(234,243,242,.8);font-size:14px;max-width:360px;margin:0 auto}
.lp-stats{display:flex;justify-content:space-around;margin-top:22px}
.lp-stat .n{font-family:var(--disp);font-size:30px;font-weight:600;color:var(--gold-bright)}
.lp-stat .l{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:rgba(234,243,242,.7);margin-top:2px}
.lp-final{text-align:center;padding:40px 24px}
.lp-final .b1{background:var(--ink);color:var(--bg);border:0;padding:16px 30px;border-radius:14px;font-weight:800;font-size:15px;cursor:pointer;margin-top:18px}
.lp-foot{background:var(--bg-2);border-top:1px solid var(--line);padding:30px 22px 26px;color:var(--muted)}
.lp-foot .ff{font-family:var(--disp);font-size:18px;color:var(--ink);margin-bottom:4px}
.lp-foot .cols{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;margin:20px 0}
.lp-foot .cols h5{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin:0 0 9px}
.lp-foot .cols a{display:block;color:var(--text);font-size:13px;text-decoration:none;padding:4px 0;cursor:pointer}
.lp-foot .legal{border-top:1px solid var(--line);padding-top:16px;font-size:11.5px;color:var(--soft);text-align:center}
.lp-foot .ao{display:inline-block;margin-top:8px;height:4px;width:56px;border-radius:4px;background:linear-gradient(90deg,var(--red),var(--gold),var(--ink))}

/* ===================================================================
   COMPONENTES DO APP (reinterpretados no novo sistema)
   =================================================================== */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:17px;box-shadow:var(--shadow);margin-bottom:14px}
.field{margin-bottom:14px}
.field label{display:block;font-size:11.5px;font-weight:700;letter-spacing:.05em;color:var(--muted);margin-bottom:7px}
.field input,.field textarea,.field select{width:100%;background:var(--surface-2);border:1.5px solid var(--line);border-radius:13px;padding:14px;font-size:15px;color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}
.field textarea{min-height:108px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.field input[type=file]{padding:12px;background:var(--surface-2)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hint{font-size:12px;color:var(--muted);line-height:1.5}
.note{display:flex;gap:9px;align-items:flex-start;background:var(--gold-soft);border:1px solid var(--line-2);border-radius:13px;padding:12px 14px;font-size:12.5px;color:var(--text);margin-top:6px}
.demo-banner{background:var(--gold-soft);border:1px solid var(--line-2);color:var(--text);border-radius:13px;padding:12px 14px;font-size:12.5px;margin-bottom:14px}
.demo-banner code{background:var(--surface);padding:1px 6px;border-radius:5px}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:var(--tap);border:0;border-radius:14px;font-size:15px;font-weight:800;cursor:pointer;padding:0 18px;transition:transform .12s,filter .12s}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--grad-gold);color:#fff}
.btn.dark{background:var(--teal);color:#fff}
.btn.ghost{background:var(--surface);border:1.5px solid var(--line);color:var(--ink)}
.btn.g{background:var(--grad-yellow);color:#fff}
.btn.sm{min-height:42px;font-size:13px;width:auto;padding:0 18px;border-radius:11px}
.btn:disabled{opacity:.5}
.btn-row{display:flex;gap:10px;margin-top:4px}

.seg{display:flex;background:var(--bg-2);border-radius:13px;padding:4px;gap:4px;margin-bottom:14px}
.seg button{flex:1;background:none;border:0;border-radius:10px;padding:11px 8px;font-size:13px;font-weight:700;color:var(--muted);cursor:pointer}
.seg button.on{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}

.nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;max-width:520px;margin:0 auto;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:8px 4px calc(9px + env(safe-area-inset-bottom))}
.nav button{flex:1;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;color:var(--soft);font-size:10px;font-weight:600;cursor:pointer;position:relative}
.nav button .ni{font-size:20px;line-height:1}
.nav button.active{color:var(--gold)}
.nav button.active::before{content:"";position:absolute;top:-8px;width:22px;height:3px;border-radius:3px;background:var(--gold)}

/* grelha de ícones (dashboard) */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 4px;padding:2px 12px}
.cat{position:relative;background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px 4px;cursor:pointer}
.cat .cc{width:56px;height:56px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:24px;color:#0c0c0f;box-shadow:var(--shadow)}
.cat .cl{font-size:11px;font-weight:600;color:var(--text);text-align:center;line-height:1.2}
.cat:active{transform:translateY(2px)}
.cat.lock .cc{filter:grayscale(.5) opacity(.6)}
.cat .lockb{position:absolute;top:4px;right:50%;margin-right:-30px;background:var(--ink);color:var(--bg);font-size:9px;font-weight:700;padding:2px 6px;border-radius:9px}

.statuscard{background:var(--ink);color:var(--bg);border-radius:var(--r);box-shadow:var(--shadow-lg);margin:-44px 18px 0;padding:20px;position:relative;z-index:2}
.statuscard .sc-label{color:var(--gold-bright);font-size:11px;font-weight:700;letter-spacing:.14em}
.statuscard .sc-val{font-family:var(--disp);font-weight:600;font-size:27px;margin:4px 0;color:var(--bg)}
.statuscard .sc-sub{color:rgba(244,239,228,.7);font-size:12.5px}
.statuscard .sc-btn{margin-top:14px;border:0;background:var(--grad-gold);color:#0c0c0f;font-weight:800;font-size:13px;padding:12px 22px;border-radius:11px;cursor:pointer}

.tag{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;padding:3px 9px;border-radius:7px;text-transform:uppercase}
.tag.ok{background:var(--gold-soft);color:var(--gold)}
.tag.beta{background:var(--gold-soft);color:var(--terra)}

.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tool{position:relative;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px;cursor:pointer;box-shadow:var(--shadow)}
.tool .ic{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:13px;background:var(--gold-soft);font-size:21px;margin-bottom:10px}
.tool h3{margin:0 0 3px;font-family:var(--disp);font-size:15px;color:var(--ink)}
.tool span:not(.ic):not(.tag):not(.lockb){display:block;font-size:12px;color:var(--muted)}
.tool .lockb{position:absolute;top:10px;right:10px;background:var(--bg-2);color:var(--gold);font-size:10px;font-weight:700;padding:3px 7px;border-radius:10px}

.news{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.news .item{padding:15px;border-bottom:1px solid var(--line)}
.news .item:last-child{border-bottom:0}
.news .item .tag{background:var(--gold-soft);color:var(--gold)}
.news .item h4{margin:8px 0 4px;font-family:var(--disp);font-size:16px;color:var(--ink)}
.news .item p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.news .item .date{font-size:11px;color:var(--soft);margin-top:8px}

.plan{background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r);padding:20px;margin-bottom:14px;position:relative;box-shadow:var(--shadow)}
.plan.feat{border-color:var(--gold)}
.plan .pname{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}
.plan .price{font-family:var(--disp);font-size:32px;font-weight:600;color:var(--ink);margin:6px 0}
.plan .price small{font-size:13px;color:var(--muted);font-weight:500}
.plan ul{list-style:none;padding:0;margin:12px 0 16px}
.plan li{padding:6px 0 6px 26px;position:relative;font-size:13.5px;color:var(--text)}
.plan li:before{content:"✦";position:absolute;left:0;color:var(--gold);font-weight:700}
.plan .badge-top{position:absolute;top:-11px;right:18px;background:var(--grad-gold);color:#0c0c0f;font-size:10.5px;font-weight:800;padding:4px 12px;border-radius:20px}
.plan .cur{position:absolute;top:-11px;left:18px;background:var(--green);color:#fff;font-size:10.5px;font-weight:700;padding:4px 12px;border-radius:20px}

.vaga,.post{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;margin-bottom:12px;box-shadow:var(--shadow)}
.vaga h4{margin:0 0 4px;font-family:var(--disp);font-size:16px;color:var(--ink)}
.vaga .meta{font-size:12px;color:var(--muted)}
.vaga .req{font-size:12.5px;color:var(--text);margin-top:8px;white-space:pre-wrap}
.vaga .foot{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:10px}
.vaga .pill{background:var(--gold-soft);color:var(--gold);border-radius:14px;padding:5px 11px;font-size:11px}
.post .ph{display:flex;align-items:center;gap:10px;margin-bottom:9px}
.post .av{width:38px;height:38px;border-radius:50%;background:var(--grad-gold);color:#0c0c0f;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.post .who{font-family:var(--disp);font-weight:600;font-size:14px;color:var(--ink)}
.post .when{font-size:11px;color:var(--soft)}
.post .body{font-size:14px;color:var(--text);line-height:1.55;white-space:pre-wrap}

.doc-page h2{font-family:var(--disp);color:var(--ink);font-size:19px;margin:22px 0 8px}
.doc-page p{color:var(--text);font-size:14px;line-height:1.75;margin:0 0 10px}
.doc-page .lead{color:var(--muted);font-size:15px}
.about-card{background:var(--ink);color:var(--bg);border-radius:var(--r);padding:24px;margin-bottom:16px;box-shadow:var(--shadow-lg)}
.about-card h3{margin:0 0 6px;font-size:21px;color:var(--bg)}
.about-card p{margin:0;color:rgba(244,239,228,.78);font-size:13.5px}
.feat-row{display:flex;gap:13px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:10px;box-shadow:var(--shadow)}
.feat-row .fi{font-size:23px}.feat-row h4{margin:0 0 2px;font-family:var(--disp);font-size:15px;color:var(--ink)}.feat-row p{margin:0;font-size:12.5px;color:var(--muted)}

.footer{margin-top:24px;text-align:center;color:var(--soft);font-size:12px;padding:18px 18px 8px;border-top:1px solid var(--line)}
.footer b{color:var(--muted)}
.footer .ao{display:inline-block;margin-top:8px;height:4px;width:60px;border-radius:4px;background:linear-gradient(90deg,var(--red),var(--gold),var(--ink))}
.foot-links{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.foot-links button{background:var(--surface);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:9px 14px;font-size:12px;font-weight:600;cursor:pointer}

.preview-shell{background:var(--bg-2);border-radius:var(--r);padding:14px;margin-bottom:14px;overflow:hidden}
.crop-stage{background:var(--ink);border-radius:var(--r);padding:18px;display:grid;place-items:center;margin-bottom:14px}
#cropFrame{position:relative;width:233px;height:300px;background:#fff;border-radius:8px;overflow:hidden;touch-action:none;box-shadow:0 0 0 4px rgba(255,255,255,.25)}
#cropFrame canvas{display:block}
#cropGuide{position:absolute;inset:0;pointer-events:none;display:none}
#cropFrame.guides #cropGuide{display:block}
#cropGuide .oval{position:absolute;left:50%;top:13%;transform:translateX(-50%);width:60%;height:68%;border:2px dashed rgba(184,134,31,.6);border-radius:50%}
#cropGuide .crown{position:absolute;left:14%;right:14%;top:9%;border-top:2px dashed rgba(184,134,31,.9)}
#cropGuide .chin{position:absolute;left:20%;right:20%;top:84%;border-top:2px dashed rgba(184,134,31,.9)}
.qrbox{text-align:center;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:14px;margin-bottom:12px}
.timer{font-variant-numeric:tabular-nums;font-family:var(--disp);font-weight:600;font-size:34px;color:var(--ink);text-align:center}
.timer.ended{color:var(--red)}
.linkpill{display:flex;gap:8px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:9px 11px;font-size:12.5px;color:var(--muted);word-break:break-all;margin-top:10px}

.modal{position:fixed;inset:0;z-index:60;background:rgba(8,10,16,.55);display:none;align-items:flex-end;justify-content:center;backdrop-filter:blur(3px)}
.modal.open{display:flex}
.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:26px 26px 0 0;padding:26px 20px calc(26px + env(safe-area-inset-bottom));animation:up .3s cubic-bezier(.22,.8,.3,1);max-height:88vh;overflow:auto}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.sheet h2{margin:0 0 4px;font-family:var(--disp);font-size:22px;color:var(--ink)}
.sheet .sub{color:var(--muted);font-size:13px;margin-bottom:16px}
.sheet .switch{text-align:center;margin-top:14px;font-size:13.5px;color:var(--muted)}
.sheet .switch b{color:var(--gold);cursor:pointer}
.toast{position:fixed;bottom:98px;left:50%;transform:translateX(-50%) translateY(16px);display:flex;align-items:center;gap:11px;background:#fff;color:#16233d;padding:13px 18px 13px 14px;border-radius:16px;font-size:13.7px;font-weight:600;z-index:9990;opacity:0;transition:opacity .28s ease,transform .3s cubic-bezier(.22,.8,.3,1);pointer-events:none;max-width:92%;box-shadow:0 16px 46px rgba(11,23,54,.34);border:1px solid rgba(20,40,80,.06);border-left:5px solid #2563eb}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast .t-ico{width:26px;height:26px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:#2563eb}
.toast .t-ico svg{width:25px;height:25px}
.toast .t-msg{line-height:1.35}
.toast.success{border-left-color:#1ea672}.toast.success .t-ico{color:#1ea672}
.toast.error{border-left-color:#e0413c}.toast.error .t-ico{color:#e0413c}
.toast.warn{border-left-color:#e8843c}.toast.warn .t-ico{color:#e8843c}
.toast.info{border-left-color:#2563eb}.toast.info .t-ico{color:#2563eb}

/* skeleton loader */
.skeleton{background:linear-gradient(90deg,var(--line) 25%,var(--surface-2) 50%,var(--line) 75%);background-size:200% 100%;animation:sk 1.3s infinite;border-radius:10px}
@keyframes sk{from{background-position:200% 0}to{background-position:-200% 0}}

#splash{position:fixed;inset:0;z-index:999;background:#0b0e14;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;transition:opacity .5s ease}
#splash.hide{opacity:0;pointer-events:none}
#splash img{width:104px;height:auto;border-radius:24px;padding:5px;background:#0b0e14;box-shadow:0 20px 50px rgba(0,0,0,.6),0 0 0 1px rgba(232,176,75,.3);animation:pop .7s cubic-bezier(.22,.8,.3,1)}
@keyframes pop{from{transform:scale(.8);opacity:0}to{transform:none;opacity:1}}
#splash .st{font-family:var(--disp);color:#F4EFE4;font-weight:600;font-size:23px;letter-spacing:.01em}
#splash .st b{color:var(--gold-bright);font-weight:600;font-style:italic}
#splash .ss{color:rgba(244,239,228,.55);font-size:11px;letter-spacing:.25em;margin-top:-8px}
#splash .bar{width:160px;height:4px;background:rgba(255,255,255,.14);border-radius:6px;overflow:hidden;margin-top:6px}
#splash .bar i{display:block;height:100%;background:var(--grad-gold);animation:sload 1.3s ease forwards}
@keyframes sload{from{width:6%}to{width:100%}}

@media print{#app,.nav,.topbar,.modal,#splash{display:none!important}}

/* ---------- Avatar ---------- */
.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;background:var(--grad-gold);color:#0c0c0f;font-weight:800;font-family:var(--disp);flex:0 0 auto}
.avatar img{width:100%;height:100%;object-fit:cover;display:block}
.avatar.ini{line-height:1}
.topbar .acct.is-avatar{background:none;padding:0;border:0}
.topbar .acct.is-avatar .avatar{box-shadow:0 0 0 2px var(--line)}
#pfAvatar .avatar{box-shadow:0 8px 24px rgba(23,19,9,.2),0 0 0 3px var(--surface)}

/* ---------- Cabeçalho do dashboard (home) — angolano ---------- */
.hero3{background:linear-gradient(160deg,#1b1b20,#0b0b0e);color:#fff;padding:24px 20px 58px;border-radius:0 0 30px 30px;text-align:center;position:relative;overflow:hidden}
.hero3::before{content:"";position:absolute;inset:0;background:radial-gradient(120% 70% at 82% -10%,rgba(37,99,235,.45),transparent 55%),radial-gradient(80% 50% at 10% 110%,rgba(59,130,246,.18),transparent 60%)}
.hero3 .hero-logo{width:78px;height:auto;border-radius:18px;background:#fff;padding:4px;box-shadow:0 12px 28px rgba(0,0,0,.45);margin:0 auto 12px;display:block;position:relative}
.hero3 h1{margin:0;font-family:var(--disp);font-weight:600;font-size:23px;color:#fff;position:relative}
.hero3 .sub{margin-top:5px;color:rgba(255,255,255,.72);font-size:12.5px;letter-spacing:.02em;position:relative}

/* ---------- Linhas de histórico ---------- */
.hist{display:flex;gap:12px;align-items:flex-start;padding:12px 4px;border-bottom:1px solid var(--line)}
.hist:last-child{border-bottom:0}
.hist .hi{width:38px;height:38px;border-radius:11px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;font-size:18px;flex:0 0 auto}
.hist .ht{flex:1;min-width:0}
.hist .hd{font-size:13.5px;color:var(--ink);font-weight:600;line-height:1.35}
.hist .hw{font-size:11px;color:var(--soft);margin-top:2px}

/* ---------- Estados de pagamento ---------- */
.est{font-size:10.5px;font-weight:700;letter-spacing:.04em;padding:4px 10px;border-radius:20px;text-transform:uppercase;white-space:nowrap}
.est.pendente{background:#FEF3C7;color:#B45309}
.est.aprovado{background:#DCFCE7;color:#15803D}
.est.rejeitado{background:#FEE2E2;color:#B91C1C}

/* ---------- Comentários ---------- */
.cmt-bar{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.cmt-toggle{background:none;border:0;color:var(--blue);font-weight:700;font-size:12.5px;cursor:pointer;padding:2px 0}
.cmt-box{margin-top:8px}
.cmt-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}
.cmt{background:var(--bg-2);border-radius:12px;padding:9px 11px}
.cmt .ch{display:flex;justify-content:space-between;align-items:center}
.cmt .ch b{font-size:12.5px;color:var(--ink)}
.cmt .cdel{color:var(--red);font-size:11px;cursor:pointer;font-weight:600}
.cmt .ctxt{font-size:13px;color:var(--text);margin-top:2px;white-space:pre-wrap}
.cmt .cw{font-size:10.5px;color:var(--soft);margin-top:3px}
.cmt-add{display:flex;gap:8px}
.cmt-add input{flex:1;background:var(--surface-2);border:1.5px solid var(--line);border-radius:11px;padding:10px 12px;font-size:14px;color:var(--ink);outline:none}
.cmt-add input:focus{border-color:var(--blue)}

/* ---------- Chatbot ---------- */
.bot-head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--ink);color:#fff}
.bot-ava{width:42px;height:42px;border-radius:50%;background:var(--grad-gold);display:flex;align-items:center;justify-content:center;font-size:22px}
.bot-name{font-family:var(--disp);font-weight:600;font-size:16px}
.bot-status{font-size:11.5px;color:rgba(255,255,255,.65)}
.bot-msgs{min-height:46vh;max-height:56vh;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--bg-2)}
.bmsg{max-width:82%;padding:11px 14px;border-radius:16px;font-size:14px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word}
.bmsg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--line);color:var(--text);border-bottom-left-radius:5px}
.bmsg.user{align-self:flex-end;background:var(--grad-gold);color:#fff;border-bottom-right-radius:5px}
.bmsg.typing{color:var(--muted);letter-spacing:2px}
.bot-chips{display:flex;gap:8px;overflow-x:auto;padding:12px 16px;background:var(--bg-2);border-top:1px solid var(--line)}
.bot-chips button{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);color:var(--blue);border-radius:20px;padding:8px 14px;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.bot-input{display:flex;gap:8px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line)}
.bot-input input{flex:1;background:var(--surface-2);border:1.5px solid var(--line);border-radius:24px;padding:12px 16px;font-size:14px;color:var(--ink);outline:none}
.bot-input input:focus{border-color:var(--blue)}

/* ---------- Painel de administração ---------- */
.adm-hero{background:var(--ink);color:#fff;padding:22px 18px;border-radius:0 0 22px 22px;margin-bottom:14px}
.adm-h-t{font-family:var(--disp);font-weight:600;font-size:21px}
.adm-h-s{font-size:12.5px;color:rgba(255,255,255,.66);margin-top:2px}
.adm-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 18px 4px}
.adm-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;box-shadow:var(--shadow)}
.adm-stat .n{font-family:var(--disp);font-weight:700;font-size:26px;color:var(--ink);line-height:1}
.adm-stat .l{font-size:11.5px;color:var(--muted);margin-top:3px}
.adm-stat.hl{background:var(--blue);border-color:var(--blue)}
.adm-stat.hl .n,.adm-stat.hl .l{color:#fff}
#admSeg{margin:14px 18px}
.adm-tab>.subhead:first-child{margin-top:6px}

/* ---------- FAQ (acordeão) ---------- */
.faq details{background:var(--surface);border:1px solid var(--line);border-radius:13px;margin-bottom:10px;overflow:hidden;box-shadow:var(--shadow)}
.faq summary{padding:15px;font-weight:700;font-size:14px;color:var(--ink);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--disp)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-size:22px;font-weight:700;line-height:1;flex:0 0 auto}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:0;padding:0 15px 15px;font-size:13.5px;color:var(--text);line-height:1.65}

/* ---------- Microinterações ---------- */
.btn,.cat,.tool,.cmt-toggle,.foot-links button,.seg button{transition:transform .12s ease,filter .12s ease,background .2s ease,color .2s ease}
.nav button{transition:color .2s ease}
.feat-row{transition:transform .12s ease,box-shadow .2s ease}
.feat-row[onclick]:active{transform:translateY(2px)}

/* ===================================================================
   MODELOS DE CV (A4 794px) — layout próprio, sempre página branca
   =================================================================== */
.cv{width:794px;min-height:1123px;background:#fff !important;color:#222;font-family:'Manrope',Arial,sans-serif;font-size:13px;line-height:1.5;position:relative;margin:0 auto;box-shadow:0 4px 18px rgba(0,0,0,.12)}
.cv *{box-sizing:border-box}
.cv h1,.cv h2,.cv h3,.cv h4{font-family:'Manrope',Arial,sans-serif}
.cv .item{margin-bottom:11px}
.cv .item .t{font-weight:700;color:#1f2a3a;font-size:13.5px}
.cv .item .s{font-size:12px;color:#6b7280;margin-bottom:3px}
.cv .item ul{margin:4px 0 0;padding-left:18px}
.cv .item li{margin-bottom:2px}

/* — Clássico: barra lateral + conteúdo — */
.cv.tpl-navy{display:flex}
.tpl-navy .side{width:270px;background:#16396B;color:#e8eef7;padding:30px 22px}
.tpl-navy .side .photo-wrap{width:150px;height:150px;border-radius:50%;overflow:hidden;margin:0 auto 22px;background:#dfe6f1;border:4px solid rgba(255,255,255,.25);display:grid;place-items:center}
.tpl-navy .side .photo{width:100%;height:100%;object-fit:cover}
.tpl-navy .side h4{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#fff;border-bottom:1px solid rgba(255,255,255,.35);padding-bottom:5px;margin:20px 0 8px}
.tpl-navy .side .blk{font-size:12px;line-height:1.7;color:#cfdaeb;word-break:break-word}
.tpl-navy .side .lbl{color:#9fb3d4;font-size:11px;margin-top:6px}
.tpl-navy .side .lang{display:flex;justify-content:space-between;border-bottom:1px dotted rgba(255,255,255,.25);padding:3px 0}
.tpl-navy .side ul{margin:0;padding-left:16px}
.tpl-navy .main{flex:1;padding:34px 30px}
.tpl-navy .main h1{font-family:'Fraunces',Georgia,serif;font-size:30px;color:#16396B;margin:0;line-height:1.08}
.tpl-navy .main .role{font-size:15px;color:#C0392B;font-weight:600;margin:2px 0 4px;letter-spacing:.5px}
.tpl-navy .main h2{font-size:14px;text-transform:uppercase;letter-spacing:.8px;color:#16396B;border-bottom:2px solid #16396B;padding-bottom:4px;margin:20px 0 9px}
.tpl-navy .main p{margin:0 0 8px}
.tpl-navy .main .pills{display:flex;flex-wrap:wrap;gap:6px}
.tpl-navy .main .pill{background:#eef2f8;color:#16396B;padding:4px 11px;border-radius:14px;font-size:12px}
.tpl-navy .main .quals{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
.tpl-navy .main .quals div{position:relative;padding-left:14px}
.tpl-navy .main .quals div:before{content:"•";position:absolute;left:0;color:#C0392B}

/* — Minimal — */
.cv.tpl-min{padding:42px 46px}
.tpl-min .head{display:flex;gap:22px;align-items:center;border-bottom:2px solid #222;padding-bottom:18px;margin-bottom:6px}
.tpl-min .head img,.tpl-min .head .ph{width:96px;height:96px;border-radius:50%;object-fit:cover;background:#eee;display:grid;place-items:center;color:#999;font-size:12px;flex:0 0 auto}
.tpl-min .head h1{font-size:28px;margin:0;color:#1a1a1a;font-family:'Fraunces',Georgia,serif}
.tpl-min .head .role{color:#666;font-size:15px}
.tpl-min .head .contact{font-size:12px;color:#555;margin-top:6px;line-height:1.5}
.tpl-min h2{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:#222;border-bottom:1px solid #ccc;padding-bottom:3px;margin:18px 0 8px}
.tpl-min p{margin:0 0 8px}
.tpl-min .tags{display:flex;flex-wrap:wrap;gap:6px}
.tpl-min .tags span{border:1px solid #cbd0d8;padding:3px 11px;border-radius:14px;font-size:12px;color:#333}

/* — Moderno — */
.tpl-mod .band{background:#16396B;color:#fff;padding:32px 36px;display:flex;gap:22px;align-items:center}
.tpl-mod .band img,.tpl-mod .band .ph{width:104px;height:104px;border-radius:14px;object-fit:cover;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:12px;color:#dfe6f1;flex:0 0 auto}
.tpl-mod .band h1{font-size:28px;margin:0;font-family:'Fraunces',Georgia,serif}
.tpl-mod .band .role{opacity:.9;font-size:15px}
.tpl-mod .band .c{font-size:12px;opacity:.85;margin-top:7px;line-height:1.6}
.tpl-mod .body{display:flex;gap:28px;padding:30px 36px}
.tpl-mod .body .l{width:235px;flex:0 0 auto}
.tpl-mod .body .r{flex:1}
.tpl-mod h2{font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:#16396B;margin:16px 0 8px;border-bottom:1px solid #dfe4ec;padding-bottom:3px}
.tpl-mod p{margin:0 0 8px}
.tpl-mod .lbl{color:#888;font-size:11px;margin-top:6px}
.tpl-mod .tags{display:flex;flex-wrap:wrap;gap:6px}
.tpl-mod .tags span{background:#eef2f8;color:#16396B;padding:3px 10px;border-radius:13px;font-size:11.5px}

/* ===================================================================
   TRABALHO ABNT (páginas A4) — sempre branco, Times, justificado
   =================================================================== */
#docScale,.doc{--ff:'Times New Roman',serif;--fs:12pt;--lh:1.5}
#docScale .page,.doc .page{width:794px;min-height:1123px;background:#fff !important;color:#000;font-family:var(--ff);font-size:var(--fs);line-height:var(--lh);padding:90px 76px 76px;margin:0 auto 20px;box-shadow:0 4px 18px rgba(0,0,0,.12);text-align:justify}
#docScale .page.center,.doc .page.center{text-align:center}
#docScale .page .cap-head,.doc .page .cap-head{text-transform:uppercase;font-weight:700;line-height:1.5}
#docScale .page .logo-ph,.doc .page .logo-ph{width:92px;height:92px;margin:26px auto;display:grid;place-items:center;border:1px dashed #999;color:#999;font-size:11px;border-radius:8px;object-fit:contain}
#docScale .page .tema,.doc .page .tema{font-weight:700;text-transform:uppercase}
#docScale .page p,.doc .page p{text-indent:1.25cm;margin:0 0 10px}
#docScale .page h3,.doc .page h3{font-weight:700;font-size:1.05em;margin:18px 0 8px;font-family:var(--ff)}
#docScale .page h3.center,.doc .page h3.center{text-align:center}
#docScale .page .members,.doc .page .members{list-style:none;padding:0;margin:6px 0}
#docScale .page .members li,.doc .page .members li{margin:2px 0}
#docScale .page .meta,.doc .page .meta{line-height:1.9;margin:14px 0}
#docScale .page .toc div,.doc .page .toc div{display:flex;align-items:baseline;gap:6px;margin:6px 0}
#docScale .page .toc .dots,.doc .page .toc .dots{flex:1;border-bottom:1px dotted #555;transform:translateY(-3px)}

/* ---------- Foto tipo passe: preview responsivo ---------- */
#sheetCanvas{max-width:100%;height:auto;display:block;margin:0 auto;border-radius:8px;background:#fff;box-shadow:0 2px 10px rgba(12,14,22,.1)}
.crop-stage{overflow:auto}
#cropFrame{max-width:100%}

/* ---------- Digitalizar (thumbs) ---------- */
.scan-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 18px}
.scan-th{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surface-2);aspect-ratio:3/4}
.scan-th img{width:100%;height:100%;object-fit:cover;display:block}
.scan-th button{position:absolute;top:5px;right:5px;background:rgba(0,0,0,.6);color:#fff;border:0;width:22px;height:22px;border-radius:50%;font-size:11px;cursor:pointer;line-height:1}
.scan-th span{position:absolute;bottom:5px;left:5px;background:var(--blue);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:8px}

/* ---------- Capa ABNT (distribuição topo/centro/rodapé) ---------- */
#docScale .page.capa,.doc .page.capa{display:flex;flex-direction:column;text-align:center;padding-top:80px;padding-bottom:60px}
#docScale .page.capa .cap-mid,.doc .page.capa .cap-mid{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px}
#docScale .page.capa .tema-capa,.doc .page.capa .tema-capa{font-weight:700;font-size:1.18em;text-transform:uppercase;line-height:1.5;max-width:82%;text-indent:0}
#docScale .page.capa .cap-bot,.doc .page.capa .cap-bot{font-weight:700;text-indent:0}

/* ---------- Scanner de Bilhete (frente/verso) ---------- */
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.bi-prev{display:flex;flex-direction:column;gap:12px;padding:0 18px;margin-top:6px}
.bi-slot{background:var(--surface-2);border:1px dashed var(--line);border-radius:12px;aspect-ratio:85.6/54;display:flex;align-items:center;justify-content:center;overflow:hidden}
.bi-slot img{width:100%;height:100%;object-fit:contain;background:#fff}
.bi-slot span{color:var(--muted);font-size:13px;font-weight:600}

/* ============ LANDING — enriquecida ============ */
.lp-hero{position:relative;overflow:hidden}
.lp-bg{position:absolute;inset:0;z-index:0;background:linear-gradient(135deg,#0A1A4A,#16396B);--ov:linear-gradient(180deg,rgba(8,10,22,.5),rgba(8,10,22,.86))}
.lp-bg span{position:absolute;inset:0;opacity:0;background-size:cover;background-position:center;animation:lpfade 40s infinite}
.lp-bg span:nth-child(1){background-image:var(--ov),url('images/bg1.jpg'),url('https://commons.wikimedia.org/wiki/Special:FilePath/Cidade_Alta_in_Luanda_-_Angola_2015.jpg?width=1280')}
.lp-bg span:nth-child(2){background-image:var(--ov),url('images/bg2.jpg'),url('https://commons.wikimedia.org/wiki/Special:FilePath/Chicala_Township_in_Luanda_-_Angola_2015.jpg?width=1280');animation-delay:8s}
.lp-bg span:nth-child(3){background-image:var(--ov),url('images/bg3.jpg'),url('https://commons.wikimedia.org/wiki/Special:FilePath/Luanda_%2824347721578%29.jpg?width=1280');animation-delay:16s}
.lp-bg span:nth-child(4){background-image:var(--ov),url('images/bg4.jpg'),url('https://commons.wikimedia.org/wiki/Special:FilePath/Igreja_de_Nossa_Senhora_da_Nazar%C3%A9%2C_Luanda%2C_Angola.jpg?width=1280');animation-delay:24s}
.lp-bg span:nth-child(5){background-image:var(--ov),url('images/bg5.jpg'),url('https://commons.wikimedia.org/wiki/Special:FilePath/Maianga%2C_Luanda%2C_Angola.JPG?width=1280');animation-delay:32s}
@keyframes lpfade{0%{opacity:0}2.5%{opacity:1}20%{opacity:1}22.5%{opacity:0}100%{opacity:0}}
.lp-hero>*:not(.lp-bg){position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.lp-bg span{animation:none}.lp-bg span:nth-child(1){opacity:1}}
.lp-trial{display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);color:#fff;font-size:13px;font-weight:600;padding:9px 15px;border-radius:30px;margin:4px 0 18px;backdrop-filter:blur(6px)}

.lp-steps{display:flex;flex-direction:column;gap:14px;margin-top:18px;text-align:left}
.lp-step{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:var(--shadow)}
.lp-step .sn{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:var(--grad-gold);color:#fff;font-weight:700;display:grid;place-items:center;font-family:var(--disp)}
.lp-step h4{margin:0 0 3px;font-size:15.5px;color:var(--ink)}
.lp-step p{margin:0;font-size:13.5px;color:var(--text)}

.lp-feats{display:flex;flex-direction:column;gap:12px;margin-top:18px;text-align:left}
.lp-feat{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:15px;box-shadow:var(--shadow)}
.lp-feat .fi{flex:0 0 auto;width:46px;height:46px;border-radius:13px;background:var(--blue-soft);display:grid;place-items:center;font-size:23px}
.lp-feat h4{margin:0 0 4px;font-size:15.5px;color:var(--ink)}
.lp-feat p{margin:0;font-size:13.5px;color:var(--text);line-height:1.55}

.lp-videobox{margin-top:18px;aspect-ratio:16/9;border-radius:18px;background:linear-gradient(135deg,#0A1A4A,#16396B);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#fff;cursor:pointer;box-shadow:var(--shadow)}
.lp-videobox .play{width:62px;height:62px;border-radius:50%;background:rgba(255,255,255,.18);border:2px solid rgba(255,255,255,.5);display:grid;place-items:center;font-size:24px;padding-left:4px}
.lp-videobox span{font-size:13px;opacity:.85}

.lp-chatbox{margin-top:18px;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);text-align:left}
.lp-bot-msgs{min-height:120px;max-height:240px;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:9px;background:var(--bg-2)}
.lp-chips{display:flex;gap:8px;overflow-x:auto;padding:10px 12px;border-top:1px solid var(--line)}
.lp-chips button{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);color:var(--blue);border-radius:18px;padding:7px 13px;font-size:12.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.lp-bot-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line)}
.lp-bot-input input{flex:1;background:var(--surface-2);border:1.5px solid var(--line);border-radius:22px;padding:11px 15px;font-size:14px;color:var(--ink);outline:none}
.lp-bot-input input:focus{border-color:var(--blue)}
.lp-bot-input button{flex:0 0 auto;background:var(--grad-gold);color:#fff;border:0;border-radius:22px;padding:0 18px;font-weight:700;font-size:13.5px;cursor:pointer}

/* ============ MENU LATERAL (gaveta esquerda) ============ */
.menu-btn{background:none;border:0;font-size:21px;color:var(--ink);width:40px;height:40px;cursor:pointer;flex:0 0 auto;border-radius:10px}
.menu-btn:active{background:var(--bg-2)}
#app.landing .menu-btn{display:none}
.drawer-ov{position:fixed;inset:0;background:rgba(8,10,22,.5);opacity:0;pointer-events:none;transition:opacity .25s;z-index:80}
.drawer-ov.open{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;left:0;bottom:0;width:84%;max-width:330px;background:var(--surface);box-shadow:2px 0 40px rgba(0,0,0,.22);transform:translateX(-105%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:81;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch}
.drawer.open{transform:translateX(0)}
.dr-head{display:flex;align-items:center;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}
.dr-head .b{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:600;font-size:15.5px;color:var(--ink)}
.dr-head .b img{width:30px;height:30px;border-radius:9px}
.dr-head .x{background:none;border:0;font-size:18px;color:var(--muted);cursor:pointer;width:34px;height:34px}
.dr-user{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}
.dr-user .nm{font-weight:700;color:var(--ink);font-size:14.5px}
.dr-user .pl{font-size:12px;color:var(--blue);font-weight:600}
.dr-sec{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--soft);padding:15px 18px 5px;font-weight:700}
.drawer a{display:flex;align-items:center;gap:13px;padding:12px 18px;color:var(--text);font-size:14.5px;font-weight:600;cursor:pointer;background:none;border:0;text-align:left;width:100%;transition:background .15s}
.drawer a .di{width:24px;text-align:center;font-size:17px;flex:0 0 auto}
.drawer a:active{background:var(--bg-2)}
.drawer a.danger{color:var(--red);margin-top:6px}

/* ============ Votações — painel de monitorização ============ */
.vmon{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:4px}
.vm{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 14px;box-shadow:var(--shadow)}
.vm .n{font-family:var(--disp);font-weight:700;font-size:24px;color:var(--ink);line-height:1.05}
.vm .l{font-size:11.5px;color:var(--muted);margin-top:3px;font-weight:600}
.vm.hl{background:var(--blue);border-color:var(--blue)}
.vm.hl .n,.vm.hl .l{color:#fff}

/* ============ Presenças — estado e pauta ============ */
.pst{font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:10px;vertical-align:middle;white-space:nowrap}
.pst.pontual{background:#DCFCE7;color:#15803D}
.pst.atrasado{background:#FEE2E2;color:#B91C1C}
.field textarea{width:100%;background:var(--surface-2);border:1.5px solid var(--line);border-radius:12px;padding:11px 13px;font-size:14.5px;color:var(--ink);font-family:var(--body);outline:none;resize:vertical}
.field textarea:focus{border-color:var(--blue)}

/* ============ Votações PRO ============ */
.chk{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--text);font-weight:600;margin:4px 0 12px;cursor:pointer}
.chk input{width:18px;height:18px;accent-color:var(--blue)}
.vhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.vbadge{font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:4px 11px;border-radius:20px}
.vbadge.open{background:#DCFCE7;color:#15803D}
.vbadge.closed{background:#FEE2E2;color:#B91C1C}
.vprog{height:7px;background:var(--bg-2);border-radius:6px;overflow:hidden;margin-bottom:12px}
.vprog>div{height:100%;background:var(--grad-gold);transition:width 1s linear}
.vnum{flex:0 0 auto;width:24px;height:24px;border-radius:7px;background:var(--blue-soft);color:var(--blue);font-weight:800;font-size:12.5px;display:grid;place-items:center;margin-right:2px}
.receipt{margin-top:12px;background:var(--blue-soft);border:1px dashed var(--blue);border-radius:12px;padding:12px;text-align:center;color:var(--ink);font-size:15px}
.receipt .hint{margin-top:3px}
.qbadge{padding:10px 14px;border-radius:12px;font-weight:700;font-size:13.5px;margin-bottom:10px}
.qbadge.ok{background:#DCFCE7;color:#15803D}
.qbadge.no{background:#FEF3C7;color:#92400E}
.winner.tie{background:#FEF3C7;color:#92400E}
.histcard{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px 15px;margin-top:8px;box-shadow:var(--shadow);cursor:pointer}

/* ============ Votação — estilo "votação universitária" ============ */
.vote-timer{background:#FFF4E5;border:1px solid #FFE0B2;border-radius:12px;text-align:center;padding:14px;margin-bottom:14px;color:#C2410C}
.vote-timer .lbl{font-size:11.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase}
.timer-clock{font-size:25px;font-weight:800;font-family:'Courier New',monospace;margin-top:5px;letter-spacing:1px}
.vote-opt{display:flex;align-items:center;gap:14px;padding:18px;border:2px solid var(--line);border-radius:12px;cursor:pointer;transition:.2s;margin-bottom:12px;background:var(--surface)}
.vote-opt.selected{border-color:var(--blue);background:var(--blue-soft);box-shadow:0 0 0 3px rgba(37,99,235,.08)}
.vo-radio{flex:0 0 auto;width:22px;height:22px;border-radius:50%;border:2px solid var(--line-2);display:grid;place-items:center}
.vote-opt.selected .vo-radio{border-color:var(--blue)}
.vo-radio span{width:11px;height:11px;border-radius:50%;background:var(--blue)}
.vo-main{display:flex;flex-direction:column}
.vo-name{font-weight:800;font-size:17px;color:var(--ink)}
.vo-num{color:var(--muted);font-size:13px;margin-top:2px}
.statcard{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.statcard .ico{font-size:30px;line-height:1}
.statcard .l{color:var(--muted);font-size:10.5px;text-transform:uppercase;font-weight:800;letter-spacing:.4px}
.statcard .n{font-size:23px;font-weight:800;color:var(--ink);font-family:var(--disp)}
.vmon.cards{grid-template-columns:1fr 1fr}
.btn.success{background:#2E7D32;color:#fff}
.btn.success:active{background:#1B5E20}

/* ============ Empregos PRO ============ */
.jverif{display:inline-block;background:#DCFCE7;color:#15803D;font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.jchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.jchip{background:var(--blue-soft);color:var(--blue);font-size:12px;font-weight:700;padding:4px 10px;border-radius:18px}
.jstatus{display:inline-block;font-size:11px;font-weight:800;padding:3px 10px;border-radius:20px;margin-bottom:8px}
.jstatus.ok{background:#DCFCE7;color:#15803D}
.jstatus.no{background:#FEE2E2;color:#B91C1C}
.jstatus.pend{background:#FEF3C7;color:#92400E}
.jd{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0;border-bottom:1px dashed var(--line)}
.jd span{color:var(--muted)}
.jd b{color:var(--ink);text-align:right}

/* ============ Presenças PRO (estilo SMP) ============ */
.access-code{background:var(--blue-soft);border:1px dashed var(--blue);border-radius:14px;text-align:center;padding:14px;margin:12px 0}
.access-code .ac-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--blue)}
.access-code .ac-code{font-family:'Courier New',monospace;font-size:32px;font-weight:800;letter-spacing:6px;color:var(--ink);margin-top:4px}
.att-rm{color:var(--red);font-weight:800;margin-left:8px;cursor:pointer;padding:2px 6px;border-radius:6px}
.att-rm:active{background:#FEE2E2}
.pcat{font-size:10px;font-weight:700;background:var(--bg-2);color:var(--muted);padding:1px 7px;border-radius:10px;vertical-align:middle}

/* ============ Comunidade Fase 2 (imagem + reações) ============ */
.cm-preview{position:relative;margin:4px 0 10px}
.cm-preview img{width:100%;border-radius:12px;display:block;max-height:240px;object-fit:cover}
.cm-preview .rm{position:absolute;top:8px;right:8px;background:rgba(0,0,0,.6);color:#fff;font-size:12px;font-weight:700;padding:4px 10px;border-radius:20px;cursor:pointer}
.post-img{width:100%;border-radius:12px;margin:8px 0 2px;display:block;max-height:340px;object-fit:cover;cursor:pointer}
.react-bar{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px}
.react{background:var(--bg-2);border:1px solid var(--line);border-radius:20px;padding:5px 12px;font-size:15px;cursor:pointer;transition:.15s;line-height:1}
.react b{font-size:12px;color:var(--text);font-weight:800}
.react.on{background:var(--blue-soft);border-color:var(--blue)}
.react:active{transform:scale(.94)}

/* ============ Pagamentos Fase 2 ============ */
.comprov-img{width:100%;max-height:220px;object-fit:cover;border-radius:10px;margin-top:8px;display:block;border:1px solid var(--line)}

/* ============ Rascunhos + Gestor de citações (Fase 2) ============ */
.draftbar{display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:0 16px 12px;flex-wrap:wrap}
.draftbar .hint{padding:0}
.db-btns{display:flex;gap:6px}
.cit-mgr{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.cit-mgr summary{font-weight:800;cursor:pointer;color:var(--ink);font-size:14.5px;list-style:none}
.cit-mgr summary::-webkit-details-marker{display:none}
.cit-mgr summary:before{content:"▸ ";color:var(--blue)}
.cit-mgr[open] summary:before{content:"▾ "}
.cit-mgr .field{margin-top:10px}

/* ============ Imagem→PDF Fase 2 (reordenar/rodar/tools) ============ */
.scan-th{position:relative;border-radius:12px;overflow:hidden;background:var(--bg-2);border:1px solid var(--line)}
.scan-th .sc-img{width:100%;aspect-ratio:1/1;display:grid;place-items:center;overflow:hidden}
.scan-th .sc-img img{max-width:100%;max-height:100%;transition:transform .2s}
.scan-th .pg{position:absolute;top:6px;left:6px;background:var(--blue);color:#fff;font-size:11px;font-weight:800;width:22px;height:22px;border-radius:50%;display:grid;place-items:center}
.sc-tools{display:flex;justify-content:center;gap:2px;padding:5px;background:var(--surface);border-top:1px solid var(--line)}
.sc-tools button{flex:1;background:var(--bg-2);border:1px solid var(--line);border-radius:8px;padding:6px 0;font-size:13px;cursor:pointer;color:var(--ink)}
.sc-tools button:disabled{opacity:.35}
.sc-tools button.rm{color:var(--red)}
.sc-tools button:active{transform:scale(.94)}

/* ============ Fotos de candidatos (Fase 3) ============ */
.cand-edit{display:flex;gap:10px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px}
.cand-photo{flex:0 0 auto;width:52px;height:52px;border-radius:50%;overflow:hidden;background:var(--blue-soft);display:grid;place-items:center;cursor:pointer;border:2px dashed var(--blue)}
.cand-photo img{width:100%;height:100%;object-fit:cover}
.cand-photo span{font-weight:800;color:var(--blue);font-size:18px}
.cand-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}
.cand-fields input{margin:0}
.vo-av{flex:0 0 auto;width:78px;height:78px;border-radius:50%;overflow:hidden;background:var(--blue-soft);display:grid;place-items:center;cursor:zoom-in;position:relative;border:2px solid var(--line-2)}
.vo-av::after{content:"🔍";position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.vo-av.init::after{content:""}
.vo-av img{width:100%;height:100%;object-fit:cover}
.vo-av.init{font-weight:800;color:var(--blue);font-size:26px}
.winner{display:flex;align-items:center;gap:12px}
.win-av{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 2px 8px rgba(0,0,0,.3);cursor:zoom-in}

/* ============ Votação multi-cargo (Fase 3) ============ */
.cargo-h{font-weight:800;color:var(--blue);font-size:14px;margin:16px 0 8px;padding-bottom:6px;border-bottom:2px solid var(--blue-soft)}
.cargo-h:first-child{margin-top:0}
.cargo-block{margin-bottom:8px}
.res-av{width:58px;height:58px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:12px;cursor:zoom-in;border:2px solid var(--line-2)}
.tally .rn{display:inline-flex;align-items:center}

/* ============ Painel tempo real (analytics admin) ============ */
.live-card{border:1px solid var(--line)}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#22C55E;margin-left:6px;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:livepulse 1.8s infinite}
@keyframes livepulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.6)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.live-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.live-kpis .kpi{background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px;text-align:center}
.live-kpis .kpi.on{background:linear-gradient(180deg,#ECFDF5,#fff);border-color:#A7F3D0}
.live-kpis .kpi .n{font-size:22px;font-weight:800;color:var(--ink);line-height:1}
.live-kpis .kpi.on .n{color:#059669}
.live-kpis .kpi .l{font-size:10.5px;color:var(--muted);margin-top:4px}
.live-ecras{display:flex;flex-wrap:wrap;gap:6px}
.lchip{background:var(--blue-soft);color:var(--blue-d);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:600}
[data-theme="dark"] .live-kpis .kpi.on{background:rgba(5,150,105,.12)}

/* ============ Lote A: convites, onboarding, instalar ============ */
.invite-card{background:linear-gradient(135deg,#EEF4FF,#fff);border:1px solid #C7D7FE}
[data-theme="dark"] .invite-card{background:linear-gradient(135deg,rgba(37,99,235,.16),transparent);border-color:rgba(37,99,235,.35)}
.ic-title{font-weight:800;font-size:15px;color:var(--ink);margin-bottom:3px}
.ic-stats{display:flex;gap:10px;margin-top:10px}
.ic-stats>div{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px;text-align:center}
.ic-stats .n{font-size:20px;font-weight:800;color:var(--blue-d)}
.ic-stats .l{font-size:10.5px;color:var(--muted)}
#onboard{position:fixed;inset:0;z-index:1200;background:rgba(8,11,22,.62);backdrop-filter:blur(4px);display:none;align-items:flex-end;justify-content:center}
#onboard.show{display:flex}
.ob-card{background:var(--surface);width:100%;max-width:480px;border-radius:22px 22px 0 0;padding:26px 22px 22px;box-shadow:0 -10px 40px rgba(0,0,0,.3)}
.ob-slide{display:none;text-align:center}
.ob-slide.on{display:block}
.ob-emoji{font-size:46px;margin-bottom:8px}
.ob-card h2{font-size:20px;margin:6px 0 8px}
.ob-card p{color:var(--muted);font-size:14px;line-height:1.5}
.ob-dots{display:flex;gap:6px;justify-content:center;margin:18px 0 14px}
.ob-dots span{width:7px;height:7px;border-radius:50%;background:var(--line)}
.ob-dots span.on{background:var(--blue);width:20px;border-radius:4px}

/* ============ Lote B: página legal ============ */
.legal{padding:8px 18px 30px}
.legal h3{font-size:15px;color:var(--ink);margin:18px 0 6px}
.legal p{color:var(--text);font-size:13.5px;line-height:1.6;margin:0 0 6px}
.legal .hint{font-size:12.5px}

/* ============ Lote C: checkout por referência ============ */
.pay-amount{background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;border-radius:14px;padding:14px 16px;margin-bottom:14px;display:flex;align-items:center;justify-content:space-between}
.pay-amount .l{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.pay-amount .v{font-family:var(--disp);font-size:26px;font-weight:800}
.pay-amount .v small{font-size:13px;font-weight:600;opacity:.85}
.pay-dest{display:flex;align-items:center;gap:10px;justify-content:space-between;background:var(--bg-2);border:1px dashed var(--blue);border-radius:12px;padding:10px 12px}
.pay-dest .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.pay-dest .v{font-size:15px;font-weight:800;color:var(--ink);word-break:break-all}

/* ============ Lote E: funil ============ */
.funnel{display:flex;align-items:center;gap:6px}
.funnel .fn{flex:1;background:var(--bg-2);border:1px solid var(--line);border-radius:12px;padding:10px 4px;text-align:center}
.funnel .fn.pay{background:linear-gradient(180deg,#ECFDF5,#fff);border-color:#A7F3D0}
.funnel .fn .n{font-size:20px;font-weight:800;color:var(--ink)}
.funnel .fn.pay .n{color:#059669}
.funnel .fn .l{font-size:10px;color:var(--muted);margin-top:2px}
.funnel .fn-arrow{color:var(--muted);font-weight:800;flex:0 0 auto}
[data-theme="dark"] .funnel .fn.pay{background:rgba(5,150,105,.12)}

/* ============ Recortador de imagem (crop) ============ */
#cropper{position:fixed;inset:0;z-index:1300;background:rgba(8,11,22,.92);display:none;flex-direction:column;align-items:center;justify-content:center;padding:16px;gap:14px}
#cropper.open{display:flex}
.crop-head{color:#fff;font-weight:800;font-size:16px}
.crop-stage{display:flex;align-items:center;justify-content:center;max-width:100%}
#cropCanvas{touch-action:none;border-radius:6px;max-width:100%;box-shadow:0 8px 30px rgba(0,0,0,.5)}
.crop-ratios{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.crop-ratios button{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:600;cursor:pointer}
.crop-ratios button.on{background:var(--blue);border-color:var(--blue)}
.crop-actions{display:flex;gap:10px;width:100%;max-width:380px}
.crop-actions .btn{flex:1}

/* ============ CV: galeria de modelos + 6 novos modelos ============ */
.cv-models{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;-webkit-overflow-scrolling:touch}
.cv-models .cvm{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap}
.cv-models .cvm.on{background:var(--blue);border-color:var(--blue);color:#fff}
.cv .dash{list-style:none;padding:0;margin:4px 0}
.cv .dash li{position:relative;padding-left:14px;margin-bottom:3px}
.cv .dash li:before{content:"–";position:absolute;left:0;color:#888}
.cv .sm{font-size:12px;color:#555;line-height:1.7}

/* Executivo */
.cv.tpl-exec{display:block;padding:48px 54px;color:#222}
.cv.tpl-exec .ex-head{text-align:center;border-bottom:3px double #222;padding-bottom:16px;margin-bottom:18px}
.cv.tpl-exec .ex-head img{width:90px;height:90px;border-radius:50%;object-fit:cover;margin-bottom:8px}
.cv.tpl-exec h1{font-family:'Fraunces',Georgia,serif;font-size:32px;letter-spacing:.5px;margin:0}
.cv.tpl-exec .role{font-size:13px;letter-spacing:.28em;text-transform:uppercase;color:#555;margin-top:4px}
.cv.tpl-exec .ex-head .c{margin-top:10px;font-size:12px;color:#444}
.cv.tpl-exec h2{font-family:'Fraunces',Georgia,serif;font-size:15px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid #ddd;padding-bottom:4px;margin:18px 0 8px}
.cv.tpl-exec .two{display:flex;gap:30px}.cv.tpl-exec .two>div{flex:1}

/* Barra Direita */
.cv.tpl-right{display:flex}
.cv.tpl-right .main{flex:1;padding:40px 26px 40px 40px}
.cv.tpl-right .side{width:248px;background:#0F766E;color:#fff;padding:40px 24px}
.cv.tpl-right .side .photo{display:block;width:120px;height:120px;border-radius:50%;object-fit:cover;margin:0 auto 16px;border:3px solid rgba(255,255,255,.4);text-align:center;line-height:120px;color:#bdeee6}
.cv.tpl-right .side h4{font-size:12px;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:4px;margin:16px 0 6px;color:#fff}
.cv.tpl-right .side .blk{font-size:12px;line-height:1.7;color:#e6fffb}
.cv.tpl-right h1{font-size:28px;margin:0;color:#0F766E}
.cv.tpl-right .role{font-size:14px;color:#555;margin:2px 0 4px}
.cv.tpl-right h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#0F766E;border-bottom:2px solid rgba(15,118,110,.25);padding-bottom:3px;margin:16px 0 8px}
.cv.tpl-right .pills span{display:inline-block;background:#ECFDF5;color:#0F766E;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Cronológico */
.cv.tpl-timeline{display:block;padding:40px 46px;color:#222}
.cv.tpl-timeline .tl-head{display:flex;align-items:center;gap:18px;margin-bottom:14px}
.cv.tpl-timeline .tl-head img{width:84px;height:84px;border-radius:12px;object-fit:cover}
.cv.tpl-timeline h1{font-size:28px;margin:0;color:#1D4ED8}
.cv.tpl-timeline .role{font-size:14px;color:#555}
.cv.tpl-timeline .tl-head .c{font-size:12px;color:#555;margin-top:5px}
.cv.tpl-timeline h2{font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:#1D4ED8;margin:18px 0 10px}
.cv.tpl-timeline .tl{position:relative;padding-left:22px;border-left:2px solid #dbe4f5}
.cv.tpl-timeline .tl .item:before{content:"";position:absolute;left:-7px;margin-top:4px;width:10px;height:10px;border-radius:50%;background:#2563EB;border:2px solid #fff;box-shadow:0 0 0 2px #2563EB}
.cv.tpl-timeline .tl .item{position:relative;padding-left:6px}
.cv.tpl-timeline .two{display:flex;gap:26px}.cv.tpl-timeline .two>div{flex:1}
.cv.tpl-timeline .tags span{display:inline-block;background:#EEF4FF;color:#1D4ED8;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Compacto */
.cv.tpl-compact{display:block;padding:34px 38px;font-size:12px}
.cv.tpl-compact .cp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:2px solid #334155;padding-bottom:10px}
.cv.tpl-compact .cp-head img{width:74px;height:74px;border-radius:8px;object-fit:cover}
.cv.tpl-compact h1{font-size:25px;margin:0;color:#1e293b}
.cv.tpl-compact .role{font-size:13px;color:#475569}
.cv.tpl-compact .cp-head .c{font-size:11.5px;color:#64748b;margin-top:4px}
.cv.tpl-compact .cols{display:flex;gap:26px;margin-top:14px}
.cv.tpl-compact .cl{flex:1.6}.cv.tpl-compact .cr{flex:1}
.cv.tpl-compact h2{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#334155;border-bottom:1px solid #e2e8f0;padding-bottom:3px;margin:13px 0 6px}
.cv.tpl-compact .tags span{display:inline-block;background:#f1f5f9;color:#334155;border-radius:5px;padding:2px 7px;font-size:11px;margin:0 4px 4px 0}

/* Moderno Cor */
.cv.tpl-accent{display:block;padding:0 0 40px;color:#222}
.cv.tpl-accent .ac-head{background:linear-gradient(120deg,#4F46E5,#7C3AED);color:#fff;padding:38px 46px;display:flex;align-items:center;gap:20px}
.cv.tpl-accent .ac-head img{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.5)}
.cv.tpl-accent h1{font-size:30px;margin:0}
.cv.tpl-accent .role{font-size:14px;opacity:.92;letter-spacing:.04em}
.cv.tpl-accent .ac-contact{background:#1e1b4b;color:#cfd2ff;font-size:12px;padding:10px 46px;text-align:center}
.cv.tpl-accent h2{font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:#4F46E5;margin:18px 46px 8px;padding-left:10px;border-left:4px solid #7C3AED}
.cv.tpl-accent>p,.cv.tpl-accent>.item,.cv.tpl-accent>.two{margin-left:46px;margin-right:46px}
.cv.tpl-accent .two{display:flex;gap:30px}.cv.tpl-accent .two>div{flex:1}
.cv.tpl-accent .tags span{display:inline-block;background:#EEF2FF;color:#4F46E5;border-radius:999px;padding:4px 11px;font-size:12px;margin:0 5px 6px 0}

/* Elegante */
.cv.tpl-elegant{display:block;padding:46px 50px;color:#2b2b2b;font-family:'Fraunces',Georgia,serif}
.cv.tpl-elegant .el-head{text-align:center;margin-bottom:18px}
.cv.tpl-elegant h1{font-size:33px;margin:0;letter-spacing:.5px}
.cv.tpl-elegant .role{font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:#9A7B4F;margin-top:5px;font-family:'Manrope',sans-serif}
.cv.tpl-elegant .el-head .rule{width:60px;height:2px;background:#9A7B4F;margin:12px auto}
.cv.tpl-elegant .el-head .c{font-size:12px;color:#555;font-family:'Manrope',sans-serif}
.cv.tpl-elegant .body{display:flex;gap:34px}
.cv.tpl-elegant .l{flex:1.7}.cv.tpl-elegant .r{flex:1;border-left:1px solid #e4ddd0;padding-left:24px}
.cv.tpl-elegant .r .photo{width:120px;height:120px;border-radius:50%;object-fit:cover;display:block;margin:0 auto 14px}
.cv.tpl-elegant h2{font-size:15px;letter-spacing:.06em;color:#9A7B4F;border-bottom:1px solid #e4ddd0;padding-bottom:4px;margin:16px 0 8px}
.cv.tpl-elegant p,.cv.tpl-elegant .sm,.cv.tpl-elegant .dash,.cv.tpl-elegant .item{font-family:'Manrope',sans-serif}
.cv.tpl-accent .two h2{margin-left:0;margin-right:0}

/* ============ CV Lote 2 ============ */
/* Simples (ATS) */
.cv.tpl-ats{display:block;padding:46px 54px;color:#111;font-family:Arial,Helvetica,sans-serif}
.cv.tpl-ats h1{font-size:26px;margin:0;letter-spacing:.3px}
.cv.tpl-ats .role{font-size:14px;color:#333;margin:2px 0 6px}
.cv.tpl-ats .at-head .c{font-size:12.5px;color:#333}
.cv.tpl-ats h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1.5px solid #111;padding-bottom:2px;margin:16px 0 7px}
.cv.tpl-ats .item .t{font-weight:700}

/* Duas Cores */
.cv.tpl-duo{display:block;padding:0 0 40px}
.cv.tpl-duo .du-head{display:flex;align-items:center;justify-content:space-between;background:#1e293b;color:#fff;padding:34px 46px}
.cv.tpl-duo .du-head h1{font-size:30px;margin:0}
.cv.tpl-duo .du-head .role{color:#fcd34d;font-size:14px;letter-spacing:.04em}
.cv.tpl-duo .du-ph{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid #F59E0B}
.cv.tpl-duo .du-contact{background:#F59E0B;color:#3a2c06;font-size:12.5px;font-weight:600;padding:9px 46px;text-align:center}
.cv.tpl-duo .du-pad{padding:22px 46px 0}
.cv.tpl-duo h2{font-size:14px;text-transform:uppercase;letter-spacing:.07em;color:#1e293b;border-left:4px solid #F59E0B;padding-left:9px;margin:16px 0 8px}
.cv.tpl-duo .two{display:flex;gap:30px}.cv.tpl-duo .two>div{flex:1}

/* Faixa Lateral */
.cv.tpl-stripe{display:flex}
.cv.tpl-stripe .st-bar{width:16px;background:#DC2626;flex:0 0 auto}
.cv.tpl-stripe .st-body{flex:1;padding:42px 48px}
.cv.tpl-stripe .st-head{border-bottom:2px solid #111;padding-bottom:12px;margin-bottom:6px}
.cv.tpl-stripe h1{font-size:30px;margin:0;color:#111}
.cv.tpl-stripe .role{font-size:14px;color:#DC2626;font-weight:600}
.cv.tpl-stripe .st-head .c{font-size:12px;color:#555;margin-top:5px}
.cv.tpl-stripe h2{font-size:13px;text-transform:uppercase;letter-spacing:.09em;color:#DC2626;margin:16px 0 8px}
.cv.tpl-stripe .tags span{display:inline-block;background:#FEF2F2;color:#DC2626;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Criativo */
.cv.tpl-criativo{display:block;padding:0 0 36px}
.cv.tpl-criativo .cr2-head{display:flex;align-items:center;gap:22px;background:linear-gradient(120deg,#FB7185,#F43F5E);color:#fff;padding:40px 46px;border-bottom-right-radius:60px}
.cv.tpl-criativo .cr2-head img,.cv.tpl-criativo .cr2-head .ph{width:104px;height:104px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.25);display:grid;place-items:center;font-size:40px;font-weight:800;border:4px solid rgba(255,255,255,.6)}
.cv.tpl-criativo h1{font-size:32px;margin:0}
.cv.tpl-criativo .cr2-head .role{font-size:15px;opacity:.95}
.cv.tpl-criativo .cr2-head .c{font-size:12px;opacity:.92;margin-top:6px}
.cv.tpl-criativo .body{display:flex;gap:30px;padding:24px 46px 0}
.cv.tpl-criativo .l{flex:1.7}.cv.tpl-criativo .r{flex:1;background:#FFF1F2;border-radius:14px;padding:16px}
.cv.tpl-criativo h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#E11D48;margin:14px 0 8px}
.cv.tpl-criativo .r h2:first-child{margin-top:0}
.cv.tpl-criativo .tags span{display:inline-block;background:#fff;color:#E11D48;border:1px solid #fecdd3;border-radius:999px;padding:3px 10px;font-size:12px;margin:0 5px 5px 0}

/* Serifado */
.cv.tpl-serif{display:block;padding:48px 52px;font-family:'Fraunces',Georgia,serif;color:#222}
.cv.tpl-serif .se-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.cv.tpl-serif h1{font-size:34px;margin:0}
.cv.tpl-serif .role{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:#555;font-family:'Manrope',sans-serif;margin-top:4px}
.cv.tpl-serif .se-head .c{font-size:12px;color:#555;text-align:right;font-family:'Manrope',sans-serif;line-height:1.6}
.cv.tpl-serif .se-rule{height:2px;background:#222;margin:12px 0 4px}
.cv.tpl-serif h2{font-size:15px;letter-spacing:.05em;color:#333;margin:16px 0 7px;border-bottom:1px solid #e2e2e2;padding-bottom:3px}
.cv.tpl-serif p,.cv.tpl-serif .item{font-family:'Manrope',sans-serif}
.cv.tpl-serif .two{display:flex;gap:34px}.cv.tpl-serif .two>div{flex:1}

/* Cartões */
.cv.tpl-card{display:block;padding:32px 36px;background:#f3f6fc}
.cv.tpl-card .cd-head{display:flex;align-items:center;gap:18px;background:#2563EB;color:#fff;padding:26px 30px;border-radius:16px;margin-bottom:14px}
.cv.tpl-card .cd-head img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.5)}
.cv.tpl-card h1{font-size:27px;margin:0}
.cv.tpl-card .cd-head .role{font-size:14px;opacity:.92}
.cv.tpl-card .cd-head .c{font-size:12px;opacity:.9;margin-top:5px}
.cv.tpl-card .card-s{background:#fff;border:1px solid #e3e9f3;border-radius:14px;padding:16px 18px;margin-bottom:12px;box-shadow:0 1px 3px rgba(20,40,80,.05)}
.cv.tpl-card h2{font-size:13px;text-transform:uppercase;letter-spacing:.07em;color:#2563EB;margin:0 0 8px}
.cv.tpl-card .two{display:flex;gap:12px}.cv.tpl-card .two>div{flex:1;margin-bottom:0}
.cv.tpl-card .tags span{display:inline-block;background:#EEF4FF;color:#1D4ED8;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* ============ CV Lote 3 (fecha os 20) ============ */
/* Foto à Esquerda */
.cv.tpl-photoleft{display:flex}
.cv.tpl-photoleft .pl-side{width:232px;background:#F1F5F9;padding:34px 22px;color:#334155}
.cv.tpl-photoleft .pl-side .photo{display:block;width:130px;height:130px;border-radius:12px;object-fit:cover;margin:0 auto 16px;background:#e2e8f0;text-align:center;line-height:130px;color:#94a3b8}
.cv.tpl-photoleft .pl-side h4{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:#0f172a;border-bottom:2px solid #cbd5e1;padding-bottom:3px;margin:16px 0 6px}
.cv.tpl-photoleft .pl-side .blk{font-size:12px;line-height:1.7}
.cv.tpl-photoleft .pl-main{flex:1;padding:34px 30px}
.cv.tpl-photoleft h1{font-size:28px;margin:0;color:#0f172a}
.cv.tpl-photoleft .role{font-size:14px;color:#475569;margin-bottom:4px}
.cv.tpl-photoleft h2{font-size:14px;text-transform:uppercase;letter-spacing:.07em;color:#334155;border-bottom:2px solid #e2e8f0;padding-bottom:3px;margin:16px 0 8px}
.cv.tpl-photoleft .tags span{display:inline-block;background:#F1F5F9;color:#334155;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Infográfico (bars) */
.cv.tpl-bars{display:block;padding:0 0 36px}
.cv.tpl-bars .bar-head{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#4338CA;color:#fff;padding:34px 46px}
.cv.tpl-bars .bar-head img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.5)}
.cv.tpl-bars h1{font-size:29px;margin:0}
.cv.tpl-bars .bar-head .role{font-size:14px;opacity:.92}
.cv.tpl-bars .bar-contact{background:#EEF2FF;color:#3730A3;font-size:12px;padding:9px 46px;text-align:center}
.cv.tpl-bars .body{display:flex;gap:30px;padding:22px 46px 0}
.cv.tpl-bars .l{flex:1.7}.cv.tpl-bars .r{flex:1}
.cv.tpl-bars h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#4338CA;margin:14px 0 8px}
.cv.tpl-bars .lvl{margin-bottom:9px}
.cv.tpl-bars .lvl .ln{display:flex;justify-content:space-between;font-size:11.5px;color:#475569;margin-bottom:3px}
.cv.tpl-bars .bar{height:7px;background:#E0E7FF;border-radius:4px;overflow:hidden}
.cv.tpl-bars .bar i{display:block;height:100%;background:#4338CA;border-radius:4px}
.cv.tpl-bars .tags span{display:inline-block;background:#EEF2FF;color:#4338CA;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Formal */
.cv.tpl-formal{display:block;padding:0 0 44px;font-family:'Fraunces',Georgia,serif;color:#1a1a1a}
.cv.tpl-formal .fm-head{background:#0f2747;color:#fff;padding:30px 50px}
.cv.tpl-formal h1{font-size:30px;margin:0;letter-spacing:.4px}
.cv.tpl-formal .fm-head .role{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#aebfd6;margin-top:4px;font-family:'Manrope',sans-serif}
.cv.tpl-formal .fm-contact{font-size:12px;color:#444;padding:10px 50px;border-bottom:1px solid #ddd;font-family:'Manrope',sans-serif}
.cv.tpl-formal h2{font-size:15px;color:#0f2747;border-bottom:1px solid #c9ced6;padding-bottom:3px;margin:18px 50px 8px}
.cv.tpl-formal>p,.cv.tpl-formal>.item{margin-left:50px;margin-right:50px;text-align:justify;font-family:'Manrope',sans-serif}
.cv.tpl-formal .item{text-align:left}

/* Banner com Foto */
.cv.tpl-banner{display:block;padding:0 0 36px}
.cv.tpl-banner .bn-head{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(120deg,#0EA5A4,#0F766E);color:#fff;padding:40px 46px}
.cv.tpl-banner .bn-head img,.cv.tpl-banner .bn-head .ph{width:110px;height:110px;border-radius:16px;object-fit:cover;background:rgba(255,255,255,.22);display:grid;place-items:center;font-size:42px;font-weight:800;border:3px solid rgba(255,255,255,.55)}
.cv.tpl-banner h1{font-size:32px;margin:0}
.cv.tpl-banner .bn-head .role{font-size:15px;opacity:.95}
.cv.tpl-banner .bn-contact{background:#0b3b39;color:#bdf0ec;font-size:12px;padding:9px 46px;text-align:center}
.cv.tpl-banner .body{display:flex;gap:30px;padding:22px 46px 0}
.cv.tpl-banner .l{flex:1.7}.cv.tpl-banner .r{flex:1}
.cv.tpl-banner h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#0F766E;margin:14px 0 8px}
.cv.tpl-banner .tags span{display:inline-block;background:#ECFDF5;color:#0F766E;border-radius:6px;padding:3px 9px;font-size:12px;margin:0 5px 5px 0}

/* Minimalista (mono) */
.cv.tpl-mono{display:block;padding:60px 60px;color:#1a1a1a}
.cv.tpl-mono .mn-head{margin-bottom:26px}
.cv.tpl-mono h1{font-size:38px;font-weight:300;letter-spacing:1px;margin:0}
.cv.tpl-mono .role{font-size:12px;letter-spacing:.32em;text-transform:uppercase;color:#777;margin-top:8px}
.cv.tpl-mono .mn-head .c{font-size:12px;color:#777;margin-top:10px}
.cv.tpl-mono h2{font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:#111;margin:24px 0 8px}
.cv.tpl-mono .item .t{font-weight:600}
.cv.tpl-mono p{color:#333}

/* ============ Trabalho: seletor de nível + capa por nível ============ */
.tr-levels{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px}
.tr-levels .trl{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:var(--surface);border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;text-align:left}
.tr-levels .trl b{font-size:14px;color:var(--ink)}
.tr-levels .trl span{font-size:11px;color:var(--muted)}
.tr-levels .trl.on{border-color:var(--blue);background:var(--blue-soft)}
.tr-levels .trl.on b{color:var(--blue-d)}
.subtema-capa{font-size:15px;font-style:italic;margin-top:8px;color:#333}
.cap-ident{text-align:center;font-size:13px;line-height:1.8;margin-top:40px}
.tl-ciclo1 .tema-capa{font-size:21px}

/* ============ Trabalho: estilos de capa ============ */
.tr-styles{display:flex;gap:8px;overflow-x:auto;padding-bottom:10px;-webkit-overflow-scrolling:touch}
.tr-styles .tre{flex:0 0 auto;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 13px;font-size:12.5px;font-weight:600;color:var(--text);cursor:pointer;white-space:nowrap}
.tr-styles .tre.on{background:var(--blue);border-color:var(--blue);color:#fff}
/* Moldura */
.est-moldura .capa{border:3px double #1f3a5f}
/* Faixa de Cor */
.est-faixa .capa .cap-head{background:#1d4ed8;color:#fff;padding:14px 12px;border-radius:6px}
.est-faixa .tema-capa{color:#1d4ed8;border-bottom:3px solid #1d4ed8;display:inline-block;padding-bottom:6px}
.est-faixa h3{color:#1d4ed8}
/* Formal Azul */
.est-azul .capa{border-top:5px solid #0f2747;border-bottom:5px solid #0f2747}
.est-azul .tema-capa{color:#0f2747}
.est-azul h3{color:#0f2747;border-bottom:1px solid #cdd6e4;padding-bottom:3px}
/* Linha Lateral */
.est-linha .capa{border-left:10px solid #C2410C}
.est-linha .tema-capa{border-bottom:2px solid #C2410C;display:inline-block;padding-bottom:5px}
.est-linha h3{color:#C2410C}

/* ============================================================
   DESIGN PRO — camada de polimento premium (estilo SaaS/shadcn)
   Leve, nativo, sem frameworks. Refina sem quebrar.
   ============================================================ */
:root{
  --ring:0 0 0 3px rgba(37,99,235,.20);
  --elev-1:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.07);
  --elev-2:0 4px 10px -2px rgba(16,24,40,.10),0 2px 6px -2px rgba(16,24,40,.06);
  --elev-3:0 16px 32px -8px rgba(16,24,40,.16),0 6px 12px -6px rgba(16,24,40,.10);
}
*{-webkit-tap-highlight-color:transparent}
body{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }

/* Cartões: borda fina + sombra suave em camadas */
.card{ border:1px solid var(--line); box-shadow:var(--elev-1); border-radius:16px; transition:box-shadow .2s ease, border-color .2s ease; }
.card:hover{ box-shadow:var(--elev-2); }

/* Cartões de ferramenta (home): hover-lift + ícone com tinta */
.tool{ box-shadow:var(--elev-1); transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease; }
.tool:hover{ transform:translateY(-3px); box-shadow:var(--elev-3); border-color:var(--blue-soft); }
.tool:active{ transform:translateY(-1px) scale(.99); }
.tool .ic{ background:linear-gradient(135deg,var(--blue-soft),#fff); color:var(--blue-d); box-shadow:inset 0 0 0 1px rgba(37,99,235,.12); }
[data-theme="dark"] .tool .ic{ background:linear-gradient(135deg,rgba(37,99,235,.22),transparent); }

/* Botões premium */
.btn{ border-radius:13px; font-weight:700; transition:transform .12s ease, box-shadow .2s ease, filter .2s ease, background .2s ease, border-color .2s ease; }
.btn.primary,.btn.g{ box-shadow:0 1px 2px rgba(29,78,216,.22),0 10px 20px -8px rgba(37,99,235,.55); }
.btn.primary:hover,.btn.g:hover{ filter:brightness(1.05); box-shadow:0 2px 6px rgba(29,78,216,.28),0 14px 26px -8px rgba(37,99,235,.6); }
.btn:active{ transform:translateY(1px) scale(.99); }
.btn.ghost:hover{ border-color:var(--blue); color:var(--blue-d); background:var(--blue-soft); }
.btn:focus-visible{ outline:none; box-shadow:var(--ring); }

/* Inputs modernos com anel de foco */
input,textarea,select{ border-radius:12px; transition:border-color .15s ease, box-shadow .15s ease, background .15s ease; }
input:focus,textarea:focus,select:focus{ border-color:var(--blue)!important; box-shadow:var(--ring); outline:none; }

/* Feature cards (landing): hover-lift + ícone em chip */
.lp-feat{ transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.lp-feat:hover{ transform:translateY(-4px); box-shadow:var(--elev-3); border-color:var(--blue-soft); }
.lp-feat .fi{ background:linear-gradient(135deg,var(--blue-soft),#fff); color:var(--blue-d); border-radius:14px; box-shadow:inset 0 0 0 1px rgba(37,99,235,.12); }
[data-theme="dark"] .lp-feat .fi{ background:linear-gradient(135deg,rgba(37,99,235,.22),transparent); }

/* Dashboard de ícones (cat): hover-lift */
.cat{ transition:transform .16s ease; }
.cat:hover{ transform:translateY(-2px); }
.cat:active .cc{ transform:scale(.94); }
.cat .cc{ transition:transform .15s ease, box-shadow .2s ease; }

/* Nav inferior: ícone ativo com leve realce */
.nav button{ transition:color .18s ease; }
.nav button .ni{ transition:transform .18s ease; }
.nav button.active .ni{ transform:translateY(-1px) scale(1.08); }
.nav button.active::before{ box-shadow:0 0 10px rgba(37,99,235,.5); }

/* Pills/tags refinados */
.pill,.tag{ transition:background .15s ease, color .15s ease; }

/* Segmentos (toggle) modernos */
.seg{ background:var(--bg-2); border-radius:12px; padding:4px; gap:4px; }
.seg button{ border-radius:9px; transition:background .18s ease, color .18s ease, box-shadow .18s ease; }
.seg button.on{ background:var(--surface); color:var(--blue-d); box-shadow:var(--elev-1); }

/* Cabeçalhos de secção mais nítidos */
.section-label,.subhead{ letter-spacing:.04em; }

/* Scrollbar discreta (desktop) */
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:8px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--soft)}

/* Movimento reduzido: respeita preferências do utilizador */
@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }

/* ============================================================
   INSTITUTION CORE — acento dourado (kit premium) + logo
   ============================================================ */
:root{
  --accent-gold:#F59E0B; --accent-gold-2:#FCD34D; --accent-gold-soft:#FEF3C7;
  --grad-gold-accent:linear-gradient(135deg,#F59E0B,#FCD34D);
}
/* badge "7 dias grátis" com brilho dourado premium */
.lp-trial{ border-color:rgba(245,158,11,.55); box-shadow:0 0 0 1px rgba(245,158,11,.15), 0 8px 22px -8px rgba(245,158,11,.5); }
.lp-trial b{ color:var(--accent-gold-2); }
/* eyebrow dourado nítido */
.lp-hero .eyebrow{ color:var(--accent-gold-2); border-color:rgba(245,158,11,.45); }
/* marca: capelo dourado é o destaque — moldura do mark mais clara */
.lp-hero .lp-mark img{ background:#fff; box-shadow:0 24px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(245,158,11,.4); padding:10px; }
.lp-hero .lp-brand img,.logo .mark-img{ background:#fff; }
/* fio dourado fino para títulos de secção premium (opcional, subtil) */
.section-label{ position:relative; }
.section-label::after{ content:""; display:inline-block; width:18px; height:2px; background:var(--grad-gold-accent); border-radius:2px; margin-left:8px; vertical-align:middle; opacity:.9; }
/* pílulas/realces dourados onde fizer sentido */
.gold-pill{ background:var(--accent-gold-soft); color:#92500A; border:1px solid rgba(245,158,11,.3); border-radius:999px; padding:3px 10px; font-size:12px; font-weight:700; }

/* ============================================================
   INSTITUTION CORE — REBRAND PROFUNDO (kit premium)
   ============================================================ */
:root{
  --blue:#2563EB; --blue-d:#153EBD; --blue-bright:#60A5FA; --blue-soft:#EEF3FF;
  --navy:#0B1736; --navy-2:#10265C;
  --bg:#F6F9FE; --bg-2:#EEF3FF; --surface:#FFFFFF; --surface-2:#F8FAFC;
  --ink:#0F1B36; --text:#33415A; --muted:#64748B; --soft:#94A3B8;
  --line:#DCE5F2; --line-2:#C7D6EA;
  --gold:var(--blue); --gold-bright:var(--blue-bright); --gold-soft:var(--blue-soft);
  --disp:'Manrope',system-ui,sans-serif;
  --r:18px; --r-sm:12px; --r-lg:24px;
  --grad-gold:linear-gradient(135deg,#153EBD,#2563EB);
  --grad-yellow:linear-gradient(135deg,#2563EB,#60A5FA);
  --grad-brand:linear-gradient(140deg,#0B1736 0%,#153EBD 58%,#2563EB 100%);
  --shadow:0 1px 2px rgba(15,23,42,.05),0 10px 30px rgba(15,23,42,.08);
  --shadow-lg:0 24px 60px rgba(15,23,42,.16);
}
[data-theme="dark"]{
  --bg:#09111F; --bg-2:#13213F; --surface:#101A2E; --surface-2:#0D1626;
  --ink:#F8FAFC; --text:#CBD5E1; --muted:#94A3B8; --soft:#7C8BA3;
  --line:#22324D; --line-2:#2C3F5E; --blue-soft:#13213F;
}
/* Heróis institucionais navy → azul */
.lp-hero, .hero3{ background:var(--grad-brand)!important; }
.adm-hero{ background:var(--grad-brand)!important; color:#fff; }
.statuscard{ background:var(--grad-brand)!important; }
.statuscard .sc-label{ color:var(--accent-gold-2); }
.statuscard .sc-btn{ background:var(--grad-gold-accent); color:#3A2A05; }
/* Topbar translúcida sobre off-white */
.topbar{ background:color-mix(in srgb,var(--bg) 82%,transparent); border-bottom:1px solid var(--line); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); }
/* Acentos no azul-700 do kit */
.section-label, .subhead, .plan .pname{ color:var(--blue-d); }
/* Cantos uniformes do kit nos blocos principais */
.card,.plan,.vaga,.post{ border-radius:18px; }

/* Ícones SVG da navegação (kit: sem emojis) */
.nav .ni{width:23px;height:23px;display:block;font-size:0}
.nav button.active .ni{transform:translateY(-1px) scale(1.06)}

/* Splash mais leve e on-brand (kit) */
#splash{ background:var(--grad-brand)!important; gap:13px; }
#splash img{ width:84px; border-radius:22px; padding:7px; background:#fff; box-shadow:0 14px 34px rgba(11,23,54,.45); }
#splash .st{ color:#fff; font-weight:700; font-size:21px; }
#splash .st b{ color:var(--accent-gold-2); font-style:normal; font-weight:800; }
#splash .ss{ color:rgba(255,255,255,.6); }
#splash .bar i{ background:var(--grad-gold-accent); }

/* ============ Landing renovada (kit Institution Core) ============ */
.lp-kicker{ color:var(--accent-gold)!important; }
.lp-step .sn{ background:var(--grad-gold-accent); color:#3A2A05; }
.lp-final{ background:var(--grad-brand); }
.lp-final .lp-h2{ color:#fff; }
.lp-foot{ background:var(--navy); }

/* Grelha de ferramentas: chips coerentes + SVG (kit) */
.cat .cc{ background:linear-gradient(135deg,var(--blue-soft),#fff)!important; color:var(--blue-d); box-shadow:var(--elev-1),inset 0 0 0 1px rgba(37,99,235,.10); }
.cat .cc svg{ width:26px; height:26px; display:block; }
[data-theme="dark"] .cat .cc{ background:linear-gradient(135deg,rgba(37,99,235,.20),transparent)!important; color:var(--blue-bright); }
/* Ícones SVG no menu lateral */
.drawer .dlink svg,.drawer a svg,.drawer button svg{ width:20px; height:20px; flex:0 0 auto; }

/* Ícones SVG do menu lateral (cor e tamanho) */
.drawer .di{ display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; color:var(--blue-d); }
.drawer .di svg{ width:20px; height:20px; display:block; }
.drawer a.danger .di{ color:var(--red); }
[data-theme="dark"] .drawer .di{ color:var(--blue-bright); }

/* Passe final: barra "Angola" com dourado real (vermelho · dourado · preto) */
.footer .ao, .lp-foot .ao{ background:linear-gradient(90deg,var(--red),var(--accent-gold),#0B0B10)!important; }

/* ============ Planos — foco em conversão (kit) ============ */
.plan{ border-radius:18px; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.plan.feat{ border:2px solid var(--accent-gold); box-shadow:0 0 0 4px rgba(245,158,11,.12), var(--elev-3); background:linear-gradient(180deg,#FFFDF6,#fff); }
[data-theme="dark"] .plan.feat{ background:linear-gradient(180deg,rgba(245,158,11,.07),transparent); }
.plan .badge-top{ background:var(--grad-gold-accent); color:#3A2A05; box-shadow:0 8px 18px -5px rgba(245,158,11,.6); }
.plan li:before{ content:"✓"; color:var(--green); font-weight:800; left:3px; }
.plan li{ padding-left:26px; }
.plan.feat .price{ color:var(--blue-d); }
.plan .btn.primary{ background:var(--grad-gold); }

/* ============ Animação de entrada dos ecrãs (app premium) ============ */
.screen.active{ animation:scrIn .32s cubic-bezier(.22,.8,.3,1); }
@keyframes scrIn{ from{opacity:0; transform:translateY(10px)} to{opacity:1; transform:translateY(0)} }
@media (prefers-reduced-motion:reduce){ .screen.active{ animation:none } }

/* ============ Estado vazio bonito ============ */
.empty{ text-align:center; padding:34px 20px; color:var(--muted); }
.empty .ei{ width:64px; height:64px; margin:0 auto 14px; border-radius:20px; display:grid; place-items:center; background:linear-gradient(135deg,var(--blue-soft),#fff); color:var(--blue-d); box-shadow:var(--elev-1),inset 0 0 0 1px rgba(37,99,235,.10); }
.empty .ei svg{ width:30px; height:30px; }
.empty h4{ margin:0 0 4px; font-size:16px; color:var(--ink); font-family:var(--disp); }
.empty p{ margin:0 auto; font-size:13.5px; max-width:280px; line-height:1.5; }
[data-theme="dark"] .empty .ei{ background:linear-gradient(135deg,rgba(37,99,235,.2),transparent); color:var(--blue-bright); }

/* ============ Ecrã de pagamento — premium (passos ①②③) ============ */
.pay-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; gap:10px; }
.pay-plan-badge{ background:var(--accent-gold-soft); color:#92500A; border:1px solid rgba(245,158,11,.35); border-radius:999px; padding:4px 13px; font-size:12px; font-weight:800; }
.pay-amount{ background:var(--grad-brand)!important; box-shadow:0 12px 28px -10px rgba(11,23,54,.6); }
.pay-amount .v{ color:var(--accent-gold-2)!important; }
.pay-step{ display:flex; gap:12px; align-items:flex-start; margin-bottom:13px; }
.pay-step .sn{ flex:0 0 auto; width:27px; height:27px; border-radius:50%; background:var(--grad-gold-accent); color:#3A2A05; font-weight:800; font-size:13px; display:grid; place-items:center; margin-top:1px; box-shadow:0 4px 10px -3px rgba(245,158,11,.6); }
.pay-step .sc{ flex:1; min-width:0; }
.pay-step .sc>label{ display:block; font-size:12.5px; font-weight:700; color:var(--blue-d); margin-bottom:6px; }
.pay-step .sc>label + #pgDest, .pay-step .sc #pgDest{ margin-top:0; }
.pay-dest{ background:var(--blue-soft)!important; border:1px dashed var(--blue)!important; }

/* ============ Cartões dinâmicos — microdetalhes premium ============ */
.post .av{ background:var(--grad-brand)!important; color:#fff!important; box-shadow:0 4px 10px -3px rgba(11,23,54,.5); }
.post .ph{ margin-bottom:11px; }
.cmt-toggle svg{ width:16px; height:16px; vertical-align:-3px; margin-right:5px; }
/* Vaga: etiqueta verificada + chips */
.vaga{ border-radius:18px; }
.vaga .jverif{ float:right; display:inline-flex; align-items:center; gap:4px; background:rgba(22,163,74,.10); color:var(--green); border:1px solid rgba(22,163,74,.30); font-size:10.5px; font-weight:800; padding:3px 9px; border-radius:999px; }
.vaga .jchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:9px; }
.vaga .jchip{ display:inline-flex; align-items:center; gap:5px; background:var(--blue-soft); color:var(--blue-d); border-radius:8px; padding:4px 9px; font-size:11.5px; font-weight:600; }
.vaga .jchip svg{ width:13px; height:13px; }

/* ============ Modais e toasts — premium ============ */
.modal{ background:rgba(11,23,54,.55); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }
.modal.open{ animation:modalBg .26s ease; }
@keyframes modalBg{ from{opacity:0} to{opacity:1} }
.sheet{ border-radius:28px 28px 0 0; box-shadow:0 -20px 50px rgba(11,23,54,.28); animation:up .34s cubic-bezier(.22,.8,.3,1); }
.sheet::before{ content:""; display:block; width:42px; height:5px; border-radius:3px; background:var(--line-2); margin:-12px auto 18px; }
.sheet .switch b{ color:var(--blue-d); }
/* Toast com slide-up + fade */
.toast{ transform:translateX(-50%) translateY(16px); }
.toast.show{ transform:translateX(-50%) translateY(0); }

/* ============ Onboarding — visual navy/dourado ============ */
.ob-card{ border-radius:28px 28px 0 0; }
.ob-card::before{ content:""; display:block; width:42px; height:5px; border-radius:3px; background:var(--line-2); margin:-12px auto 18px; }
.ob-icon{ width:74px; height:74px; margin:4px auto 16px; border-radius:24px; display:grid; place-items:center; background:var(--grad-brand); color:#fff; box-shadow:0 16px 32px -10px rgba(11,23,54,.6), 0 0 0 1px rgba(245,158,11,.35); }
.ob-icon svg{ width:34px; height:34px; }
.ob-card h2{ font-family:var(--disp); color:var(--ink); }
.ob-dots span.on{ background:var(--blue-d); }

/* ============ Barra de ações fixa (ecrãs de criação) ============ */
#actionBar{ position:fixed; left:50%; transform:translateX(-50%); bottom:calc(60px + env(safe-area-inset-bottom)); width:100%; max-width:520px; padding:10px 16px 12px; background:color-mix(in srgb,var(--bg) 86%,transparent); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); border-top:1px solid var(--line); display:none; z-index:39; }
#actionBar.show{ display:block; animation:abIn .28s cubic-bezier(.22,.8,.3,1); }
@keyframes abIn{ from{opacity:0; transform:translateX(-50%) translateY(10px)} to{opacity:1; transform:translateX(-50%) translateY(0)} }
#actionBar .btn{ box-shadow:0 8px 22px -6px rgba(37,99,235,.55); }
#actionBar .btn svg{ width:18px; height:18px; }
body.has-actionbar #screen-cv, body.has-actionbar #screen-trabalho{ padding-bottom:86px; }

/* SVG em botões da topbar, segmentos e ações */
.themebtn svg, .bell svg{ width:21px; height:21px; display:block; }
.themebtn, .bell{ display:flex; align-items:center; justify-content:center; }
.btn svg{ width:18px; height:18px; flex:0 0 auto; }
.seg button svg{ width:15px; height:15px; vertical-align:-2px; margin-right:3px; }

/* Ícones SVG no histórico */
.hist .hi{ color:var(--blue-d); }
.hist .hi svg{ width:18px; height:18px; }

/* Ícones SVG nos cartões de estatística */
.statcard .ico{ color:var(--blue-d); }
.statcard .ico svg{ width:27px; height:27px; display:block; }
.winner svg{ width:17px; height:17px; vertical-align:-3px; }

/* SVG no compositor e cartões "Sobre" */
.btn svg{ width:18px; height:18px; flex:0 0 auto; }
.feat-row .fi{ color:var(--blue-d); display:inline-flex; }
.feat-row .fi svg{ width:22px; height:22px; }

/* ============================================================
   ACESSIBILIDADE — áreas de toque ≥44px + contraste
   ============================================================ */
/* Áreas de toque mínimas */
.btn.sm{ min-height:44px; }
.cmt-toggle{ padding:11px 8px; min-height:44px; display:inline-flex; align-items:center; }
.themebtn,.bell,.back,.drawer .x,.acct{ min-width:44px; min-height:44px; }
.cmt .cdel{ padding:8px; display:inline-block; }
.seg button{ min-height:42px; }
/* Contraste de textos secundários */
.nav button{ color:var(--muted); }
.post .when{ color:var(--muted); }
.hist .hw{ color:var(--muted); }
.cat .lockb{ background:var(--navy); }
/* Foco visível também em links e elementos clicáveis */
a:focus-visible, [onclick]:focus-visible, .cat:focus-visible, .tool:focus-visible{ outline:none; box-shadow:var(--ring); border-radius:10px; }
/* Alvo de toque para "apagar" inline nas publicações */
.post span[onclick]{ padding:6px 8px; display:inline-block; }

/* ============ Perfil — cabeçalho premium ============ */
.pf-head{ background:var(--grad-brand); border-radius:22px; padding:26px 20px 20px; text-align:center; color:#fff; box-shadow:var(--elev-2); margin-bottom:16px; }
.pf-head #pfAvatar .avatar{ box-shadow:0 0 0 4px rgba(255,255,255,.22), 0 10px 26px rgba(11,23,54,.5); }
.pf-name{ font-family:var(--disp); font-weight:700; font-size:20px; margin-top:12px; }
.pf-meta{ font-size:12.5px; color:rgba(255,255,255,.78); margin-top:3px; display:flex; gap:8px; align-items:center; justify-content:center; flex-wrap:wrap; }
.pf-plan{ background:var(--grad-gold-accent); color:#3A2A05; font-weight:800; font-size:10.5px; letter-spacing:.06em; padding:3px 9px; border-radius:999px; }
.pf-photo{ display:inline-flex; align-items:center; margin-top:16px; cursor:pointer; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); color:#fff; font-weight:700; font-size:13px; padding:10px 18px; border-radius:11px; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }

/* Abas do ecrã Imagem → PDF */
.scan-tabs button{ font-size:12.5px; padding:11px 4px; }

/* Overlay "a processar foto" na foto passe */
.foto-loading{ position:absolute; top:0; right:0; bottom:0; left:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; background:rgba(11,23,54,.82); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); border-radius:var(--r); color:#fff; font-weight:600; font-size:14px; z-index:5; }
.foto-loading.hidden{ display:none; }
.fl-spin{ width:34px; height:34px; border-radius:50%; border:3px solid rgba(255,255,255,.25); border-top-color:var(--accent-gold-2); animation:flspin .8s linear infinite; }
@keyframes flspin{ to{ transform:rotate(360deg); } }

/* Miniaturas do Imagem→PDF: tocar para recortar + ícones claros */
.scan-th .sc-img{ position:relative; cursor:pointer; }
.scan-th .sc-edit{ position:absolute; left:6px; bottom:6px; display:inline-flex; align-items:center; gap:4px; background:rgba(11,23,54,.82); color:#fff; font-size:11px; font-weight:700; padding:5px 9px; border-radius:9px; pointer-events:none; }
.scan-th .sc-edit svg{ width:13px; height:13px; }
.scan-th .sc-tools button{ display:inline-flex; align-items:center; justify-content:center; min-width:38px; min-height:38px; }
.scan-th .sc-tools button svg{ width:18px; height:18px; }
.scan-th .sc-tools button.prim{ color:var(--blue-d); }
.scan-th .sc-tools button.rm{ color:var(--red); }

/* Bilhete: imagens tocáveis para recortar */
.bi-slot.has-img{ position:relative; cursor:pointer; }
.bi-slot.has-img .sc-edit{ position:absolute; left:6px; bottom:6px; display:inline-flex; align-items:center; gap:4px; background:rgba(11,23,54,.82); color:#fff; font-size:11px; font-weight:700; padding:5px 9px; border-radius:9px; pointer-events:none; }
.bi-slot.has-img .sc-edit svg{ width:13px; height:13px; }

/* ============================================================
   ASSISTENTE FLUTUANTE (chatbot fixo)
   ============================================================ */
.bot-fab{ position:fixed; right:16px; bottom:calc(72px + env(safe-area-inset-bottom)); width:58px; height:58px; border-radius:50%; border:none; background:var(--grad-brand); color:#fff; box-shadow:0 12px 28px -6px rgba(11,23,54,.65), 0 0 0 1px rgba(245,158,11,.3); display:flex; align-items:center; justify-content:center; cursor:pointer; z-index:60; transition:transform .2s ease; }
.bot-fab:active{ transform:scale(.92); }
.bot-fab svg{ width:27px; height:27px; }
.bot-fab .bf-close{ display:none; }
.bot-fab.open .bf-chat{ display:none; }
.bot-fab.open .bf-close{ display:block; }
.bot-fab::after{ content:""; position:absolute; inset:-4px; border-radius:50%; border:2px solid var(--accent-gold); opacity:0; animation:botpulse 2.6s ease-out infinite; }
@keyframes botpulse{ 0%{opacity:.5; transform:scale(1)} 70%{opacity:0; transform:scale(1.35)} 100%{opacity:0} }
#app.landing .bot-fab, #app.landing .bot-panel{ display:none!important; }

.bot-panel{ position:fixed; right:16px; bottom:calc(140px + env(safe-area-inset-bottom)); width:min(384px, calc(100vw - 24px)); height:min(72vh, 560px); background:var(--surface); border:1px solid var(--line); border-radius:22px; box-shadow:0 30px 70px rgba(11,23,54,.32); display:none; flex-direction:column; overflow:hidden; z-index:60; }
.bot-panel.open{ display:flex; animation:botin .28s cubic-bezier(.22,.8,.3,1); }
@keyframes botin{ from{opacity:0; transform:translateY(16px) scale(.98)} to{opacity:1; transform:none} }
.bot-head{ display:flex; align-items:center; gap:11px; padding:14px 14px; background:var(--grad-brand); color:#fff; }
.bot-ava{ width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.16); display:grid; place-items:center; flex:0 0 auto; box-shadow:0 0 0 1px rgba(245,158,11,.45); }
.bot-ava svg{ width:23px; height:23px; }
.bot-meta{ flex:1; min-width:0; }
.bot-name{ font-weight:800; font-size:15px; font-family:var(--disp); }
.bot-stat{ font-size:11.5px; color:rgba(255,255,255,.72); display:flex; align-items:center; gap:5px; }
.bot-stat::before{ content:""; width:7px; height:7px; border-radius:50%; background:#34D399; box-shadow:0 0 0 2px rgba(52,211,153,.3); }
.bot-x{ width:34px; height:34px; border-radius:10px; border:none; background:rgba(255,255,255,.14); color:#fff; cursor:pointer; display:grid; place-items:center; }
.bot-x svg{ width:18px; height:18px; }
.bot-msgs{ flex:1; overflow-y:auto; padding:16px 14px; display:flex; flex-direction:column; gap:10px; background:var(--bg-2); }
.bmsg2{ max-width:84%; padding:10px 13px; border-radius:16px; font-size:13.5px; line-height:1.5; white-space:pre-wrap; word-wrap:break-word; box-shadow:0 1px 2px rgba(15,23,42,.06); }
.bmsg2.user{ align-self:flex-end; background:var(--grad-gold); color:#fff; border-bottom-right-radius:5px; }
.bmsg2.bot{ align-self:flex-start; background:var(--surface); color:var(--text); border:1px solid var(--line); border-bottom-left-radius:5px; }
.bmsg2.bot b{ color:var(--ink); }
.bmsg2.typing{ color:var(--muted); font-style:italic; }
.bot-quick{ display:flex; gap:7px; flex-wrap:wrap; padding:0 14px 8px; background:var(--bg-2); }
.bot-quick button{ background:var(--surface); border:1px solid var(--line-2); color:var(--blue-d); font-size:12px; font-weight:600; padding:7px 11px; border-radius:999px; cursor:pointer; }
.bot-inputbar{ display:flex; gap:8px; padding:10px 12px; border-top:1px solid var(--line); background:var(--surface); align-items:center; }
.bot-inputbar input{ flex:1; border:1px solid var(--line-2); border-radius:999px; padding:11px 15px; font-size:14px; background:var(--surface-2); color:var(--ink); }
.bot-inputbar input:focus{ outline:none; border-color:var(--blue); box-shadow:var(--ring); }
.bot-send{ width:44px; height:44px; flex:0 0 auto; border-radius:50%; border:none; background:var(--grad-gold); color:#fff; display:grid; place-items:center; cursor:pointer; box-shadow:0 6px 16px -5px rgba(37,99,235,.6); }
.bot-send svg{ width:19px; height:19px; }

/* ============================================================
   COMUNIDADE — comentários estilo redes sociais (TikTok-like)
   ============================================================ */
/* Foto de quem publica */
.post .av.has-img{ padding:0; overflow:hidden; }
.post .av.has-img img{ width:100%; height:100%; object-fit:cover; display:block; }

.cmt-list{ display:flex; flex-direction:column; gap:14px; padding:6px 2px 12px; }
.c-item{ display:flex; gap:10px; align-items:flex-start; }
.c-av{ width:34px; height:34px; border-radius:50%; flex:0 0 auto; overflow:hidden; display:grid; place-items:center; background:var(--blue-soft); }
.c-av img{ width:100%; height:100%; object-fit:cover; display:block; }
.c-av.ini{ background:var(--grad-brand); color:#fff; font-weight:800; font-size:14px; }
.c-item.reply .c-av{ width:28px; height:28px; font-size:12px; }
.c-main{ flex:1; min-width:0; }
.c-bubble{ background:var(--surface-2); border:1px solid var(--line); border-radius:4px 16px 16px 16px; padding:8px 12px; display:inline-block; max-width:100%; }
.c-name{ display:block; font-weight:800; font-size:12.5px; color:var(--ink); margin-bottom:1px; }
.c-text{ font-size:13.5px; color:var(--text); line-height:1.45; white-space:pre-wrap; word-wrap:break-word; }
.c-meta{ display:flex; align-items:center; gap:14px; padding:5px 4px 0; }
.c-time{ font-size:11px; color:var(--muted); }
.c-actions{ display:flex; align-items:center; gap:14px; }
.c-like{ display:inline-flex; align-items:center; gap:4px; background:none; border:none; padding:4px 2px; cursor:pointer; color:var(--muted); font-size:12px; font-weight:700; min-height:30px; }
.c-like svg{ width:16px; height:16px; }
.c-like.on{ color:#EF4444; }
.c-reply{ background:none; border:none; padding:4px 2px; cursor:pointer; color:var(--muted); font-size:12px; font-weight:700; min-height:30px; }
.c-del{ background:none; border:none; padding:4px 2px; cursor:pointer; color:#EF4444; font-size:12px; font-weight:700; min-height:30px; }
.c-replies{ margin-top:12px; display:flex; flex-direction:column; gap:12px; padding-left:6px; border-left:2px solid var(--line); }
.c-replybox{ margin-top:8px; }
.c-replybox.hidden{ display:none; }
/* Caixa de adicionar comentário / responder */
.cmt-add{ display:flex; gap:9px; align-items:center; margin-top:6px; }
.cmt-add input{ flex:1; border:1px solid var(--line-2); border-radius:999px; padding:10px 15px; font-size:13.5px; background:var(--surface-2); color:var(--ink); }
.cmt-add input:focus{ outline:none; border-color:var(--blue); box-shadow:var(--ring); }
.cmt-add .c-av{ width:32px; height:32px; }
.cmt-add.reply .c-av{ width:28px; height:28px; }
.c-send{ border:none; background:var(--grad-gold); color:#fff; font-weight:800; font-size:12.5px; padding:9px 15px; border-radius:999px; cursor:pointer; flex:0 0 auto; }

/* ============================================================
   GALERIA DE MODELOS (CV / Trabalho) — capas em grelha
   ============================================================ */
.model-grid{ display:flex; flex-wrap:wrap; gap:12px; padding:0 2px 10px; }
.model-card{ width:calc(50% - 6px); }
.model-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--elev-1); }
.model-cover{ height:216px; overflow:hidden; background:#fff; position:relative; cursor:pointer; border-bottom:1px solid var(--line); }
.model-cover .cv{ transform:scale(0.235); transform-origin:top left; pointer-events:none; }
.model-cover .doc{ width:794px; transform:scale(0.235); transform-origin:top left; pointer-events:none; }
.model-cover .doc .page{ box-shadow:none; margin:0; }
.model-cover::after{ content:"Ver"; position:absolute; right:8px; bottom:8px; background:rgba(11,23,54,.85); color:#fff; font-size:10.5px; font-weight:800; padding:4px 9px; border-radius:999px; letter-spacing:.03em; }
.model-foot{ display:flex; align-items:center; justify-content:space-between; gap:6px; padding:9px 11px; }
.model-name{ font-size:12.5px; font-weight:700; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.model-foot .btn{ flex:0 0 auto; }
.model-title{ font-weight:800; font-family:var(--disp); font-size:16px; color:var(--ink); margin:2px 2px 12px; }
.modelback{ margin-bottom:12px; }

/* ============================================================
   FOTO DO AUTOR · CONTACTOS · FEEDBACK
   ============================================================ */
.author-row{ display:flex; align-items:center; gap:14px; }
.author-ava{ width:56px; height:56px; border-radius:50%; flex:0 0 auto; background:var(--grad-brand); color:#fff; display:grid; place-items:center; overflow:hidden; box-shadow:0 0 0 1px var(--line); }
.author-ava svg{ width:26px; height:26px; }
.author-ava img{ width:100%; height:100%; object-fit:cover; display:block; }
.author-ava.big{ width:72px; height:72px; }
.author-card{ display:flex; align-items:center; gap:14px; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:14px; margin:8px 0 14px; box-shadow:var(--elev-1); }
.author-name{ font-weight:800; font-family:var(--disp); font-size:16px; color:var(--ink); }
.author-role{ font-size:12.5px; color:var(--muted); margin-top:2px; }

.contact-row{ display:flex; align-items:center; gap:13px; padding:12px; border-radius:12px; text-decoration:none; color:inherit; }
.contact-row:active{ background:var(--surface-2); }
.contact-ic{ width:42px; height:42px; flex:0 0 auto; border-radius:12px; background:var(--blue-soft); color:var(--blue-d); display:grid; place-items:center; }
.contact-ic svg{ width:21px; height:21px; }
.contact-ic.wa{ background:#25D366; color:#fff; }
.contact-tx{ flex:1; min-width:0; display:flex; flex-direction:column; }
.contact-t{ font-size:11px; color:var(--muted); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.contact-s{ font-size:14px; color:var(--ink); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.contact-go{ width:18px; height:18px; color:var(--muted); flex:0 0 auto; }

.fb-item{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:13px 14px; margin-bottom:10px; position:relative; }
.fb-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.fb-head b{ font-size:13.5px; color:var(--ink); }
.fb-head span{ font-size:11px; color:var(--muted); }
.fb-text{ font-size:13.5px; color:var(--text); line-height:1.5; white-space:pre-wrap; }
.fb-del{ background:none; border:none; color:var(--red); font-size:12px; font-weight:700; cursor:pointer; padding:6px 0 0; }

/* ============================================================
   NOVIDADES — cartões tipo anúncio (premium)
   ============================================================ */
.news-stack{ display:flex; flex-direction:column; gap:14px; }
.news-ad{ position:relative; border-radius:20px; padding:20px 20px 18px; overflow:hidden; color:#fff; background:linear-gradient(135deg,#0B1736 0%,#16308A 55%,#2563EB 100%); box-shadow:0 18px 44px -14px rgba(11,23,54,.55); }
.news-ad.alt{ background:linear-gradient(135deg,#3b1d6e 0%,#5b2bb0 55%,#7c3aed 100%); }
.na-glow{ position:absolute; top:-44px; right:-34px; width:170px; height:170px; border-radius:50%; background:radial-gradient(circle, rgba(251,191,36,.4), rgba(251,191,36,0) 70%); pointer-events:none; }
.na-badge{ display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:800; letter-spacing:.14em; color:#FCD34D; text-transform:uppercase; margin-bottom:11px; }
.na-badge::before{ content:"✦"; font-size:12px; }
.na-tag{ display:inline-block; background:rgba(255,255,255,.16); color:#fff; font-size:11px; font-weight:700; padding:4px 12px; border-radius:999px; margin-bottom:11px; }
.na-title{ font-family:var(--disp); font-size:23px; font-weight:800; margin:0 0 9px; line-height:1.15; letter-spacing:-.01em; position:relative; }
.na-body{ font-size:14px; line-height:1.6; color:rgba(255,255,255,.86); margin:0 0 16px; position:relative; }
.na-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; position:relative; }
.na-date{ font-size:12px; color:rgba(255,255,255,.62); display:inline-flex; align-items:center; gap:7px; }
.na-date::before{ content:""; width:6px; height:6px; border-radius:50%; background:#FBBF24; box-shadow:0 0 0 3px rgba(251,191,36,.22); }
.na-brand{ font-size:11px; font-weight:800; color:rgba(255,255,255,.5); letter-spacing:.04em; }
.news-ad .del{ position:absolute; top:15px; right:16px; color:#fff; opacity:.65; font-size:12px; font-weight:700; cursor:pointer; z-index:2; }

/* ============================================================
   PUBLICAÇÕES — cartão mais visível (fundo branco nítido)
   ============================================================ */
.post{ background:var(--surface); border:1px solid var(--line-2); border-radius:18px; box-shadow:0 2px 8px rgba(15,23,42,.06), 0 14px 34px -12px rgba(15,23,42,.20); }
[data-theme="light"] .post{ background:#fff; }
.post .body{ color:var(--ink); }

/* ===== Histórico (IndexedDB) ===== */
.hist-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.hist-clear{ border:1px solid var(--line-2); background:transparent; color:var(--muted); font-size:12px; font-weight:600; padding:5px 12px; border-radius:999px; cursor:pointer; }
.hist-clear:active{ transform:scale(.96); }
.hist-grid{ display:flex; flex-wrap:wrap; gap:10px; }
.hist-item{ width:calc(33.333% - 7px); background:var(--surface); border:1px solid var(--line-2); border-radius:14px; overflow:hidden; display:flex; flex-direction:column; }
[data-theme="light"] .hist-item{ background:#fff; }
.hist-item img{ width:100%; height:96px; object-fit:cover; display:block; background:#fff; }
.hist-meta{ font-size:10.5px; color:var(--muted); padding:5px 7px 3px; line-height:1.2; }
.hist-actions{ display:flex; gap:5px; padding:0 7px 7px; }
.hist-actions button{ flex:1; border:none; background:var(--brand,#2563eb); color:#fff; border-radius:9px; padding:6px 0; font-size:12px; font-weight:600; cursor:pointer; }
.hist-actions button.del{ flex:0 0 38px; background:rgba(220,38,38,.12); color:#dc2626; }
.hist-actions button:active{ transform:scale(.96); }
@media(min-width:520px){ .hist-item{ width:calc(25% - 8px); } }

.hist-doc{ width:100%; height:96px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; color:#fff; }
.hist-doc svg{ width:30px; height:30px; }
.hist-doc span{ font-size:11px; font-weight:800; letter-spacing:.6px; }


/* ===== Lightbox (zoom de fotos) ===== */
.lightbox{position:fixed;inset:0;background:rgba(5,8,20,.94);z-index:9999;display:none;align-items:center;justify-content:center;padding:18px}
.lightbox.show{display:flex}
.lightbox img{max-width:94vw;max-height:82vh;border-radius:16px;box-shadow:0 14px 50px rgba(0,0,0,.55);background:#fff}
.lightbox .lb-close{position:absolute;top:14px;right:16px;width:46px;height:46px;border-radius:50%;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:22px;cursor:pointer}
.lightbox .lb-cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#fff;font-weight:700;font-size:15px;text-shadow:0 1px 4px rgba(0,0,0,.6)}

/* Botão cancelar votação (perigo) */
.btn.danger{ color:#dc2626; border-color:rgba(220,38,38,.35); }
.btn.ghost.danger{ background:rgba(220,38,38,.08); }
.btn.danger:active{ background:rgba(220,38,38,.16); }

/* ===== Dashboard de votação — Hero ===== */
.vhero{ background:linear-gradient(140deg,#0f1f47 0%,#1b3a7d 100%); border:none; box-shadow:0 10px 30px -12px rgba(15,31,71,.6); }
.vhero-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:12px; }
.vhero .subhead{ color:#fff; font-size:16px; line-height:1.25; }
.vhero .vote-timer{ background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.20); color:#fff; margin-bottom:12px; }
.vhero .vote-timer .lbl{ color:rgba(255,255,255,.82); }
.vhero .vprog{ background:rgba(255,255,255,.18); margin-bottom:2px; }
.vhero .vbadge.open{ background:rgba(255,255,255,.16); color:#fff; }
.vhero .vbadge.closed{ background:#FEE2E2; color:#B91C1C; }

/* ===== Imagem de resultados (estilo Buanga Digital) ===== */
.rp-sheet{ font-family:Arial,Helvetica,sans-serif; color:#10203a; width:720px; }
.rp-head{ background:linear-gradient(135deg,#1b2a4a,#27407a); color:#fff; padding:26px 30px; display:flex; align-items:center; justify-content:space-between; border-bottom:5px solid #e8843c; }
.rp-h1{ font-family:Georgia,'Times New Roman',serif; font-size:30px; font-weight:bold; }
.rp-h2{ font-size:16px; color:#c7d2e6; margin-top:6px; }
.rp-logo{ width:74px; height:74px; object-fit:contain; flex:0 0 auto; margin-left:16px; }
.rp-meta{ padding:15px 30px; color:#5b6b86; font-size:15px; border-bottom:1px solid #eef2f8; }
.rp-body{ padding:16px 30px 6px; }
.rp-cargo{ font-weight:800; color:#1b2a4a; margin:12px 0 6px; font-size:18px; }
.rp-row{ display:flex; align-items:center; gap:16px; padding:12px 0; border-bottom:1px solid #f0f3f9; }
.rp-av{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:2px solid #dbe3f0; flex:0 0 auto; }
.rp-row.win .rp-av{ border-color:#e8843c; border-width:3px; }
.rp-ini{ display:flex; align-items:center; justify-content:center; background:#e1e7f2; color:#7a8cb4; font-weight:800; font-size:26px; }
.rp-mid{ flex:1; min-width:0; }
.rp-name{ font-weight:700; font-size:19px; }
.rp-row.win .rp-name{ font-weight:800; }
.rp-sub{ color:#5b6b86; font-size:14px; margin:2px 0 8px; }
.rp-bar{ height:9px; background:#e8ecf4; border-radius:5px; overflow:hidden; }
.rp-bar>div{ height:100%; background:#2563eb; border-radius:5px; }
.rp-row.win .rp-bar>div{ background:#e8843c; }
.rp-winner{ background:#1b2a4a; color:#fff; padding:13px 18px; border-radius:10px; font-size:16px; margin:12px 0 6px; }
.rp-foot{ background:#1b2a4a; color:#d2dceb; text-align:center; font-size:13px; padding:14px; margin-top:14px; }

/* ===== Ecrã de instalação (Android + iPhone) ===== */
#installGate{ position:fixed; inset:0; z-index:9999; background:linear-gradient(160deg,#1b2a4a,#0e1830); display:none; align-items:center; justify-content:center; padding:24px; }
#installGate.show{ display:flex; }
.ig-card{ background:#fff; border-radius:24px; max-width:380px; width:100%; padding:30px 24px; text-align:center; box-shadow:0 24px 70px rgba(0,0,0,.45); animation:igPop .35s ease; }
@keyframes igPop{ from{ transform:translateY(14px) scale(.97); opacity:0 } to{ transform:none; opacity:1 } }
.ig-logo{ width:88px; height:88px; border-radius:22px; box-shadow:0 8px 22px rgba(37,99,235,.28); }
.ig-h{ font-size:23px; font-weight:800; color:#1b2a4a; margin:16px 0 6px; }
.ig-sub{ font-size:14px; color:#5b6b86; margin:0 0 18px; line-height:1.55; }
.ig-benes{ list-style:none; padding:0; margin:0 0 20px; text-align:left; }
.ig-benes li{ display:flex; align-items:center; gap:11px; font-size:14px; color:#27407a; font-weight:600; padding:8px 0; }
.ig-benes svg{ width:22px; height:22px; flex:0 0 auto; color:#2563eb; }
.ig-btn{ width:100%; font-size:16px; padding:15px; border-radius:14px; }
.ig-ios{ background:#f3f6fc; border:1px solid #dbe3f0; border-radius:14px; padding:14px 16px; text-align:left; font-size:14px; color:#27407a; }
.ig-iost{ margin:0 0 4px; font-weight:700; }
.ig-ios ol{ margin:6px 0 0; padding-left:20px; } .ig-ios li{ margin:6px 0; line-height:1.4; }
.ig-shr{ width:16px; height:16px; vertical-align:-3px; }
.ig-skip{ background:none; border:none; color:#94a2b8; font-size:13px; margin-top:18px; text-decoration:underline; cursor:pointer; }

/* ===== Foto obrigatória no registo ===== */
.au-foto{ display:flex; flex-direction:column; align-items:center; gap:8px; margin:6px 0 16px; }
.au-foto-wrap{ position:relative; width:94px; height:94px; border-radius:50%; background:#eef2fb; border:2px dashed #b9c6e0; display:flex; align-items:center; justify-content:center; cursor:pointer; overflow:hidden; transition:border-color .2s; }
.au-foto-wrap.has{ border-style:solid; border-color:#2563eb; }
.au-foto-prev{ width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#8fa2c4; }
.au-foto-prev svg{ width:38px; height:38px; }
.au-foto-prev img{ width:100%; height:100%; object-fit:cover; }
.au-foto-cam{ position:absolute; right:2px; bottom:2px; width:30px; height:30px; border-radius:50%; background:#2563eb; color:#fff; display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:700; line-height:1; border:2px solid #fff; }
.au-foto-lbl{ font-size:12.5px; color:#5b6b86; text-align:center; }
.au-foto-lbl b{ color:#e8843c; }

/* ===== Selo verificado + nível admin ===== */
.na-verified{ display:inline-flex; align-items:center; gap:5px; font-weight:800; color:#2563eb; }
.vbadge-ic{ width:16px; height:16px; flex:0 0 auto; }
.adm-only{ font-size:10px; font-weight:800; background:#1b2a4a; color:#fff; padding:2px 8px; border-radius:999px; vertical-align:middle; margin-left:6px; letter-spacing:.3px; }

/* ===== Modal de novidade do admin (sobreposto na inicial) ===== */
.news-modal{ position:fixed; inset:0; z-index:9995; background:rgba(11,23,54,.6); backdrop-filter:blur(4px); display:none; align-items:center; justify-content:center; padding:22px; }
.news-modal.show{ display:flex; }
.nm-card{ background:#fff; border-radius:22px; max-width:400px; width:100%; overflow:hidden; box-shadow:0 24px 70px rgba(0,0,0,.45); animation:nmPop .34s cubic-bezier(.22,.8,.3,1); }
@keyframes nmPop{ from{ transform:translateY(16px) scale(.96); opacity:0 } to{ transform:none; opacity:1 } }
.nm-head{ background:linear-gradient(135deg,#1b2a4a,#27407a); padding:14px 16px; display:flex; align-items:center; justify-content:space-between; }
.nm-brand{ display:inline-flex; align-items:center; gap:6px; color:#fff; font-weight:800; font-size:15px; }
.nm-brand .vbadge-ic{ width:17px; height:17px; }
.nm-x{ background:rgba(255,255,255,.16); border:none; color:#fff; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.nm-x svg{ width:18px; height:18px; }
.nm-body-wrap{ padding:20px; }
.nm-tag{ display:inline-block; background:#eef2fb; color:#27407a; font-size:11px; font-weight:800; padding:4px 12px; border-radius:999px; text-transform:uppercase; letter-spacing:.4px; }
.nm-title{ font-size:20px; font-weight:800; color:#1b2a4a; margin:12px 0 8px; line-height:1.25; }
.nm-body{ font-size:14.5px; color:#42506a; line-height:1.6; margin:0 0 14px; white-space:pre-wrap; }
.nm-date{ font-size:12px; color:#8a97ad; margin-bottom:16px; }
.nm-ok{ width:100%; padding:14px; border-radius:14px; font-size:15px; }

/* ===== Datatable de utilizadores (admin) ===== */
.urow{ background:var(--surface,#fff); border:1px solid var(--line,#e8edf5); border-radius:14px; padding:13px 14px; margin-bottom:10px; }
.urow-top{ display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.uinfo{ min-width:0; }
.uname{ font-weight:800; color:var(--text,#16233d); font-size:15px; }
.uemail{ font-size:12.5px; color:var(--soft,#64748b); word-break:break-all; }
.ubadges{ display:flex; flex-wrap:wrap; gap:4px; justify-content:flex-end; flex:0 0 auto; }
.upill{ font-size:9.5px; font-weight:800; padding:3px 8px; border-radius:999px; letter-spacing:.3px; }
.pl-free{ background:#eef2f8; color:#64748b; } .pl-pro{ background:#dbeafe; color:#1d4ed8; } .pl-max{ background:#1b2a4a; color:#fff; }
.st-ativo{ background:#dcfce7; color:#16a34a; } .st-bloq{ background:#fee2e2; color:#dc2626; } .st-adm{ background:#fef3c7; color:#b45309; }
.umeta{ font-size:11.5px; color:var(--soft,#8a97ad); margin:8px 0 10px; }
.uactions{ display:flex; flex-wrap:wrap; gap:7px; }
.uactions .usel{ width:auto; padding:8px 10px; font-size:12.5px; border-radius:9px; }
.uactions .btn.sm{ padding:8px 12px; font-size:12.5px; }
.uactions .ublock{ background:#dc2626; color:#fff; }
#admUserSearch{ width:100%; box-sizing:border-box; }

/* ===== Monitor / Auditoria (admin) ===== */
.mon-online-h{ font-weight:800; color:#16a34a; font-size:13px; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.dot-on{ width:9px; height:9px; border-radius:50%; background:#16a34a; display:inline-block; box-shadow:0 0 0 3px rgba(22,163,74,.18); animation:pulseOn 1.8s infinite; }
@keyframes pulseOn{ 0%,100%{opacity:1} 50%{opacity:.4} }
.monrow{ background:var(--surface,#fff); border:1px solid var(--line,#e8edf5); border-radius:13px; padding:12px 13px; margin-bottom:9px; cursor:pointer; transition:transform .08s ease, box-shadow .12s ease; }
.monrow:active{ transform:scale(.99); }
.monrow .umeta{ margin:7px 0 0; }
.au-head{ margin-bottom:12px; }
.au-stats{ display:flex; gap:8px; margin-bottom:12px; }
.au-st{ flex:1; background:#f3f6fc; border-radius:12px; padding:12px 8px; text-align:center; }
.au-st .n{ font-size:22px; font-weight:800; color:#1b2a4a; }
.au-st .l{ font-size:11px; color:#64748b; margin-top:2px; }
.au-evlist{ max-height:340px; overflow:auto; border:1px solid var(--line,#e8edf5); border-radius:12px; }
.auev{ display:flex; gap:10px; padding:9px 12px; border-bottom:1px solid #eef2f8; font-size:12.5px; }
.auev:last-child{ border-bottom:none; }
.auev-t{ color:#8a97ad; flex:0 0 118px; font-variant-numeric:tabular-nums; }
.auev-d{ color:#2a3550; }

/* foto do autor a preencher o avatar circular (criador) */
.avatar.has-img{ padding:0!important; overflow:hidden; }
.avatar.has-img img{ width:100%; height:100%; object-fit:cover; border-radius:50%; display:block; }

/* botão "Ver" no feed de atividade */
.hist{ display:flex; align-items:center; gap:10px; }
.hist .ht{ flex:1; min-width:0; }
.hist-ver{ margin-left:auto; flex:0 0 auto; background:#eef2fb; color:#2563eb; border:none; border-radius:9px; padding:7px 12px; font-size:12px; font-weight:800; cursor:pointer; }
.hist-ver:active{ transform:scale(.96); }

/* ===== Barra de progresso dourada (feedback de navegação/processamento) ===== */
#progress{ position:fixed; top:0; left:0; right:0; height:3px; z-index:10000; background:transparent; overflow:hidden; opacity:0; transition:opacity .18s ease; pointer-events:none; }
#progress.on{ opacity:1; }
#progress i{ display:block; height:100%; width:42%; border-radius:0 6px 6px 0; background:var(--grad-gold,linear-gradient(90deg,#E8B04B,#F4D58D)); box-shadow:0 0 10px rgba(232,176,75,.7); animation:progSlide 1.05s cubic-bezier(.4,0,.2,1) infinite; }
@keyframes progSlide{ 0%{ margin-left:-45%; width:42%; } 50%{ width:55%; } 100%{ margin-left:100%; width:42%; } }

/* ===== Cartão de estado: plano Free esgotado ===== */
.statuscard.esgotado{ background:linear-gradient(135deg,#7c1d1d,#a83232)!important; }
.statuscard.esgotado .sc-val{ color:#ffd9d9; }
#scBtns{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
#scBtns .sc-btn{ margin-top:0; flex:1; min-width:130px; }
.sc-btn.alt{ background:rgba(255,255,255,.16); }

/* ===== Estatísticas de ferramentas (admin) ===== */
.toolstat{ background:var(--surface,#fff); border:1px solid var(--line,#e8edf5); border-radius:13px; padding:12px 13px; margin-bottom:9px; }
.ts-top{ display:flex; align-items:center; gap:9px; }
.ts-rank{ width:22px; height:22px; border-radius:7px; background:#1b2a4a; color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.ts-name{ font-weight:800; color:#16233d; font-size:14.5px; }
.ts-n{ margin-left:auto; font-weight:800; color:#2563eb; }
.ts-bar{ height:8px; border-radius:6px; background:#eef2f8; overflow:hidden; margin:8px 0 6px; }
.ts-bar i{ display:block; height:100%; background:var(--grad-gold,linear-gradient(90deg,#E8B04B,#F4D58D)); border-radius:6px; }

/* ===== Dicas de foto tipo passe ===== */
.foto-tips .ft-h{ font-weight:800; color:#16233d; font-size:14px; margin-bottom:11px; }
.foto-tips .ft-ex{ display:flex; gap:7px; margin-bottom:12px; } .foto-tips .ft-cell{ flex:1; min-width:0; }
.ft-cell{ text-align:center; }
.ft-img{ border-radius:9px; overflow:hidden; }
.ft-img svg{ width:100%; height:auto; display:block; }
.ft-cell span{ display:block; font-size:10.5px; font-weight:700; margin-top:5px; color:#5b6b86; }
.ft-cell.ok span{ color:#16a34a; }
.ft-cell.no span{ color:#dc2626; }
.foto-tips .ft-tips{ margin:0; padding-left:18px; }
.foto-tips .ft-tips li{ font-size:12.5px; color:#42506b; line-height:1.5; margin-bottom:3px; }

/* ===== Pagamentos / Assinatura / Recibo ===== */
.estpill{display:inline-block;font-size:11px;font-weight:800;padding:3px 9px;border-radius:999px;letter-spacing:.02em;white-space:nowrap}
.estpill.pend{background:#FEF3C7;color:#92400E}
.estpill.ok{background:#DCFCE7;color:#166534}
.estpill.no{background:#FEE2E2;color:#991B1B}
.pagcard{background:var(--card,#fff);border:1px solid var(--line,#e6e9f0);border-radius:16px;padding:14px;margin-bottom:10px;cursor:pointer;transition:.15s;border-left:5px solid var(--muted,#94a3b8)}
.pagcard:active{transform:scale(.99)}
.pagcard.est-pendente{border-left-color:#d97706}
.pagcard.est-aprovado{border-left-color:#16a34a}
.pagcard.est-rejeitado{border-left-color:#dc2626}
.pagcard .pc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.pagcard .pc-plan{font-family:var(--disp);font-size:17px;color:var(--ink,#16213a)}
.pagcard .pc-val{font-size:20px;font-weight:800;margin:2px 0 2px;color:var(--ink,#16213a)}
.pagcard .pc-meta{font-size:12px;color:var(--muted,#7a8499)}
.pagcard .pc-hint{font-size:12.5px;margin-top:7px;font-weight:600}
.pagcard .pc-hint.pend{color:#b45309}
.pagcard .pc-hint.ok{color:#15803d}
.pagcard .pc-hint.no{color:#b91c1c}
.pagcard .pc-cta{margin-top:9px;font-size:12.5px;font-weight:700;color:var(--blue,#2563eb)}

.receipt-sheet{background:#fff;border:1px solid #e6e9f0;border-radius:18px;overflow:hidden;box-shadow:0 6px 20px rgba(16,24,48,.08)}
.receipt-sheet .rec-head{display:flex;align-items:center;gap:12px;background:#1B2A4A;color:#fff;padding:16px}
.receipt-sheet .rec-logo{width:42px;height:42px;border-radius:10px;background:#fff;object-fit:contain;padding:3px}
.receipt-sheet .rec-h1{font-family:var(--disp,inherit);font-size:17px;font-weight:800}
.receipt-sheet .rec-h2{font-size:12px;color:#cdd6e8;margin-top:2px}
.receipt-sheet .rec-status{text-align:center;font-weight:800;font-size:13px;letter-spacing:.04em;padding:9px;color:#fff}
.receipt-sheet .rec-status.pendente{background:#c58c1e}
.receipt-sheet .rec-status.aprovado{background:#16a34a}
.receipt-sheet .rec-status.rejeitado{background:#dc2626}
.receipt-sheet .rec-amt{text-align:center;font-size:30px;font-weight:800;color:#16213a;padding:14px 0 6px}
.receipt-sheet .rec-box{padding:4px 16px 10px}
.receipt-sheet .rec-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed #e6e9f0;font-size:13.5px}
.receipt-sheet .rec-row:last-child{border-bottom:0}
.receipt-sheet .rec-row span{color:#7a8499}
.receipt-sheet .rec-row b{color:#16213a;text-align:right;word-break:break-word}
.receipt-sheet .rec-reject{margin:0 16px 10px;background:#FEE2E2;color:#991B1B;border-radius:10px;padding:9px 12px;font-size:12.5px;font-weight:600}
.receipt-sheet .rec-proof{padding:6px 16px 14px}
.receipt-sheet .rec-proof-l{font-size:12px;font-weight:700;color:#7a8499;margin-bottom:6px}
.receipt-sheet .rec-proof img{width:100%;border-radius:12px;border:1px solid #e6e9f0;cursor:zoom-in}
.receipt-sheet .rec-note{padding:0 16px 16px;font-size:12px;color:#7a8499;line-height:1.5}

/* ===== Marca oficial do APP na comunidade ===== */
.who-app{display:inline-flex;align-items:center;gap:4px;font-weight:800;color:var(--ink,#16213a)}
.who-app .vbadge-ic{width:15px;height:15px;flex:0 0 auto}
.c-name .vbadge-ic{width:13px;height:13px}
.av.app img,.c-av.app img{object-fit:contain;background:#fff;padding:2px}
.av.app{box-shadow:0 0 0 2px #2563eb}
.c-av.app{box-shadow:0 0 0 2px #2563eb}

/* ===== Foto tipo passe — exemplos com foto real ===== */
.ft-img{position:relative;aspect-ratio:64/84;background:#fff;overflow:hidden}
.ft-img img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}
.ft-img.has-img{border:1px solid #cfdcf2}
.ft-cell.ok .ft-img.has-img{border-color:#86d6a0}
.ft-cell.no .ft-img.has-img{border-color:#f0b4b4}
.ft-cell.blue .ft-img,.ft-cell.blue .ft-img img{background:#1f4fd0}
.ft-cell.blue .ft-img{padding:4px}
.ft-cell.zoom .ft-img img{object-fit:cover;transform:scale(1.7);transform-origin:50% 30%}
.ft-cell.tilt .ft-img img{object-fit:cover;transform:rotate(-12deg) scale(1.35)}

/* ===== Botões Galeria / Câmara ===== */
.pick-row{display:flex;gap:8px}
.pick-row .pick{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;white-space:nowrap}
.pick-row .pick svg{width:17px;height:17px;flex:0 0 auto}
.pick-row.sm .pick{font-size:12px;padding:9px 6px}
.pick-row.sm .pick svg{width:15px;height:15px}

/* ===== Instruções do BI (ilustrações) ===== */
.bi-tips .bi-ex{display:flex;gap:7px;margin-bottom:12px}
.bi-cell{flex:1;min-width:0;text-align:center}
.bi-ill{border-radius:9px;overflow:hidden;background:#fff;border:1px solid #eef1f6}
.bi-ill svg{width:100%;height:auto;display:block}
.bi-cell span{display:block;font-size:10.5px;font-weight:700;margin-top:5px;color:#5b6b86}
.bi-cell.ok span{color:#16a34a}
.bi-cell.no span{color:#dc2626}

/* ===== Botão único de carregar (abre o seletor do telemóvel) ===== */
.pick-one{display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;width:100%}
.pick-one svg{width:18px;height:18px;flex:0 0 auto}

/* ===== Botão de carregar + folha de opções (estilo iPhone) ===== */
.pick-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;cursor:pointer}
.pick-btn svg{width:18px;height:18px;flex:0 0 auto}
.pick-sheet{position:fixed;inset:0;z-index:1200;display:none}
.pick-sheet.open{display:block}
.pick-sheet-bg{position:absolute;inset:0;background:rgba(10,15,30,.45)}
.pick-sheet-card{position:absolute;left:0;right:0;bottom:0;background:var(--card,#fff);border-radius:18px 18px 0 0;padding:10px;max-width:480px;margin:0 auto;box-shadow:0 -10px 34px rgba(0,0,0,.28);animation:sheetUp .18s ease}
@keyframes sheetUp{from{transform:translateY(40px);opacity:.4}to{transform:translateY(0);opacity:1}}
.pick-sheet-card button{display:flex;align-items:center;gap:13px;width:100%;border:none;background:transparent;padding:15px 14px;font-size:15px;font-weight:600;color:var(--ink,#16213a);border-radius:12px;cursor:pointer;text-align:left}
.pick-sheet-card button:active{background:#eef2f8}
.pick-sheet-card button svg{width:22px;height:22px;color:var(--blue,#2563eb)}
.pick-sheet-card .cancel{justify-content:center;color:#dc2626;margin-top:4px;font-weight:700;background:#f5f7fb}
.pick-sheet-card .cancel svg{display:none}

/* ===== Resposta oficial a feedback ===== */
.fb-actions{display:flex;gap:8px;align-items:center;margin-top:8px}
.fb-replybtn{background:var(--blue,#2563eb);color:#fff;border:none;border-radius:9px;padding:7px 14px;font-size:12.5px;font-weight:700;cursor:pointer}
.fb-answer{margin-top:10px;background:#eef4ff;border:1px solid #d3e2ff;border-left:3px solid var(--blue,#2563eb);border-radius:10px;padding:10px 12px}
.fb-answer-head{display:flex;align-items:center;gap:5px;font-weight:800;color:#16233d;font-size:13px;margin-bottom:3px}
.fb-answer-head .who-app{color:#16233d}
.fb-answer-text{font-size:13px;color:#33415c;line-height:1.45}
.fb-replybox{margin-top:10px}
.fb-reply-ta{width:100%;box-sizing:border-box;border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:10px;font:inherit;font-size:13.5px;resize:vertical}
.fb-reply-act{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

/* ===== Painel de documentos (admin) ===== */
.doc-item{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:13px;padding:10px;margin-bottom:9px}
.doc-item>img,.doc-ext{width:46px;height:56px;flex:0 0 auto;border-radius:8px;object-fit:cover;background:#eef3fb}
.doc-ext{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#5b6b86}
.doc-info{flex:1;min-width:0}
.doc-user{font-weight:800;color:#16213a;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-sub{font-size:12px;color:#5b6b86;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-when{font-size:10.5px;color:#9aa4b8;margin-top:2px}
.doc-act{display:flex;gap:6px;flex:0 0 auto}
.doc-act button{border:1px solid #dfe4ee;background:#f5f7fb;border-radius:9px;padding:8px 11px;font-size:12.5px;font-weight:700;color:#16213a;cursor:pointer}
.doc-act button:first-child{background:var(--blue,#2563eb);color:#fff;border:none}

/* contador de comentários no post (estilo Facebook) */
.cmt-count{font-size:13px;color:var(--muted,#7a8499);font-weight:600;cursor:pointer;padding:2px 2px 6px;margin-top:2px}
.cmt-count:active{opacity:.6}

/* ===== Candidatos (mini-LinkedIn) ===== */
.cd-item{display:flex;gap:12px;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:14px;padding:13px;margin-bottom:11px}
.cd-av{width:52px;height:52px;flex:0 0 auto;border-radius:50%;overflow:hidden;background:#eef3fb}
.cd-av img{width:100%;height:100%;object-fit:cover}
.cd-av.ini{display:flex;align-items:center;justify-content:center;font-weight:800;color:#5b6b86;font-size:20px}
.cd-main{flex:1;min-width:0}
.cd-nome{font-weight:800;color:#16213a;font-size:15px}
.cd-area{font-size:13px;color:var(--blue,#2563eb);font-weight:700;margin-top:1px}
.cd-resumo{font-size:13px;color:#42506b;margin-top:5px;line-height:1.4}
.cd-tag{display:inline-block;margin-top:7px;background:#e7f7ee;color:#16a34a;font-size:11px;font-weight:800;padding:3px 9px;border-radius:20px}
.cd-act{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.cd-act button{border:none;border-radius:9px;padding:8px 13px;font-size:12.5px;font-weight:700;cursor:pointer}
.cd-cv{background:#eef2f8;color:#16213a}
.cd-wa{background:#25d366;color:#fff}
.cd-adm{background:#fff;border:1px solid #dfe4ee !important;color:#5b6b86}
.cd-adm.del{color:var(--red,#dc2626)}

/* ===== Documentos oficiais (motor de modelos) ===== */
.docs-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:8px}
.doc-card{text-align:left;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:14px;padding:13px;cursor:pointer;transition:.15s}
.doc-card:active{transform:scale(.97)}
.doc-ic{font-size:24px;margin-bottom:6px}
.doc-tt{font-weight:800;color:#16213a;font-size:13.5px;line-height:1.2}
.doc-ds{font-size:11.5px;color:#7a8499;margin-top:3px;line-height:1.3}
.lnk-back{background:none;border:none;color:var(--blue,#2563eb);font-weight:700;font-size:13px;cursor:pointer;padding:6px 0;margin-bottom:4px}

/* selo Pro nos modelos de CV */
.cvm.ispro{position:relative}
.cvm-pro{display:inline-block;font-size:9.5px;font-weight:800;color:#b45309;background:#fff3d6;border-radius:6px;padding:1px 5px;margin-left:4px;vertical-align:1px}
.cvm.on .cvm-pro{background:rgba(255,255,255,.25);color:#fff}

/* opções de posição da assinatura */
.segradio{flex:1;min-width:90px;display:flex;align-items:center;gap:6px;justify-content:center;border:1px solid #dfe4ee;border-radius:10px;padding:9px 8px;font-size:12.5px;font-weight:700;color:#16213a;cursor:pointer;background:#fff}

/* mosaicos em destaque na grelha de Ferramentas */
.cat.dest{position:relative;background:linear-gradient(135deg,#eaf2ff,#f6faff);border:1px solid #bcd4ff;border-radius:14px}
.cat.dest .cc{background:#2563eb;color:#fff}
.cat .nv{position:absolute;top:6px;right:8px;background:#16a34a;color:#fff;font-size:8px;font-weight:800;padding:1px 5px;border-radius:7px;letter-spacing:.3px;line-height:1.4}

/* ===== Lançador vivo: ícones tipo app + faixa de destaques ===== */
.cat .cc{background:var(--g,linear-gradient(135deg,#3b82f6,#1d4ed8));color:#fff;box-shadow:0 7px 16px rgba(12,14,22,.16);transition:transform .12s ease}
.cat:active .cc{transform:scale(.93)}
.cat .cl{font-size:11.5px;font-weight:700;color:var(--text)}
.cat.dest{background:none;border:0;border-radius:0}
.cat .nv{position:absolute;top:2px;right:6px;background:#16a34a;color:#fff;font-size:8px;font-weight:800;padding:1px 5px;border-radius:7px;letter-spacing:.3px;line-height:1.4;box-shadow:0 2px 6px rgba(0,0,0,.18)}

.hl-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 18px 8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.hl-rail::-webkit-scrollbar{display:none}
.hl-card{flex:0 0 80%;scroll-snap-align:start;border:0;text-align:left;border-radius:22px;padding:18px;color:#fff;background:linear-gradient(135deg,var(--a),var(--b));box-shadow:0 12px 28px rgba(12,14,22,.20);cursor:pointer;position:relative;overflow:hidden}
.hl-card::after{content:"";position:absolute;right:-34px;top:-34px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.13)}
.hl-ic{font-size:30px;margin-bottom:10px;position:relative;z-index:1}
.hl-tt{font-size:18px;font-weight:800;margin-bottom:4px;letter-spacing:-.01em;position:relative;z-index:1}
.hl-sb{font-size:12.5px;opacity:.93;line-height:1.45;max-width:92%;position:relative;z-index:1}
.hl-go{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;background:rgba(255,255,255,.22);padding:6px 12px;border-radius:999px;position:relative;z-index:1}

.cat .cc{font-size:27px;line-height:1}

/* ===== Topo vivo: hero com gradiente de marca + cartão de plano elegante ===== */
.hero3{background:linear-gradient(150deg,#4f46e5 0%,#6d28d9 48%,#2563eb 100%);padding:26px 20px 62px;border-radius:0 0 34px 34px}
.hero3::before{content:"";position:absolute;top:-70px;right:-46px;width:210px;height:210px;border-radius:50%;background:rgba(255,255,255,.12)}
.hero3::after{content:"";position:absolute;bottom:-54px;left:-34px;width:160px;height:160px;border-radius:50%;background:rgba(255,255,255,.08)}
.hero-logo{box-shadow:0 14px 30px rgba(10,10,30,.4)}
#dashTitle{font-size:23px;font-weight:800;margin:2px 0 0;letter-spacing:-.01em;position:relative;color:#fff}
.hero3 .sub{color:rgba(255,255,255,.82)}

.statuscard{background:linear-gradient(135deg,#0f172a,#1e293b);border-radius:22px;box-shadow:0 22px 50px rgba(12,14,22,.24);margin:-46px 18px 0;overflow:hidden}
.statuscard::after{content:"";position:absolute;right:-34px;top:-34px;width:130px;height:130px;border-radius:50%;background:rgba(99,102,241,.20)}
.sc-label,.sc-val,.sc-sub,#scBtns{position:relative;z-index:1}
.sc-btn{margin-top:14px;border:0;background:linear-gradient(135deg,#3b82f6,#6366f1);color:#fff;font-weight:800;font-size:13px;padding:12px 22px;border-radius:12px;cursor:pointer;box-shadow:0 8px 20px rgba(59,130,246,.38)}

/* ===== Funcionalidades em caixas compactas (flex) + detalhes ===== */
.lp-feats{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px;margin-top:18px;text-align:left}
.lp-feat{flex:1 1 calc(50% - 6px);max-width:calc(50% - 6px);min-width:0;flex-direction:column;align-items:flex-start;gap:7px;padding:14px}
.lp-feat .fi{width:44px;height:44px;border-radius:12px}
.lp-feat h4{margin:1px 0 0;font-size:14px;line-height:1.2}
.lp-feat .lp-short{margin:0;font-size:11.5px;color:var(--muted);line-height:1.35}
.lp-more{margin-top:auto;border:0;background:none;color:var(--blue);font-weight:800;font-size:12.5px;padding:4px 0 0;cursor:pointer}
#infoBody{padding:22px 20px calc(22px + env(safe-area-inset-bottom))}

/* ===== Barra de navegação moderna (emoji + pílula ativa) ===== */
.nav{border-top:0;border-radius:20px 20px 0 0;box-shadow:0 -6px 22px rgba(12,14,22,.10)}
.nav button{gap:4px;font-size:9.5px}
.nav .ni{width:46px;height:26px;display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;border-radius:14px;transition:background .18s ease,transform .16s ease}
.nav button.active{color:var(--blue);font-weight:800}
.nav button.active .ni{background:var(--blue-soft)}
.nav button.active::before{display:none}
.nav button:active .ni{transform:scale(.9)}

/* ===== Menu lateral vivo (emoji em mini-mosaico) ===== */
.dr-head{background:linear-gradient(135deg,var(--blue-soft),var(--surface))}
.drawer a .di{width:34px;height:34px;border-radius:11px;background:var(--blue-soft);display:flex;align-items:center;justify-content:center;font-size:17px;color:inherit;flex:0 0 auto}
.drawer a{gap:12px;border-radius:12px;margin:1px 8px;padding:11px 12px;width:auto}
.drawer a:active{background:var(--blue-soft)}
.drawer a.danger .di{background:#fde8e8}
.dr-sec{padding-left:18px}

/* selo Max nos modelos de CV */
.cvm-pro.max{color:#6d28d9;background:#ede9fe}
.cvm.on .cvm-pro.max{background:rgba(255,255,255,.25);color:#fff}

/* ===== Demonstração de documento (folha) ===== */
.paper-wrap{max-height:58vh;overflow:auto;background:#eef1f6;border-radius:14px;padding:12px;-webkit-overflow-scrolling:touch}
.paper{background:#fff;max-width:430px;margin:0 auto;padding:26px 24px;font-family:Georgia,'Times New Roman',serif;color:#1a1a1a;box-shadow:0 4px 18px rgba(0,0,0,.12);font-size:13px;line-height:1.5;border-radius:3px}
.paper .p-b{font-weight:700}
.paper .p-s{font-size:12px;color:#333;line-height:1.35}
.paper .p-r{text-align:right;margin:12px 0}
.paper .p-title{text-align:center;font-weight:700;font-size:16px;letter-spacing:.5px;margin:16px 0}
.paper .p-para{margin:0 0 9px;text-align:justify}
.paper .p-sign{text-align:center;margin-top:22px;font-size:12px;line-height:1.6}
.paper .p-foot{text-align:center;color:#b8b8b8;font-size:9px;margin-top:26px}

/* ===== Selos Pro/Max na galeria de modelos (CV e documentos) ===== */
.model-card{position:relative}
.model-lock{position:absolute;top:8px;right:8px;z-index:3;background:#b45309;color:#fff;font-size:10px;font-weight:800;padding:3px 8px;border-radius:999px;box-shadow:0 4px 10px rgba(0,0,0,.18)}
.model-lock.max{background:#6d28d9}
.mf-pro{display:inline-block;font-size:9px;font-weight:800;color:#b45309;background:#fff3d6;border-radius:6px;padding:1px 5px;margin-left:4px;vertical-align:1px}
.mf-pro.max{color:#6d28d9;background:#ede9fe}

/* selo nos cartões de documento */
.doc-card{position:relative}

/* etiqueta de preço promocional nos planos */
.promo-tag{display:inline-block;margin:2px 0 8px;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;font-weight:800;font-size:11px;padding:3px 10px;border-radius:999px}
.plan.feat .promo-tag{background:rgba(255,255,255,.22);color:#fff}

/* ===== Selos GRANDES e cartões de CV maiores ===== */
.model-lock{font-size:13px !important;font-weight:800;padding:5px 13px !important;top:10px !important;right:10px !important;left:auto;border-radius:999px;letter-spacing:.3px;box-shadow:0 4px 12px rgba(0,0,0,.22)}
.model-lock.free{background:#16a34a}
.model-lock.pro{background:#b45309}
.model-lock.max{background:#6d28d9}
.mf-pro{font-size:10px}
.mf-pro.free{color:#166534;background:#dcfce7}
.mf-pro.pro{color:#b45309;background:#fff3d6}
.mf-pro.max{color:#6d28d9;background:#ede9fe}
/* cartões de CV maiores: 1 por linha */
#cvGrid .model-card{width:100%}
#cvGrid .model-cover{height:360px}
#cvGrid .model-cover .cv{transform:scale(0.45)}
#cvGrid .model-name{font-size:14px}

/* estado ABERTO (modelo incluído no plano do utilizador) */
.model-lock.open{background:#16a34a}

/* barra admin "ver como Free" (só admin vê) */
.testfree-bar{width:100%;margin:0 0 12px}
.testfree-bar button{width:100%;background:#fff7e6;border:1px dashed #f0b429;color:#92400e;font-weight:800;font-size:12.5px;padding:9px 12px;border-radius:12px;cursor:pointer}

/* ===== Documentos: cabeçalho + pesquisa ===== */
.docs-hero{display:flex;align-items:center;gap:13px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:18px;padding:16px 16px;margin:0 0 14px;box-shadow:0 12px 26px -10px rgba(79,70,229,.5)}
.docs-hero .dh-ic{font-size:30px;background:rgba(255,255,255,.18);width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.docs-hero .dh-t{font-family:var(--disp,inherit);font-weight:800;font-size:17px}
.docs-hero .dh-s{font-size:12px;opacity:.92;margin-top:2px}
.docs-search{position:relative;margin:0 0 14px}
.docs-search .ds-i{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:15px;opacity:.7}
.docs-search input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 38px;font-size:14px;background:var(--surface);color:var(--ink)}
.docs-search input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.cat-count{display:inline-block;background:var(--blue-soft);color:var(--blue-d,#1e3a8a);font-size:11px;font-weight:800;padding:1px 8px;border-radius:999px;margin-left:4px;vertical-align:1px}
.doc-cat{margin-bottom:6px}

/* ===== Empregos: cabeçalho ===== */
.jobs-hero{display:flex;align-items:center;gap:13px;background:linear-gradient(135deg,#0f766e,#0ea5e9);color:#fff;border-radius:18px;padding:16px;margin:0 0 14px;box-shadow:0 12px 26px -10px rgba(14,165,233,.5)}
.jobs-hero .jh-ic{font-size:28px;background:rgba(255,255,255,.18);width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.jobs-hero .jh-t{font-family:var(--disp,inherit);font-weight:800;font-size:17px}
.jobs-hero .jh-s{font-size:12px;opacity:.92;margin-top:2px}

/* ===== Comunidade: cabeçalho ===== */
.comm-hero{display:flex;align-items:center;gap:13px;background:linear-gradient(135deg,#db2777,#f59e0b);color:#fff;border-radius:18px;padding:16px;margin:0 0 14px;box-shadow:0 12px 26px -10px rgba(219,39,119,.45)}
.comm-hero .ch-ic{font-size:28px;background:rgba(255,255,255,.2);width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.comm-hero .ch-t{font-family:var(--disp,inherit);font-weight:800;font-size:17px}
.comm-hero .ch-s{font-size:12px;opacity:.95;margin-top:2px}

/* ===== Centro de Documentos (histórico) ===== */
.hd-grid{display:flex;flex-direction:column;gap:9px;margin-bottom:18px}
.hd-item{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:13px;padding:10px}
.hd-item>img,.hd-ext{width:44px;height:54px;flex:0 0 auto;border-radius:8px;object-fit:cover;background:#eef3fb}
.hd-ext{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:#5b6b86}
.hd-info{flex:1;min-width:0}
.hd-name{font-weight:800;color:#16213a;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hd-sub{font-size:12px;color:#7a8499;margin-top:1px}
.hd-act{display:flex;gap:6px;flex:0 0 auto}
.hd-act button{display:inline-flex;align-items:center;justify-content:center;border:1px solid #dfe4ee;background:#f5f7fb;border-radius:9px;padding:7px 10px;font-size:12.5px;font-weight:700;color:#16213a;cursor:pointer}
.hd-act button svg{display:block}
.hd-act button:first-child{background:var(--blue,#2563eb);color:#fff;border:none}
.hd-act button.wa{background:#25d366;color:#fff;border:none}

/* ===== Cartão "Os meus documentos" (dashboard) ===== */
.docs-cta{display:flex;align-items:center;gap:13px;margin:12px 18px;padding:14px;border-radius:15px;cursor:pointer;
  background:linear-gradient(135deg,#16213a,#243b6b);color:#fff;box-shadow:0 6px 18px rgba(20,33,58,.18)}
.docs-cta .dc-ic{width:42px;height:42px;flex:0 0 auto;border-radius:11px;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:21px}
.docs-cta .dc-tx{flex:1;min-width:0}
.docs-cta .dc-t{font-weight:800;font-size:15px}
.docs-cta .dc-s{font-size:12px;opacity:.85;margin-top:1px}
.docs-cta .dc-ar{font-size:22px;opacity:.7}
.docs-cta:active{transform:scale(.99)}

/* ===== Calculadora de média ===== */
.m-head{display:grid;grid-template-columns:1fr 70px 60px 30px;gap:8px;font-size:11px;font-weight:800;color:#9aa4b8;padding:0 2px 6px;text-transform:uppercase;letter-spacing:.5px}
.m-row{display:grid;grid-template-columns:1fr 70px 60px 30px;gap:8px;margin-bottom:8px}
.m-row input{border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:10px 8px;font-size:13px;width:100%;box-sizing:border-box}
.m-del{border:none;background:#fde8e8;color:#dc2626;border-radius:9px;font-weight:800;cursor:pointer}
.media-box{background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:15px;padding:18px;text-align:center}
.mb-val{font-size:42px;font-weight:800;line-height:1}
.mb-lbl{font-size:12.5px;color:#7a8499;margin-top:2px}
.mb-tag{display:inline-block;margin-top:11px;font-size:12.5px;font-weight:800;padding:5px 14px;border-radius:20px}

/* ===== Planeador de estudo ===== */
.pl-item{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:13px;padding:11px;margin-bottom:9px}
.pl-item.done{opacity:.6}
.pl-item.done .pl-d{text-decoration:line-through}
.pl-ck{width:26px;height:26px;flex:0 0 auto;border-radius:50%;border:2px solid #cbd5e1;background:#fff;color:#16a34a;font-weight:800;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.pl-item.done .pl-ck{background:#16a34a;border-color:#16a34a;color:#fff}
.pl-tx{flex:1;min-width:0}
.pl-d{font-weight:700;color:#16213a;font-size:14px}
.pl-w{font-size:12px;color:#7a8499;margin-top:1px}
.pl-w.late{color:#dc2626;font-weight:700}
.pl-act{display:flex;gap:6px;flex:0 0 auto}
.pl-act button{border:1px solid #dfe4ee;background:#f5f7fb;border-radius:9px;padding:7px 9px;font-size:14px;cursor:pointer}
.pl-act button.del{color:#dc2626;background:#fde8e8;border:none}

/* ===== Calculadoras ===== */
.calc-res{margin-top:8px;background:#f5f7fb;border-radius:11px;padding:13px;font-size:15px;color:#16213a;text-align:center}
.calc-res b{font-size:20px;color:var(--blue,#2563eb)}
.calc-card{background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:14px;padding:13px;margin-bottom:12px}
.calc-card .cc-t{font-weight:800;color:#16213a;font-size:13.5px;margin-bottom:9px}
#screen-calc select{border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:11px;font-size:14px;width:100%;background:#fff}

/* ===== Conversor de moedas ===== */
.fx-row{display:flex;align-items:flex-end;gap:8px;margin-bottom:14px}
.fx-swap{flex:0 0 auto;width:42px;height:42px;border-radius:11px;border:1px solid var(--line,#e6e9f0);background:#f5f7fb;font-size:18px;color:#16213a;cursor:pointer;margin-bottom:1px}
#screen-moedas select{border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:11px;font-size:15px;width:100%;background:#fff;font-weight:700}
.fx-out{background:linear-gradient(135deg,#16213a,#243b6b);color:#fff;border-radius:15px;padding:22px 16px;text-align:center}
.fx-big{font-size:34px;font-weight:800;line-height:1}
.fx-cur{font-size:18px;font-weight:700;opacity:.85}
.fx-one{text-align:center;color:#7a8499;font-size:13px;margin-top:10px;font-weight:600}

/* ===== Botão Partilhar no WhatsApp ===== */
.btn.wa-share{background:#25d366;color:#fff;border:none;display:inline-flex;align-items:center;gap:7px;justify-content:center}
.btn.wa-share svg{flex:0 0 auto}

/* ===== Busca de referências (Crossref) ===== */
.ref-search{display:flex;gap:8px;margin-bottom:8px}
.ref-search input{flex:1;border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:10px;font-size:13.5px}
.ref-search .btn{flex:0 0 auto;white-space:nowrap}
.ref-hit{display:block;width:100%;text-align:left;border:1px solid var(--line,#e6e9f0);background:#fff;border-radius:11px;padding:10px;margin-bottom:7px;cursor:pointer}
.ref-hit:active{background:#f5f7fb}
.ref-hit .rh-t{font-weight:700;color:#16213a;font-size:13px;line-height:1.3}
.ref-hit .rh-s{font-size:11.5px;color:#7a8499;margin-top:2px}

/* ===== Feriados (planeador) ===== */
.fer-item{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line,#e6e9f0);border-radius:12px;padding:10px 11px;margin-bottom:8px}
.fer-d{flex:0 0 auto;min-width:78px;font-weight:800;color:#16a34a;font-size:12.5px;text-transform:capitalize}
.fer-n{flex:1;min-width:0;color:#16213a;font-size:13px;font-weight:600}
.fer-add{flex:0 0 auto;border:1px solid #dfe4ee;background:#f5f7fb;border-radius:9px;padding:6px 9px;font-size:14px;cursor:pointer}

/* ===== nome da moeda no resultado ===== */
.fx-name{font-size:13px;opacity:.85;margin-top:4px;font-weight:600}

/* ===== abas do Centro de Documentos (admin) ===== */
.hist-seg{margin-bottom:14px}
.hist-seg button{font-size:12px}

/* ===== dono do documento (aba admin) ===== */
.hd-owner{font-size:11.5px;color:#2563eb;font-weight:700;margin-top:3px}

/* ===== Festa de promoção de plano ===== */
.promo-ov{position:fixed;inset:0;z-index:9999;background:rgba(11,18,33,.74);display:flex;align-items:center;justify-content:center;padding:22px;animation:promoIn .25s ease}
@keyframes promoIn{from{opacity:0}to{opacity:1}}
.promo-card{background:#fff;border-radius:22px;max-width:360px;width:100%;padding:30px 24px 26px;text-align:center;position:relative;box-shadow:0 24px 60px rgba(0,0,0,.4);animation:promoPop .4s cubic-bezier(.2,.8,.2,1.25)}
@keyframes promoPop{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}
.promo-confetti{font-size:48px;line-height:1;margin-bottom:8px}
.promo-badge{display:inline-block;color:#fff;font-weight:800;font-size:11.5px;letter-spacing:1.2px;padding:6px 16px;border-radius:20px;margin-bottom:14px}
.promo-t{font-size:24px;font-weight:800;color:#16213a;margin:0 0 8px}
.promo-s{font-size:15px;color:#16213a;margin:0 0 12px}
.promo-b{font-size:13.5px;color:#445; margin:0 0 14px;line-height:1.55}
.promo-th{font-size:13px;color:#7a8499;margin:0 0 22px;line-height:1.55}
.promo-btn{width:100%}

/* ===== Painel admin — responsividade ===== */
/* Barra de abas: faixa que desliza na horizontal (não comprime nem parte) */
#admSeg{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
#admSeg::-webkit-scrollbar{display:none}
#admSeg button{flex:0 0 auto;white-space:nowrap;padding:10px 14px;font-size:12.5px}
/* Linhas de utilizador: select em linha própria, botões a preencher e a quebrar bem */
.uactions{display:flex;flex-wrap:wrap;gap:7px;align-items:stretch}
.uactions .usel{flex:1 1 100%;width:100%}
.uactions .btn.sm{flex:1 1 auto;min-width:96px;text-align:center}
/* Filtro por plano */
.uplan-seg{margin-bottom:12px}
.uplan-seg button{font-size:12.5px;padding:9px 6px}

/* ===== Barra de topo — não transbordar em sub-ecrãs com títulos compridos ===== */
.topbar.sub .menu-btn{display:none}              /* nos sub-ecrãs basta o ‹ voltar */
.topbar.sub .spacer{display:none}                /* o título passa a ocupar o espaço */
.topbar.sub .screen-title{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .back,.topbar .themebtn,.topbar .bell,.topbar .acct{flex:0 0 auto}  /* direita sempre visível */
.topbar{overflow-x:hidden}                          /* trava qualquer arrasto horizontal residual */

/* ===== Aviso de marca de água ===== */
.wmw-ov{position:fixed;inset:0;z-index:9998;background:rgba(11,18,33,.7);display:flex;align-items:center;justify-content:center;padding:22px;animation:promoIn .2s ease}
.wmw-card{background:var(--surface,#fff);border-radius:20px;max-width:340px;width:100%;padding:26px 22px 20px;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.38);animation:promoPop .3s cubic-bezier(.2,.8,.2,1.2)}
.wmw-ic{font-size:40px;line-height:1;margin-bottom:8px}
.wmw-t{font-size:19px;font-weight:800;color:var(--ink,#16213a);margin:0 0 10px}
.wmw-b{font-size:13.5px;color:var(--muted,#5b6b86);line-height:1.55;margin:0 0 18px}
.wmw-btn{display:block;width:100%;margin-bottom:9px}
.wmw-x{display:block;width:100%;background:none;border:0;color:var(--soft,#8a97ad);font-size:13px;font-weight:600;padding:6px;cursor:pointer}

/* ===== Destaque: Aprender Línguas ===== */
.feat-cta{background:linear-gradient(135deg,#10b981,#047857);border-radius:18px;padding:16px;color:#fff;cursor:pointer;margin:14px 0;box-shadow:0 10px 26px rgba(5,150,105,.28)}
.ft-badge{display:inline-block;background:rgba(255,255,255,.22);font-size:10px;font-weight:800;letter-spacing:.5px;padding:4px 10px;border-radius:20px;margin-bottom:10px}
.ft-row{display:flex;align-items:center;gap:13px}
.ft-ic{font-size:34px;flex:0 0 auto}
.ft-t{font-size:18px;font-weight:800}
.ft-s{font-size:12.5px;opacity:.92;line-height:1.45;margin-top:2px}
.ft-cta-btn{margin-top:12px;background:#fff;color:#047857;font-weight:800;font-size:13.5px;text-align:center;padding:10px;border-radius:11px}

/* setup */
.idi-hero{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.idi-h-ic{font-size:38px}
.idi-h-t{font-size:20px;font-weight:800;color:var(--ink,#16213a)}
.idi-h-s{font-size:12.5px;color:var(--muted,#5b6b86)}
.idi-summary{display:flex;gap:10px}
.idi-sum-card{flex:1;background:var(--surface,#fff);border:1px solid var(--line,#e6e9f0);border-radius:14px;padding:12px;text-align:center}
.idi-sum-card b{display:block;font-size:22px;color:#059669}
.idi-sum-card span{font-size:11.5px;color:var(--muted,#5b6b86)}
.idi-lang{display:flex;align-items:center;gap:12px;width:100%;background:var(--surface,#fff);border:1px solid var(--line,#e6e9f0);border-radius:14px;padding:13px;margin-bottom:10px;cursor:pointer;text-align:left}
.il-flag{font-size:28px;flex:0 0 auto}
.il-tx{flex:1;min-width:0}
.il-tx b{display:block;font-size:15px;color:var(--ink,#16213a)}
.il-tx small{font-size:11.5px;color:var(--muted,#5b6b86)}
.il-go{font-size:24px;color:#cbd2de;flex:0 0 auto}

/* lição */
.idi-top{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.idi-vidas{font-size:13px;letter-spacing:1px;flex:0 0 auto}
.idi-bar{flex:1;height:9px;background:#e8edf5;border-radius:6px;overflow:hidden}
.idi-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#10b981,#059669);transition:width .3s ease}
.idi-count{font-size:11.5px;font-weight:700;color:var(--muted,#5b6b86);flex:0 0 auto}
.idi-q{font-size:18px;color:var(--ink,#16213a);margin-bottom:18px;line-height:1.45}
.idi-opts{display:flex;flex-direction:column;gap:10px}
.idi-opt{width:100%;background:var(--surface,#fff);border:2px solid var(--line,#e6e9f0);border-radius:13px;padding:14px;font-size:15px;font-weight:700;color:var(--ink,#16213a);cursor:pointer;text-align:center}
.idi-opt.ok{border-color:#10b981;background:#ecfdf5;color:#047857}
.idi-opt.bad{border-color:#ef4444;background:#fef2f2;color:#b91c1c}
.idi-opt:disabled{opacity:1}
.idi-fb{margin-top:14px;min-height:6px}
.fb-ok{color:#047857;font-weight:800;font-size:14px}
.fb-bad{color:#b91c1c;font-size:13.5px;line-height:1.5;background:#fef2f2;border-radius:10px;padding:10px 12px}

/* resultado */
.idi-done{text-align:center;padding:14px 4px}
.idi-emoji{font-size:54px;margin-bottom:6px}
.idi-done h2{font-size:21px;font-weight:800;color:var(--ink,#16213a);margin:0 0 16px}
.idi-stats{display:flex;gap:10px;margin-bottom:20px}
.idi-stats div{flex:1;background:var(--surface,#fff);border:1px solid var(--line,#e6e9f0);border-radius:13px;padding:12px}
.idi-stats b{display:block;font-size:21px;color:#059669}
.idi-stats span{font-size:11px;color:var(--muted,#5b6b86)}

/* ===== Línguas: botão "Ouvir" ===== */
.idi-listen{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;background:#ecfdf5;border:2px solid #10b981;color:#047857;border-radius:13px;padding:16px;font-size:16px;font-weight:800;cursor:pointer;margin-bottom:16px}
.idi-listen:active{transform:scale(.99)}

/* ===== Línguas: estado IA ===== */
.idi-loading{text-align:center;color:#047857;font-weight:700;padding:40px 10px;font-size:14px}
.idi-iabadge{display:inline-block;background:#ede9fe;color:#6d28d9;font-size:11px;font-weight:800;padding:4px 10px;border-radius:20px;margin-bottom:12px}

/* ===== Línguas: secção Angola ===== */
.idi-secao{font-weight:800;color:var(--ink,#16213a);font-size:14px;margin:20px 0 4px;padding-top:14px;border-top:1px solid var(--line,#e6e9f0)}
.idi-aviso{font-size:11.5px;color:#926b00;background:#fff7e6;border:1px solid #ffe2a8;border-radius:10px;padding:8px 11px;margin-bottom:12px;line-height:1.45}
.idi-validar{font-size:11.5px;color:#926b00;background:#fff7e6;border:1px solid #ffe2a8;border-radius:9px;padding:7px 10px;margin-bottom:12px}

/* ===== Línguas: níveis ===== */
.il-nivel{flex:0 0 auto;font-size:11px;font-weight:800;color:#059669;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:20px;padding:3px 9px;margin-right:6px}
.idi-nivel{display:inline-block;font-size:12px;font-weight:800;color:#6d28d9;background:#ede9fe;border-radius:20px;padding:4px 11px;margin-bottom:12px}
.idi-levelup{font-size:15px;font-weight:800;color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;padding:10px;margin-bottom:16px}

/* ===== Línguas: caixa de sugestão (nacionais) ===== */
.idi-sugwrap{margin-top:16px;border-top:1px dashed var(--line,#e6e9f0);padding-top:12px}
.idi-sugbtn{width:100%;background:#fff7e6;border:1px solid #ffe2a8;color:#926b00;border-radius:11px;padding:11px;font-weight:800;font-size:13px;cursor:pointer}
.idi-sugbox{margin-top:10px}
.idi-sughint{font-size:12px;color:var(--muted,#5b6b86);margin-bottom:8px;line-height:1.45}
.idi-suginput{width:100%;border:1px solid var(--line,#e6e9f0);border-radius:10px;padding:11px;font-size:14px;margin-bottom:8px;background:var(--surface,#fff);color:var(--ink,#16213a)}

/* ===== IDIOMAS — botão e painel admin importar ===== */
.idi-import{width:100%;display:block;background:#fff7ed;border:1.5px solid #fed7aa;color:#9a3412;
  font-weight:700;padding:12px;border-radius:14px;margin-bottom:14px;cursor:pointer;font-size:14px}
.idia-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.idia-back{width:38px;height:38px;border-radius:50%;border:1px solid #e2e8f0;background:#fff;
  font-size:22px;line-height:1;cursor:pointer;color:#334155}
.idia-head h2{font-size:18px;margin:0;color:#0f172a}
.idia-lb{display:block;font-size:13px;font-weight:700;color:#334155;margin:12px 0 6px}
.idia-sel,.idia-ta{width:100%;border:1.5px solid #e2e8f0;border-radius:12px;padding:11px;
  font-size:15px;font-family:inherit;color:#0f172a;background:#fff;box-sizing:border-box}
.idia-ta{resize:vertical;line-height:1.5}
.idia-hint{font-size:12px;color:#64748b;margin-top:7px}
.idia-msg{font-size:13px;margin-top:10px;color:#475569;min-height:18px}
.idia-msg.ok{color:#15803d;font-weight:600}
.idia-msg.erro{color:#b91c1c;font-weight:600}
.idia-file{display:block;width:100%;font-size:13px;color:#334155;margin-top:4px;
  padding:9px;border:1.5px dashed #cbd5e1;border-radius:12px;background:#f8fafc;box-sizing:border-box}
.idia-chk{display:flex;align-items:center;gap:8px;font-size:13px;color:#334155;margin:12px 0 2px}
.idia-chk input{width:16px;height:16px}

/* ===== Galeria de vídeos ===== */
.vid-galeria{display:flex;flex-direction:column;gap:18px;margin-top:4px}
.vid-group{}
.vid-gtit{font-weight:800;font-size:15px;margin:0 0 8px;color:var(--blue,#2563eb)}
.vid-card{background:#fff;border:1px solid #e6eaf0;border-radius:14px;overflow:hidden;margin-bottom:10px;box-shadow:0 4px 14px rgba(0,0,0,.04)}
.vid-frame{position:relative;width:100%;aspect-ratio:16/9;background:#000}
.vid-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vid-meta{padding:10px 12px}
.vid-meta b{display:block;font-size:14px}
.vid-meta p{margin:4px 0 0;color:var(--muted,#64748b);font-size:13px}
/* Botão "Ver vídeo" no topo das ferramentas */
.vid-badge{display:flex;align-items:center;gap:8px;width:100%;border:none;cursor:pointer;
  background:linear-gradient(90deg,#1e3a8a,#2563eb);color:#fff;border-radius:14px;
  padding:11px 14px;margin:0 0 14px;font-size:13.5px;font-weight:700;text-align:left;
  box-shadow:0 6px 18px rgba(37,99,235,.25)}
.vid-badge .vb-ic{font-size:17px}
.vid-badge .vb-tx{flex:1}
.vid-badge .vb-go{font-size:18px;opacity:.85}

/* ===== Capas de vídeo (grelha 3 por linha) ===== */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:520px){ .vid-grid{grid-template-columns:repeat(2,1fr);gap:8px} }
.vid-cover{cursor:pointer;border-radius:12px;overflow:hidden;background:#fff;border:1px solid #e6eaf0;box-shadow:0 3px 10px rgba(0,0,0,.05);transition:transform .12s}
.vid-cover:active{transform:scale(.97)}
.vc-thumb{position:relative;width:100%;aspect-ratio:16/10;background:#0b1220;overflow:hidden}
.vc-thumb img,.vc-thumb video{width:100%;height:100%;object-fit:cover;display:block}
.vc-play{position:absolute;inset:0;margin:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);color:#fff;border-radius:50%;font-size:16px;padding-left:3px}
.vc-info{padding:8px 9px}
.vc-info b{display:block;font-size:12.5px;line-height:1.25;max-height:2.5em;overflow:hidden}
.vc-tool{display:block;font-size:11px;color:var(--blue,#2563eb);font-weight:700;margin-top:3px}
.vc-desc{display:block;font-size:11px;color:var(--muted,#64748b);margin-top:2px;max-height:2.4em;overflow:hidden}
.vid-gtit{font-weight:800;font-size:15px;margin:16px 0 8px;color:var(--blue,#2563eb)}

/* ===== Player ampliado ===== */
.vid-player-ov{position:fixed;inset:0;z-index:100000;background:rgba(5,8,16,.96);display:none;flex-direction:column}
.vid-player-ov.open{display:flex}
.vp-bar{display:flex;align-items:center;gap:10px;padding:14px 16px;color:#fff}
.vp-titwrap{flex:1;min-width:0}
.vp-title{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-sub{font-size:12px;color:#9fb0c8}
.vp-x{width:38px;height:38px;border:none;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:16px;cursor:pointer}
.vp-stage{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:0 8px}
.vp-stage iframe,.vp-stage video{width:100%;max-height:100%;aspect-ratio:16/9;border:0;border-radius:12px;background:#000}
.vp-stage video{transition:transform .15s ease}
.vp-ctrls{padding:14px 16px 22px}
.vp-speed{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}
.vp-speed .vp-lbl{color:#9fb0c8;font-size:12px;margin-left:6px}
.vp-speed button{min-width:44px;padding:8px 10px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);
  color:#fff;border-radius:10px;font-weight:700;font-size:13px;cursor:pointer}
.vp-speed button.on{background:#2563eb;border-color:#2563eb}

/* ===== Polimento tátil v274 (sensação nativa, leve, sem libs) ===== */
.btn{transition:transform .14s cubic-bezier(.34,1.56,.64,1),filter .14s,box-shadow .14s}
.btn:active{transform:scale(.96)}
.btn.primary:active,.btn.dark:active,.btn.g:active{filter:brightness(1.06)}
/* qualquer coisa clicável afunda suavemente ao toque */
.card,.vid-cover,.tool,.tool-card,.menu-item,.nav a,.nav button,.lp-mod,.seg button,.doc-card,.tpl-card,.mod-card{
  transition:transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .16s ease, border-color .16s ease;
}
.card:active,.lp-mod:active,.doc-card:active,.tpl-card:active,.mod-card:active{transform:scale(.985)}
.tool:active,.tool-card:active,.menu-item:active,.vid-cover:active{transform:scale(.96)}
.nav a:active,.nav button:active{transform:scale(.9)}
button{ -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Transição de ecrã mais "viva" (mola suave) */
@media (prefers-reduced-motion:no-preference){
  .screen.active{ animation:scrIn .34s cubic-bezier(.22,.9,.3,1.02); }
  @keyframes scrIn{from{opacity:0;transform:translateY(12px) scale(.995)}to{opacity:1;transform:none}}
}

/* ===== Skeletons (carregamento fantasma, estilo YouTube/Facebook) ===== */
.skel{position:relative;overflow:hidden;background:var(--bg-2);border-radius:12px}
.skel::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);
  animation:shine 1.25s infinite}
[data-theme="dark"] .skel::after{background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}
@keyframes shine{100%{transform:translateX(100%)}}
.skel-line{height:12px;margin:8px 0;border-radius:7px}
.skel-line.w60{width:60%}.skel-line.w40{width:40%}.skel-line.w80{width:80%}
.skel-card{height:84px;margin-bottom:12px;border-radius:16px}
.skel-cover{aspect-ratio:16/10;border-radius:12px}
.skel-wrap{padding:2px}

/* ===== Carrossel de capas (Swiper + fallback de scroll nativo) ===== */
.vid-swiper{width:100%;padding:2px 0}
.vid-swiper .swiper-slide.vid-slide{width:46%;max-width:230px;height:auto}
@media(min-width:520px){ .vid-swiper .swiper-slide.vid-slide{width:30%} }
/* Fallback se o Swiper não carregar: scroll horizontal nativo com snap e inércia */
.vid-swiper.rail-fallback .swiper-wrapper{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.vid-swiper.rail-fallback .swiper-slide.vid-slide{scroll-snap-align:start;flex:0 0 auto}
.vid-rail{display:flex;gap:10px;overflow-x:auto}

/* ===== Abanar campo com erro (validação tátil) ===== */
.shake-err{animation:shakeX .4s cubic-bezier(.36,.07,.19,.97) both;border-color:var(--red)!important;box-shadow:0 0 0 4px rgba(220,38,38,.10)!important}
@keyframes shakeX{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(2px)}30%,50%,70%{transform:translateX(-4px)}40%,60%{transform:translateX(4px)}}

/* ===== Ícones SVG (sprite estático, sem script) ===== */
.b-svg{width:1.15em;height:1.15em;display:inline-block;vertical-align:-.16em;color:inherit;flex:0 0 auto}
.cat .cc .b-svg{width:27px;height:27px;display:block;vertical-align:0}
.drawer a .di .b-svg{width:20px;height:20px;display:block;vertical-align:0}
.hl-ic .b-svg{width:26px;height:26px;display:block;vertical-align:0}
.cat:active .cc .b-svg,.hl-card:active .hl-ic .b-svg{transform:scale(.92);transition:transform .15s ease}

/* ===== Campos com etiqueta flutuante (Lote C) ===== */
.buanga-group{position:relative;margin:0 0 15px}
.buanga-input{width:100%;padding:19px 14px 7px;font-size:15px;color:var(--text);background:var(--surface);border:1.5px solid var(--line);border-radius:14px;outline:none;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}
.buanga-input:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(37,99,235,.10)}
.buanga-label{position:absolute;left:14px;top:14px;color:var(--soft);font-size:15px;pointer-events:none;transition:top .15s ease,font-size .15s ease,color .15s ease}
.buanga-input:focus~.buanga-label,.buanga-input:not(:placeholder-shown)~.buanga-label{top:6px;font-size:11px;font-weight:700;color:var(--blue);letter-spacing:.2px}
textarea.buanga-input{min-height:84px;resize:vertical;padding-top:22px}
/* botão de download com pulso suave (azul da marca) */
@keyframes pulseBtn{0%{box-shadow:0 0 0 0 rgba(37,99,235,.40)}70%{box-shadow:0 0 0 12px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}
.btn-pulse{animation:pulseBtn 1.8s ease-out 2}

/* ===== v282: Premium dark (neo-dark) + profundidade + bento ===== */
[data-theme="dark"]{
  --bg:#0B0F19; --bg-2:#0E1422; --surface:#131A2C; --surface-2:#161E30;
  --line:#1E2740; --line-2:#26314F; --blue-soft:#16233F;
}
[data-theme="dark"] body{ background:radial-gradient(1100px 560px at 50% -12%, rgba(37,99,235,.12), transparent 60%), var(--bg); }
/* profundidade tátil nos crachás e cartões */
.cat .cc{ border-radius:20px; box-shadow:0 10px 22px rgba(12,14,22,.18); }
.cat .cc .b-svg{ filter:drop-shadow(0 1px 1px rgba(0,0,0,.18)); }
.hl-card{ border-radius:24px; }
[data-theme="dark"] .hl-card{ box-shadow:0 16px 34px rgba(0,0,0,.45); }
/* toque bento: 1º cartão do destaque maior (hierarquia assimétrica) */
.hl-rail .hl-card:first-child{ flex-basis:90%; }
/* brilho azul elétrico no escuro (botões + inputs focados) */
[data-theme="dark"] .btn.primary{ box-shadow:0 8px 20px rgba(37,99,235,.30); }
[data-theme="dark"] .buanga-input{ background:var(--surface); }
[data-theme="dark"] .buanga-input:focus{ border-color:var(--blue-bright); box-shadow:0 0 0 4px rgba(37,99,235,.20); }

/* ===== v283: ícones unificados (azul elétrico, fim dos crachás multicor) ===== */
.cat .cc{ background:rgba(37,99,235,.10)!important; color:var(--blue)!important; box-shadow:inset 0 0 0 1px rgba(37,99,235,.16),0 6px 16px rgba(37,99,235,.10)!important; }
.cat.dest .cc{ background:var(--blue)!important; color:#fff!important; }
[data-theme="dark"] .cat .cc{ background:rgba(91,141,239,.16)!important; color:var(--blue-bright)!important; box-shadow:inset 0 0 0 1px rgba(91,141,239,.24)!important; }
[data-theme="dark"] .cat.dest .cc{ background:var(--blue)!important; color:#fff!important; }
/* ===== Chips de seleção (Lote C) ===== */
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:5px}
.chip{padding:9px 16px;border-radius:100px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);font-size:13.5px;font-weight:600;cursor:pointer;transition:transform .12s ease,background .15s,border-color .15s,color .15s;-webkit-tap-highlight-color:transparent}
.chip:active{transform:scale(.93)}
.chip.on{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 6px 14px rgba(37,99,235,.22)}

/* ===== v284: Bento Grid assimétrico (destaques) ===== */
.hl-bento{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:2px 16px 8px}
.hl-bento .hl-card{flex:none;width:auto;border-radius:22px;padding:15px 16px;min-height:100px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start}
.hl-bento .hl-card .hl-ic{margin-bottom:8px}
.hl-bento .hl-card.hero{grid-column:span 2;min-height:148px;justify-content:center;padding:22px}
.hl-bento .hl-card.wide{grid-column:span 2;min-height:92px}
.hl-bento .hl-card.hero .hl-tt{font-size:23px}
.hl-bento .hl-card:not(.hero):not(.wide) .hl-tt{font-size:15.5px;margin-bottom:2px}
.hl-bento .hl-card:not(.hero):not(.wide) .hl-sb{font-size:11.5px;opacity:.9}
.hl-bento .hl-card:not(.hero):not(.wide) .hl-go{display:none}
.hl-bento .hl-card.wide .hl-go,.hl-bento .hl-card.hero .hl-go{margin-top:10px}

/* ===== v285: Indicador de etapas do CV (wizard visível) ===== */
.cv-steps{display:flex;align-items:center;gap:7px;padding:12px 16px 4px;justify-content:center}
.cvs-item{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--soft)}
.cvs-item .cvs-n{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--line);color:var(--muted);font-size:11px;transition:all .2s ease}
.cvs-item.on{color:var(--blue)}
.cvs-item.on .cvs-n{background:var(--blue);color:#fff;box-shadow:0 0 0 4px rgba(37,99,235,.14)}
.cvs-item.done .cvs-n{background:var(--blue-soft);color:var(--blue)}
.cvs-bar{flex:0 0 20px;height:2px;background:var(--line);border-radius:2px}

/* ===== Lote E: Chat ao vivo ===== */
.chat-rooms{display:flex;gap:8px;overflow-x:auto;padding:10px 16px 6px;scrollbar-width:none}
.chat-rooms::-webkit-scrollbar{display:none}
.chat-room{flex:0 0 auto;padding:7px 14px;border-radius:100px;border:1.5px solid var(--line);background:var(--surface);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}
.chat-room.on{background:var(--blue);border-color:var(--blue);color:#fff}
.chat-list{height:calc(100vh - 240px);min-height:280px;overflow-y:auto;padding:8px 14px 4px;display:flex;flex-direction:column;gap:7px}
.chat-empty{text-align:center;color:var(--muted);font-size:13px;padding:30px 16px}
.cmsg{display:flex;max-width:84%}
.cmsg.me{align-self:flex-end}
.cmsg-b{background:var(--surface-2);border:1px solid var(--line);padding:8px 12px;border-radius:16px;font-size:14px;line-height:1.4;color:var(--text);word-break:break-word;position:relative}
.cmsg.me .cmsg-b{background:var(--blue);border-color:var(--blue);color:#fff}
.cmsg-u{display:block;font-size:11px;font-weight:800;color:var(--blue);margin-bottom:2px}
.cmsg.me .cmsg-u{color:#fff}
.cmsg-x{display:inline}
.cmsg-t{display:block;font-size:9.5px;opacity:.6;text-align:right;margin-top:2px}
.chat-bar{display:flex;gap:8px;align-items:center;padding:8px 14px;border-top:1px solid var(--line);background:var(--surface)}
.chat-input{flex:1;padding:12px 14px;border:1.5px solid var(--line);border-radius:100px;background:var(--surface-2);color:var(--text);font-size:14px;outline:none}
.chat-input:focus{border-color:var(--blue)}
.chat-send{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:0;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.chat-send:active{transform:scale(.92)}
.chat-send svg{width:20px;height:20px}

/* ===== v288: trazer o polimento premium também ao MODO CLARO ===== */
[data-theme="light"] body{ background:radial-gradient(1000px 480px at 50% -12%, rgba(37,99,235,.07), transparent 62%), var(--bg); }
[data-theme="light"] .buanga-input:focus{ box-shadow:0 0 0 4px rgba(37,99,235,.10); }
[data-theme="light"] .hl-bento .hl-card{ box-shadow:0 14px 30px rgba(37,99,235,.14),0 4px 10px rgba(12,14,22,.06); }
[data-theme="light"] .hl-bento .hl-card.hero{ box-shadow:0 20px 42px rgba(37,99,235,.20); }
[data-theme="light"] .cat .cc{ box-shadow:inset 0 0 0 1px rgba(37,99,235,.14),0 8px 18px rgba(37,99,235,.12)!important; }
/* etiqueta flutuante: fundo da etiqueta acompanha o tema (evita "buraco" branco) */
.buanga-input:focus~.buanga-label,.buanga-input:not(:placeholder-shown)~.buanga-label{background:var(--surface)}

/* ===== v289: BUANGA VIVO — quente, colorido e acolhedor (Headspace/Duolingo) =====
   Aplica-se ao MODO CLARO (padrão). Modo escuro e etiquetas flutuantes ficam INTACTOS. */
[data-theme="light"]{
  --bg:#FDFBF7; --bg-2:#F4EFE4; --surface:#FFFFFF; --surface-2:#FBF8F1;
  --line:#EFECE3; --line-2:#E4DFD3; --ink:#141528; --text:#4A5066; --muted:#8A8FA0;
  --shadow:0 16px 36px rgba(146,120,80,.07),0 2px 6px rgba(20,21,40,.03);
  --shadow-lg:0 26px 60px rgba(146,120,80,.12);
  --c-leaf:#10B981; --c-leaf-soft:#DCFAEE; --c-gold:#F59E0B; --c-gold-soft:#FEF3C7;
  --c-rose:#EC4899; --c-rose-soft:#FCE7F3; --c-amber:#F97316; --c-amber-soft:#FFEDD5;
  --c-indigo:#6366F1; --c-indigo-soft:#E8E9FD;
}
[data-theme="light"] body{ background:radial-gradient(1100px 540px at 50% -10%, rgba(37,99,235,.05), transparent 62%), var(--bg); }
/* cantos macios (formas amigáveis) */
[data-theme="light"] .card{ border-radius:22px; }
[data-theme="light"] .hl-bento .hl-card{ border-radius:26px; }
.cat .cc{ border-radius:17px!important; }
/* crachás COLORIDOS por categoria (vivo mas premium) — fundo tonal suave + ícone vivo */
[data-theme="light"] button.cat[onclick*="idiomas"] .cc,[data-theme="light"] button.cat[onclick*="dicionario"] .cc{ background:var(--c-leaf-soft)!important; color:var(--c-leaf)!important; box-shadow:inset 0 0 0 1px rgba(16,185,129,.15)!important; }
[data-theme="light"] button.cat[onclick*="planos"] .cc{ background:var(--c-gold-soft)!important; color:var(--c-gold)!important; box-shadow:inset 0 0 0 1px rgba(245,158,11,.20)!important; }
[data-theme="light"] button.cat[onclick*="foto"] .cc{ background:var(--c-rose-soft)!important; color:var(--c-rose)!important; box-shadow:inset 0 0 0 1px rgba(236,72,153,.15)!important; }
[data-theme="light"] button.cat[onclick*="scan"] .cc,[data-theme="light"] button.cat[onclick*="irPdfTools"] .cc{ background:var(--c-amber-soft)!important; color:var(--c-amber)!important; box-shadow:inset 0 0 0 1px rgba(249,115,22,.15)!important; }
[data-theme="light"] button.cat[onclick*="comunidade"] .cc,[data-theme="light"] button.cat[onclick*="empregos"] .cc{ background:var(--c-indigo-soft)!important; color:var(--c-indigo)!important; box-shadow:inset 0 0 0 1px rgba(99,102,241,.15)!important; }
/* física tátil (mola macia) ao toque */
.btn:active,.hl-card:active,.chip:active,.buanga-chip:active,.dash-vermais:active,.sc-btn:active{ transform:scale(.96)!important; }
.cat:active .cc{ transform:scale(.9)!important; }

/* ===== v290: Dashboard BENTO — cartões macios, 2 colunas, herói no topo ===== */
.cat-grid{ grid-template-columns:repeat(2,1fr)!important; gap:12px!important; padding:6px 12px 2px!important; }
.cat{ background:var(--surface)!important; border:1px solid var(--line)!important; border-radius:22px!important;
  padding:15px!important; flex-direction:column!important; align-items:flex-start!important; gap:10px!important;
  box-shadow:var(--shadow)!important; min-height:104px!important; justify-content:center!important; }
.cat .cl{ text-align:left!important; font-size:13px!important; font-weight:700!important; line-height:1.25!important; }
.cat .cc{ width:50px!important; height:50px!important; }
/* HERÓI: primeiro cartão da grelha principal — ocupa 2 colunas, horizontal */
.bento-main .cat:first-child{ grid-column:1 / -1!important; flex-direction:row!important; align-items:center!important; gap:14px!important; min-height:auto!important; padding:18px!important; }
.bento-main .cat:first-child .cc{ width:56px!important; height:56px!important; }
.bento-main .cat:first-child .cl{ font-size:15.5px!important; }
[data-theme="light"] .bento-main .cat:first-child{ background:linear-gradient(135deg,#FFFFFF 0%,#EDF2FE 100%)!important; border-color:rgba(37,99,235,.16)!important; }
[data-theme="dark"] .bento-main .cat:first-child{ background:linear-gradient(135deg,var(--surface),rgba(37,99,235,.16))!important; }
/* selo cadeado reposicionado para o canto (estava centrado) */
.cat .lockb{ top:8px!important; right:8px!important; left:auto!important; margin-right:0!important; }

/* ===== v291: equilíbrio do bento — último cartão (PDF) ocupa a largura toda ===== */
.bento-main .cat:last-child{ grid-column:1 / -1!important; flex-direction:row!important; align-items:center!important; gap:14px!important; min-height:auto!important; padding:16px 18px!important; }
.bento-main .cat:last-child .cc{ width:52px!important; height:52px!important; }
.bento-main .cat:last-child .cl{ font-size:14.5px!important; }

/* ============================================================
   FUNDO VIVO (tema claro) — substitui o fundo "leite".
   Pinta a página/app, sem mexer na variável --bg (que também
   serve de cor de texto claro sobre elementos escuros).
   Modo escuro fica intacto.
   ============================================================ */
html:not([data-theme="dark"]) body{
  background:#D6E2F2;
}
html:not([data-theme="dark"]) #app{
  background:linear-gradient(175deg,#EAF2FC 0%,#D8E7F8 100%);
}

/* ============================================================
   PREPARATÓRIO — Design premium (scoped, não afeta o resto)
   ============================================================ */
#prepBody{ --pb-royal:#1E3A8A; --pb-bright:#3B82F6; --pb-gold:#F59E0B; --pb-r:16px; }
.pb-hero{ background:linear-gradient(135deg,#0F172A,#1E3A8A); color:#fff; border-radius:var(--pb-r); padding:20px 18px; margin-bottom:14px; box-shadow:0 8px 22px rgba(15,23,42,.18); }
.pb-hero .h{ font-family:var(--disp,'Fraunces',Georgia,serif); font-size:23px; font-weight:700; margin:0; line-height:1.15; }
.pb-hero .s{ font-size:13.5px; opacity:.88; margin-top:5px; line-height:1.45; }
.pb-section{ font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--text,#64748b); margin:16px 0 8px; }
.cat-bento-card{ display:flex; align-items:center; width:100%; padding:16px; background:var(--surface,#fff); border:1px solid var(--line,#E2E8F0); border-radius:var(--pb-r); text-align:left; cursor:pointer; margin-bottom:12px; transition:transform .15s ease, box-shadow .15s ease; }
.cat-bento-card:active{ transform:scale(.98); box-shadow:0 6px 16px rgba(30,58,138,.12); }
.cat-bento-card .cbc-icon{ display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:12px; font-size:22px; margin-right:14px; flex-shrink:0; }
.cat-bento-card .cbc-info{ flex:1; min-width:0; }
.cat-bento-card .cbc-info h3{ margin:0; font-size:16px; font-weight:700; color:var(--ink,#0F172A); }
.cat-bento-card .cbc-info p{ margin:3px 0 0; font-size:12.5px; color:var(--text,#64748b); line-height:1.4; }
.cat-bento-card .cbc-chev{ margin-left:8px; color:var(--line,#cbd5e1); font-size:20px; align-self:center; }
.provincia-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); gap:10px; margin-top:6px; }
.provincia-chip{ padding:12px 10px; background:var(--bg-2,#F0F4F8); border:1px solid transparent; border-radius:12px; font-weight:600; color:var(--ink,#0F172A); text-align:center; cursor:pointer; transition:transform .12s; }
.provincia-chip:active{ transform:scale(.97); }
.provincia-chip .pt{ font-size:13.5px; display:block; }
.provincia-chip .pn{ display:block; font-size:11px; font-weight:600; color:var(--text,#64748b); margin-top:2px; }
.provincia-chip.on{ background:var(--surface,#fff); border-color:var(--pb-bright); color:var(--pb-bright); box-shadow:0 4px 12px rgba(59,130,246,.14); }
.ies-card{ background:var(--surface,#fff); border:1px solid var(--line,#E2E8F0); border-radius:var(--pb-r); padding:16px; margin-bottom:12px; }
.ies-card .ies-sig{ font-family:var(--disp,'Fraunces',Georgia,serif); font-size:17px; font-weight:700; color:var(--ink,#0F172A); line-height:1.2; }
.ies-card .ies-ap{ font-size:13px; color:var(--text,#64748b); margin:6px 0; line-height:1.45; }
.ies-card .ies-cur{ font-size:12.5px; margin:8px 0; color:var(--text,#475569); }
.ies-tag{ display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:999px; }
.ies-tag.ok{ background:#E6F4EA; color:#0E9F6E; }
.ies-tag.wait{ background:#FCE8E8; color:#EF4444; }
.pb-btn-primary{ width:100%; margin-top:12px; background:var(--pb-royal); color:#fff; border:none; border-radius:12px; padding:12px; font-weight:700; font-size:14px; cursor:pointer; }
.pb-btn-primary:active{ transform:scale(.99); }

/* ===== Preparatório — Aula & Diagnóstico (premium, scoped) ===== */
#paBody{ --pb-royal:#1E3A8A; --pb-bright:#3B82F6; }
#paBody .card{ border-radius:16px; border:1px solid var(--line); box-shadow:0 4px 16px rgba(15,23,42,.05); }
#paBody .btn.primary, #prepBody .btn.primary{ background:var(--pb-royal); border-color:var(--pb-royal); border-radius:12px; font-weight:700; }
#paBody .btn.primary:active, #prepBody .btn.primary:active{ transform:scale(.99); }
#paBody .btn.ghost, #prepBody .btn.ghost{ border-radius:11px; }
#paBody .pa-rich{ font-size:15px; line-height:1.72; }
#paBody .pa-rich p{ margin:0 0 11px; }
#paBody .pa-rich ul{ margin:0 0 11px 18px; }
#paBody .pa-rich b{ color:var(--ink); }
#paBody #paDuv{ border-radius:12px; border:1px solid var(--line); padding:10px; font-size:14px; }
#paBody #paImg img{ box-shadow:0 4px 14px rgba(15,23,42,.08); }
/* opções (diagnóstico) — chips premium */
#paBody .idi-opt, #prepBody .idi-opt{ display:block; width:100%; text-align:left; border-radius:12px; border:1.5px solid var(--line); background:var(--surface,#fff); padding:13px 14px; margin-bottom:9px; font-weight:600; color:var(--ink); transition:transform .12s, border-color .12s, background .12s; }
#paBody .idi-opt:active, #prepBody .idi-opt:active{ transform:scale(.99); }
#paBody .idi-opt.ok, #prepBody .idi-opt.ok{ border-color:var(--pb-bright); background:rgba(59,130,246,.10); color:var(--pb-bright); }
#paBody .idi-opt.bad, #prepBody .idi-opt.bad{ border-color:#EF4444; background:#FCE8E8; color:#EF4444; }
#paBody .subhead, #prepBody .subhead{ font-family:var(--disp,'Fraunces',Georgia,serif); font-weight:700; font-size:17px; color:var(--ink); }

/* ===== Professor António Buanga — chat flutuante (scoped/premium) ===== */
#screen-preparatorios .bt-fab{ position:fixed; right:18px; bottom:86px; width:56px; height:56px; border-radius:50%; background:linear-gradient(135deg,#4F46E5,#1E3A8A); color:#fff; border:none; font-size:25px; box-shadow:0 8px 22px rgba(79,70,229,.42); z-index:900; cursor:pointer; transition:transform .15s; }
#screen-preparatorios .bt-fab:active{ transform:scale(.93); }
.bt-modal{ position:fixed; left:0; right:0; bottom:-105%; height:86vh; max-width:720px; margin:0 auto; background:var(--surface,#fff); border-radius:22px 22px 0 0; box-shadow:0 -12px 40px rgba(0,0,0,.22); display:flex; flex-direction:column; z-index:9999; transition:bottom .38s cubic-bezier(.16,1,.3,1); }
.bt-modal.open{ bottom:0; }
.bt-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line,#e5e7eb); }
.bt-who{ display:flex; align-items:center; gap:10px; }
.bt-av{ width:40px; height:40px; border-radius:50%; background:#EEF2FF; display:flex; align-items:center; justify-content:center; font-size:22px; }
.bt-nm{ font-weight:800; font-size:15px; color:var(--ink,#0F172A); font-family:var(--disp,'Fraunces',Georgia,serif); }
.bt-st{ font-size:11px; color:#10B981; }
.bt-x{ background:none; border:none; font-size:18px; color:var(--text,#64748b); cursor:pointer; }
.bt-msgs{ flex:1; overflow-y:auto; padding:16px; display:flex; flex-direction:column; gap:10px; background:var(--bg-2,#F6F8FC); }
.bt-b{ max-width:82%; padding:11px 14px; border-radius:16px; font-size:14px; line-height:1.5; }
.bt-b.user{ align-self:flex-end; background:#1E3A8A; color:#fff; border-bottom-right-radius:5px; }
.bt-b.antonio{ align-self:flex-start; background:var(--surface,#fff); color:var(--ink,#0F172A); border:1px solid var(--line,#e5e7eb); border-bottom-left-radius:5px; }
.bt-fname{ padding:6px 16px 0; font-size:12px; color:var(--text,#64748b); }
.bt-foot{ display:flex; align-items:center; gap:8px; padding:10px 12px; border-top:1px solid var(--line,#e5e7eb); background:var(--surface,#fff); }
.bt-clip{ background:none; border:none; font-size:20px; cursor:pointer; flex-shrink:0; }
#btUInput{ flex:1; min-width:0; border:1px solid var(--line,#e5e7eb); border-radius:20px; padding:10px 14px; font-size:14px; background:var(--bg-2,#f6f8fc); color:var(--ink,#0F172A); }
.bt-send{ background:#1E3A8A; color:#fff; border:none; border-radius:20px; padding:10px 16px; font-weight:700; font-size:14px; cursor:pointer; flex-shrink:0; }

/* ===== Concursos Públicos oficiais (premium, scoped) ===== */
#prepBody .conc-disc{ background:var(--bg-2,#F0F4F8); border:1px solid var(--line,#E2E8F0); border-radius:12px; padding:10px 12px; font-size:12.5px; color:var(--text,#475569); margin-bottom:12px; line-height:1.45; }
#prepBody .conc-card{ background:var(--surface,#fff); border:1px solid var(--line,#E2E8F0); border-left:4px solid #06B6D4; border-radius:16px; padding:16px; margin-bottom:14px; }
#prepBody .conc-top{ display:flex; align-items:center; gap:9px; margin-bottom:6px; }
#prepBody .conc-sig{ background:#0f2350; color:#fff; font-weight:800; font-size:12px; padding:3px 10px; border-radius:999px; }
#prepBody .conc-nm{ font-family:var(--disp,'Fraunces',Georgia,serif); font-size:16px; font-weight:700; color:var(--ink,#0F172A); line-height:1.2; }
#prepBody .conc-vagas{ display:inline-block; font-size:12.5px; font-weight:800; color:#0E9F6E; margin:2px 0 8px; }
#prepBody .conc-base{ font-size:13px; color:var(--text,#475569); line-height:1.5; margin:4px 0; }
#prepBody .conc-h{ font-size:12px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; color:var(--ink,#0F172A); margin:11px 0 4px; }
#prepBody .conc-typ{ font-weight:600; text-transform:none; letter-spacing:0; color:#EF4444; font-size:11px; }
#prepBody .conc-ul{ margin:0 0 2px 16px; padding:0; }
#prepBody .conc-ul li{ font-size:13px; color:var(--text,#475569); line-height:1.5; margin:2px 0; }
#prepBody .conc-warn{ background:#FEF3C7; border:1px solid #FCD34D; color:#92400E; border-radius:10px; padding:9px 11px; font-size:12px; margin-top:10px; line-height:1.45; }

/* ===== Chat do Professor António — rico (Markdown, selo, histórico) ===== */
.bt-head .bt-actions{ display:flex; gap:6px; align-items:center; }
.bt-mini{ background:var(--bg-2,#F0F4F8); border:1px solid var(--line,#e5e7eb); color:var(--ink,#0F172A); width:30px; height:30px; border-radius:9px; font-size:15px; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.bt-mini:active{ transform:scale(.94); }
.bt-ok{ display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; border-radius:50%; background:#3B82F6; color:#fff; font-size:9px; font-weight:800; vertical-align:middle; }
.bt-send{ width:42px; height:42px; border-radius:50%; padding:0; display:flex; align-items:center; justify-content:center; }
.bt-think{ color:var(--text,#64748b); }
/* Markdown dentro dos balões do professor */
.bt-b.antonio h3{ font-family:var(--disp,'Fraunces',Georgia,serif); font-size:15px; margin:2px 0 6px; color:#1E3A8A; }
.bt-b.antonio p{ margin:0 0 8px; }
.bt-b.antonio p:last-child{ margin-bottom:0; }
.bt-b.antonio ul, .bt-b.antonio ol{ margin:4px 0 8px 18px; padding:0; }
.bt-b.antonio li{ margin:3px 0; }
.bt-b.antonio strong{ font-weight:800; color:var(--ink,#0F172A); }
.bt-b.antonio code{ background:var(--bg-2,#EEF2F8); border:1px solid var(--line,#e5e7eb); border-radius:6px; padding:1px 5px; font-size:12.5px; font-family:ui-monospace,Menlo,Consolas,monospace; }
.bt-b.antonio pre.md-pre{ background:#0F172A; color:#E2E8F0; border-radius:10px; padding:10px 12px; overflow-x:auto; font-size:12.5px; line-height:1.5; margin:6px 0; }
.bt-b.antonio a{ color:#2563EB; }
.bt-b.antonio table.md-tab{ width:100%; border-collapse:collapse; margin:6px 0; font-size:12.5px; }
.bt-b.antonio table.md-tab th, .bt-b.antonio table.md-tab td{ border:1px solid var(--line,#e2e8f0); padding:6px 8px; text-align:left; }
.bt-b.antonio table.md-tab th{ background:var(--bg-2,#EEF2F8); font-weight:800; }
/* Painel de conversas anteriores (desliza sobre as mensagens) */
.bt-conv{ position:absolute; inset:0; background:var(--surface,#fff); border-radius:22px 22px 0 0; transform:translateX(105%); transition:transform .28s ease; z-index:5; display:flex; flex-direction:column; }
.bt-conv.open{ transform:translateX(0); }
.bt-conv-head{ display:flex; align-items:center; justify-content:space-between; padding:14px 16px; border-bottom:1px solid var(--line,#e5e7eb); font-size:15px; color:var(--ink,#0F172A); }
.bt-conv-list{ flex:1; overflow-y:auto; }
.bt-conv-item{ display:block; width:100%; text-align:left; background:none; border:none; border-bottom:1px solid var(--line,#eef1f6); padding:12px 16px; cursor:pointer; }
.bt-conv-item:active{ background:var(--bg-2,#F6F8FC); }
.bt-conv-t{ font-size:14px; font-weight:600; color:var(--ink,#0F172A); }
.bt-conv-d{ font-size:11.5px; color:var(--text,#64748b); margin-top:2px; }

/* Ilustração de apoio no chat do Professor */
.bt-b.antonio .bt-img{ margin-top:10px; border:1px solid var(--line,#e5e7eb); border-radius:10px; overflow:hidden; }
.bt-b.antonio .bt-img img{ width:100%; height:auto; display:block; max-height:260px; object-fit:cover; }
.bt-b.antonio .bt-imgc{ font-size:11px; color:var(--text,#64748b); padding:4px 8px; background:var(--bg-2,#F6F8FC); }

/* ===== Enquadramento dos chats (bolas) sem quebrar layouts ===== */
/* Chatbot de ajuda: só na dashboard (home) */
#app .bot-fab{ display:none!important; }
#app[data-scr="home"] .bot-fab{ display:flex!important; }
#app:not([data-scr="home"]) .bot-panel{ display:none!important; }
/* Esconder as bolas enquanto se escreve (não tapam o botão enviar em lado nenhum) */
body.kbd-open .bot-fab, body.kbd-open #screen-preparatorios .bt-fab{ display:none!important; }
/* Professor António: bola escondida quando a janela está aberta */
#screen-preparatorios .bt-fab.hidden{ display:none!important; }
/* Logótipo do app na bola e no avatar do Professor */
#screen-preparatorios .bt-fab{ font-size:0; padding:0; overflow:hidden; }
#screen-preparatorios .bt-fab img{ width:38px; height:38px; border-radius:50%; object-fit:cover; }
.bt-av{ overflow:hidden; }
.bt-av img{ width:100%; height:100%; border-radius:50%; object-fit:cover; display:block; }
#screen-preparatorios .bt-fab{ display:flex; align-items:center; justify-content:center; }
