/* ================================================================
   CSS VARIABLES — Injetadas dinamicamente pelo init (ver DOMContentLoaded)
   ================================================================ */
:root {
  --main-color: #7a4fa8;
  --main-color-2: #c2426a;
  --main-gradient: linear-gradient(135deg, #7a4fa8, #c2426a);

  --seg: #4A90D9;      --seg-light: #EBF4FF;   --seg-mid: #B8D9F5;
  --ter: #3DAA6B;      --ter-light: #E8F7EE;   --ter-mid: #A8DFC0;
  --qua: #C4872A;      --qua-light: #FDF3E3;   --qua-mid: #F0CEA0;
  --qui: #D46E2A;      --qui-light: #FEF0E6;   --qui-mid: #F5C89A;
  --sex: #C2426A;      --sex-light: #FDE8F0;   --sex-mid: #F0A8C0;

  --cream: #FDFAF6;
  --text: #2C2C2C;
  --muted: #888;
  --border: #E8E0D8;
  --white: #FFFFFF;
  --shadow: 0 2px 12px rgba(0,0,0,0.08);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
  --header-bg: linear-gradient(135deg, #f9f0f5 0%, #eef5fb 50%, #f0f8f2 100%);
  --modal-bg: #ffffff;
  --card-bg: #ffffff;
  --input-bg: #ffffff;
  --input-focus-bg: #f8f0fc;
}
/* ===== DARK MODE ===== */
body.dark-mode {
  --cream:#1a1520; --text:#e8e0f0; --muted:#8a7a9a; --border:#3a2e4a;
  --white:#251e32; --shadow:0 2px 12px rgba(0,0,0,0.4); --shadow-lg:0 8px 32px rgba(0,0,0,0.5);
  --seg-light:#1a2a3d; --ter-light:#1a2e24; --qua-light:#2e2214; --qui-light:#2e1f14; --sex-light:#2e1520;
  --header-bg:linear-gradient(135deg,#2a1e30 0%,#1e2535 50%,#1e2a22 100%);
}

/* ESTRUTURA GLOBAL */
.app-container {
  display: flex;
  min-height: 100vh;
  background: var(--cream);
}

.sidebar {
  width: 240px;
  background: var(--white);
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 1000;
  transition: 0.3s;
}

.sidebar-header {
  padding: 30px 20px;
  text-align: center;
  border-bottom: 1px solid var(--border);
}

.sidebar-logo {
  font-family: 'Quicksand', sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--main-color);
  margin-bottom: 5px;
}

.nav-group {
  padding: 20px 0;
  flex-grow: 1;
}

.nav-item {
  display: flex;
  align-items: center;
  padding: 12px 25px;
  color: var(--text);
  text-decoration: none;
  font-weight: 500;
  cursor: pointer;
  border-left: 4px solid transparent;
  transition: 0.2s;
  font-size: 0.95rem;
}

.nav-item:hover { background: var(--input-focus-bg); color: var(--main-color); }
.nav-item.active { background: var(--input-focus-bg); color: var(--main-color); border-left-color: var(--main-color); }
.nav-item .icon { margin-right: 12px; font-size: 1.2rem; }

.main-content {
  flex-grow: 1;
  width: calc(100% - 240px);
  display: flex;
  flex-direction: column;
}

header {
  padding: 15px 30px !important;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  position: sticky;
  top: 0;
  z-index: 900;
}

.header-left { display: flex; align-items: center; gap: 15px; }
.header-actions { display: flex; gap: 8px; align-items: center; }

.btn-menu {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  color: var(--main-color);
  cursor: pointer;
}

@media (max-width: 900px) {
  .sidebar { 
    position: fixed; 
    left: -240px; 
    background: #ffffff !important;
    box-shadow: 5px 0 15px rgba(0,0,0,0.1);
    z-index: 2000;
  }
  body.dark-mode .sidebar {
    background: #251e32 !important;
  }
  .sidebar.open { left: 0; }
  .main-content { 
    width: 100%; 
    filter: none !important; /* Antivírus contra desfoque */
  }
  .btn-menu { display: block; }

  .btn-close-sidebar {
    display: block;
    background: none;
    border: none;
    font-size: 1.5rem;
    color: var(--main-color);
    cursor: pointer;
    line-height: 1;
    padding: 10px; /* Touch target maior */
  }

  .sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: transparent !important;
    z-index: 1500;
    opacity: 1;
    backdrop-filter: none !important;
    filter: none !important;
    pointer-events: none; /* Bloqueia intercepção de cliques por padrão */
  }
  .sidebar-overlay.show {
    display: block;
    pointer-events: auto; /* Permite o clique para fechar quando visível */
  }
  
  /* Layout Mobile Melhorado */
  header { padding: 10px 15px !important; }
  .logo h1 { font-size: 1.1rem; }
  .nav-item { padding: 15px 25px; font-size: 1.05rem; } /* Melhor para o polegar */
  .dashboard-grid { gap: 12px; }
  .dash-card { padding: 15px; border-radius: 16px; }
  .dash-stat-value { font-size: 1.8rem; }
  .main-content { padding-bottom: 20px; }
}

.btn-close-sidebar { display: none; }
.sidebar-overlay { display: none; }

body.dark-mode {
  --modal-bg:#251e32; --card-bg:#251e32; --input-bg:#1e1728; --input-focus-bg:#2e2040;
}
body.dark-mode header { background:var(--header-bg); border-bottom-color:var(--border); }
body.dark-mode .modal,.modal-overlay.open .modal { background:var(--modal-bg); }
body.dark-mode .modal-overlay { background:rgba(0,0,0,0.7); }
body.dark-mode .week-selector,.day-tabs,.block-card,.export-tab { background:var(--card-bg); border-color:var(--border); }
body.dark-mode .block-card .block-header { background:var(--card-bg)!important; border-bottom-color:var(--border); }
body.dark-mode input[type="text"],body.dark-mode input[type="date"],body.dark-mode textarea,body.dark-mode select { background:var(--input-bg); color:var(--text); border-color:var(--border); }
body.dark-mode input:focus,body.dark-mode textarea:focus,body.dark-mode select:focus { border-color:var(--main-color); }
body.dark-mode .btn-secondary { background:var(--card-bg); color:#c090e0; border-color:#6040a0; }
body.dark-mode .btn-danger { background:var(--card-bg); color:#e06090; border-color:#8a3060; }
body.dark-mode .week-chip { background:var(--card-bg); border-color:var(--border); color:var(--muted); }
body.dark-mode .btn-new-week { color:#c090e0; border-color:#6040a0; }
body.dark-mode .day-tab { color:var(--muted); background:transparent; }
body.dark-mode .add-block-btn { color:var(--muted); border-color:var(--border); }
body.dark-mode .toast { background:#3a2e4a; color:var(--text); }
body.dark-mode .logo h1 { color:#c090e0; }
body.dark-mode .modal h3 { color:#c090e0; }
body.dark-mode .share-option { background:var(--card-bg); border-color:var(--border); }
body.dark-mode .export-tab { color:var(--text); }
body.dark-mode .export-tab.active { background:var(--main-gradient); color:white; }
body.dark-mode [data-active-day="seg"] .block-card { background:var(--seg-light); }
body.dark-mode [data-active-day="ter"] .block-card { background:var(--ter-light); }
body.dark-mode [data-active-day="qua"] .block-card { background:var(--qua-light); }
body.dark-mode [data-active-day="qui"] .block-card { background:var(--qui-light); }
body.dark-mode [data-active-day="sex"] .block-card { background:var(--sex-light); }

/* ===== DASHBOARD MODERNO ===== */
.dashboard-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; margin-bottom: 25px; }
.dash-card { background: var(--white); border-radius: 24px; padding: 25px; box-shadow: var(--shadow); border: 1px solid var(--border); transition: 0.3s; }
.dash-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }
.dash-card h3 { font-family: 'Quicksand', sans-serif; color: var(--main-color); margin-bottom: 18px; font-size: 1.1rem; display: flex; align-items: center; gap: 10px; }

.dash-actions-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 10px; }
@media (min-width: 768px) { .dash-actions-grid { grid-template-columns: repeat(4, 1fr); } }

.dash-action-tile { 
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px;
  padding: 20px; border-radius: 20px; border: 1.5px solid var(--border); background: var(--white);
  cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); text-align: center;
}
.dash-action-tile:hover { border-color: var(--main-color); background: var(--input-focus-bg); transform: scale(1.02); }
.dash-action-tile .icon { font-size: 2rem; }
.dash-action-tile span { font-weight: 700; font-size: 0.85rem; color: var(--text); }

.dash-stat-row { display: flex; justify-content: space-around; align-items: center; }
.dash-stat-item { text-align: center; }
.dash-stat-value { font-size: 2.2rem; font-weight: 800; color: var(--main-color); line-height: 1; }
.dash-stat-label { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 1px; color: var(--muted); margin-top: 5px; }

/* ===== ATTENDANCE ===== */
.attendance-container { background: var(--white); border-radius: 20px; padding: 25px; box-shadow: var(--shadow); border: 1px solid var(--border); }
.attendance-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; border-bottom: 1px solid var(--border); padding-bottom: 15px; }
.attendance-list { display: flex; flex-direction: column; gap: 10px; }
.attendance-row { display: flex; align-items: center; justify-content: space-between; padding: 12px 15px; border-radius: 12px; background: var(--cream); border: 1px solid var(--border); }
.attendance-info { display: flex; align-items: center; gap: 12px; }
.attendance-status { display: flex; gap: 8px; }
.btn-presence { padding: 6px 12px; border-radius: 20px; border: 1.5px solid #ddd; background: white; cursor: pointer; font-size: 0.75rem; font-weight: 700; transition: 0.2s; }
.btn-presence.present { border-color: #3daa6b; color: #3daa6b; }
.btn-presence.present.active { background: #3daa6b; color: white; }
.btn-presence.absent { border-color: #c2426a; color: #c2426a; }
.btn-presence.absent.active { background: #c2426a; color: white; }

/* ===== PEDAGOGICAL BALANCE ===== */
.balance-container { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.balance-tag { font-size: 0.65rem; font-weight: 700; padding: 4px 10px; border-radius: 20px; border: 1px solid var(--border); background: var(--white); display: flex; align-items: center; gap: 5px; }
.balance-tag.active { border-color: var(--main-color); color: var(--main-color); }

/* ===== BASE ===== */
*{box-sizing:border-box;margin:0;padding:0;}
body { font-family:'Quicksand', sans-serif; background:var(--cream); color:var(--text); min-height:100vh; }

.deco-lily { display:inline-block;width:28px;height:28px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cellipse cx='50' cy='30' rx='12' ry='28' fill='%23e8b4c8' opacity='0.9'/%3E%3Cellipse cx='50' cy='30' rx='12' ry='28' fill='%23e8b4c8' transform='rotate(72 50 50)'/%3E%3Cellipse cx='50' cy='30' rx='12' ry='28' fill='%23f0c8da' transform='rotate(144 50 50)'/%3E%3Cellipse cx='50' cy='30' rx='12' ry='28' fill='%23e8b4c8' transform='rotate(216 50 50)'/%3E%3Cellipse cx='50' cy='30' rx='12' ry='28' fill='%23f0c8da' transform='rotate(288 50 50)'/%3E%3Ccircle cx='50' cy='50' r='8' fill='%23f7e08a'/%3E%3C/svg%3E") no-repeat center/contain; }
.deco-butterfly { display:inline-block;width:28px;height:22px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 80'%3E%3Cellipse cx='30' cy='30' rx='28' ry='22' fill='%23b8d4f0' opacity='0.85'/%3E%3Cellipse cx='30' cy='55' rx='20' ry='18' fill='%23a0c4e8' opacity='0.75'/%3E%3Cellipse cx='90' cy='30' rx='28' ry='22' fill='%23b8d4f0' opacity='0.85'/%3E%3Cellipse cx='90' cy='55' rx='20' ry='18' fill='%23a0c4e8' opacity='0.75'/%3E%3Crect x='58' y='10' width='4' height='60' rx='2' fill='%23555'/%3E%3Cpath d='M60 10 Q55 2 52 0' stroke='%23555' stroke-width='2' fill='none'/%3E%3Cpath d='M60 10 Q65 2 68 0' stroke='%23555' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat center/contain; }

/* ===== HEADER ===== */
header { background:var(--header-bg); border-bottom:2px solid var(--border); padding:0 16px; position:sticky;top:0;z-index:100; box-shadow:var(--shadow); }
.header-inner { max-width:900px;margin:0 auto; display:flex;align-items:center;justify-content:space-between; padding:12px 0;gap:12px; }
.logo { display:flex;align-items:center;gap:8px; }
.logo h1 { font-family:'Quicksand', sans-serif;font-size:1.3rem;font-weight:700;color:var(--main-color);line-height:1.1; }
.logo span { display:block;font-family:'Quicksand', sans-serif;font-size:0.7rem;font-weight:300;color:var(--muted);letter-spacing:1px;text-transform:uppercase; }
.header-actions { display:flex;gap:6px;flex-wrap:wrap; }

.btn { padding:8px 14px;border:none;border-radius:20px;cursor:pointer;font-family:'Quicksand', sans-serif;font-size:0.82rem;font-weight:700;letter-spacing:0.3px;transition:all 0.2s;display:flex;align-items:center;gap:5px; }
.btn-primary { background:var(--main-gradient);color:white;box-shadow:0 2px 8px rgba(0,0,0,0.2); }
.btn-primary:hover { transform:translateY(-1px);box-shadow:0 4px 14px rgba(0,0,0,0.3); }
.btn-secondary { background:white;color:var(--main-color);border:1.5px solid #d4b8e0; }
.btn-secondary:hover { background:#f8f0fc; }
.btn-success { background:linear-gradient(135deg,#25D366,#128C7E);color:white; }
.btn-danger { background:white;color:#c2426a;border:1.5px solid #f0a8c0;font-size:0.75rem;padding:6px 12px; }
.btn-danger:hover { background:#fde8f0; }
.btn-theme-toggle { background:none;border:1.5px solid var(--border);border-radius:20px;padding:7px 13px;cursor:pointer;font-size:0.9rem;color:var(--muted);transition:all 0.2s;display:flex;align-items:center;gap:5px; }
.btn-theme-toggle:hover { border-color:var(--main-color);color:var(--main-color);background:#f8f0fc; }

/* ===== PWA INSTALL BUTTON ===== */
.pwa-install-button {
    padding: 8px 16px;
    background: var(--main-gradient);
    color: white;
    border: none;
    border-radius: 20px;
    cursor: pointer;
    font-weight: 700;
    font-size: 0.82rem;
    transition: all 0.3s;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
}
.pwa-install-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}
.pwa-install-button:active {
    transform: translateY(0);
}

/* ===== AUTOSAVE / BACKUP ===== */
.autosave-group { display:inline-flex;align-items:center;border-radius:20px;border:1px solid var(--border);background:var(--white);transition:all 0.3s;overflow:hidden; }
.autosave-group.saving { border-color:#c8a0e8; }
.autosave-group.saved  { border-color:#A8DFC0;background:#f0fff7; }
body.dark-mode .autosave-group.saved { background:#1a2e24; }
.autosave-indicator { display:inline-flex;align-items:center;gap:5px;font-size:0.72rem;color:var(--muted);padding:4px 10px;background:transparent;transition:color 0.3s; }
.autosave-group.saving .autosave-indicator { color:#7a4fa8; }
.autosave-group.saved  .autosave-indicator { color:#3DAA6B; }
.autosave-dot { width:6px;height:6px;border-radius:50%;background:currentColor; }
.autosave-group.saving .autosave-dot { animation:pulse-dot 0.8s ease-in-out infinite; }
@keyframes pulse-dot { 0%,100%{opacity:1} 50%{opacity:0.3} }
.btn-backup { background:none;border:none;border-left:1px solid var(--border);padding:4px 9px;cursor:pointer;font-size:0.88rem;color:var(--muted);transition:all 0.18s;line-height:1; }
.btn-backup:hover { background:#f8f0fc;color:#7a4fa8; }
.autosave-group.saved .btn-backup { border-left-color:#A8DFC0; }
.autosave-group.saved .btn-backup:hover { background:#d4f5e4;color:#2d8a55; }
body.dark-mode .btn-backup { border-left-color:var(--border); }
body.dark-mode .btn-backup:hover { background:#2e2040;color:#c090e0; }

/* ===== MAIN ===== */
main { max-width:900px;margin:0 auto;padding:20px 16px 80px; }

/* ===== BIRTHDAY BANNER ===== */
.birthday-banner { background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #f59e0b;border-radius:12px;padding:10px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px;font-size:0.85rem;font-weight:700;color:#92400e; }

/* ===== WEEK SELECTOR ===== */
.week-selector { background:white;border-radius:16px;padding:20px;margin-bottom:24px;box-shadow:var(--shadow);border:1.5px solid var(--border); }
.week-selector h2 { font-family:'Quicksand', sans-serif;font-size:1.1rem;color:var(--main-color);margin-bottom:14px;display:flex;align-items:center;gap:8px; }
.week-list { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px; }
.week-chip { padding:6px 14px;border-radius:20px;border:1.5px solid var(--border);background:white;cursor:pointer;font-size:0.8rem;font-weight:700;color:var(--muted);transition:all 0.2s; }
.week-chip.active { background:var(--main-gradient);color:white;border-color:transparent;box-shadow:0 2px 8px rgba(0,0,0,0.2); }
.week-chip:hover:not(.active) { border-color:var(--main-color-2);color:var(--main-color-2); }
.btn-new-week { padding:7px 16px;border:2px dashed #d4b8e0;border-radius:20px;background:transparent;cursor:pointer;font-size:0.8rem;color:var(--main-color);font-weight:700;transition:all 0.2s; }
.btn-new-week:hover { background:#f8f0fc; }
.week-header-info { display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;padding-top:14px;border-top:1px solid var(--border); }

/* ===== FORM ===== */
.field-group { display:flex;flex-direction:column;gap:4px; }
label { font-size:0.72rem;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted); }
input[type="text"],input[type="date"],textarea,select { border:1.5px solid var(--border);border-radius:10px;padding:9px 12px;font-family:'Quicksand', sans-serif;font-size:0.88rem;color:var(--text);background:white;transition:border-color 0.2s,box-shadow 0.2s;width:100%;resize:vertical; }
input:focus,textarea:focus,select:focus { outline:none;border-color:var(--main-color);box-shadow:0 0 0 3px rgba(122,79,168,0.1); }
textarea { min-height:70px; }

/* ===== DAY TABS ===== */
.day-tabs { display:flex;gap:4px;background:white;border-radius:14px;padding:5px;margin-bottom:16px;box-shadow:var(--shadow);border:1.5px solid var(--border);overflow-x:auto; }
.day-tab { flex:1;min-width:70px;padding:9px 6px;border:none;border-radius:10px;cursor:pointer;font-family:'Quicksand', sans-serif;font-weight:700;font-size:0.8rem;background:transparent;color:var(--muted);transition:all 0.2s;text-align:center;white-space:nowrap; }
.day-tab[data-day="seg"].active{background:var(--seg);color:white;} .day-tab[data-day="ter"].active{background:var(--ter);color:white;} .day-tab[data-day="qua"].active{background:var(--qua);color:white;} .day-tab[data-day="qui"].active{background:var(--qui);color:white;} .day-tab[data-day="sex"].active{background:var(--sex);color:white;}
.day-tab[data-day="seg"]:hover:not(.active){background:var(--seg-light);color:var(--seg);} .day-tab[data-day="ter"]:hover:not(.active){background:var(--ter-light);color:var(--ter);} .day-tab[data-day="qua"]:hover:not(.active){background:var(--qua-light);color:var(--qua);} .day-tab[data-day="qui"]:hover:not(.active){background:var(--qui-light);color:var(--qui);} .day-tab[data-day="sex"]:hover:not(.active){background:var(--sex-light);color:var(--sex);}

/* ===== DAY CONTENT ===== */
.day-content { display:none;flex-direction:column;gap:12px;animation:fadeIn 0.25s ease; }
.day-content.visible { display:flex; }
@keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }
.day-date-row { display:grid;grid-template-columns:1fr 1fr;gap:10px; }

/* ===== BLOCK CARD ===== */
.block-card { background:white;border-radius:14px;border-left:4px solid transparent;box-shadow:var(--shadow);overflow:hidden;transition:box-shadow 0.2s,opacity 0.2s;position:relative; }
.block-card:focus-within { box-shadow:var(--shadow-lg); }
.block-header { display:flex;align-items:center;justify-content:space-between;padding:10px 14px 8px;border-bottom:1px solid #f0f0f0;gap:8px; }
.block-title-row { display:flex;align-items:center;gap:8px;flex:1; }
.block-icon { font-size:1rem; }
.block-name-input { font-weight:700;font-size:0.9rem;border:none;padding:3px 6px;border-radius:6px;background:transparent;flex:1;min-width:80px; }
.block-name-input:focus { background:#f8f0fc;box-shadow:none;border:1.5px solid #d4b8e0; }
.block-time-row { display:flex;align-items:center;gap:6px;font-size:0.78rem;color:var(--muted);white-space:nowrap; }
.time-input { width:64px;padding:4px 6px;font-size:0.78rem;border-radius:6px;border:1px solid var(--border);text-align:center;background:#fafafa; }
.block-remove { background:none;border:none;cursor:pointer;color:#ddd;font-size:1.1rem;line-height:1;padding:2px 4px;border-radius:4px;transition:color 0.15s,background 0.15s; }
.block-remove:hover { color:#c2426a;background:#fde8f0; }
.block-body { padding:10px 14px 12px; }
.block-desc { min-height:58px; }
.drag-handle { cursor:grab;color:#ccc;font-size:1.1rem;padding:4px 6px 4px 2px;line-height:1;flex-shrink:0;user-select:none;transition:color 0.15s; }
.drag-handle:active { cursor:grabbing; }
.block-card[data-drag-active="true"] { opacity:0.4;box-shadow:none; }
.block-card.drag-over { box-shadow:0 0 0 2px var(--main-color),var(--shadow-lg)!important; }

[data-active-day="seg"] .block-card{border-left-color:var(--seg);background:var(--seg-light);}
[data-active-day="ter"] .block-card{border-left-color:var(--ter);background:var(--ter-light);}
[data-active-day="qua"] .block-card{border-left-color:var(--qua);background:var(--qua-light);}
[data-active-day="qui"] .block-card{border-left-color:var(--qui);background:var(--qui-light);}
[data-active-day="sex"] .block-card{border-left-color:var(--sex);background:var(--sex-light);}
[data-active-day="seg"] .block-card .block-header,[data-active-day="ter"] .block-card .block-header,[data-active-day="qua"] .block-card .block-header,[data-active-day="qui"] .block-card .block-header,[data-active-day="sex"] .block-card .block-header { background:white; }

.add-block-btn { display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:2px dashed var(--border);border-radius:12px;background:transparent;cursor:pointer;color:var(--muted);font-size:0.83rem;font-weight:700;transition:all 0.2s;width:100%; }
.add-block-btn:hover { border-color:var(--main-color);color:var(--main-color);background:#f8f0fc; }

/* ===== BLOCK DROPDOWN ===== */
.block-actions-dropdown {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 10;
}
.block-actions-dropdown .dropdown-trigger {
  background: none;
  border: none;
  font-size: 1.2rem;
  color: var(--muted);
  cursor: pointer;
  padding: 4px;
  border-radius: 50%;
  transition: all 0.2s;
}
.block-actions-dropdown .dropdown-trigger:hover {
  background: rgba(122,79,168,0.1);
  color: var(--main-color);
}
.block-actions-dropdown .dropdown-content {
  display: none;
  position: absolute;
  background-color: var(--card-bg);
  min-width: 160px;
  box-shadow: var(--shadow-lg);
  border-radius: 10px;
  right: 0;
  top: 35px;
  padding: 8px 0;
  z-index: 1;
  flex-direction: column;
}
.block-actions-dropdown .dropdown-content.show { display: flex; }
.block-actions-dropdown .ai-toolbar-btn {
  width: 100%;
  text-align: left;
  padding: 8px 15px;
  border: none;
  background: none;
  border-radius: 0;
  color: var(--text);
  font-weight: 400;
  font-size: 0.85rem;
}
.block-actions-dropdown .ai-toolbar-btn:hover {
  background: var(--input-focus-bg);
  color: var(--main-color);
}
.block-actions-dropdown .ai-toolbar-btn.upload-btn {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* ===== BLOCK IMAGE CONTAINER ===== */
.block-image-container {
  width: 100%;
  max-height: 200px;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
  background: #f0f0f0;
  display: flex;
  justify-content: center;
  align-items: center;
}
.block-image-container img {
  max-width: 100%;
  max-height: 200px;
  object-fit: contain;
  display: block;
  cursor: zoom-out;
}

/* ===== TOAST ===== */
.toast { position:fixed;bottom:24px;right:24px;background:#2C2C2C;color:white;padding:12px 20px;border-radius:12px;font-size:0.85rem;box-shadow:var(--shadow-lg);transform:translateY(60px);opacity:0;transition:all 0.3s;z-index:9999;max-width:320px; }
.toast.show { transform:none;opacity:1; }

/* ===== MODAL ===== */
.modal-overlay { display:none;position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:500;align-items:center;justify-content:center;padding:20px;overflow-y:auto; }
.modal-overlay.open { display:flex; }
.modal { background:white;border-radius:20px;padding:28px;width:100%;max-width:420px;box-shadow:var(--shadow-lg);position:relative; }
.modal h3 { font-family:'Quicksand', sans-serif;color:var(--main-color);margin-bottom:16px;font-size:1.2rem; }
.modal-fields { display:flex;flex-direction:column;gap:12px;margin-bottom:20px; }
.modal-actions { display:flex;gap:8px;justify-content:flex-end; }

/* ===== SHARE/EXPORT MODAL ===== */
.share-modal { max-width:600px; }
.share-options { display:flex;flex-direction:column;gap:10px;margin-bottom:20px; }
.share-option { display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:14px;border:1.5px solid var(--border);cursor:pointer;transition:all 0.18s;background:white;width:100%;font-family:'Quicksand', sans-serif;text-align:left; }
.share-option:hover { border-color:var(--main-color);background:#f8f0fc; }
.share-option .share-icon { font-size:1.6rem;flex-shrink:0; }
.share-option .share-text strong { display:block;font-size:0.9rem;font-weight:700;color:var(--text); }
.share-option .share-text span { font-size:0.78rem;color:var(--muted); }
.export-tabs{display:flex;gap:6px;margin-bottom:16px;flex-wrap:wrap;}
.export-tab{flex:1;padding:10px;border-radius:10px;border:1px solid var(--border);background:white;cursor:pointer;font-weight:700;font-size:0.8rem;min-width:80px;}
.export-tab.active{background:var(--main-gradient);color:white;}
.export-tab-content{display:none;}
.export-tab-content.active{display:block;}
.layout-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:4px;}
.layout-card{border:2px solid var(--border);border-radius:12px;padding:10px 8px;cursor:pointer;text-align:center;transition:all 0.2s;background:var(--card-bg,white);}
.layout-card:hover{border-color:var(--main-color);background:#f8f0fc;}
.layout-card.selected{border-color:var(--main-color);background:#f0e8fc;box-shadow:0 0 0 2px rgba(122,79,168,0.2);}
.layout-card-preview{font-size:1.4rem;margin-bottom:4px;}
.layout-card-label{font-size:0.73rem;font-weight:700;color:var(--text);display:block;}
.layout-card-sub{font-size:0.65rem;color:var(--muted);display:block;margin-top:2px;}
.week-check-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px;}
.week-check-chip{display:flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;border:1.5px solid var(--border);background:var(--card-bg,white);cursor:pointer;font-size:0.78rem;font-weight:700;color:var(--muted);transition:all 0.2s;}
.week-check-chip.checked{background:var(--main-gradient);color:white;border-color:transparent;}

/* ===== ICON PICKER ===== */
.icon-picker-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.5);z-index:800;align-items:center;justify-content:center;padding:20px;}
.icon-picker-overlay.open{display:flex;}
.icon-picker-modal{background:var(--modal-bg,white);border-radius:20px;padding:24px;width:100%;max-width:360px;box-shadow:var(--shadow-lg);}
.icon-picker-modal h4{font-family:'Quicksand', sans-serif;color:var(--main-color);margin-bottom:4px;font-size:1rem;}
.icon-search-input{width:100%;padding:8px 12px;border:1.5px solid var(--border);border-radius:10px;font-size:0.88rem;margin-bottom:12px;background:var(--input-bg,white);color:var(--text);font-family:'Quicksand', sans-serif;}
.icon-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-height:240px;overflow-y:auto;}
.icon-btn{font-size:1.4rem;padding:8px;border:2px solid transparent;border-radius:10px;cursor:pointer;background:var(--cream);transition:all 0.15s;text-align:center;line-height:1;}
.icon-btn:hover{border-color:var(--main-color);background:#f8f0fc;transform:scale(1.1);}
.icon-custom-row{display:flex;gap:8px;margin-top:12px;}
.icon-custom-input{flex:1;padding:7px 10px;border:1.5px solid var(--border);border-radius:10px;font-size:1.1rem;text-align:center;background:var(--input-bg,white);color:var(--text);font-family:'Quicksand', sans-serif;}
.icon-picker-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:14px;}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:40px 20px;color:var(--muted);}
.empty-state .big-emoji{font-size:3rem;margin-bottom:12px;}
.empty-state p{font-size:0.9rem;}

/* ===== CRONÔMETRO ===== */
.timer-widget { position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:white;border-radius:20px;padding:12px 20px;box-shadow:var(--shadow-lg);border:2px solid var(--border);display:flex;align-items:center;gap:12px;z-index:200;transition:all 0.3s;min-width:280px; }
.timer-widget.hidden { display:none; }
.timer-display { font-family:'Quicksand', sans-serif;font-size:1.8rem;font-weight:700;color:var(--main-color);letter-spacing:2px;min-width:90px;text-align:center; }
.timer-display.warning { color:#d97706;animation:pulse 1s infinite; }
.timer-display.ended { color:#c2426a;animation:pulse 0.5s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.5} }
.timer-controls { display:flex;gap:6px; }
.timer-btn { width:36px;height:36px;border-radius:50%;border:none;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all 0.15s; }
.timer-btn-play { background:var(--main-gradient);color:white; }
.timer-btn-stop { background:#f0ebff;color:var(--main-color); }
.timer-btn-reset { background:#fde8f0;color:#c2426a; }
.timer-btn:hover { transform:scale(1.1); }
.timer-type-toggle { display:flex;gap:4px; }
.timer-type-btn { padding:4px 8px;border-radius:8px;border:1.5px solid var(--border);background:white;font-size:0.7rem;font-weight:700;cursor:pointer;color:var(--muted); }
.timer-type-btn.active { background:var(--main-gradient);color:white;border-color:transparent; }
.timer-close { background:none;border:none;cursor:pointer;color:var(--muted);font-size:1rem;padding:4px;margin-left:4px; }
.timer-input-row { display:flex;align-items:center;gap:4px; }
.timer-min-input { width:50px;padding:4px 6px;border-radius:8px;border:1.5px solid var(--border);text-align:center;font-size:0.9rem;font-weight:700; }

/* ===== UNDO SYSTEM ===== */
.btn-undo { background:none; border:1px solid var(--border); border-radius:8px; padding:4px 8px; font-size:0.75rem; color:var(--muted); cursor:pointer; display:flex; align-items:center; gap:5px; transition:0.2s; }
.btn-undo:hover { border-color:var(--main-color); color:var(--main-color); }
.btn-undo:disabled { opacity:0.3; cursor:not-allowed; }

/* ===== ALUNOS MODAL ===== */
.students-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:12px; }
.student-card { border:2px solid var(--border);border-radius:14px;padding:12px;text-align:center;cursor:pointer;transition:all 0.2s;background:var(--card-bg,white);position:relative; }
.student-card:hover { border-color:var(--main-color);transform:translateY(-2px);box-shadow:var(--shadow); }
.student-card.selected { border-color:var(--main-color);background:#f0e8fc;box-shadow:0 0 0 2px rgba(122,79,168,0.2); }
.student-card .student-avatar { font-size:2rem;margin-bottom:4px;display:block; }
.student-card .student-name { font-size:0.8rem;font-weight:700;color:var(--text); }
.student-card .student-age { font-size:0.7rem;color:var(--muted); }
.student-card .bday-badge { position:absolute;top:4px;right:4px;font-size:0.75rem;background:#fef3c7;border-radius:50%;width:20px;height:20px;display:flex;align-items:center;justify-content:center; }
.wow-note { background:#fffbeb;border:1.5px solid #fde68a;border-radius:10px;padding:10px;margin-top:8px; }
.wow-note label { color:#92400e; }

/* ===== CALENDÁRIO COMEMORATIVO ===== */
.holiday-suggestions { background:linear-gradient(135deg,#fef3c7,#fde68a);border:1.5px solid #f59e0b;border-radius:14px;padding:14px 16px;margin-bottom:20px; }
.holiday-suggestions h4 { font-family:'Quicksand', sans-serif;font-size:0.95rem;color:#92400e;margin-bottom:8px; }
.holiday-chip { display:inline-block;background:white;border:1px solid #f59e0b;border-radius:20px;padding:4px 12px;font-size:0.78rem;font-weight:700;color:#92400e;margin:2px;cursor:pointer;transition:all 0.15s; }
.holiday-chip:hover { background:#f59e0b;color:white; }

/* ===== PRINT RESET (BLINDAGEM CONTRA MODO ESCURO) ===== */
@media print {
  body, html { background: white !important; color: black !important; -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
  #print-preview { display: block !important; background: white !important; color: black !important; }
  .app-container, .main-content, main { display: none !important; }
  .print-week { background: white !important; border: none !important; margin: 0 !important; padding: 0 !important; }
  .print-block { background: #f9f9f9 !important; border-bottom: 1pt solid #eee !important; color: black !important; }
  .print-block-desc { color: #333 !important; }
  * { box-shadow: none !important; text-shadow: none !important; }
}

/* ===== PRINT LAYOUT ANTIGO ===== */
#print-preview{display:none;}
@media print {
  @page { size:A4 portrait; margin:10mm 12mm; }
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  body>*:not(#print-preview){display:none!important;}
  #print-preview{display:block!important;}
  .print-week{font-family:'Quicksand',Arial,sans-serif;}
  .print-week-title{font-family:'Quicksand',Georgia,serif;font-size:13pt;color:#6b4a7a;border-bottom:2pt solid #d4b8e0;padding-bottom:5pt;margin-bottom:8pt;display:flex;align-items:flex-start;justify-content:space-between;page-break-after:avoid;}
  .print-week-title .pw-left strong{font-size:13pt;}
  .print-week-title .pw-left small{font-size:8.5pt;color:#888;font-weight:400;display:block;margin-top:2pt;}
  .print-school-info{font-size:8.5pt;font-family:'Quicksand',Arial,sans-serif;color:#888;font-weight:400;text-align:right;line-height:1.6;}
  .print-days-grid{display:block;}
  .print-day{display:block;}
  .print-day-header{display:flex;align-items:center;justify-content:space-between;padding:5pt 10pt 4pt;font-family:'Quicksand',Georgia,serif;font-size:11pt;font-weight:700;color:white;border-radius:3mm 3mm 0 0;margin-top:6pt;page-break-after:avoid;}
  .print-day[data-d="seg"] .print-day-header{background:#4A90D9;}
  .print-day[data-d="ter"] .print-day-header{background:#3DAA6B;}
  .print-day[data-d="qua"] .print-day-header{background:#C4872A;}
  .print-day[data-d="qui"] .print-day-header{background:#D46E2A;}
  .print-day[data-d="sex"] .print-day-header{background:#C2426A;}
  .print-day-date{font-size:9pt;font-weight:300;color:rgba(255,255,255,0.9);}
  .print-blocks{display:flex;flex-direction:column;}
  .print-block{border-left:4pt solid transparent;border-bottom:1.5pt dashed #bbb;break-inside:avoid;page-break-inside:avoid;padding:8pt 12pt 9pt;}
  .print-block:last-child{border-bottom:2pt solid #ccc;}
  .print-block-title{display:flex;align-items:center;justify-content:space-between;gap:8pt;margin-bottom:4pt;}
  .print-block-name{font-weight:700;font-size:11pt;flex:1;}
  .print-block-time{font-size:10pt;font-weight:400;color:#555;white-space:nowrap;border:0.7pt solid #ddd;border-radius:4pt;padding:1pt 7pt;background:rgba(255,255,255,0.75);}
  .print-block-desc{font-size:9.5pt;line-height:1.65;color:#3a3a3a;white-space:pre-wrap;word-break:break-word;}
  .print-day[data-d="seg"] .print-block{background:#EBF4FF;border-left-color:#4A90D9;}
  .print-day[data-d="ter"] .print-block{background:#E8F7EE;border-left-color:#3DAA6B;}
  .print-day[data-d="qua"] .print-block{background:#FDF3E3;border-left-color:#C4872A;}
  .print-day[data-d="qui"] .print-block{background:#FEF0E6;border-left-color:#D46E2A;}
  .print-day[data-d="sex"] .print-block{background:#FDE8F0;border-left-color:#C2426A;}
  .print-deco{text-align:center;font-size:8pt;color:#c8a0d8;margin-top:7pt;letter-spacing:4px;}
}
/* ===== GRID VIEW (Roadmap 2.5) ===== */
.grid-view {
  display: none;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 15px;
  padding: 15px 0;
}
.grid-view.visible { display: grid; }
.grid-day-col {
  background: var(--card-bg);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.grid-day-col h4 {
  margin: 0;
  font-size: 0.9rem;
  color: var(--main-color);
  border-bottom: 1px solid var(--border);
  padding-bottom: 8px;
  display: flex;
  justify-content: space-between;
}
.grid-block-item {
  font-size: 0.8rem;
  padding: 8px;
  border-radius: 6px;
  border-left: 3px solid var(--main-color);
  background: var(--cream);
}
.grid-block-title { font-weight: bold; margin-bottom: 2px; }

@media (min-width: 1024px) {
  .grid-view { grid-template-columns: repeat(5, 1fr); }
}
/* BARRA LATERAL COLAPSÁVEL */
.app-container { display: flex; min-height: 100vh; overflow: hidden; }
.sidebar { 
  width: 260px; background: var(--sidebar-bg); border-right: 1.5px solid var(--border); 
  display: flex; flex-direction: column; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); z-index: 400; 
  flex-shrink: 0;
}
.sidebar.collapsed { margin-left: -260px; }
.main-content { flex: 1; min-width: 0; background: var(--bg); transition: all 0.3s; overflow-y: auto; }

@media (max-width: 768px) {
  .sidebar { position: fixed; height: 100%; box-shadow: 10px 0 30px rgba(0,0,0,0.1); margin-left: -260px; }
  .sidebar.open { margin-left: 0; }
  .sidebar.collapsed { margin-left: -260px; }
}

.btn-menu { background:none; border:none; font-size:1.5rem; cursor:pointer; color:var(--main-color); padding:5px; margin-right:10px; display:flex; align-items:center; }
/* ================================================================
   18. BNCCHAT WIDGET & SYNC STATUS
   ================================================================ */
.sync-indicator {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  transition: 0.3s;
}
.sync-indicator.online { background: #e8f7ee; color: #3daa6b; }
.sync-indicator.offline { background: #fef0e6; color: #d46e2a; }
.sync-indicator.syncing { animation: pulse 1.5s infinite; }

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.5; }
  100% { opacity: 1; }
}

.ai-floating-btn {
  position: fixed;
  bottom: 25px;
  right: 25px;
  width: 60px;
  height: 60px;
  background: var(--main-gradient);
  border-radius: 50%;
  box-shadow: var(--shadow-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.8rem;
  cursor: pointer;
  z-index: 2000;
  transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.ai-floating-btn:hover { transform: scale(1.1) rotate(5deg); }

.chat-container {
  position: fixed;
  bottom: 95px;
  right: 25px;
  width: 380px;
  height: 500px;
  background: var(--white);
  border-radius: 24px;
  box-shadow: var(--shadow-lg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 2000;
  transform: translateY(20px);
  opacity: 0;
  pointer-events: none;
  transition: 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
  border: 1px solid var(--border);
}
.chat-container.open {
  transform: translateY(0);
  opacity: 1;
  pointer-events: all;
}

.chat-header {
  padding: 20px;
  background: var(--main-gradient);
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.chat-header h4 { margin: 0; font-family: 'Quicksand', sans-serif; }

.chat-messages {
  flex-grow: 1;
  padding: 20px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: #fdfaf6;
}
.msg {
  max-width: 85%;
  padding: 12px 16px;
  border-radius: 18px;
  font-size: 0.9rem;
  line-height: 1.4;
}
.msg.user {
  align-self: flex-end;
  background: var(--main-color);
  color: white;
  border-bottom-right-radius: 4px;
}
.msg.ai {
  align-self: flex-start;
  background: white;
  color: var(--text);
  border-bottom-left-radius: 4px;
  border: 1px solid var(--border);
  box-shadow: 0 2px 4px rgba(0,0,0,0.02);
}

.chat-input-area {
  padding: 15px;
  background: white;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 10px;
}
.chat-input {
  flex-grow: 1;
  border: 1.5px solid var(--border);
  border-radius: 20px;
  padding: 10px 15px;
  font-family: inherit;
  font-size: 0.9rem;
  outline: none;
  transition: 0.2s;
}
.chat-input:focus { border-color: var(--main-color); background: var(--input-focus-bg); }

.chat-send-btn {
  width: 40px;
  height: 40px;
  border: none;
  background: var(--main-gradient);
  color: white;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 480px) {
  .chat-container {
    width: calc(100% - 40px);
    right: 20px;
    height: 70vh;
  }
}
