:root{
  --p50:#EFF6FF;--p100:#DBEAFE;--p200:#BFDBFE;--p300:#93C5FD;
  --p400:#60A5FA;--p500:#1D4ED8;--p600:#1E3A8A;--p700:#172554;
  --bg:#FFFFFF;--surface:#F8FAFC;--surface2:#F1F5F9;
  --border:#E2E8F0;--border2:#CBD5E1;
  --text:#0F172A;--text2:#64748B;--text3:#94A3B8;
  --green:#059669;--green-bg:#D1FAE5;
  --amber:#D97706;--amber-bg:#FEF3C7;
  --red:#DC2626;--red-bg:#FEE2E2;
  --violet:#7C3AED;--violet-bg:#EDE9FE;
  --cyan:#0891B2;--cyan-bg:#CFFAFE;
  /* Forças policiais */
  --c-civil:#1D4ED8;--c-civil-bg:#DBEAFE;
  --c-militar:#15803D;--c-militar-bg:#DCFCE7;
  --c-penal:#475569;--c-penal-bg:#F1F5F9;
  --c-bombeiro:#DC2626;--c-bombeiro-bg:#FEE2E2;
  --c-legislativa:#7C3AED;--c-legislativa-bg:#EDE9FE;
  --c-guarda:#0891B2;--c-guarda-bg:#CFFAFE;
  --c-outras:#D97706;--c-outras-bg:#FEF3C7;
  /* Compat. com código existente */
  --c-policial:#1D4ED8;--c-policial-bg:#DBEAFE;
  --c-juridico:#7C3AED;--c-juridico-bg:#EDE9FE;
  --c-fiscal:#D97706;--c-fiscal-bg:#FEF3C7;
  --c-saude:#059669;--c-saude-bg:#D1FAE5;
  --c-educacao:#0891B2;--c-educacao-bg:#CFFAFE;
  --c-administrativo:#4B5563;--c-administrativo-bg:#F3F4F6;
  --c-outros:#DC2626;--c-outros-bg:#FEE2E2;
  --shadow-xs:0 1px 2px rgba(0,0,0,.05);
  --shadow-sm:0 1px 3px rgba(0,0,0,.10),0 1px 2px rgba(0,0,0,.06);
  --shadow-md:0 4px 6px rgba(0,0,0,.07),0 2px 4px rgba(0,0,0,.06);
  --shadow-lg:0 10px 15px rgba(0,0,0,.10),0 4px 6px rgba(0,0,0,.05);
  --shadow-xl:0 20px 25px rgba(0,0,0,.10),0 8px 10px rgba(0,0,0,.04);
  --r-sm:4px;--r:6px;--r-md:8px;--r-lg:12px;--r-xl:16px;--r-full:9999px;
  --t-fast:150ms ease;--t-base:200ms ease;--t-slow:300ms ease;
}
[data-theme="dark"]{
  --bg:#0F172A;--surface:#1E293B;--surface2:#263248;
  --border:#334155;--border2:#475569;--text:#F8FAFC;--text2:#CBD5E1;--text3:#94A3B8;
  --p50:#1E3A5F;--p100:rgba(59,130,246,.25);--p200:rgba(59,130,246,.4);
  --p500:#60A5FA;--p600:#93C5FD;
  --c-civil:#93C5FD;--c-civil-bg:rgba(37,99,235,.25);
  --c-militar:#86EFAC;--c-militar-bg:rgba(22,163,74,.25);
  --c-penal:#CBD5E1;--c-penal-bg:rgba(100,116,139,.25);
  --c-bombeiro:#FCA5A5;--c-bombeiro-bg:rgba(239,68,68,.25);
  --c-legislativa:#C4B5FD;--c-legislativa-bg:rgba(139,92,246,.25);
  --c-guarda:#67E8F9;--c-guarda-bg:rgba(6,182,212,.25);
  --c-outras:#FDE68A;--c-outras-bg:rgba(245,158,11,.25);
  --c-policial:#93C5FD;--c-policial-bg:rgba(37,99,235,.25);
  --c-juridico:#C4B5FD;--c-juridico-bg:rgba(139,92,246,.25);
  --c-fiscal:#FDE68A;--c-fiscal-bg:rgba(245,158,11,.25);
  --c-saude:#6EE7B7;--c-saude-bg:rgba(5,150,105,.25);
  --c-educacao:#67E8F9;--c-educacao-bg:rgba(6,182,212,.25);
  --c-administrativo:#CBD5E1;--c-administrativo-bg:rgba(100,116,139,.25);
  --c-outros:#FCA5A5;--c-outros-bg:rgba(239,68,68,.25);
  --green:#6EE7B7;--green-bg:rgba(5,150,105,.25);
  --amber:#FDE68A;--amber-bg:rgba(245,158,11,.25);
  --red:#FCA5A5;--red-bg:rgba(239,68,68,.25);
  --violet:#C4B5FD;--violet-bg:rgba(139,92,246,.25);
  --cyan:#67E8F9;--cyan-bg:rgba(6,182,212,.25);
  --shadow-xs:0 1px 2px rgba(0,0,0,.4);
  --shadow-sm:0 1px 3px rgba(0,0,0,.5),0 1px 2px rgba(0,0,0,.4);
  --shadow-md:0 4px 6px rgba(0,0,0,.5),0 2px 4px rgba(0,0,0,.4);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background var(--t-slow),color var(--t-slow)}
a{text-decoration:none;color:inherit}button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit}
@keyframes shimmer{0%{background-position:-600px 0}100%{background-position:600px 0}}
.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface2) 50%,var(--surface) 75%);background-size:600px 100%;animation:shimmer 1.4s infinite;border-radius:var(--r)}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.page{opacity:1}
.page.active{animation:fadeUp var(--t-slow) ease-out;animation-fill-mode:both}
[data-tip]{position:relative}
[data-tip]::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);font-size:11px;font-weight:500;white-space:nowrap;padding:4px 8px;border-radius:var(--r-sm);pointer-events:none;opacity:0;transition:opacity var(--t-fast);z-index:999}
[data-tip]:hover::after{opacity:1}

/* HEADER */
header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);height:56px;display:flex;align-items:center;padding:0 20px;gap:12px;box-shadow:var(--shadow-xs);transition:background var(--t-slow)}
.header-nav{display:flex;gap:1px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:3px;margin:0 auto} /* centro */
.logo{display:flex;align-items:center;gap:9px;flex-shrink:0;color:var(--text)}
[data-theme="dark"] header{background:rgba(15,23,42,.97);border-bottom-color:var(--border)}
.logo-mark{width:28px;height:28px;background:var(--p500);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:13px;font-weight:700;box-shadow:0 0 0 3px var(--p100);flex-shrink:0;transition:transform var(--t-base)}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.06)}
.logo-text{font-size:16px;font-weight:700;letter-spacing:-.4px}
.logo-text em{color:var(--p500);font-style:normal}
.nav-tab{padding:5px 13px;font-size:13px;font-weight:500;background:none;border:none;color:var(--text2);border-radius:var(--r-md);transition:all var(--t-fast);display:flex;align-items:center;gap:5px;white-space:nowrap}
.nav-tab.active{background:var(--bg);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600}
.nav-tab:hover:not(.active){background:var(--surface2);color:var(--text)}
.tab-badge{background:var(--p500);color:#fff;font-size:10px;font-weight:600;border-radius:var(--r-full);padding:1px 6px;min-width:18px;text-align:center}
.header-actions{display:flex;align-items:center;gap:7px;flex-shrink:0}
.view-toggle{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.vbtn{padding:5px 11px;font-size:12px;font-weight:500;background:none;border:none;color:var(--text2);transition:all var(--t-fast)}
.vbtn.active{background:var(--p500);color:#fff}
.vbtn:hover:not(.active){background:var(--surface2);color:var(--text)}
.icon-btn{width:32px;height:32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--t-fast);flex-shrink:0}
.icon-btn:hover{border-color:var(--border2);color:var(--text);background:var(--surface2)}
.user-chip{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 5px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);cursor:pointer;transition:all var(--t-fast);font-size:13px;font-weight:500;color:var(--text)}
.user-chip:hover{border-color:var(--border2);background:var(--surface2)}
.user-avatar{width:24px;height:24px;border-radius:50%;background:var(--p500);color:#fff;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;flex-shrink:0}
.login-btn{padding:6px 14px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-md);font-size:13px;font-weight:600;transition:all var(--t-fast);box-shadow:var(--shadow-sm)}
.login-btn:hover{background:var(--p600);box-shadow:var(--shadow-md)}

/* APP SHELL */
.app{display:block;min-height:calc(100vh - 56px)}
aside{display:none} /* sidebar fixo removido — filtros via drawer */

/* ── Proteção contra AdSense auto-ads ─────────────────────────────── */
html,body{height:100%;overflow:hidden}
#page-wrap{
  position:fixed;inset:0;
  display:flex;flex-direction:column;
  background:var(--bg);
  z-index:1;
  overflow:hidden;
}
#page-wrap header{position:relative;flex-shrink:0}
#page-wrap .app{flex:1;overflow:hidden;min-height:0}
#page-wrap aside{height:100%}
#page-wrap main{overflow-y:auto;height:100%}
.filter-section{margin-bottom:20px}
.filter-title{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text3);margin-bottom:8px;padding:0 4px}
.filter-chips{display:flex;flex-direction:column;gap:1px}
.chip{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);font-size:13px;color:var(--text2);user-select:none;border:1px solid transparent}
.chip:hover{background:var(--surface2);color:var(--text)}
.chip.active{background:var(--p50);border-color:var(--p200);color:var(--p600);font-weight:500}
.chip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.chip-count{margin-left:auto;font-size:11px;font-weight:500;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-full);padding:1px 7px;color:var(--text3);transition:all var(--t-fast)}
.chip.active .chip-count{background:var(--p100);border-color:var(--p200);color:var(--p600)}
.fsel{width:100%;padding:7px 28px 7px 9px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:13px;outline:none;cursor:pointer;margin-bottom:6px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239CA3AF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.fsel:focus{border-color:var(--p500);box-shadow:0 0 0 3px var(--p100);outline:none}
.legend-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--text2);margin-bottom:5px;padding:0 4px}
.legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}
main{padding:20px 24px;overflow-y:auto;background:var(--bg)}
.page{display:none}.page.active{display:block}
.page-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.page-title{font-size:20px;font-weight:700;letter-spacing:-.4px}
.page-title em{color:var(--p500);font-style:normal}
.page-subtitle{font-size:13px;color:var(--text2);margin-top:3px}

/* STATS */
.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.stat-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;transition:all var(--t-base);position:relative;overflow:hidden}
.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--border2);transform:translateY(-1px)}
.stat-card-accent{position:absolute;top:0;left:0;right:0;height:3px;background:var(--p500);border-radius:var(--r-lg) var(--r-lg) 0 0}
.stat-label{font-size:11px;font-weight:500;color:var(--text2);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}
.stat-val{font-size:22px;font-weight:700;color:var(--text);line-height:1}
.stat-val span{font-size:12px;font-weight:500;color:var(--p500)}

/* CALENDAR */
.month-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.month-title{font-size:20px;font-weight:700;letter-spacing:-.4px}
.month-title em{color:var(--p500);font-style:normal}
.nav-row{display:flex;gap:6px;align-items:center}
.nbtn{width:32px;height:32px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;transition:all var(--t-fast)}
.nbtn:hover{border-color:var(--p500);color:var(--p500);background:var(--p50)}
.tbtn{padding:0 14px;height:32px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text2);font-size:13px;font-weight:500;transition:all var(--t-fast)}
.tbtn:hover{border-color:var(--p500);color:var(--p500);background:var(--p50)}
.upcoming-bar{display:flex;align-items:center;gap:10px;background:var(--p50);border:1px solid var(--p200);border-radius:var(--r-md);padding:10px 14px;margin-bottom:16px;overflow-x:auto;flex-shrink:0}
.upcoming-bar-label{font-size:11px;font-weight:600;color:var(--p600);white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.upcoming-pill{display:flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--p200);border-radius:var(--r-full);padding:4px 10px;font-size:11px;font-weight:500;color:var(--p600);white-space:nowrap;cursor:pointer;flex-shrink:0;transition:all var(--t-fast)}
.upcoming-pill:hover{background:var(--p100);box-shadow:var(--shadow-xs)}
.upcoming-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.calendar-wrap{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-xs)}
.cal-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--surface);border-bottom:1px solid var(--border)}
.cal-dow{padding:10px 0;text-align:center;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text3)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-day{min-height:92px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:7px 6px;cursor:pointer;transition:background var(--t-fast)}
.cal-day:nth-child(7n){border-right:none}
.cal-day:nth-last-child(-n+7){border-bottom:none}
.cal-day.other-month{background:var(--surface)}
.cal-day.other-month .day-num{opacity:.3}
.cal-day.today{background:var(--p50)}
.cal-day:hover:not(.other-month){background:#F0F5FF}
[data-theme="dark"] .cal-day:hover:not(.other-month){background:var(--surface2)}
[data-theme="dark"] .cal-day.today{background:rgba(37,99,235,.1)}
[data-theme="dark"] .cal-day.other-month{background:rgba(255,255,255,.02)}
.day-num{font-size:12px;font-weight:500;color:var(--text2);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;margin-bottom:4px;transition:all var(--t-fast)}
.cal-day.today .day-num{background:var(--p500);color:#fff;font-weight:600;box-shadow:0 0 0 3px var(--p100)}
.events-container{display:flex;flex-direction:column;gap:2px}
.event-chip{padding:2px 5px;border-radius:var(--r-sm);font-size:10px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:3px;line-height:1.4;overflow:hidden;transition:all var(--t-fast)}
.event-chip:hover{filter:brightness(.92);transform:translateX(1px)}
.event-logo{width:12px;height:12px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:6px;font-weight:700;flex-shrink:0;background:rgba(0,0,0,.12)}
.evt-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.more-evt{font-size:10px;color:var(--text3);padding:1px 4px;cursor:pointer;font-weight:500}
.more-evt:hover{color:var(--p500)}
.cal-view.hidden{display:none}
.list-view{display:none}.list-view.active{display:block}
.evt-policial{background:var(--c-policial-bg);color:var(--c-policial)}
.evt-juridico{background:var(--c-juridico-bg);color:var(--c-juridico)}
.evt-fiscal{background:var(--c-fiscal-bg);color:var(--c-fiscal)}
.evt-saude{background:var(--c-saude-bg);color:var(--c-saude)}
.evt-educacao{background:var(--c-educacao-bg);color:var(--c-educacao)}
.evt-administrativo{background:var(--c-administrativo-bg);color:var(--c-administrativo)}
.evt-outros{background:var(--c-outros-bg);color:var(--c-outros)}
/* Forças policiais */
.evt-civil{background:var(--c-civil-bg);color:var(--c-civil)}
.evt-militar{background:var(--c-militar-bg);color:var(--c-militar)}
.evt-penal{background:var(--c-penal-bg);color:var(--c-penal)}
.evt-bombeiro{background:var(--c-bombeiro-bg);color:var(--c-bombeiro)}
.evt-legislativa{background:var(--c-legislativa-bg);color:var(--c-legislativa)}
.evt-guarda{background:var(--c-guarda-bg);color:var(--c-guarda)}
.evt-outras{background:var(--c-outras-bg);color:var(--c-outras)}
.carreira-tag{display:inline-flex;align-items:center;font-size:11px;font-weight:500;padding:2px 8px;border-radius:var(--r-full)}
.carreira-policial{color:var(--c-policial);background:var(--c-policial-bg)}
.carreira-juridico{color:var(--c-juridico);background:var(--c-juridico-bg)}
.carreira-fiscal{color:var(--c-fiscal);background:var(--c-fiscal-bg)}
.carreira-saude{color:var(--c-saude);background:var(--c-saude-bg)}
.carreira-educacao{color:var(--c-educacao);background:var(--c-educacao-bg)}
.carreira-administrativo{color:var(--c-administrativo);background:var(--c-administrativo-bg)}
.carreira-outros{color:var(--c-outros);background:var(--c-outros-bg)}
.tl-inscricao{background:var(--c-policial)}.tl-prova{background:var(--amber)}.tl-resultado{background:var(--green)}.tl-outro{background:var(--text3)}

/* LIST */
.list-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:8px;display:flex;align-items:flex-start;gap:14px;cursor:pointer;transition:all var(--t-base);position:relative}
.list-item:hover{border-color:var(--p300);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.list-logo{width:44px;height:44px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;flex-shrink:0;border:1px solid var(--border);letter-spacing:-.3px;text-align:center;line-height:1.2;word-break:break-word;padding:2px}
.list-main{flex:1;min-width:0}
.list-nome{font-size:14px;font-weight:600;margin-bottom:2px;letter-spacing:-.2px}
.list-cargo{font-size:12px;color:var(--text2);margin-bottom:8px}
.list-tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);color:var(--text2)}
.list-right{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.list-date-label{font-size:10px;font-weight:500;color:var(--text3);text-transform:uppercase;letter-spacing:.05em}
.list-date-val{font-size:13px;font-weight:700;color:var(--p500)}
.list-fav-btn{background:none;border:none;font-size:16px;opacity:.28;transition:all var(--t-fast);line-height:1}
.list-fav-btn:hover{opacity:1;transform:scale(1.2)}
.list-fav-btn.faved{opacity:1}

/* DETAIL PANEL */
.detail-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.4);z-index:200;backdrop-filter:blur(3px)}
.detail-overlay.open{display:flex;align-items:flex-start;justify-content:flex-end}
.detail-panel{width:420px;height:100vh;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto;animation:slideIn .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xl)}
@keyframes slideIn{from{transform:translateX(36px);opacity:0}to{transform:translateX(0);opacity:1}}
.panel-header{padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;box-shadow:var(--shadow-xs)}
.panel-close{width:28px;height:28px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--t-fast);flex-shrink:0}
.panel-close:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}
.org-hd{display:flex;align-items:center;gap:12px}
.org-logo-lg{width:46px;height:46px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;border:1px solid var(--border)}
.org-name{font-size:15px;font-weight:700;letter-spacing:-.3px}
.org-sub{font-size:12px;color:var(--text2);margin-top:1px}
.panel-body{padding:18px 20px}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}
.info-cell{background:var(--surface);border-radius:var(--r-md);padding:10px 12px;border:1px solid var(--border)}
.info-cell-label{font-size:10px;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px}
.info-cell-val{font-size:13px;font-weight:600}
.sec-head{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.timeline{position:relative;padding-left:20px;margin-bottom:20px}
.timeline::before{content:'';position:absolute;left:7px;top:8px;bottom:8px;width:1px;background:var(--border)}
.tl-item{position:relative;margin-bottom:14px}
.tl-dot{position:absolute;left:-16px;top:5px;width:9px;height:9px;border-radius:50%;border:2px solid var(--bg)}
.tl-item-nome{font-size:13px;font-weight:500;margin-bottom:2px}
.tl-item-data{font-size:11px;color:var(--text2)}
.tl-badge{display:inline-block;font-size:10px;font-weight:500;padding:1px 6px;border-radius:var(--r-full);margin-left:6px;vertical-align:middle}
.badge-inscricao{background:var(--c-policial-bg);color:var(--c-policial)}
.badge-prova{background:var(--amber-bg);color:var(--amber)}
.badge-resultado{background:var(--green-bg);color:var(--green)}
.badge-outro{background:var(--surface2);color:var(--text2)}
.cargos-list{display:flex;flex-direction:column;gap:5px;margin-bottom:20px}
.cargo-row{background:var(--surface);border-radius:var(--r-md);padding:8px 12px;font-size:13px;font-weight:500;border:1px solid var(--border)}
.inscricao-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-lg);font-size:13px;font-weight:600;cursor:pointer;text-decoration:none;margin-bottom:8px;transition:all var(--t-fast);box-shadow:var(--shadow-sm)}
.inscricao-btn:hover{background:var(--p600);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.fav-btn-panel{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:9px;background:transparent;color:var(--text2);border:1px solid var(--border);border-radius:var(--r-lg);font-size:13px;font-weight:500;cursor:pointer;margin-bottom:18px;transition:all var(--t-fast)}
.fav-btn-panel:hover{border-color:var(--amber);color:var(--amber);background:var(--amber-bg)}
.fav-btn-panel.faved{background:var(--amber-bg);border-color:var(--amber);color:var(--amber);font-weight:600}
.banca-link{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;color:var(--p500);text-decoration:none;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);transition:all var(--t-fast)}
.banca-link:hover{border-color:var(--p300);background:var(--p50)}

/* FAVORITOS */
.favs-empty{text-align:center;padding:60px 20px}
.favs-empty-icon{font-size:48px;margin-bottom:12px}
.favs-empty h3{font-size:16px;font-weight:600;margin-bottom:6px}
.favs-empty p{font-size:13px;color:var(--text2);line-height:1.7}
.notif-hint{background:var(--amber-bg);border:1px solid rgba(217,119,6,.25);border-radius:var(--r-lg);padding:12px 16px;margin-bottom:18px;display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text);line-height:1.6}
.auth-wall{background:var(--p50);border:1px solid var(--p200);border-radius:var(--r-lg);padding:40px;text-align:center;margin-top:20px}
.auth-wall-icon{font-size:44px;margin-bottom:14px}
.auth-wall h3{font-size:17px;font-weight:700;margin-bottom:8px}
.auth-wall p{font-size:13px;color:var(--text2);margin-bottom:20px;line-height:1.65}
.auth-wall-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 24px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-md);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--t-fast);box-shadow:var(--shadow-sm)}
.auth-wall-btn:hover{background:var(--p600);box-shadow:var(--shadow-md)}

/* INDICAÇÕES */
.ind-topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.ind-cats{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.ind-cat{padding:5px 12px;border-radius:var(--r-full);font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text2);transition:all var(--t-fast);display:flex;align-items:center;gap:4px}
.ind-cat.active{background:var(--p500);color:#fff;border-color:var(--p500);box-shadow:var(--shadow-sm)}
.ind-cat:hover:not(.active){border-color:var(--border2);color:var(--text);background:var(--surface)}
.add-ind-btn{padding:8px 16px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-md);font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;transition:all var(--t-fast);flex-shrink:0;box-shadow:var(--shadow-sm)}
.add-ind-btn:hover{background:var(--p600);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.ind-layout{display:grid;grid-template-columns:1fr 262px;gap:18px;align-items:start}
.search-box{width:100%;padding:9px 36px 9px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:13px;outline:none;margin-bottom:14px;transition:border-color var(--t-fast),box-shadow var(--t-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.search-box:focus{border-color:var(--p500);box-shadow:0 0 0 3px var(--p100)}
.ind-grid{display:flex;flex-direction:column;gap:10px}
.ind-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px;transition:all var(--t-base);position:relative}
.ind-card:hover{border-color:var(--border2);box-shadow:var(--shadow-md);transform:translateY(-1px)}
.ind-card.relevante{border-color:var(--amber)}
.ind-card.relevante::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--amber),var(--p500));border-radius:var(--r-lg) var(--r-lg) 0 0}
.badge-relevante{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:var(--r-full);background:var(--amber-bg);color:var(--amber);border:1px solid rgba(217,119,6,.25);position:absolute;top:13px;right:15px}
.ind-card-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}
.ind-icon{width:42px;height:42px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;border:1px solid var(--border)}
.tipo-professor{background:var(--violet-bg)}.tipo-cursinho{background:var(--amber-bg)}.tipo-questoes{background:var(--green-bg)}.tipo-clinica{background:var(--red-bg)}.tipo-psicologia{background:var(--violet-bg)}.tipo-material{background:var(--cyan-bg)}.tipo-outros2{background:var(--surface2)}
.ind-nome{font-size:14px;font-weight:600;margin-bottom:4px;letter-spacing:-.2px}
.ind-meta-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:8px}
.ind-tipo-tag{font-size:11px;font-weight:500;padding:2px 8px;border-radius:var(--r-full);background:var(--p50);color:var(--p600);border:1px solid var(--p200)}
.ind-estado-tag{font-size:11px;padding:2px 8px;border-radius:var(--r-full);background:var(--surface);color:var(--text2);border:1px solid var(--border)}
.ind-desc{font-size:13px;color:var(--text2);line-height:1.65;margin-bottom:10px}
.ind-url{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:500;color:var(--p500);text-decoration:none;transition:color var(--t-fast)}
.ind-url:hover{color:var(--p600);text-decoration:underline}
.ind-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border)}
.ind-author{display:flex;align-items:center;gap:7px}
.ind-avatar{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;flex-shrink:0}
.ind-author-name{font-size:11px;color:var(--text2);font-weight:500}
.ind-date{font-size:11px;color:var(--text3)}
.vote-row{display:flex;align-items:center;gap:5px}
.vote-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--r-md);font-size:12px;font-weight:500;border:1px solid var(--border);background:var(--surface);transition:all var(--t-fast)}
.vote-btn.up{color:var(--green)}.vote-btn.down{color:var(--red)}
.vote-btn.up:hover,.vote-btn.up.voted{background:var(--green-bg);border-color:var(--green);font-weight:600}
.vote-btn.down:hover,.vote-btn.down.voted{background:var(--red-bg);border-color:var(--red);font-weight:600}
.vote-score{font-size:13px;font-weight:700;min-width:28px;text-align:center}
.score-pos{color:var(--green)}.score-neg{color:var(--red)}.score-neu{color:var(--text3)}
.ind-sidebar{display:flex;flex-direction:column;gap:12px}
.sidebar-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px}
.sidebar-card-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.top-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);transition:opacity var(--t-fast);cursor:default}
.top-item:last-child{border-bottom:none;padding-bottom:0}
.top-item:hover{opacity:.75}
.top-rank{font-size:16px;font-weight:700;color:var(--p400);min-width:22px;opacity:.6}
.top-icon{font-size:16px;flex-shrink:0}
.top-info{flex:1;min-width:0}
.top-nome{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.top-tipo{font-size:10px;color:var(--text3);margin-top:1px}
.top-score{font-size:12px;font-weight:700;color:var(--green);flex-shrink:0}
.stats-mini{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.stat-mini-card{background:var(--surface);border-radius:var(--r-md);padding:10px 12px;text-align:center;border:1px solid var(--border)}
.stat-mini-val{font-size:20px;font-weight:700;color:var(--p500)}
.stat-mini-label{font-size:10px;color:var(--text3);margin-top:2px;font-weight:500}
.how-it-works{background:var(--p50);border:1px solid var(--p200);border-radius:var(--r-lg);padding:14px 16px}
.how-it-works-title{font-size:11px;font-weight:600;color:var(--p600);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.how-it-works p{font-size:12px;color:var(--text2);line-height:1.7}
.how-it-works strong{color:var(--amber)}

/* FERRAMENTAS */
.tools-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.tool-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);padding:28px;box-shadow:var(--shadow-xs)}
.pomo-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.pomo-title{font-size:16px;font-weight:700;letter-spacing:-.3px}
.pomo-mode-tabs{display:flex;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:3px}
.pomo-mode-btn{padding:5px 11px;font-size:11px;font-weight:600;background:none;border:none;color:var(--text2);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast);white-space:nowrap}
.pomo-mode-btn.active{background:var(--bg);color:var(--text);box-shadow:var(--shadow-xs)}
.pomo-mode-btn:hover:not(.active){background:var(--surface2);color:var(--text)}
.pomo-ring-wrap{display:flex;justify-content:center;margin-bottom:24px;position:relative}
.pomo-ring{transform:rotate(-90deg)}
.pomo-ring-bg{fill:none;stroke:var(--border);stroke-width:8}
.pomo-ring-fg{fill:none;stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset .9s linear,stroke .4s}
.pomo-ring-fg.work{stroke:var(--p500)}
.pomo-ring-fg.sbreak{stroke:var(--green)}
.pomo-ring-fg.lbreak{stroke:var(--violet)}
.pomo-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}
.pomo-time{font-size:48px;font-weight:700;letter-spacing:-2px;line-height:1;transition:color var(--t-base)}
.pomo-time.work{color:var(--p500)}
.pomo-time.sbreak{color:var(--green)}
.pomo-time.lbreak{color:var(--violet)}
.pomo-label{font-size:12px;font-weight:500;color:var(--text2);margin-top:4px;text-transform:uppercase;letter-spacing:.06em}
.pomo-controls{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:22px}
.pomo-btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:11px 28px;border-radius:var(--r-full);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all var(--t-fast)}
.pomo-btn.primary{background:var(--p500);color:#fff;box-shadow:var(--shadow-sm)}
.pomo-btn.primary:hover{background:var(--p600);box-shadow:var(--shadow-md);transform:scale(1.02)}
.pomo-btn.secondary{background:var(--surface);border:1px solid var(--border);color:var(--text2)}
.pomo-btn.secondary:hover{border-color:var(--border2);color:var(--text)}
.pomo-session-row{display:flex;align-items:center;justify-content:space-between;padding-top:18px;border-top:1px solid var(--border)}
.pomo-session-label{font-size:12px;color:var(--text2);font-weight:500}
.pomo-dots{display:flex;gap:5px}
.pomo-dot{width:9px;height:9px;border-radius:50%;background:var(--border);transition:background var(--t-fast)}
.pomo-dot.done{background:var(--p500)}
.pomo-settings{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;margin-top:18px}
.pomo-settings-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.pomo-setting-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.pomo-setting-row:last-child{margin-bottom:0}
.pomo-setting-label{font-size:13px;color:var(--text)}
.pomo-setting-input{width:64px;padding:5px 8px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;font-weight:600;color:var(--text);text-align:center;outline:none;transition:border-color var(--t-fast)}
.pomo-setting-input:focus{border-color:var(--p500)}
.tool-coming{background:var(--surface);border:1px dashed var(--border2);border-radius:var(--r-xl);padding:32px;text-align:center;color:var(--text3)}
.tool-coming-icon{font-size:36px;margin-bottom:10px}
.tool-coming-name{font-size:14px;font-weight:600;color:var(--text2);margin-bottom:4px}
.tool-coming-desc{font-size:12px;line-height:1.6}
.soon-badge{display:inline-block;font-size:10px;font-weight:600;padding:2px 8px;border-radius:var(--r-full);background:var(--surface2);color:var(--text3);border:1px solid var(--border);margin-top:8px;text-transform:uppercase;letter-spacing:.05em}
.focus-overlay{display:none;position:fixed;inset:0;background:var(--bg);z-index:500;flex-direction:column;align-items:center;justify-content:center;padding:20px}
.focus-overlay.open{display:flex;animation:fadeUp .3s ease-out}
.focus-quote{font-size:14px;color:var(--text3);margin-bottom:40px;font-style:italic;max-width:400px;text-align:center;line-height:1.7}
.focus-session-info{font-size:12px;font-weight:500;color:var(--text3);margin-top:28px;text-transform:uppercase;letter-spacing:.08em}
.focus-exit-btn{position:fixed;top:20px;right:20px;padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;font-weight:500;color:var(--text2);cursor:pointer;transition:all var(--t-fast)}
.focus-exit-btn:hover{border-color:var(--border2);color:var(--text)}
.focus-mode-label{position:fixed;top:24px;left:24px;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text)}

/* PARCEIROS */
.parceiro-cta-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:var(--p500);color:#fff;border-radius:var(--r-md);font-size:13px;font-weight:600;transition:all var(--t-fast);text-decoration:none;box-shadow:var(--shadow-sm)}
.parceiro-cta-btn:hover{background:var(--p600);box-shadow:var(--shadow-md)}
.parceiros-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:24px}
.parceiro-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);padding:24px;display:flex;flex-direction:column;gap:10px;transition:all var(--t-base);position:relative;overflow:hidden}
.parceiro-card:hover{box-shadow:var(--shadow-md);border-color:var(--border2);transform:translateY(-2px)}
.parceiro-card.destaque{border-color:var(--p300);background:linear-gradient(135deg,var(--p50) 0%,var(--bg) 100%);grid-column:span 2}
.parceiro-card.vago{border-style:dashed;background:var(--surface);opacity:.75}
.parceiro-badge{font-size:11px;font-weight:600;color:var(--p600);background:var(--p100);border:1px solid var(--p200);border-radius:var(--r-full);padding:3px 10px;display:inline-block;width:fit-content}
.parceiro-logo{font-size:36px;margin-bottom:4px}
.vago-icon{opacity:.4}
.parceiro-nome{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.3px}
.parceiro-cat{font-size:12px;color:var(--p500);font-weight:500}
.parceiro-desc{font-size:13px;color:var(--text2);line-height:1.65;flex:1}
.parceiro-tags{display:flex;gap:6px;flex-wrap:wrap}
.ptag{font-size:11px;padding:2px 8px;background:var(--surface2);border:1px solid var(--border);border-radius:var(--r-full);color:var(--text2)}
.parceiro-btn{display:inline-flex;align-items:center;padding:8px 16px;background:var(--p500);color:#fff;border-radius:var(--r-md);font-size:13px;font-weight:600;text-decoration:none;transition:all var(--t-fast);width:fit-content;margin-top:4px}
.parceiro-btn:hover{background:var(--p600)}
.parceiro-btn.vago-btn{background:var(--surface2);color:var(--text3);border:1px solid var(--border)}
.parceiro-btn.vago-btn:hover{background:var(--p50);color:var(--p500);border-color:var(--p200)}
.parceiros-info{display:flex;align-items:center;gap:16px;background:var(--p50);border:1px solid var(--p200);border-radius:var(--r-lg);padding:16px 20px;font-size:13px;color:var(--text2);line-height:1.6}
.parceiros-info-icon{font-size:28px;flex-shrink:0}

.pill-tabs{display:flex;gap:6px;flex-wrap:wrap}
.pill{padding:5px 14px;border-radius:var(--r-full);font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg);color:var(--text2);transition:all var(--t-fast)}
.pill.active{background:var(--p500);color:#fff;border-color:var(--p500);box-shadow:var(--shadow-sm)}
.pill:hover:not(.active){border-color:var(--border2);color:var(--text);background:var(--surface)}
.blog-layout{display:grid;grid-template-columns:1fr 256px;gap:18px;align-items:start}
.blog-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.blog-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;cursor:pointer;transition:all var(--t-base)}
.blog-card:hover{border-color:var(--border2);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.blog-card.featured{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}
.blog-img{background:var(--surface);aspect-ratio:16/9;display:flex;align-items:center;justify-content:center;font-size:34px;overflow:hidden}
.blog-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s ease}
.blog-card:hover .blog-img img{transform:scale(1.04)}
.blog-card.featured .blog-img{aspect-ratio:auto;min-height:200px}
.blog-body{padding:14px 16px}
.blog-meta{display:flex;align-items:center;gap:7px;margin-bottom:8px}
.blog-date{font-size:11px;color:var(--text3)}
.bcat{font-size:10px;font-weight:600;padding:2px 7px;border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.04em}
.bcat-noticias{background:var(--c-policial-bg);color:var(--c-policial)}
.bcat-dicas{background:var(--c-saude-bg);color:var(--c-saude)}
.bcat-editais{background:var(--amber-bg);color:var(--amber)}
.bcat-analise{background:var(--violet-bg);color:var(--violet)}
.blog-card-title{font-size:13.5px;font-weight:600;margin-bottom:7px;line-height:1.4;letter-spacing:-.2px}
.blog-card.featured .blog-card-title{font-size:16px}
.blog-excerpt{font-size:12px;color:var(--text2);line-height:1.65;margin-bottom:10px}
.read-more{font-size:12px;font-weight:500;color:var(--p500)}
.blog-author{display:flex;align-items:center;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}
.blog-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;flex-shrink:0}
.blog-author-name{font-size:11px;color:var(--text2);font-weight:500}
.sidebar{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px 18px}
.sidebar-title{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.trending-item{display:flex;gap:10px;align-items:flex-start;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border);cursor:pointer;transition:opacity var(--t-fast)}
.trending-item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}
.trending-item:hover{opacity:.75}
.trending-num{font-size:16px;font-weight:700;color:var(--p300);min-width:20px;line-height:1}
.trending-ttl{font-size:12px;font-weight:500;line-height:1.45;color:var(--text)}
.divider{height:1px;background:var(--border);margin:16px 0}
.newsletter-box{background:var(--p50);border:1px solid var(--p200);border-radius:var(--r-lg);padding:16px;text-align:center}
.newsletter-box h4{font-size:13px;font-weight:700;margin-bottom:5px;color:var(--text)}
.newsletter-box p{font-size:12px;color:var(--text2);margin-bottom:12px;line-height:1.6}
.nl-input{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:13px;outline:none;margin-bottom:7px;transition:all var(--t-fast)}
.nl-input:focus{border-color:var(--p500);box-shadow:0 0 0 3px var(--p100)}
.nl-btn{width:100%;padding:8px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-md);font-size:13px;font-weight:600;transition:all var(--t-fast)}
.nl-btn:hover{background:var(--p600)}

/* MODAIS */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:300;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-xl);width:420px;max-width:95vw;max-height:90vh;overflow-y:auto;animation:fadeUp .22s ease-out;box-shadow:var(--shadow-xl)}
.modal.wide{width:500px}
.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.modal-title{font-size:16px;font-weight:700;letter-spacing:-.3px}
.modal-close{width:28px;height:28px;border-radius:50%;background:var(--surface);border:1px solid var(--border);color:var(--text2);display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--t-fast)}
.modal-close:hover{background:var(--red-bg);border-color:var(--red);color:var(--red)}
.modal-body{padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.form-group{display:flex;flex-direction:column;gap:5px}
.form-label{font-size:12px;font-weight:600;color:var(--text2)}
.form-input,.form-select,.form-textarea{width:100%;padding:9px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:13px;outline:none;transition:border-color var(--t-fast),box-shadow var(--t-fast)}
.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--p500);box-shadow:0 0 0 3px var(--p100)}
.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239CA3AF'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-color:var(--bg);padding-right:28px}
.form-textarea{resize:vertical;min-height:80px;line-height:1.6}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.form-error{font-size:12px;color:var(--red);font-weight:500;display:none}
.form-error.show{display:block}
.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}
.btn-cancel{padding:8px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text2);font-size:13px;font-weight:500;transition:all var(--t-fast)}
.btn-cancel:hover{border-color:var(--border2);color:var(--text)}
.btn-submit{padding:8px 20px;background:var(--p500);color:#fff;border:none;border-radius:var(--r-md);font-size:13px;font-weight:600;transition:all var(--t-fast);box-shadow:var(--shadow-sm)}
.btn-submit:hover{background:var(--p600);box-shadow:var(--shadow-md)}
.auth-tabs{display:flex;background:var(--surface);border-radius:var(--r-lg);padding:3px;gap:2px;margin-bottom:4px}
.auth-tab{flex:1;padding:7px;font-size:13px;font-weight:500;background:none;border:none;color:var(--text2);border-radius:var(--r-md);cursor:pointer;transition:all var(--t-fast)}
.auth-tab.active{background:var(--bg);color:var(--text);box-shadow:var(--shadow-xs);font-weight:600}

/* TOAST */
.toast-container{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:var(--text);color:var(--bg);border-radius:var(--r-lg);padding:10px 18px;font-size:13px;font-weight:500;display:flex;align-items:center;gap:9px;box-shadow:var(--shadow-xl);animation:toastIn .25s ease-out;white-space:nowrap;pointer-events:auto}
.toast.out{animation:toastOut .25s ease-in forwards}
@keyframes toastIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes toastOut{from{opacity:1}to{opacity:0;transform:translateY(8px)}}
.no-results{text-align:center;padding:50px 20px;color:var(--text2)}
.no-results h3{font-size:16px;font-weight:600;margin-bottom:6px;color:var(--text)}
.skel-item{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:8px;display:flex;gap:14px}
.skel-logo{width:40px;height:40px;border-radius:var(--r-md);flex-shrink:0}
.skel-body{flex:1;display:flex;flex-direction:column;gap:8px;padding-top:2px}

/* ADMIN PANEL */
.admin-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:400;backdrop-filter:blur(4px)}
.admin-overlay.open{display:flex;align-items:flex-start;justify-content:flex-end}
.admin-panel{width:480px;height:100vh;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto;animation:slideIn .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-xl)}
.admin-header{padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:10;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-xs)}
.admin-title{font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}
.admin-badge{background:var(--red);color:#fff;font-size:10px;font-weight:700;border-radius:var(--r-full);padding:2px 7px}
.admin-body{padding:18px 20px}
.pending-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:10px;transition:border-color var(--t-base)}
.pending-card:hover{border-color:var(--border2)}
.pending-nome{font-size:14px;font-weight:600;margin-bottom:3px}
.pending-meta{font-size:12px;color:var(--text2);margin-bottom:8px}
.pending-desc{font-size:12.5px;color:var(--text2);line-height:1.6;margin-bottom:12px;background:var(--surface);border-radius:var(--r-md);padding:8px 10px;border:1px solid var(--border)}
.pending-actions{display:flex;gap:8px}
.btn-approve{flex:1;padding:8px;background:var(--green-bg);color:var(--green);border:1px solid var(--green);border-radius:var(--r-md);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--t-fast)}
.btn-approve:hover{background:var(--green);color:#fff}
.btn-reject{flex:1;padding:8px;background:var(--red-bg);color:var(--red);border:1px solid var(--red);border-radius:var(--r-md);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--t-fast)}
.btn-reject:hover{background:var(--red);color:#fff}
.admin-empty{text-align:center;padding:40px 20px;color:var(--text3)}
.admin-login{padding:24px}
/* ── MOBILE ──────────────────────────────────────────────────── */
@media(max-width:768px){
  /* Header mobile: duas linhas */
  header{height:auto;flex-wrap:wrap;padding:0 12px;align-items:center}
  .logo{height:48px;flex:0 0 auto}
  .header-actions{height:48px;flex:0 0 auto;margin-left:auto}
  .header-nav{width:calc(100% + 24px);margin-left:-12px;border-radius:0;border:none;border-top:1px solid var(--border);padding:3px 4px;margin-top:0;justify-content:space-around;background:var(--surface)}
  .header-nav .nav-tab{flex:1;justify-content:center;padding:5px 4px;font-size:11px;gap:2px}
  .logo-text{font-size:14px}
  .app{grid-template-columns:1fr;min-height:calc(100vh - 90px)}
  aside{display:none;top:90px;height:calc(100vh - 90px)}
  main{padding:10px;overflow-x:hidden;padding-top:10px}
  .stats-bar{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px}
  .stat-card{padding:8px 10px}
  .stat-val{font-size:16px}
  .stat-label{font-size:10px}
  /* Calendário mobile */
  .calendar-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md)}
  .cal-header,.cal-grid{min-width:320px}
  .cal-dow{padding:7px 0;font-size:9px}
  .cal-day{min-height:52px;padding:3px 2px;position:relative}
  .day-num{font-size:10px;width:18px;height:18px}
  .events-container{display:flex;flex-wrap:wrap;gap:2px;margin-top:2px}
  .event-chip{display:none}
  .evt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:block}
  .event-logo{display:none}
  .more-evt{font-size:8px;padding:1px 3px}
  .upcoming-bar{padding:7px 10px;gap:6px}
  .upcoming-pill{font-size:10px;padding:3px 8px}
  .month-nav{flex-wrap:wrap;gap:6px;margin-bottom:10px}
  .month-title{font-size:15px}
  .detail-overlay{align-items:flex-end}
  .detail-panel{width:100vw;max-height:92vh;border-radius:var(--r-xl) var(--r-xl) 0 0;overflow-y:auto}
  .info-grid{grid-template-columns:1fr 1fr}
  .list-item{padding:10px;gap:8px}
  .list-logo{width:40px;height:40px;font-size:8px;flex-shrink:0;line-height:1.2;text-align:center;word-break:break-word;padding:2px}
  .list-nome{font-size:13px}
  .list-cargo{font-size:11px}
  .list-month-header{font-size:12px;padding:8px 10px}
  .parceiros-grid{grid-template-columns:1fr}
  .parceiro-card.destaque{grid-column:span 1}
  .blog-layout{grid-template-columns:1fr}
  .blog-grid{grid-template-columns:1fr}
  .blog-card.featured{grid-column:span 1;display:block}
  .tools-layout{grid-template-columns:1fr}
  .filter-btn{width:100%}
  .filter-aside-panel{width:100%;height:auto;max-height:85vh;border-left:none;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:20px 16px 36px}
  .filter-aside{align-items:flex-end;justify-content:stretch}
}
@media(max-width:400px){
  .cal-day{min-height:44px;padding:2px 1px}
  .cal-day.has-events .day-num{background:var(--p500);color:#fff;border-radius:50%}
}
/* BOTÃO DE FILTROS — visível em todas as telas */
.filter-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 16px;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);font-size:13px;font-weight:500;color:var(--text2);cursor:pointer;margin-bottom:12px;transition:all var(--t-fast)}
.filter-btn:hover{border-color:var(--border2);color:var(--text);background:var(--surface2)}
.filter-aside{display:none;position:fixed;inset:0;z-index:250;background:rgba(0,0,0,.45);align-items:flex-end;justify-content:flex-end}
.filter-aside.open{display:flex}
.filter-aside-panel{width:300px;height:100%;overflow-y:auto;background:var(--bg);border-left:1px solid var(--border);padding:24px 20px 36px;display:flex;flex-direction:column;gap:0;box-shadow:var(--shadow-md)}
.filter-aside-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.filter-aside-title{font-size:15px;font-weight:700;color:var(--text)}
.filter-close-btn{width:32px;height:32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;color:var(--text2)}
.filter-close-btn:hover{background:var(--surface2);color:var(--text)}
/* Mobile: drawer de baixo */
@media(max-width:768px){
  .filter-aside{align-items:flex-end;justify-content:stretch}
  .filter-aside-panel{width:100%;height:auto;max-height:85vh;border-left:none;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:20px 16px 36px}
}
/* Lista mensal */
.list-month-header{font-size:13px;font-weight:700;color:var(--text);padding:10px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);margin:12px 0 6px;display:flex;align-items:center;gap:8px}
.list-month-header em{color:var(--p500);font-style:normal}
footer a:hover{color:var(--p500)!important;text-decoration:underline!important}
@media(max-width:600px){footer>div:first-child{grid-template-columns:1fr!important;gap:20px!important}}
@media(max-width:768px){footer{padding:24px 16px 16px}}
</style>
