:root{--bg:#0f1117;--panel:#fff;--muted:#687083;--text:#111827;--brand:#e60023;--line:#e7e9ef;--soft:#f5f6f9;--radius:18px}*{box-sizing:border-box}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--soft);color:var(--text)}a{text-decoration:none;color:inherit}.admin-shell{display:grid;grid-template-columns:260px 1fr;min-height:100vh}.sidebar{background:#0b0b0f;color:white;padding:22px;position:sticky;top:0;height:100vh}.admin-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.admin-brand span{display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#790013);width:48px;height:48px;border-radius:14px;font-weight:900}.admin-brand strong{font-size:22px}.sidebar nav{display:grid;gap:6px}.sidebar nav a{padding:12px 14px;border-radius:12px;color:#d7d9e2}.sidebar nav a:hover{background:rgba(255,255,255,.09);color:#fff}.admin-main{padding:28px}.top-actions{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.top-actions h1{margin:0;font-size:34px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 10px 30px rgba(17,24,39,.05);padding:22px;margin-bottom:22px}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.stat{background:linear-gradient(135deg,#fff,#f4f5f8);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.stat strong{display:block;font-size:34px}.stat span{color:var(--muted)}.btn,.button{display:inline-flex;justify-content:center;align-items:center;background:var(--brand);color:#fff;border:0;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer}.btn.secondary{background:#111827}.btn.ghost{background:#eef0f5;color:#111827}.btn.danger{background:#b00020}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}label{display:grid;gap:7px;font-weight:700;color:#2f3645}input,textarea,select{width:100%;border:1px solid #d9dde7;background:#fff;border-radius:12px;padding:12px;font:inherit}textarea{min-height:130px}.editor{min-height:280px;font-family:Consolas,monospace}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:13px;border-bottom:1px solid var(--line);vertical-align:top}.table th{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.badge{display:inline-flex;border-radius:999px;background:#eef0f5;color:#334155;padding:5px 9px;font-size:12px;font-weight:800}.badge.ok{background:#dcfce7;color:#166534}.badge.off{background:#fee2e2;color:#991b1b}.actions{display:flex;gap:8px;flex-wrap:wrap}.alert{padding:14px 16px;border-radius:14px;margin-bottom:18px}.success{background:#dcfce7;color:#166534;border:1px solid #86efac}.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.login-page{display:grid;place-items:center;min-height:100vh;background:radial-gradient(circle at 30% 20%,rgba(230,0,35,.24),transparent 30%),#0b0b0f}.login-card{width:min(420px,92vw);background:#fff;border-radius:24px;padding:30px;box-shadow:0 30px 80px rgba(0,0,0,.35)}.login-card h1{margin-top:0}.small{color:var(--muted);font-size:13px}.media-preview{max-width:120px;max-height:80px;border-radius:10px;object-fit:cover}.inline-check{display:flex;gap:8px;align-items:center}.inline-check input{width:auto}.embed-preview{position:relative;overflow:hidden;border-radius:14px;background:#111}.embed-preview:before{content:"";display:block;padding-top:56.25%}.embed-preview iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0}.notice{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:14px;border-radius:14px;margin-bottom:18px}@media(max-width:900px){.admin-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.admin-main{padding:16px}.grid,.form-grid{grid-template-columns:1fr}.table{display:block;overflow:auto}}
.admin-live-search{display:grid;grid-template-columns:minmax(260px,520px) auto;gap:14px;align-items:end;margin:16px 0 18px;padding:14px;border:1px solid #e7e9ef;border-radius:16px;background:#f8fafc}.admin-live-search label{margin:0}.admin-live-search input{border:2px solid #d9dde7}.admin-live-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px rgba(230,0,35,.10)}.admin-live-search span{font-size:13px;color:var(--muted);font-weight:700;padding:0 0 12px}@media(max-width:760px){.admin-live-search{grid-template-columns:1fr}.admin-live-search span{padding:0}}
.save-strip{display:flex;justify-content:space-between;gap:18px;align-items:center;background:#f8fafc;border:1px solid #e7e9ef;border-radius:16px;padding:14px 16px;margin-bottom:16px}.schedule-bottom-actions{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:18px;border-top:1px solid #e7e9ef}.unsaved-note{margin-left:10px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:800}.schedule-admin-form .table input,.schedule-admin-form .table select{min-width:120px}.schedule-admin-form .table input[name="title[]"]{min-width:240px}.schedule-admin-form .table input[name="host[]"]{min-width:180px}@media(max-width:900px){.save-strip,.schedule-bottom-actions{display:grid;grid-template-columns:1fr}.schedule-bottom-actions .btn{width:100%}}

.schedule-save-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.alert.warning{background:#fff7d6;border:1px solid #f4cf55;color:#5b4700;padding:12px 14px;border-radius:10px;margin:12px 0}
.schedule-conflict-row{outline:2px solid #f0b000;outline-offset:-2px;background:#fff9dc}


/* V32 - editor de notícias + parceiros */
.partner-admin-preview{max-width:260px;max-height:120px;object-fit:contain;border:1px solid #ddd;background:#fff;border-radius:10px;padding:8px;}
.news-edit-panel{max-width:980px;}
.news-form-grid{grid-template-columns:1fr 1fr;}
.radio-line{display:flex;align-items:center;gap:14px;background:#f8fafc;border:1px solid #e7e9ef;border-radius:14px;padding:12px;}
.radio-line label{display:flex;align-items:center;gap:6px;margin:0;font-weight:700;}
.radio-line input{width:auto;}
.required{color:#d00000;font-weight:700;font-size:13px;}
.insert-content-box{background:#eee;margin:22px auto;padding:18px;text-align:center;max-width:680px;}
.insert-content-box strong{display:block;margin-bottom:16px;color:#000;}
.insert-actions{display:flex;justify-content:center;gap:70px;flex-wrap:wrap;}
.insert-actions .btn{background:#0079c7;border-radius:0;padding:12px 16px;}
.news-video-field textarea{min-height:82px;}
.wysiwyg-wrap{border:1px solid #bfc4d1;background:#fff;}
.wysiwyg-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:#f3f3f3;border-bottom:1px solid #bfc4d1;padding:5px;}
.wys-btn{border:1px solid #aaa;background:#fff;border-radius:2px;min-width:28px;height:26px;display:inline-grid;place-items:center;cursor:pointer;color:#111;font-weight:700;}
.wys-btn.is-active{background:#573fcf;color:#fff;border-color:#573fcf;}
.wys-select{width:auto;min-width:110px;height:28px;border-radius:2px;padding:2px 4px;}
.wysiwyg-visual{min-height:340px;padding:12px;background:#fff;outline:none;line-height:1.55;border:0;}
.wysiwyg-visual img{max-width:100%;height:auto;}
.wys-html-source{min-height:340px!important;border:0!important;border-radius:0!important;font-family:Consolas,monospace!important;}
@media(max-width:760px){.insert-actions{gap:10px}.news-form-grid{grid-template-columns:1fr}.radio-line{display:grid;grid-template-columns:1fr}.insert-content-box{padding:14px}}


/* V34 - correção do painel em ecrãs pequenos/baixa altura */
.sidebar{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;}
.sidebar nav a{white-space:normal;line-height:1.25;}
@media(max-height:760px) and (min-width:901px){
  .sidebar{padding:14px;height:100vh;}
  .admin-brand{margin-bottom:12px;}
  .admin-brand span{width:40px;height:40px;border-radius:12px;}
  .admin-brand strong{font-size:18px;}
  .sidebar nav{gap:3px;}
  .sidebar nav a{padding:8px 10px;font-size:14px;}
}
@media(max-width:900px){
  .admin-shell{display:block;min-height:100vh;}
  .sidebar{position:relative;top:auto;height:auto;max-height:none;min-height:0;padding:14px;background:#0b0b0f;}
  .admin-brand{margin-bottom:12px;}
  .sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .sidebar nav a{background:rgba(255,255,255,.06);padding:10px 11px;border-radius:10px;font-size:14px;color:#fff;}
  .admin-main{padding:16px;}
}
@media(max-width:520px){
  .sidebar nav{grid-template-columns:1fr;}
  .top-actions{display:grid;grid-template-columns:1fr;}
  .top-actions h1{font-size:26px;}
  .panel{padding:16px;border-radius:14px;}
}


/* V35 - menu/contacto */
.menu-admin-form .menu-table input,.menu-admin-form .menu-table select{min-width:130px;}
.menu-admin-form .menu-table input[name="url[]"]{min-width:260px;}
.menu-add-box{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:18px;border-top:1px solid var(--line);}
@media(max-width:900px){.menu-add-box{display:grid;grid-template-columns:1fr}.menu-add-box .btn{width:100%;}}


/* V36 - correção do botão de menu e ajuda do formulário */
.field-help{display:block;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35;margin-top:-2px;}
.menu-add-box .btn.secondary{background:#0f172a;}

/* V37 - email/SMTP */
.smtp-settings-box{background:#f8fafc;border:1px solid #e7e9ef;border-radius:16px;padding:14px;margin:10px 0 0}.smtp-settings-box h2{margin:0 0 6px}.field-help{font-weight:400;color:#687083;font-size:12px;line-height:1.35}

.error-text{color:#b91c1c;font-size:12px;display:block;margin-top:4px;}
.btn.ghost{background:#eef2ff;color:#111827;border:1px solid #c7d2fe;}

/* V40 simple mail */
.simple-mail-activation{background:#f4efff;border:1px solid #d6c8ff;border-radius:10px;padding:14px;margin:6px 0;}
.inline-activation-form{margin-top:10px;}
.danger-text{color:#b00020;font-weight:700;}


/* V42 - fotos da notícia sem caixa Inserir Conteúdo */
.news-gallery-upload-box{background:#f8fafc;border:1px dashed #b8c0d4;border-radius:14px;padding:14px;margin:10px 0 18px;}
.news-gallery-upload-box strong{display:block;font-size:16px;color:#111827;margin-bottom:4px;}
.news-gallery-upload-box input[type=file]{background:#fff;border:1px solid #d9dde7;border-radius:10px;padding:10px;}

/* V43 - login profissional */
.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#af7aff 0,#553fcf 34%,#111827 72%,#07070b 100%);padding:22px;}
.login-card{width:420px;max-width:94vw;background:#fff;border-radius:28px;padding:34px;box-shadow:0 24px 80px rgba(0,0,0,.35);}
.login-logo{display:block;width:185px;max-width:78%;height:auto;object-fit:contain;margin:0 auto 16px;}
.login-card h1{margin:0 0 8px;text-align:center;font-family:'Oswald','Arial Narrow',Arial,sans-serif;text-transform:uppercase;color:#573fcf;font-size:34px;}
.login-card .small{text-align:center;color:#5b6472;}
.login-card label{display:block;margin:14px 0 6px;font-weight:800;color:#111827;}
.login-card input{width:100%;border:1px solid #d3d8e3;border-radius:12px;padding:13px;font-size:16px;background:#f9fafb;}
.login-card input:focus{outline:3px solid rgba(87,63,207,.18);border-color:#573fcf;}
.login-card .btn{width:100%;border-radius:12px;margin-top:16px;background:#573fcf;}
.login-card .btn:hover{background:#4830b8;}
.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.role-box{border:1px solid #d9dde7;border-radius:14px;padding:14px;background:#fff;margin-bottom:14px}.user-table input,.user-table select{min-width:140px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}


/* V44 - botões consistentes e texto sempre branco nos botões de ação */
.btn,
.button,
button.btn,
a.btn{
  color:#fff!important;
  text-decoration:none!important;
}
.btn:hover,
.button:hover,
button.btn:hover,
a.btn:hover{color:#fff!important;}
.btn.danger,
.btn.secondary,
.btn.small,
.btn[type=submit]{color:#fff!important;}
.btn.ghost{color:#111827!important;}
.btn.ghost:hover{color:#111827!important;}
.alert.danger{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;}

/* V47 - editor de notícias robusto: impede imagens/vídeos/HTML largos de sair do painel */
.admin-main,
.panel,
.news-edit-panel,
.news-form-grid,
.form-grid,
.wysiwyg-wrap{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.news-edit-panel,
.panel{
  overflow-x:hidden!important;
}
.wysiwyg-wrap{
  overflow:hidden!important;
}
.wysiwyg-toolbar{
  flex-wrap:wrap!important;
  max-width:100%!important;
}
.wysiwyg-visual,
.wys-html-source{
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}
.wysiwyg-visual{
  overflow:auto!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
}
.wysiwyg-visual *,
.wys-html-source *{
  box-sizing:border-box!important;
  max-width:100%!important;
}
.wysiwyg-visual img,
.wysiwyg-visual video,
.wysiwyg-visual iframe,
.wysiwyg-visual embed,
.wysiwyg-visual object{
  max-width:100%!important;
  display:block!important;
}
.wysiwyg-visual img,
.wysiwyg-visual video{
  height:auto!important;
}
.wysiwyg-visual iframe,
.wysiwyg-visual embed,
.wysiwyg-visual object{
  width:100%!important;
  aspect-ratio:16/9;
  height:auto!important;
  min-height:220px;
}
.wysiwyg-visual table{
  max-width:100%!important;
  display:block!important;
  overflow-x:auto!important;
}
.news-video-field textarea,
.news-gallery-upload-box input[type=file]{
  max-width:100%!important;
  box-sizing:border-box!important;
}
@media(max-width:900px){
  .wysiwyg-visual iframe,
  .wysiwyg-visual embed,
  .wysiwyg-visual object{min-height:180px;}
}
